1

我是 Powershell 初学者。我一直在尝试创建一个脚本,该脚本制作一个包含一些 AD 信息的 Excel 文件,包括DistinguishedName. 我的脚本如下所示:

$dn = Get-ADUser -Filter * -SearchBase "OU=Users,OU=Ch01,OU=EU,DC=corp,DC=ads" | select DistinguishedName,SamAccountName,name |export-csv C:\temp\test1.csv -Delimiter ";"

我得到的一个例子(注意:|表示 Excel 中的新单元格):

CN=Testuser\, Verfluecht,OU=Users,OU=Ch01,OU=EU,DC=corp,DC=ads | vtestuser | Testuser, Verfluecht

但是为了在 excel 中对路径进行分组,我需要它没有 CN (CN=Testuser\, Verfluecht,) 所以它看起来像这样:

OU=Users,OU=Ch01,OU=EU,DC=corp,DC=ads | vtestuser | Testuser, Verfluecht

我怎样才能做到这一点?

我尝试了很多东西,例如 .substring 和替换,但我无法完成。

4

1 回答 1

1

使用此链接和计算属性,它应该只删除专有名称的第一部分并留下您需要的部分。

Get-ADUser -Filter * -SearchBase "OU=Users,OU=Ch01,OU=EU,DC=corp,DC=ads" | 
Select-Object @{Name="DistinguishedName";Expression={$_.distinguishedname | ForEach-Object {$_ -replace '^.+?(?<!\\),',''}}},samaccountname,name |
Export-Csv C:\temp\test1.csv -Delimiter ";"

在我的测试环境中,我得到下面的输出(没有通过管道将其传输到 Export-Csv)。

Get-ADUser -Filter * | Select-Object @{Name="DistinguishedName";Expression={$_.distinguishedname | ForEach-Object {$_ -replace '^.+?(?<!\\),',''}}},samaccountname,name

DistinguishedName            samaccountname name          
-----------------            -------------- ----          
CN=Users,DC=timhaintz,DC=com Administrator  Administrator 
CN=Users,DC=timhaintz,DC=com Guest          Guest         
CN=Users,DC=timhaintz,DC=com DefaultAccount DefaultAccount
CN=Users,DC=timhaintz,DC=com krbtgt         krbtgt     

谢谢,蒂姆。

于 2017-10-20T11:01:55.383 回答