2016-07-06 7 views
1

セキュリティグループのメンバをすべてのドメインに取得し、CSV fileの形式でエクスポートするスクリプトがName, username, security groupです。しかし、ドメインの別の行を追加したいので、フォーマットは次のようになります:domain\username, name, security groupセキュリティグループのメンバDomain Usernameを取得する

私はDNを得ることができましたが、私はちょうどdomain\usernameに興味があります。私は、インターネットの周りを検索し、私は何を見つけることができなかったと述べた。このことも可能

$objForest = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest() $DomainList = @($objForest.Domains | Select-Object Name) $Domains = $DomainList | foreach {$_.Name} 
$Groups = Import-Csv C:\ad.csv 
$Table = @() 
$Record = @{ "Group Name" = "" "Name" = "" "Username" = "" } 

Foreach ($Group in $Groups) { 
    $Arrayofmembers = Get-ADGroupMember -identity $Group.groupad 
-recursive -Server $Domain | select name,samaccountname 
    foreach ($Member in $Arrayofmembers) { 
    $Record."Group Name" = $Group.ad 
    $Record."Name" = $Member.name 
    $Record."UserName" = $Member.samaccountname 
    $objRecord = New-Object PSObject -property $Record 
    $Table += $objrecord 
    } 
} 

$Table | export-csv "C:\SecurityGroups3.csv" -NoTypeInformation 
+0

あなたはDNを取得する際に、ユーザ名と-joinその後、DCを取得するために正規表現を使用しています。 – Bum

+0

あなたの素早い対応のためにBurnをお世話になりました。私はpowershellを初めて使っていますので、十分に親切で、あなたにどのように正規表現を与えるのかを教えてください – Yallabina

答えて

1

Bumとして、あなたがDCを取得するために正規表現を使用して、ユーザー名とそれを組み合わせることができれば、私はわからない:

$domainuser
$username = 'Michael' 
$distinguishedName = 'CN=Domain Admins,CN=Users,DC=Fabrikam,DC=com' 

$dc = [regex]::Match($distinguishedName, 'DC=([^,|$]+)').Groups[1].Value 
$domainuser = '{0}\{1}' -f $dc, $username 

出力:

$domainuser 
Fabrikam\Michael 
+0

こんにちはMartin、ありがとうございました。これらのADグループの中にはネストされたグループがあり、再帰的に使うとネストされたグループのすべてのメンバーがメインのADグループの下にリストされますが、それらが所属するネストされたグループの名前を表示しますか?私はサイトを初めて利用しているので、この問題の別の質問を投稿する必要があるのか​​、同じスレッドを使用すべきかはわかりません。とにかくあなたの援助に感謝し、あなたの返事を楽しみにしています。私は最終的なスクリプトを持っていますが、投稿方法はわかりません。それはそれのためのコメント欄にそれを受け入れることを望むサイズ – Yallabina

+0

ちょっとYallabina、あなたを助けてうれしい。おそらく新しい質問をするべきです。これはあなたに最も注意を払うでしょう。私はあなたを助けようとします –

+1

あなたの迅速な応答ありがとう:)私は今それを投稿します – Yallabina

関連する問題