如何在远程计算机上启动.cmd文件?

时间:2014-04-15 18:36:07

标签: windows batch-file powershell cmd remote-access

我需要能够从文件驻留在该计算机上的目录中启动远程计算机上的.cmd文件

我已经尝试过:invoke-command -ComputerName test123 -ScriptBlock { cmd /c c:/myfile.cmd }在PowerShell中启动了.cmd,但后来失败了,因为它找不到这个启动的相应的.cmd(都存在于同一个.cmd中)目录)。

有没有办法启动这个.cmd文件,让它的执行持续存在?即使在powershell窗口关闭后,.cmd仍将继续在远程计算机上运行。

1 个答案:

答案 0 :(得分:4)

您需要更改scriptblock中的工作目录。在调用批处理脚本之前添加Set-Location

Invoke-Command -ComputerName test123 -ScriptBlock {
  Set-Location 'C:\'
  & cmd /c ".\myfile.cmd"
}

如果您需要创建一个分离的进程,您可以通过WMI执行此操作:

$hostname = 'test123'
$command  = 'C:\path\to\script.cmd'
$workdir  = 'C:\working\directory'

$p = [wmiclass]"\\$hostname\root\cimv2:Win32_Process"
$p.Create($command, $workdir)

请注意,您需要远程主机的管理员权限。