1

我正在运行以下批处理文件来连接远程机器并使用 psexec 在远程机器上运行 powershell 脚本。

在本地机器上运行批处理文件 (myscript.bat)
运行命令:myscript.bat \\mymachine

set machinename=%1

@echo " started"
PsExec.exe %machinename% -u myID -p myPwd -i -d cmd /c mkdir C:\test

xcopy  DirChk.ps1 %machinename%\C$\test

psexec.exe %machinename% -u myID -p myPwd cmd.exe /c 'echo .|powershell.exe -file C:\Test\DirChk.ps1'

@echo "Completed"

错误:

在 \\mymachine ...Processing -File 'C:\Test\DirChk.ps1'' 上启动 PsExec 服务失败,因为该文件没有 '.ps1' 扩展名。指定一个有效的 PowerShell 脚本文件名,然后重试。

4

1 回答 1

3

试试双引号。批处理文件由cmd解释,它不理解单引号。这应该有效:

psexec.exe %machinename% -u myID -p myPwd cmd.exe /c "echo .|powershell.exe -file C:\Test\DirChk.ps1"
于 2013-07-29T15:33:02.427 回答