2009-07-10 58 views
3

我有,我用它来记录我的VMware ESX服务器的PS脚本运行更慢。我需要将它作为服务运行,以便我不会永久登录。不幸的是,如果我在服务中使用运行空间,而不是仅仅通过powershell控制台运行脚本,则脚本运行速度会更慢。拨打VMWare网络服务需要2-5分钟,而不是一秒钟左右。PowerShell脚本的运行空间比外壳

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

+1

我认为您需要包含更多信息: •您如何将脚本作为服务运行(例如,自定义代码,常用工具等)? •您是否尝试过更简单的脚本,并放慢速度(例如,忽略Web服务呼叫)? •您是否曾尝试在PowerShell控制台中运行与该服务相同凭据下运行的脚本? – totorocat 2009-07-10 22:08:50

+0

有问题的脚本无论运行在使用其常规服务帐户的服务中,还是作为自己在非常基本的控制台应用程序中运行(创建运行空间,添加脚本,执行),运行速度都相当慢。所以认证(可能)不是问题。我还没有尝试运行其他随机脚本 - 这似乎是一个好主意。 – user103633 2009-07-12 01:36:20

回答

1

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

+0

我可以 - 但是因为它需要连续运行(这是一个性能监视工具),所以我会把它放在我的后面的口袋里,作为最后的手段邪恶黑客。 – user103633 2009-07-12 01:37:27

0

该服务是否以与您拥有相同权限的用户身份进行身份验证?我怀疑当它作为服务运行时,某些东西是超时的,当你自己运行脚本时,你看不到它。

0

有问题的脚本运行同样慢慢是否在服务中使用其 平时服务帐户运行,或者如果我为自己在一个非常基本的控制台应用程序运行(创建 运行空间,添加脚本,执行)。

除了通常的嫌疑人(帐户权限,设置ExecutionPolicy RemoteSigned就是,和防火墙配置),我想不出一个很好的理由,因为它在做的PowerShell不应该在Windows服务的工作原理完全相同一个控制台应用程序,这让我觉得它可能是环境问题。这不是像糟糕的DNS解析那样愚蠢,是吗?假设你在服务器上运行它,它是否也在你的开发机器上执行缓慢?

PS:我不知道,如果这个问题可能更适合ServerFault?

1

没有看到你在做什么,我不能想到的很多东西,这将使这么大的差异:

  • 你有配置定制,可能出来的时候它可以运行它帮助PowerShell的(使用PowerShell -noprofile测试)
  • 你计算才能开始导入模块或管理单元在服务的时候,而不是在PowerShell中。
  • 您是否每次在服务中重新创建整个运行空间?

您是否尝试过使用PowerShell与PowerShell.Create 2.0 API()来运行呢?

最后,您还可以看看一些开源的PowerShell主机,例如CodePlex上的PoshConsole或bgHost ...如果它们没有缓慢运行,那么您可以按照他们用于创建其运行空间的过程。