В конечном итоге несколько проблем ; давайте начнем с основного :
$AuditTotal = $AuditSuccess + $AuditFailure
вызвало ошибку [System.Management.Automation.PSObject] does
not contain a method named 'op_Addition'
, поскольку $AuditSuccess
и $AuditFailure
, значения которых были назначены с помощью Select-Object count
, являются пользовательскими объектами , а не числами - и оператор +
(который переводится в метод op_Addition
) не определен для операндов пользовательских объектов (операнды типа [pscustomobject]
).
Чтобы использовать Select-Object
для извлечения одного свойства значение , вы должны использовать -ExpandProperty
; например:
$AuditSuccess = ... | Measure-Object | Select-Object -ExpandProperty Count
Без -ExpandProperty
, с (подразумеваемым) параметром -Property
вы получите [pscustomobject]
экземпляр , который имеет одно свойство, .Count
.
Следующая проблема заключается в том, что sort $_.EventID
не будет работать должным образом , поскольку автоматическая переменная $_
имеет только (значащее) значение в блоках сценариев ; без предопределенного значения $_
(их не должно быть), $_.EventId
оценивается как $null
и фактически игнорируется .
Хотя Sort-Object EventId
обычно является правильным решением (просто предоставив свойство name ), в этом случае входные объекты не имеют свойство .EventId
, потому что Выходные данные group
(Group-Object
) - это [Microsoft.PowerShell.Commands.GroupInfo]
экземпляров, каждый из которых представляет группу исходных входных объектов.
Исходя из вашего намерения найти наиболее часто встречающийся идентификатор события среди успехов и неудач , команды должны быть реструктурированы следующим образом, используя примеры успеха:
$EventID1 = Import-Csv -Path G:\LabLog.csv |
Where-Object { $_.Keywords -like "Audit Success" } |
Group-Object EventID |
Sort-Object Count -Descending |
Select-Object -ExpandProperty Values -First 1
То есть входные объекты сначала фильтруются по ключевому слову, затем группируются по идентификатору события, затем сортируются по количеству объектов в каждой группе с идентификатором события, причем идентификатор события группы возвращается с наибольшим количеством записей.
Наконец: