Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在远程计算机上执行批处理文件的Powershell脚本没有执行命令,而是打印命令_Windows_Powershell_Batch File - Fatal编程技术网

Windows 在远程计算机上执行批处理文件的Powershell脚本没有执行命令,而是打印命令

Windows 在远程计算机上执行批处理文件的Powershell脚本没有执行命令,而是打印命令,windows,powershell,batch-file,Windows,Powershell,Batch File,我在主机上,试图在受信任域中的远程计算机上执行批处理文件。我尝试了以下代码: 在远程计算机上运行批处理文件 这段代码的问题是它打印批处理文件的内容,而不是执行它。我不知道这个脚本有什么问题。在我以两种方式展示的代码中,我都尝试过:使用'Invoke-Expression'和'&运算符在本例中,不需要调用表达式或&。指定批处理文件的完整路径将调用它 try { Invoke-Command -Session $newSession -ScriptBlock { C:\EE

我在主机上,试图在受信任域中的远程计算机上执行批处理文件。我尝试了以下代码:

在远程计算机上运行批处理文件
这段代码的问题是它打印批处理文件的内容,而不是执行它。我不知道这个脚本有什么问题。在我以两种方式展示的代码中,我都尝试过:使用'Invoke-Expression''&运算符在本例中,不需要调用表达式或&。指定批处理文件的完整路径将调用它

try
{
    Invoke-Command -Session $newSession -ScriptBlock  {
        C:\EES_Installer\db\Database\mdm.dal\data\dataloader.bat
    } -ErrorAction Stop
}
...

Cd'ing到目标目录,然后使用cmd启动应用程序是此问题的解决方案。

invoke expression
使用PowerShell解释器执行字符串。如果要使用cmd解释器执行批处理文件,则整个命令是
cmd/c“c:\path\to\dataloader.bat”
。我尝试过这种方法,但不起作用,它不会引发任何异常,只打印文件的内容。在脚本块中,您是否也将
cd
放入包含批处理文件的目录中?否,我没有“cd”进入目录。看起来是这样的:cmd/c“c:\EES\u Installer\db\Database\mdm.dal\data\dataloader.bat”@Kiran Cd'ing到目标目录,然后调用表达式就是解决方案。把答案贴在下面。你能接受这个问题吗?ThanksI最初也尝试过同样的方法,但不起作用。如果在远程机器中通过cmd执行批处理文件,则批处理文件工作正常。
try
{
    Invoke-Command -Session $newSession -ScriptBlock  {
        C:\EES_Installer\db\Database\mdm.dal\data\dataloader.bat
    } -ErrorAction Stop
}
...
try {
    Invoke-Command -Session $newsession -Scriptblock {
        cd C:\BES_Installer\db\Database\mdm.dal\data
        Invoke-Expression "cmd.exe /c dataloader.bat"
    } -ErrorAction Stop
} ......