2017-10-20 96 views
0

我是Powershell首發。我一直在嘗試創建一個腳本,該腳本會生成包含DistinguishedName的一些AD信息的Excel文件。我的腳本是這樣的:如何將Powershell中的AD信息分解爲Excel文檔?

$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和替換,但我無法完成它。

回答

0

使用此link和一個計算出的屬性,它應該刪除專有名稱的第一部分,並留下您需要的部分。

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  

謝謝,Tim。

相關問題