首页 文章

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

提问于
浏览
3

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

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

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

1 回答

  • 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)
    

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

相关问题