Powershell - Select-来自先前命令的对象
Powershell - Select-Objects from previous commands
我似乎无法理解如何在 powershell 的最终 table 上显示上一个命令对象。我知道我没有很好地解释自己,所以我会举个例子:)
get-dhcpserverv4scope -computername server01
这将 return 我这样:
范围 ID、子网掩码、名称
10.0.10.0,255.255.255.0,范围 1
10.5.0.0,255.255.248.0,范围 2
现在,当我 运行 这样做时,我无法让 ScopeID 与第二个命令结果一起显示:
get-dhcpserverv4scope -computername server01 | ForEach-Object {get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid} | where {$_.OptionID -like "6"} | Select-Object Name, OptionID, Value
我显然从 get-dhcpserverv4optionvalue 得到了 select 对象。我怎样才能获得最新的 Select-Object 中包含的 ScopeID?
真的可以吗?
谢谢
您可以使用 Add-Member 向 dhcpserverv4optionvalue
返回的每个对象添加一个 属性:
(get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid) |
Add-Member -MemberType NoteProperty -Name "ScopeID " -Value $_.ScopeID -PassThru
完整的单行将是:
get-dhcpserverv4scope -computername server01 |
ForEach-Object
{(get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid) | Add-Member -MemberType NoteProperty -Name "ScopeID " -Value $_.ScopeID -PassThru} |
where {$_.OptionID -like "6"} | Select-Object Name, OptionID, Value
未测试,但这应该有效:
get-dhcpserverv4scope -computername server01 | ForEach-Object {
$ScopeID = $_.ScopeID
get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid
} | where {
$_.OptionID -like "6"
} | Select-Object Name, OptionID, Value, @{L='ScopeID';E={$ScopeID}}
我基本上是在 ForEach 语句中保存 ScopeID 值,然后通过在最后创建自定义 属性 来在最后使用。
我似乎无法理解如何在 powershell 的最终 table 上显示上一个命令对象。我知道我没有很好地解释自己,所以我会举个例子:)
get-dhcpserverv4scope -computername server01
这将 return 我这样:
范围 ID、子网掩码、名称
10.0.10.0,255.255.255.0,范围 1
10.5.0.0,255.255.248.0,范围 2
现在,当我 运行 这样做时,我无法让 ScopeID 与第二个命令结果一起显示:
get-dhcpserverv4scope -computername server01 | ForEach-Object {get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid} | where {$_.OptionID -like "6"} | Select-Object Name, OptionID, Value
我显然从 get-dhcpserverv4optionvalue 得到了 select 对象。我怎样才能获得最新的 Select-Object 中包含的 ScopeID? 真的可以吗?
谢谢
您可以使用 Add-Member 向 dhcpserverv4optionvalue
返回的每个对象添加一个 属性:
(get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid) |
Add-Member -MemberType NoteProperty -Name "ScopeID " -Value $_.ScopeID -PassThru
完整的单行将是:
get-dhcpserverv4scope -computername server01 |
ForEach-Object
{(get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid) | Add-Member -MemberType NoteProperty -Name "ScopeID " -Value $_.ScopeID -PassThru} |
where {$_.OptionID -like "6"} | Select-Object Name, OptionID, Value
未测试,但这应该有效:
get-dhcpserverv4scope -computername server01 | ForEach-Object {
$ScopeID = $_.ScopeID
get-dhcpserverv4optionvalue -computername server01 -scopeid $_.scopeid
} | where {
$_.OptionID -like "6"
} | Select-Object Name, OptionID, Value, @{L='ScopeID';E={$ScopeID}}
我基本上是在 ForEach 语句中保存 ScopeID 值,然后通过在最后创建自定义 属性 来在最后使用。