Eu já encontrei uma solução. Funcionou muito bem ao executar a partir do ISE, então eu tive que fazer um atalho e adicionado "PowerShell -noexit -f" na frente do caminho para o PowerShell-Script, então eu marquei a caixa de seleção "Executar como administrador". Depois disso, corre bem usando o atalho. O comando blat tem que estar na função como eu pensei:
...
Function OnBatteryStatusChange ($NewStatus) {
If ($NewStatus -eq 1) {
$EventID = 5001
$Message = "The computer was unplugged."
blat.exe -subject "BatteryStatusMonitor" -from [email protected] (...)
} ElseIf ($NewStatus -eq 2) {
...
Depois disso, também fiz uma tarefa agendada que executa o script automaticamente no login do usuário e em segundo plano. Para a ação da tarefa agendada, você precisa fornecer o caminho para o PowerShell no Windows Directory. No campo de parâmetros opcionais, você deve adicionar o caminho ao script "PowerShell -noexit -f" na frente, assim como no atalho.
Depois de testar a visualização, ela se sai muito bem agora.