我需要在远程计算机上运行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