我正在尝试编写一个脚本,它将远程修补SQL实例。参照这个论坛上,我已经陷害以下行的其他服务器上远程执行.exe文件:Exe文件远程执行
Invoke-Command -ComputerName $computer -ScriptBlock {
& cmd /c 'D:\SQL_PATCH\SQLServer2012SP2-KB2958429-x64-ENU.exe' /qs /action=patch /allinstances /IAcceptSQLServerLicenseTerms
}
也试过这个问题,以及:
本Invoke-Command -ComputerName $computer -ScriptBlock {
& 'D:\SQL_PATCH\SQLServer2012SP2-KB2958429-x64-ENU.exe' -ArgumentList "/qs", "/action=patch", "/allinstances", "/IAcceptSQLServerLicenseTerms"
}
一个更为奇特的是,第一个命令在Windows 2012服务器上运行良好,但在Windows 2008R2服务器上运行良好。我不知道这背后的原因是什么。
尝试调用命令-ComputerName $ computer -ScriptBlock {D:\ SQL_PATCH \ SQLServer2012SP2-KB2958429-x64-ENU.exe/qs/action = patch/allinstances/IAcceptSQLServerLicenseTerms}'您还需要确保A )远程计算机启用了PowerShell Remoting B)当前PowerShell会话以管理员身份运行,并且C)您必须在远程计算机上拥有管理员权限。如果您没有管理员权限,则需要提供相应的凭据。 –
@KeithHill:你给的命令不起作用。无论你说什么参数,在我开始制作这个脚本之前,都进行了检查。请建议任何其他选择。谢谢 – Lilly123
用'/ q'替换'/ qs'。安装程序还在远程服务器上写入日志文件? SQL Server安装日志有一个特定的位置。 –