[英]Popup message for current user after script powershell
我创建了PowerShell
脚本,以便在计算机上安装应用程序(Windows 7)。 该脚本位于GPO中,并与GPO一起部署在登录用户处。 这个工作正常,但是我希望在安装结束时,我的powershell脚本向计算机上当前登录的用户发送一条消息,例如“请重新启动计算机”。
我测试了很多东西,但是我没有查看弹出窗口,也许是因为我的脚本是使用管理员权限(而不是用户权限)执行的。
测试:
#$wshell = New-Object -ComObject Wscript.Shell
#$wshell.Popup("Operation Completed",0,"Done",0x1)
[Windows.Forms.MessageBox]::Show(“My message”, , [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information)
您的脚本可能会弹出消息,但之后立即关闭PowerShell
控制台,并删除弹出窗口。 在关闭PowerShell
实例之前,请尝试等待弹出结果:
$wshell = New-Object -ComObject Wscript.Shell
$result = $wshell.Popup("Operation Completed",0,"Done",0x1)
您需要首先加载提供MessageBox
类的程序集,并且如果要指定按钮和/或图标,则不能省略消息框标题。
Add-Type -Assembly 'System.Windows.Forms'
[Windows.Forms.MessageBox]::Show(“My message”, "", [Windows.Forms.MessageBoxButtons]::OK, [Windows.Forms.MessageBoxIcon]::Information)
# ^^
您可以在此处使用空字符串或$null
,但不允许仅不提供值(就像在VBScript中那样)。
作为附带说明,我建议您在代码中避免使用印刷引号。 尽管PowerShell在大多数情况下都能容忍它们,但有时它们可能会引起问题。 为了安全起见,请始终使用直引号。
编辑:由于您是通过计算机策略运行脚本的,因此它无法向登录的用户显示消息框,因为它是在不同的用户上下文中运行的。 您所能做的就是让用户登录脚本检查是否已安装软件,然后向用户显示一条消息。 之所以可行,是因为在用户上下文中运行的用户登录脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.