2012-02-09 106 views
2

我想使用Invoke-Command powershell cmdlet安裝MSI安裝程序。從PowerShell中的本地計算機上,並從正確的目錄,下面的工作:從Powershell執行遠程安靜MSI安裝

./setup /quiet 

下似乎並沒有工作:

$script = 
{ 
    param($path) 
    cd "$path" 
    & ./setup /quiet 
    return pwd 
} 
return Invoke-Command -ComputerName $product.IPs -ScriptBlock $script -Args $sourcePath 

爲了測試我的工作本地機器通過「。」爲-ComputerName參數。在傳遞給Invoke-Command之前,路徑已經驗證正確,並且在此代碼的不同版本上生成的錯誤指示路徑是正確的。我還嘗試了使用和不使用遠程調用上的「&」進行設置。其他Invoke-Command調用正在工作,所以我懷疑這是一個權限問題。我已經驗證了來自pwd調用的返回是預期的目錄。

如何使安裝正常工作?

回答

0

您可以嘗試使用開始處理您的腳本塊:

CD $路徑 啓動過程中的setup.exe -arg「/安靜」

不知道如果你想要或需要等待。查看Start-Process的幫助。

+0

我會在早上給它一個鏡頭。我確實嘗試過啓動過程,但從你的例子中我得到了錯誤的語法。 – PatrickV 2012-02-10 03:02:16

+0

那麼,我想這是更好,但仍然無法正常工作。相同的行爲 - 從本地Powerhell工作,但不能通過Invoke-Command與本地機器通話。在這一點上我最好的猜測是,這是一個權限問題,通過遠程調用運行安裝程序。 – PatrickV 2012-02-10 19:41:57

+0

這可能是。我遇到了拒絕通過遠程桌面會話進行安裝的應用程序。在遠程計算機上設置一次性計劃任務以運行安裝如何? – 2012-02-13 13:17:01

0

我試圖遠程執行本地機器上的腳本時出現了奇怪的問題。換句話說,遠程PowerShell的本地機器。它回來了一個錯誤,似乎說PowerShell遠程處理沒有在機器上啓用,但它是。我可以從另一臺機器遠程運行腳本到目標,但是當使用遠程處理到同一個盒子時,問題就會出現。

  • 確認WinRM服務正在運行。
  • 驗證PowerShell遠程處理已啓用,如Enable-PSRemoting -force
  • 例如,驗證您的powershell執行策略是否足夠鬆散,如Set-ExecutionPolicy Unrestricted。如果政策設置爲RemoteSigned,則可能是問題所在。

您可能還想驗證您正在運行腳本的用戶(本地,但使用遠程處理)有權「作爲服務登錄」或作爲批處理作業。就在那裏猜測,如果上面的列表沒有解決任何問題。