Computer >> 컴퓨터 >  >> 체계 >> Windows Server

PowerShell에서 팝업 또는 풍선 도움말 알림을 표시하는 방법은 무엇입니까?

PowerShell은 콘솔 언어이지만 때로는 PS 스크립트에서 사용자에게 특정 이벤트에 대해 알리거나 작업을 수행하라는 메시지를 표시해야 합니다. 예를 들어, 무거운 PoSh 스크립트의 완료 또는 중요한 이벤트가 발생했을 때 팝업 알림 또는 풍선 도움말을 표시할 수 있습니다.

가장 쉬운 방법은 Windows 스크립트 하위 시스템을 사용하여 텍스트가 포함된 창을 표시하는 것입니다. (W스크립트 ) PowerShell에서 호출합니다.

이 PowerShell 코드는 메시지와 확인 버튼이 있는 공통 창을 표시합니다.

$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("The report generation script is successfully completed!")

PowerShell에서 팝업 또는 풍선 도움말 알림을 표시하는 방법은 무엇입니까?

팝업의 다양한 속성 사용 방법을 사용하면 메시지 텍스트가 포함된 모달 창의 모양을 사용자 지정할 수 있습니다. 사용자의 대답(예/아니오)으로 스크립트로 돌아갈 수도 있습니다.

PowerShell에서 팝업 또는 풍선 도움말 알림을 표시하는 방법은 무엇입니까?

$Output = $wshell.Popup("The report generation script is successfully completed! Do you want to display a report on the screen?",0,"The report is ready",4+32)

Popup 메소드의 일반 구문 및 사용 가능한 매개변수:

Popup(<Text>,<SecondsToWait>,<Title>,<Type>)

매개변수:

  • <Text> — 메시지 텍스트(문자열);
  • <SecondsToWait> — 숫자(선택 사항). 메시지 창이 자동으로 닫히는 시간(초)
  • <Title> —문자열(선택 사항). 팝업 창의 제목 텍스트(캡션),
  • <Type> —숫자(선택 사항). 버튼과 아이콘의 유형을 결정하는 플래그의 조합입니다.

가능한 유형 플래그 값:

    • 0 — 확인 버튼,
    • 1 — 확인 및 취소 버튼
    • 2 — 중지, 재시도 및 건너뛰기 버튼
    • 3 — 예, 아니요 및 취소 버튼
    • 4 — 예 및 아니오 버튼
    • 5 — 재시도 및 취소 버튼
    • 16 — 정지 아이콘
    • 32 — 질문 아이콘,
    • 48 — 느낌표 아이콘
    • 64 — 정보 아이콘.

팝업 메소드는 사용자가 어떤 버튼을 클릭했는지 알 수 있는 정수를 반환합니다. 가능한 값:

  • -1 — 시간 초과;
  • 1 — 확인 버튼
  • 2 — 취소 버튼,
  • 3 — 중지 버튼,
  • 4 — 재시도 버튼
  • 5 — 건너뛰기 버튼,
  • 6 — 예 버튼;
  • 7 — 버튼이 없습니다.

Windows Forms API를 통해 Windows 7, 8.1 및 10에서 더 매력적인 팝업 메시지(풍선 도움말)가 표시될 수 있습니다. . 다음 PowerShell 코드는 20초 후에 자동으로 사라지는 Windows 10 알림 표시줄 옆에 팝업 메시지를 표시합니다.

Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = ‘This is the pop-up message text for the Windows 10 user'
$balmsg.BalloonTipTitle = "Attention $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(20000)

PowerShell에서 팝업 또는 풍선 도움말 알림을 표시하는 방법은 무엇입니까?

Windows 10(PowerShell 5.0 이상)에서 다채로운 팝업 메시지를 생성하려면 별도의 PowerShell 모듈 BurntToast를 사용할 수도 있습니다. PowerShell 갤러리에서.

모듈은 Windows 10 패키지 관리자를 사용하여 온라인 리포지토리에서 설치됩니다.
Install-Module -Name BurntToast

예를 들어 이제 "이더넷 케이블이 연결되어 있을 때 Wi-Fi를 자동으로 비활성화하는 방법" 문서에서 스크립트에 다채로운 알림을 쉽게 추가할 수 있습니다.

New-BurntToastNotification -Text "Disconnecting from Wi-Fi network", "You have been disconnected from your Wi-Fi network since your device was connected to a high-speed Ethernet LAN" -AppLogo C:\PS\changenetwork.png

따라서 PowerShell을 사용하여 사용자에게 알림을 표시하는 방법을 알고 있습니다. 사용자에게 스피커가 있는 경우 좋아하는 멜로디를 재생할 수도 있습니다.

[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(698,350)
[console]::beep(523,150)
[console]::beep(415,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,125)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(440,125)
[console]::beep(523,500)
[console]::beep(440,375)
[console]::beep(523,125)
[console]::beep(659,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,250)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(523,125)
[console]::beep(440,500)
[console]::beep(349,375)
[console]::beep(261,125)
[console]::beep(440,1000)