2017-10-20 13 views
0

私はPowershellスターターです。私はDistinguishedNameを含むいくつかの広告情報を持つExcelファイルを作成するスクリプトを作成しようとしています。Powershellの広告情報を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やreplaceのような多くのことを試しましたが、できませんでした。

答えて

0

このlinkと計算されたプロパティを使用すると、distinguishednameの最初の部分が削除され、必要な部分だけ残されます。

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  

Thanks、Tim。

関連する問題