Invoke-wmimethod win32_process

时间:2016-09-26 23:36:22

标签: powershell-v2.0 invoke powershell-v4.0

背景:我正在创建一个脚本,向我的域中的每个人发送一条消息。我能够使用Invoke-WMI方法和MSG.exe完成此操作。但是,我的主管希望发送更可自定义的消息。喜欢改变颜色,字体大小,字体样式等。我使用PowerShell创建的。

脚本:

Invoke-WmiMethod -ComputerName $Computer -Class Win32_Process -Name Create -ArgumentList {"C:\x\x\x\Powershell.exe -File `"\\Server\Share\Folder\Script.ps1`""}

当我对我的电脑运行此脚本时,它完美无缺。但是,当我尝试在远程计算机上运行它时,它会失败。 我不明白为什么。

它与我使用的MSG.exe完全相同,但它仍然无法使用PowerShell脚本。

我尝试将脚本复制到远程计算机上C:\'并从该文件路径运行它,但它仍然无法正常工作。

我已验证Powershell.exe的文件路径与脚本相同,远程工作站可以访问.PS1脚本。

但是,脚本确实运行并说它成功,返回值为0.示例:

__ GENUS:2 __CLASS:__PARAMETERS __SUPERCLASS: __DYNASTY:__PARAMETERS __RELPATH: __PROPERTY_COUNT:2 __DERIVATION:{} __SERVER: __NAMESPACE: __PATH: ProcessId:8748 ReturnValue:0

1 个答案:

答案 0 :(得分:0)

我的建议是检查两台机器上的版本。您使用的CmdLet可能无法使用以前的版本。

我再次提出建议,如果你有PowerShell版本3或更高版本,你可以使用下面的命令来完成你的工作。

$Outputreport = "Test message to send data using port 443"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
$wc = new-object System.Net.WebClient
Invoke-RestMethod -Method Post https://hostnamedotcom/cgi-bin/dir-path/$hostname-filename -Body $Outputreport