В комментариях вы можете использовать Write-EventLog
для записи в журналы событий Windows.Если вы хотите записать какие-либо ошибки, возникающие во время этих команд, вы, вероятно, захотите использовать Try..Catch
для перехвата любых ошибок и их обработки:
Try {
$PrevEAP = $ErrorActionPreference
$ErrorActionPreference = 'Stop'
Get-ChildItem C:\Users\Administrator\Desktop\test1\ | Where-Object {$_.LastWriteTime -lt "09/24/2018 09:00 PM"} | Move-Item -Destination C:\Users\Administrator\Desktop\data\
Compress-Archive -path C:\Users\Administrator\Desktop\data\ -CompressionLevel Optimal -DestinationPath C:\Users\Administrator\Desktop\data1\test.zip
Remove-Item C:\Users\Administrator\Desktop\data\*
Catch {
Write-Error $_
$ErrorEvent = @{
LogName = 'Application'
Source = 'YourScript'
EventID = 123
EntryType = 'Information'
Message = $_
}
Write-EventLog @ErrorEvent
}
Finally {
$ErrorActionPreference = $PrevEAP
}
Для того, чтобы исключение (ошибка) сработалоTry..Catch
исключение должно быть завершено (по сравнению с прекращением).Вы можете заставить командлеты делать ошибки завершения, установив для командлетов -ErrorAction
значение Stop
, или вы можете сделать это глобально с помощью переменной $ErrorActionPreference
.
В блоке перехвата ошибка удерживается вспециальная переменная: $_
.Таким образом, мы можем использовать Write-Error
для записи в консоль (если хотите), а затем мы используем Write-EventLog
для записи в журнал событий.
Настройка LogName, Source, EventID, Информация и т. Д. В соответствии с вашими потребностями.Примечание. LogName должен быть одним из существующих журналов, а тип записи должен быть одним из допустимых типов записей (Информация, Предупреждение, Ошибка).