嘗試幾種可能性後我不確定如何繼續。Powershell封裝參數的不同憑證
我需要執行一個腳本"C:\test1\script.ps1"
我也需要通過這個腳本傳遞一些參數。這些參數(-Hashtag $Hashtag -Name $Name
等等)存儲在名爲$arguments
的變量中。
所以最後調用應該是這樣的:C:\test1\script.ps1 $arguments
這是沒有問題的,但現在我無法得到管理的東西的工作。
我的目標是以不同的用戶身份執行此操作。登錄憑據存儲在$cred
我已經嘗試下面的事情相比,這裏的相關主題論壇:
命令
Invoke-Command -Credential $cred -Authentication Credssp -ComputerName home -ScriptBlock {C:\test1\script.ps1 $arguments}
Powershell的結果:一些參數(以這種情況下的Hashtag)是空的。林不知道爲什麼會發生這種情況,因爲我只是用所有的東西填充$ arguments變量。
命令
Start-Process -FilePath "C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe" -ArgumentList "C:\test1\script.ps1 $arguments -Credential $cred -WorkingDirectory 'C:\\Windows\System32'
這導致該腳本將不會得到執行。
有沒有人有關於處理該建設的更多信息?也許有另一個命令我可以將憑據傳遞給?
作爲另一個通知,我不能使用憑證提示,所以任何UAC考慮的解決方案都不適合我的問題。
'$ arguments'需要[splatted](https://technet.microsoft.com/en-us/library/gg675931.aspx)例如。 '@ arguments' – BenH
我按照說明操作,但它也不起作用。 '$參數= @ { 參數1 = $ ARGUMENT1 ARGUMENT2 = $ ARGUMENT2 }' –
我跟着指示,但它不會工作。 '$參數= @ { 參數1 = $ ARGUMENT1 ARGUMENT2 = $ ARGUMENT2 }' 所需的腳本被執行,多數民衆贊成罰款。但拋出一個錯誤的參數是空的...當我打印@arguments有所有的數據iI需要。因此,濺射應該是精確的。但是,這些爭論確實是正確地傳遞給腳本的。 我現在就這樣調用腳本: '-ScriptBlock {C:\ test1 \ script.ps1 @ausfuehrung}' 這是正確的嗎? –