Когда я использую фильтр, чтобы исключить объект с помощью команды конвейера, он не дает мне правильный результат.Трубопровод Powershell, где не работает, как ожидалось
PS C:\Users\Administrator> $proall = Get-ADComputer -filter * | ? {$_.name -ne "adfs"} | select @{l='Computername';e={$_
.name}} | ps | select machinename,processname,id | sort id | ft -au
MachineName ProcessName Id
----------- ----------- --
DC Idle 0
DC Idle 0
DC Idle 0
DC System 4
DC System 4
DC System 4
DC mmc 96
DC mmc 96
DC mmc 96
DC smss 276
DC smss 276
DC smss 276
DC svchost 304
DC svchost 304
DC svchost 304
Итак, нет. процессов, которые мы видим, больше, чем фактические. процессов на машине. Однако нет конкретных процессов (обмен и sharepoint) с другой машины.
Для проверки моей команды я гарантировал, что следующий результат будет таким, как ожидалось.
PS C:\Users\Administrator> Get-ADComputer -filter * | ? {$_.name -ne "adfs"} | select @{l='Computername';e={$_.name}}
Computername
------------
DC
SP2013
EX2013
И
Get-ADComputer -filter * | ? {$_.name -eq "sp2013"} | select @{l='Computername';e={$_.name}} | get-process
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
96 9 1664 11264 94 2712 conhost
94 9 1608 11004 95 5792 conhost
326 15 1484 4032 56 392 csrss
я обеспечил выше процесс является специфическим для компьютера, указанным в «?»/«Где» фильтра.
Проблема заключается в том, что я исключаю определенный объект.
Я хотел бы знать, почему он ведет себя таким образом. Я не ищу результат, но пытаюсь понять синтаксис.
С уважением
EDIT: Добавлен вывод с идентификатором. Я вижу 3 экземпляра каждого процесса (одинаковый идентификатор); № выхода компьютера также 3.
Вы действительно уверены, что количество процессов неправильное? Что происходит, когда вы запускаете 'Get-Process -ComputerName DC' вручную? –
Вы можете изменить свой окончательный выбор на 'select machinename, processname, id'. Таким образом вы увидите, что все идентификаторы процессов узнают, есть ли какие-либо повторения. – Matt
«Get-Process -ComputerName DC» возвращает 45 процессов. Принимая во внимание, что «Get-ADComputer -filter» |? {$ _. Name -ne «adfs»} | select @ {l = 'Computername'; e = {$ _. Name}} | ps | select machinename, processname | sort processname | ft -au "возвращает 139 процессов –