Performance Powershell脚本在运行空间中的运行速度比在shell中的运行速度慢

Performance Powershell脚本在运行空间中的运行速度比在shell中的运行速度慢,performance,powershell,Performance,Powershell,我有一个PS脚本,用于跟踪我的VMWare ESX服务器。我需要将其作为服务运行,这样我就不会永久登录。不幸的是,如果我在服务中使用运行空间,而不仅仅是通过powershell控制台运行脚本,那么脚本的运行速度会更慢。调用VMWare web服务需要2-5分钟,而不是一秒钟左右 当我调用运行空间时,是否应该使用某种魔法?您可以将脚本作为计划任务运行。该服务是否作为具有与您相同权限的用户进行身份验证?我怀疑当它作为服务运行时,有什么东西超时了,而您自己运行脚本时却看不到 无论脚本是否在使用其 通常

我有一个PS脚本,用于跟踪我的VMWare ESX服务器。我需要将其作为服务运行,这样我就不会永久登录。不幸的是,如果我在服务中使用运行空间,而不仅仅是通过powershell控制台运行脚本,那么脚本的运行速度会更慢。调用VMWare web服务需要2-5分钟,而不是一秒钟左右


当我调用运行空间时,是否应该使用某种魔法?

您可以将脚本作为计划任务运行。

该服务是否作为具有与您相同权限的用户进行身份验证?我怀疑当它作为服务运行时,有什么东西超时了,而您自己运行脚本时却看不到


无论脚本是否在使用其 通常的服务帐户,或者如果我在一个非常基本的控制台应用程序(创建 运行空间、添加脚本、执行)

除了常见的疑点(帐户权限、Set-ExecutionPolicy RemoteSigned和防火墙配置),我想不出一个好的理由来解释为什么PowerShell在Windows服务中不能像在控制台应用程序中一样工作,这让我觉得它可能是环保的。这不是像糟糕的DNS解析那样愚蠢的事情,是吗?假设您在服务器上运行这个,它在您的开发机器上的执行速度是否也很慢


PS:我想知道这个问题是否更适合ServerFault?

如果不知道您在做什么,我想不出有多少事情会有这么大的不同:

  • 当它在PowerShell中运行时,您是否有可能对其有所帮助的配置文件自定义(使用PowerShell进行测试-noprofile)
  • 您是否正在计算最初在您的服务中导入模块或管理单元(而不是在PowerShell中)所需的时间
  • 您是否每次都在服务中创建整个运行空间
您是否尝试过在PowerShell.Create()中使用PowerShell的2.0 API来运行它


最后,您还可以查看一些开源PowerShell主机,如CodePlex上的PoshConsole或bgHost。。。如果他们运行速度不慢,那么您可以按照他们创建运行空间的过程进行操作。

我认为您需要包括更多信息:•您如何将脚本作为服务运行(例如,自定义代码、常用工具等)您是否尝试过更简单的脚本,它们是否会减慢速度(例如,忽略web服务调用)您是否尝试过在PowerShell控制台中以与服务相同的凭据运行该脚本?无论是在使用其常用服务帐户的服务中运行,还是在非常基本的控制台应用程序(创建运行空间、添加脚本、执行)中以我自己的身份运行,该脚本的运行速度都一样慢。因此,身份验证(可能)不是问题。我还没有试过运行其他随机脚本-这似乎是个好主意。我可以-但因为它需要持续运行(这是一个性能监控工具),我会把它放在我的后口袋里,作为最后的邪恶黑客手段。这是一个编程问题,真的——因为他在询问调用API的方式…@Jaykul,如果他认为自己的代码是错误的,那么这是一个编程问题。考虑到他在一个服务和控制台应用程序中也有类似的行为,我猜这是一种环境因素,因此值得在SF上试一试。尽管如此,如果没有更多的实验和更多的细节,很难判断哪种方式。