gpt4 book ai didi

powershell - 带有脚本 block 的 Invoke-Command 在没有错误的远程机器上不起作用

转载 作者:行者123 更新时间:2023-12-04 02:13:51 24 4
gpt4 key购买 nike

我正在尝试调用位于本地计算机中的批处理文件,从远程计算机执行以下 PowerShell 命令。

Invoke-Command -ComputerName XXXXXX -ScriptBlock {
Start-Process "c:\installagent.bat"
} -Credential abc\XXX

它没有给出任何错误,但远程计算机上没有任何反应。

如果我从本地机器运行批处理文件,它工作正常。

最佳答案

你不能像那样在远程主机上运行本地文件。如果帐户 abc\XXX 在您的本地计算机上具有管理员权限(并且已启用对管理共享的访问权限),您可以试试这个:

Invoke-Command -ComputerName XXXXXX -ScriptBlock {
param($myhost)
Start-Process "\\$myhost\c$\installagent.bat"
} -ArgumentList $env:COMPUTERNAME -Credential abc\XXX

否则您必须先将脚本复制到远程主机:

Copy-Item 'C:\installagent.bat' '\\XXXXXX\C$'

Invoke-Command -ComputerName XXXXXX -ScriptBlock {
Start-Process "c:\installagent.bat"
} -Credential abc\XXX

此外,我建议使用调用运算符 (&) 而不是 Start-Process 来运行批处理文件:

Invoke-Command -ComputerName XXXXXX -ScriptBlock {
& "c:\installagent.bat"
} -Credential abc\XXX

这样 Invoke-Command 应该返回批处理文件的输出,让您更好地了解正在发生的事情。

或者,您可以简单地使用 psexec :

C:\> psexec \\XXXXXX -u abc\XXX -c installagent.bat

关于powershell - 带有脚本 block 的 Invoke-Command 在没有错误的远程机器上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31251718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com