PowerShell 代码如下:
#---------------------------------------------------------------------
# 参数定义
#---------------------------------------------------------------------
param(
[string]$computerName,
[string]$cmdLine,
[string]$usr,
[string]$pwd
)
#---------------------------------------------------------------------
# 执行 WMI 远程调用
#---------------------------------------------------------------------
[System.Management.ConnectionOptions] $connOps = New-Object -TypeName System.Management.ConnectionOptions;
$connOps.Username = $usr;
$connOps.Password = $pwd;
[System.Management.ManagementScope] $scope = New-Object -TypeName System.Management.ManagementScope "//$computerName/root/cimv2", $connOps;
[System.Management.ManagementPath] $path = New-Object -TypeName System.Management.ManagementPath "Win32_Process";
[System.Management.ManagementClass] $mgmtClass = New-Object -TypeName System.Management.ManagementClass $scope, $path, $null;
[System.Management.ManagementBaseObject] $inParams = $mgmtClass.GetMethodParameters("Create");
$inParams["CommandLine"] = "cmd.exe /c $cmdLine";
[System.Management.ManagementBaseObject] $ret = $mgmtClass.InvokeMethod("Create", $inParams, $null);
#---------------------------------------------------------------------
# 判断远程执行是否成功并退出
#---------------------------------------------------------------------
$errCode = [System.Convert]::ToUInt32($ret["ReturnValue"]);
if($errCode -ne 0)
{
throw "Execute [RemoteExecute-Command.ps1] failed. Error code: $errCode.";
}
exit