簡體   English   中英

腳本Powershell之后當前用戶的彈出消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM