gpt4 book ai didi

Powershell 管道,其表现不符合预期

转载 作者:行者123 更新时间:2023-12-03 14:37:29 28 4
gpt4 key购买 nike

当我使用 where 过滤器通过管道命令排除对象时,它没有给我正确的输出。

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

所以这里没有。我们看到的过程比实际的要多。机器上的进程。但是,其他机器没有特定的进程(交换和共享点)。

为了检查我的命令,我确保以下输出符合预期。
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

我已确保上述过程特定于“?”/“哪里”过滤器中指定的计算机。

问题是当我排除特定对象时。

我想知道它为什么会这样。我不是在寻找结果,而是试图理解语法。

问候

编辑:添加了带有 ID 的输出。我看到每个进程的 3 个实例(相同 ID);电脑输出数也是3。

最佳答案

这是一个错误......请阅读下文。

我一直在使用 PowerShell 4.0 进行测试,发现您也遇到了同样的问题。如果我不允许参数被管道绑定(bind),我可以让问题消失。

Get-ADComputer -filter '*' | 
? {$_.name -ne "adfs"} |
select @{l='Computername';e={$_.name}} |
%{ ps -ComputerName $_.Computername} |
select machinename,processname,id | sort id | ft -au

这让我认为参数绑定(bind)有问题。所以我用了 trace-command与我的感觉相反的是违规代码 | ps . $computers只是早期代码的结果。我正在用两个主机进行测试。
Trace-Command -Name ParameterBinding -Expression {$computers | ps} -PSHost

不幸的是,除了每个单元完全相同的条目外,我没有看到任何其他内容。我认为我可以摆脱的唯一事实是 ps正在获取每台计算机的名称。

去检查一下是否已经报告过。

这是一个错误

你不是第一个看到这个的人。我找到了 preexisting report on this我投了赞成票并承认我可以复制。所以现在是野兽的本性。如果你想让它工作,你需要使用我上面显示的解决方法。你的管道实力给我留下了深刻的印象。可惜这次没有成功。

关于Powershell 管道,其表现不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33813112/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com