【问题标题】:powershell Extract part of outputpowershell 提取部分输出
【发布时间】:2019-01-01 08:57:15
【问题描述】:

早安,

我编写了一个从 AD 收集计算机信息的脚本。 我正在收集的一个特定属性是 MemberOf。当我运行脚本时,它会输出计算机帐户所属组的完整路径。我只想要组名。请看下面:

get-qadcomputer -identity $computer | format-list -property Name, AccountIsDisabled, whenCreated, whenChanged, Description, AllMemberOf, ParentContainerDN

我的输出如下:

Name              : SALESWS3381FPO
AccountIsDisabled : False
whenCreated       : 3/7/2018 9:44:07 AM
whenChanged       : 12/24/2018 4:18:04 AM
Description       : BLDG 589 FLR 2 RM 567
AllMemberOf       : {CN=SALES-ADOBEPRO-Win10_COMPUTERS,OU=Security Groups,OU=Groups,OU=Site Specific
                    OUs,OU=sales,DC=example,DC=com}
ParentContainerDN : OU=Bldg 589,OU=Desktops,OU=sales,DC=example,DC=com

所以,对于 AllMemberOf,我想说 AllMemberOf: SALES-ADOBEPRO-Win10_Computers

我们正在我们的机器上运行 Active Roles Client。

【问题讨论】:

  • Get-ADGroup-Identity 参数接受一个 DN,因此您可以使用它通过 .Name 属性查找正确的名称。
  • 我们不能使用 Get-ADGroup。在我们的系统上,我们使用 Active Roles Console
  • 啊!那么,如果您的 DN 非常一致,您可以使用这样的简单正则表达式 ...$VarName.Split('=')[1].Split(',')[0]。与您的示例 DN 一起使用以提供 SALES-ADOBEPRO-Win10_COMPUTERS
  • 感谢李先生的回复。我不熟悉正则表达式,无法弄清楚如何实施您的解决方案。
  • 那不是正则表达式。 [grin] 您可以通过将$VarName 之后的内容应用于任何字符串来使用上面的代码。看起来您的 .AllMemberOf 属性是某种集合 - 可能是一个数组 - 只包含一个项目。所以您可以使用.AllmemberOf[0].Split('=')[1].Split(',')[0] 来获取您展示的示例的 CN 部分。

标签: powershell active-directory


【解决方案1】:

您可以使用简单的正则表达式从完整的字符串中获取组的值。

通过在格式列表中使用计算属性,您可以提取并仅保留组名。

@{n='AllMemberOf ';e={$_.AllMemberOf -replace "(CN=)(.*?),.*",'$2'}}

这是应用该计算属性的修改后的代码示例:

get-qadcomputer -identity $computer | format-list -property Name, AccountIsDisabled, whenCreated, whenChanged, Description, @{n='AllMemberOf ';e={$_.AllMemberOf -replace "(CN=)(.*?),.*",'$2'}}, ParentContainerDN

参考文献:

4sysops - Add a calculated property with Select-Object in Powershell

StackOverflow — How can I use Regex to pull just the CN from a Distinguished Name with PowerShell

【讨论】:

  • 完美。谢谢你。我是 powershell 新手,不知道计算的属性。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 2021-04-07
  • 1970-01-01
  • 2016-05-11
  • 1970-01-01
  • 2019-11-21
  • 2019-08-26
相关资源
最近更新 更多