【发布时间】:2019-04-05 20:20:03
【问题描述】:
我有一个 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,但这些都不起作用。
任何建议表示赞赏,谢谢。
【问题讨论】:
-
去掉括号,因为它们是不必要的
-
gcm /pstools/psexec有什么回报吗? -
对,括号只是样式偏好,不影响操作。
Get-Command -Name c:/pstools/psexec.exe确实返回文件信息(命令类型:应用程序 - 名称:psexec.exe - 版本:2.20.0.0 - 来源:C:\pstools\psexec.exe) -
当您说“将脚本上传到 TFS 并让每个主机自己运行脚本”时 - 这是否意味着您正在 TFS 服务器上运行脚本或在需要配置 winrm 的每个主机上运行它开吗?
标签: powershell psexec