在远程PC上运行PsExec.exe

时间:2018-11-01 15:17:31

标签: powershell psexec

我有一个PowerShell脚本,当以本地用户的帐户运行时,该脚本在远程服务器上配置WinRM。但是,我需要将脚本上载到TFS,并让每个主机自己运行脚本。

该脚本检查是否配置了WinRM。如果不是,则检查C:\ PSTools \ PsExec.exe路径是否存在。如果路径存在,则需要使用以下方法配置WinRM:

$configure = (C:\PSTools\PsExec.exe \\$hostname -s winrm.cmd -q 2> $null)

但是,以上导致错误

  

术语“ C:\ PSTools \ PsExec.exe”不能识别为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请确认路径正确,然后重试。

我知道文件在那里,所以我不确定我在做什么错。我见过的其他示例要么单独使用psexec要么使用./PsExec.exe,但是这些都不起作用。

任何建议表示感谢,谢谢。

1 个答案:

答案 0 :(得分:1)

虽然这不能回答psexec.exe不起作用的原因(尽管我怀疑是因为文件实际上不存在),但是您可以使用WMI启用WinRM

([wmiclass]"\\$hostname\root\cimv2:win32_process").
    Create('powershell "Enable-PSRemoting -Force -SkipNetworkProfileCheck"')

并远程重新启动服务(即使Enable-PSRemoting处理了此问题):

$svc = [wmi]"\\$hostname\root\cimv2:win32_service.Name='winrm'"
$svc.StopService()
$svc.StartService()