背景:我正在创建一个脚本发送消息给我的域名中的每个人。我能够使用Invoke-WMImethod和MSG.exe完成此操作。然而,我的主管想要发送一个更可定制的消息。比如改变颜色、字体大小、字体样式等等。这是我用PowerShell创建的
脚本:
Invoke-WmiMethod -ComputerName $Computer -Class Win32_Process -Name Create -ArgumentList {"C:xxxPowershell.exe -File `"\ServerShareFolderScript.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返回值: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