2016-12-13 50 views
1

PowerShellを使用して、ソースOUからコンピュータを含むActive Directoryセキュリティグループを作成しようとしています。 「ACCT」OU内のコンピュータはセキュリティグループ「ACCT」にあり、「IT」OU内のコンピュータはセキュリティグループ「IT」内にあります。各AD OUでコンピュータのADグループを作成する

私は個々のコマンドを持っていますが、それらをまとめるのに問題があります。

# List Of OUs 
Get-ADOrganizationalUnit -Filter * -SearchBase "OU=XX,OU=XXX,DC=XXXX,DC=COM" | FT Name, DistinguishedName 

# Computers within the OU 
Get-ADcomputer -Filter * -SearchBase "OU=$_name,OU=XXX,DC=XXXX,DC=COM" 

# Add Computer to the group 
Add-ADGroupMember -Identity (name of OU) -Members (computers in ou) 

私はウェブとここで見つかったいくつかのソリューションを試しましたが、失敗しました。誰かが私を助けて正しい方向に向けることができますか?

+2

私はちょうど私の周りに少しこれを試してみました。私はちょうど1つのパイプラインでこれをやってみようとアドバイスします。Get-Adcomputerにはパラメータがありませんこれは、渡されたオブジェクトとしての検索ベースで簡単に行うことができます。あなたはあなたのOUを配列に格納したいでしょう(これを行うときにフォーマットコマンドをドロップします)。そして、3つのことをループします:New-ADgroupを使ってグループを作成し(必要ならば)、変数をGetA OU内のすべてのコンピュータを収集して変数に保存し、Add-AdGroupmemberを使用してコンピュータをグループに追加します –

答えて

0

私は実際にこのコードを実行しませんでしたが、動作するはずです。

# List Of OUs 
$OUList = Get-ADOrganizationalUnit -Filter * -SearchBase "OU=XX,OU=XXX,DC=XXXX,DC=COM" | FT Name, DistinguishedName 

foreach ($OU in $OUList) 
{ 
    $searchString = '"OU=' + $OU.Name.ToString() + ',OU=XXX,DC=XXXX,DC=COM"' 
    $memberComputers = get-adcomputer -searchbase $searchString 
    Add-ADGroupMember -Identity $OU.Name.ToString() -Members $memberComputers 

} 
+0

近づいています。ありがとうございました。 "get-adcomputer:エラーが発生しました。提供されたdistinguishedNameは、次のパーティションのいずれかに属している必要があります: 'DC = xxx、DC = com'。私は$ searchbase変数をパイプしてしまったので、うまくいきます。助言がありますか?再度、感謝します。ピーター –

関連する問題