美好的一天,
我有一个编写的脚本,该脚本从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。
答案 0 :(得分:0)
您可以使用简单的正则表达式从完整的字符串中获取组的值。
通过在格式列表中使用计算所得的属性,您可以仅提取并保留组名。
@{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