2009-07-10 26 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 ...如果它們沒有緩慢運行,那麼您可以按照他們用於創建其運行空間的過程。