Почему я получаю эту ошибку при попытке заархивировать журнал событий безопасности? - PullRequest
0 голосов
/ 26 марта 2020
$EventLog = Get-WmiObject Win32_NTEventlogFile -Filter "LogFileName = 'Security'"
$Date = Get-Date -Format yyyyMMdd

$Path = "C:\Users\aamouss\Desktop\SecurityLogs"

$EventLog.BackupEventlog("$Path\$env:COMPUTERNAME`_Security_$Date.evt")

Clear-EventLog -LogName Security

Я запускаю приведенный выше скрипт, но получаю следующую ошибку.

Вы не можете вызвать метод для выражения с нулевым значением. В строке: 6 символов: 1 + $ EventLog.BackupEventlog ("$ Path \ $ env: COMPUTERNAME` Безопасность $ Date.evt ... + ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

1 Ответ

2 голосов
/ 26 марта 2020

$EventLog - единственное, что может быть $null в строке, обозначенной ошибкой. Если я пытаюсь выполнить команду, которая инициализирует $EventLog, я вижу, что она ничего не возвращает ...

PS> Get-WmiObject Win32_NTEventlogFile -Filter "LogFileName = 'Security'"
PS>

Если я удаляю -Filter из этой команды Get-WmiObject, вот журналы, которые я см. в моей системе Windows 10 как обычный пользователь ...

PS> Get-WmiObject Win32_NTEventlogFile

FileSize LogfileName            Name                                                        NumberOfRecords
-------- -----------            ----                                                        ---------------
15798272 Application            C:\WINDOWS\System32\Winevt\Logs\Application.evtx                      27698
   69632 HardwareEvents         C:\WINDOWS\System32\Winevt\Logs\HardwareEvents.evtx                       0
   69632 Internet Explorer      C:\WINDOWS\System32\Winevt\Logs\Internet Explorer.evtx                    0
   69632 Key Management Service C:\WINDOWS\System32\Winevt\Logs\Key Management Service.evtx               0
   69632 Parameters             C:\WINDOWS\System32\Winevt\Logs\Parameters.evtx                           0
   69632 State                  C:\WINDOWS\System32\Winevt\Logs\State.evtx                                0
14749696 System                 C:\WINDOWS\System32\Winevt\Logs\System.evtx                           24168
15732736 Windows PowerShell     C:\WINDOWS\System32\Winevt\Logs\Windows PowerShell.evtx               10470

... и как пользователь с повышенными правами ...

PS> Get-WmiObject Win32_NTEventlogFile

FileSize LogfileName            Name                                                        NumberOfRecords
-------- -----------            ----                                                        ---------------
15798272 Application            C:\WINDOWS\System32\Winevt\Logs\Application.evtx                      27698
   69632 HardwareEvents         C:\WINDOWS\System32\Winevt\Logs\HardwareEvents.evtx                       0
   69632 Internet Explorer      C:\WINDOWS\System32\Winevt\Logs\Internet Explorer.evtx                    0
   69632 Key Management Service C:\WINDOWS\System32\Winevt\Logs\Key Management Service.evtx               0
   69632 Parameters             C:\WINDOWS\System32\Winevt\Logs\Parameters.evtx                           0
20975616 Security               C:\WINDOWS\System32\Winevt\Logs\Security.evtx                         29714
   69632 State                  C:\WINDOWS\System32\Winevt\Logs\State.evtx                                0
14749696 System                 C:\WINDOWS\System32\Winevt\Logs\System.evtx                           24170
15732736 Windows PowerShell     C:\WINDOWS\System32\Winevt\Logs\Windows PowerShell.evtx               10477

Обратите внимание, что Security Журнал доступен только при выполнении командлета с повышенными правами. Поэтому, если я запускаю исходную команду как пользователь с повышенными правами, она может получить доступ к Security log ...

PS> Get-WmiObject Win32_NTEventlogFile -Filter "LogFileName = 'Security'"

FileSize LogfileName Name                                          NumberOfRecords
-------- ----------- ----                                          ---------------
20975616 Security    C:\WINDOWS\System32\Winevt\Logs\Security.evtx           29723

От Безопасность ведения журнала событий ...

Журнал Security предназначен для использования системой. Однако пользователи могут читать и очищать журнал Security, если им предоставлена ​​привилегия SE_SECURITY_NAME (право пользователя «Управление аудитом и журналом безопасности»).

...