我有一个PS脚本,用于跟踪我的VMWare ESX服务器。我需要将其作为服务运行,以便我不会永久登录。不幸的是,如果我在服务中使用运行空间而不是仅通过powershell控制台运行脚本,则脚本运行速度会更慢。它需要2-5分钟来调用VMWare Web服务,而不是大约一秒钟。
当我调用运行空间时,我应该使用某种魔法吗?
答案 0 :(得分:1)
您可以将脚本作为计划任务运行。
答案 1 :(得分:1)
在没有看到你在做什么的情况下,我想不出很多会产生重大影响的事情:
您是否尝试过使用PowerShell的2.0 API和PowerShell.Create()来运行它?
最后,您还可以查看一些开源PowerShell主机,如PoshConsole或CodePlex上的bgHost ...如果它们不能慢慢运行,那么您可以按照它们用于创建运行空间的过程。
答案 2 :(得分:0)
服务是否以具有相同权限的用户身份进行身份验证?我怀疑当它作为服务运行时会有一些超时,你自己运行脚本时没有看到。
答案 3 :(得分:0)
无论是使用它运行在服务中,所讨论的脚本运行速度都相同 通常的服务帐户,或者如果我在一个非常基本的控制台应用程序中运行(创建 runspace,添加脚本,执行)。
除了通常的嫌疑人(帐户权限,Set-ExecutionPolicy RemoteSigned和防火墙配置)之外,我想不出为什么PowerShell在Windows服务中不能像在控制台应用程序中那样完全相同的充分理由,这让我觉得它可能是环保的东西。它不是像糟糕的DNS解析那样愚蠢的东西,是吗?假设您在服务器上运行它,它在开发机器上的运行速度是否也很慢?
PS:我想知道这个问题是否更适合ServerFault?