【发布时间】:2011-04-20 03:49:31
【问题描述】:
我需要在远程机器上运行一个 PS 脚本,按照下面的代码进行。
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);
问题是脚本有一些sharepoint cmdlet,它必须加载sharepoint PSSnapin。脚本只有在 64 位的 Powershell 映像中才能正常运行。
当我尝试使用 PSTool 运行时,PSTool 总是最终从 %windir%\SysWoW64 文件夹调用 32 位 PowerShell,即使我明确提到了代码中显示的路径。
为什么会这样,我的问题有什么解决办法
问候, 天哪
【问题讨论】:
-
只是好奇,但为什么你加载
cmd然后让它加载powershell,而不是直接运行powershell? -
尝试直接加载powershell也报同样的错误,所以尝试使用cmd加载,用处不大
-
我假设这是一个错字,但您声明您需要运行 64 位版本的 powershell,然后从
System32加载它。您能否更新您的问题以确保没有混淆...? -
任何完整的源代码,最终解决方案有效?
标签: sharepoint powershell