Passei a maior parte do dia pesquisando a melhor e mais simples maneira de fazer isso e não parece haver uma. Encontrei pedaços, mas não consegui fazê-los funcionar com sucesso. Eu simplesmente quero exibir uma mensagem pop-up para o usuário executando um script Powershell. Eu gostaria que o script fizesse o seguinte:
1. The popup would give an action for input by the user,
2. The message will tell them their computer will be restarted to complete a Windows 1809 upgrade,
3. The user will click ok and the input, along with the username and machine name will be sent to a log file.
4. The script would have a timer on it that will restart the computer within 30 minutes whether the input is given or not.
O código abaixo faz o que eu quero, menos o timer, mas não traz uma mensagem pop-up para o usuário. Apenas dá a mensagem em um console do Powershell. Como posso fazer a mesma coisa, mas em uma mensagem pop-up?
$HostName = $env:COMPUTERNAME
$PatchLocation = "c:\Temp\"
$LogFile = "responses.log"
$LogPath = $PatchLocation + $LogFile
$date = Get-Date
$response = Invoke-Command -ComputerName $HostName -ScriptBlock{ Read-Host "Your computer will be restarted in 30 minutes. Please save your work. Type 'Agree' If you have saved your work"}
"Response for $HostName is $response - $date"|Out-File -FilePath $LogPath -Append
Dê uma olhada em https://jdhitsolutions.com/blog/powershell/2976/powershell-popup/
Dando crédito a Hans Hubert Vogts, pelo código que fornece a mensagem pop-up. Ele fornece o pop-up, no entanto, eu precisava do script para gerar um arquivo de log. Eu modifiquei o código para fazer isso. Está abaixo.