Одной из возможных проблем с вашим кодом может быть сравнение, которое вы проводите. $Null
всегда должен быть в слева сравнения, чтобы как коллекции, так и приведение типов работали правильно при сравнении. для получения подробной информации об этом, пожалуйста, выполните поиск ...
powershell null on the left
, однако есть несколько более простой способ проверить "ничего / что-то" в вызове Where-Object
или .Where()
. просто используйте -not $_
или $_
. Вот пример, в котором используются командлеты локальной учетной записи, поскольку у меня нет доступа к командлетам AD ...
'Total User Count = {0}' -f $LocalUserList.Count
'Blank LastLogon = {0}' -f $LocalUserList.Where({-not $_.LastLogon}).Count
'Non-Blank LastLogon = {0}' -f $LocalUserList.Where({$_.LastLogon}).Count
output ...
Total User Count = 9
Blank LastLogon = 6
Non-Blank LastLogon = 3
эти цифры согласуются с тем, что я вижу, когда я проверяю вручную. [ ухмылка ]