繁体   English   中英

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

[英]Powershell script which is executing batch file on remote machine is not executing the commands but printing them

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

在远程计算机上运行批处理文件

try {
    Invoke-Command -Session $newsession -Scriptblock {
        Invoke-Expression "C:\EES_Installer\db\Database\mdm.dal\data\dataloader.bat"
        #Invoke-Expression "cmd.exe /c C:\EES_Installer\db\Database\mdm.dal\data\dataloader.bat"
         & cmd.exe /c "C:\EES_Installer\db\Database\mdm.dal\data\dataloader.bat"
    } -ErrorAction Stop
} catch [Exception] {
    echo "Error while running the remote command", $_.Exception.GetType().FullName, $_.Exception.Message
    Remove-PSSession $newsession
    exit 1
}
Remove-PSSession $newsession

此代码的问题在于,它打印批处理文件的内容而不是执行它。 我不知道这个脚本有什么问题。 在双向显示的代码中,我尝试了:使用'Invoke-Expression''&'运算符

在这种情况下,不需要Invoke-Expression或&。 指定批处理文件的完整路径应调用它。

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

解决到目标目录,然后使用cmd启动应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM