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
} ......