我正在尝试远程运行一个显示弹出警报的PowerShell脚本。我们正在尝试创建一种“紧急通知系统”。在管理员机器上有一个脚本可以选择发送给每个人的紧急警报,然后它应该在每个人的屏幕上运行/显示。
我已经使用/ msg命令来实现这一点,但是消息是如此简单以至于它不会引起用户的注意并且文本无法自定义(除非它可以,在这种情况下请PLEASE启发我)。
尝试执行此操作时,我收到以下错误消息。我也试图通过PsExec做到这一点,但收到同样的错误。
错误:
使用“0”参数调用“ShowDialog”的异常:“当应用程序未在UserInteractive模式下运行时显示模式对话框或表单不是有效操作。指定ServiceNotification或DefaultDesktopOnly样式以显示通知来自服务应用程序。“
以下是PowerShell脚本。它没什么特别的,只是想要一些适合我们目的的东西。
Add-Type -AssemblyName System.Windows.Forms
$Form = New-Object system.Windows.Forms.Form
$Form.Text = "Disaster Alert!"
$Form.AutoScroll = $True
$Form.AutoSize = $True
$Form.AutoSizeMode = "GrowAndShrink"
$Form.WindowState = "Normal"
$Form.StartPosition = "CenterScreen"
$Form.Font = New-Object System.Drawing.Font("Calibri",60,[System.Drawing.FontStyle]::Bold)
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(500,200)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "Close"
$OKButton.Font = New-Object System.Drawing.Font("Calibri",11)
$OKButton.UseVisualStyleBackColor = $True
$OKButton.Add_Click({$Form.Close()})
$Form.Controls.Add($OKButton)
$Label = New-Object System.Windows.Forms.Label
$Label.Text = "Please Exit the Building`nBuilding Fire Alarm Sounding!!"
$Label.ForeColor = "Red"
$Label.TextAlign = "MiddleCenter"
$Label.AutoSize = $True
$Form.Controls.Add($Label)
$Form.ShowDialog()
是否可以通过PowerShell弹出窗口?如果没有,有人有任何建议吗?
非常感谢你。