我需要在遠程計算機上運行PS腳本,正如下面的代碼所做的那樣。使用PSTool在遠程計算機上運行PowerShell腳本
Process psExecer = new Process
{
StartInfo =
{
UseShellExecute = false,
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Hidden,
FileName = @"c:\PsTools\PsExec.exe",
Arguments = @"c:\windows\System32\cmd.exe /k c:\windows\System32\WindowsPowerShell\v1.0\powershell.exe E:\Scripts\SetUP.ps1 -u super -p Pass -s"
}
};
psExecer.Start();
psExecer.WaitForExit();
Thread.Sleep(5000);
問題是腳本有一些共享點cmdlet,它必須加載共享點PSSnapin。僅當腳本在Powershell的64位映像中運行時腳本才能正常運行。
當我嘗試使用PSTool運行時,即使當我明確提到代碼中顯示的路徑時,PSTool始終會從%windir%\ SysWoW64文件夾中調用32位PowerShell。
爲什麼會這樣,該如何解決我的問題
問候, 哎呀
只是好奇,但爲什麼你加載'cmd'然後得到它加載'powershell',而不是直接運行'powershell'? – 2011-04-19 10:35:43
試過直接加載powershell給出了同樣的錯誤,所以嘗試使用cmd加載這並沒有多大用處 – JeeZ 2011-04-19 10:43:50
我假設它是一個錯字,但是你聲明你需要運行64位版本的powershell,但是然後從' System32'。你可以更新你的問題,以確保沒有混淆......? – 2011-04-19 10:50:09