0
我有一個主機名列表,我想從中提取所有與AppLocker相關的事件日誌,尤其是帶有級別警告和/或錯誤的事件日誌。 我製作的這個腳本:PS Get-WinEvent拋出'句柄無效'
$ComputersToCheck = Get-Content 'X:\ListWithTheNames.txt'
foreach($OneHost in $ComputersToCheck)
{
try
{
$EventCollection = Get-WinEvent -LogName "Microsoft-Windows-AppLocker/EXE and DLL" -ComputerName $OneHost -Credential $CredentialFromUser
foreach ($SingelEvent in $EventCollection)
{
if($SingelEvent.LevelDisplayName -ne "Information")
{
$pathtosaveto = 'SomeFileName.txt'
$ResultString += $SingelEvent | Select Message,MachineName,UserId | Export-Csv -Path $pathtosaveto -Append
}
}
}
catch
{
//handling exceptions
}
}
這工作了一段時間,但在一定的時間ammount的後,我得到了一個錯誤:
Get-WinEvent : The remote procedure call failed
At X:\FileName.ps1:22 char:28
+ $EventCollection = Get-WinEvent -LogName "Microsoft-Windows-AppLocker/EX ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WinEvent], EventLogException
+ FullyQualifiedErrorId : The remote procedure call failed,Microsoft.PowerShell.Commands.GetWinEventCommand
和腳本後立即開始給象這樣的錯誤:
Get-WinEvent : The handle is invalid
At X:\FileName.ps1:22 char:28
+ $EventCollection = Get-WinEvent -LogName "Microsoft-Windows-AppLocker/EX ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-WinEvent], EventLogException
+ FullyQualifiedErrorId : The handle is invalid,Microsoft.PowerShell.Commands.GetWinEventCommand
我的第一個想法是,它與腳本嘗試達到的主機有關,但列表中的下一個是與以前相同的類型(即使是相同的模型)。
我運行腳本3次,每次輸出大小都不同(可能是因爲不同主機在線時具有相同數量的日誌)。 該腳本應該運行700多個主機,需要一個特殊帳戶的Get-Credential提示存儲在一個變量中,並將Get-WinEvent作爲參數傳遞給它。
說實話我堅持這個問題,並不確定是什麼原因導致這一點,爲什麼。
如果任何人有一個想法,請與我分享:)
嗨,不幸的是,它沒有奏效。但是現在我有一個漂亮的脫機主機列表。這是事:)然而,問題仍然存在。在我看來,這是相當隨機的,每次生成不同數量的日誌,但可能不相關。目前,我是盲目的,沒有更多的想法。 – SecThor
它是否拋出錯誤或以什麼方式失效?我想當你說一個FailedHosts.txt文件填充的脫機主機的漂亮列表?我只能假設它不是您在ListWithTheNames.txt文件中運行的機器的包含列表。我會在FailedList的一些機器上手動嘗試'Get-WinEvent'查詢來查看響應是什麼,我們可以圍繞結果的變化包裝一些邏輯。 – ssaviers
前幾的有: '獲取-WinEvent:接口未知 在A:\ AppLocker_ExtractBlockedExes(2)的.ps1:9字符:28 + $ EventCollection = GET-WinEvent -LogName「微軟Windows的的AppLocker/EX ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [Get-WinEvent ],EventLogException + FullyQualifiedErrorId:接口是未知的,Microsoft.PowerShell.Commands.GetWinEventCommand' – SecThor