[ActiveDirectory] グループ管理(3) Set-ADGroup コマンドレット

今回はSet-ADGroupコマンドレットを使用して、 Active Directoryグループのプロパティを変更する方法について説明します。

Set-ADGroup

既存のActive Directoryグループのプロパティを変更するためのコマンドレットです。

samAccountNameを指定してグループのプロパティを変更する

samAccountNameを指定してグループのプロパティを変更するには

Set-ADGroup samAccountName パラメータ 値

とします。

例えば、samAccountNameがITGroupの説明を「情報システムグループです」に変更する場合は下記のようにします。

Set-ADGroup ITGroup -Description "情報システムグループです"

コマンドレットパラメーターに関連付いていないプロパティ値を変更する

先ほどの例のようにActiveDirectoryグループの説明は「Description」という専用のパラメーターで変更することができます。

しかし、メールアドレスや住所、電話番号といったプロパティ値は専用のパラメーターがないため、Add, Replaceといったパラメーターを使用して変更する必要があります。

下記はメールアドレスをITGroupというグループに追加する例です。

Set-ADGroup ITGroup -Add @{Mail='hiro@hiros.net'}

下記は既存のメールアドレスを’admin@hiros.net’に置換する例です。

Set-ADGroup ITGroup -Add @{Mail='admin@hiros.net'}

オブジェクトを管理するユーザーやグループを指定する

オブジェクトを管理するユーザーやグループを追加するには、ManagedByパラメーターを使用します。
パラメーターに渡す値は、識別名,GUID,セキュリティ識別子,SAMアカウント名の何れかです。

下記はオブジェクトを管理するユーザーとして”NaotoDate”を追加する例です。

Set-ADGroup ITGroup -ManagedBy 'NaotoDate'

[ActiveDirectory] グループ管理(2) Get-ADGroup コマンドレット

今回はGet-ADGroupコマンドレットを使用して、 Active Directoryグループを取得する方法について説明します。

Get-ADGroup

1つまたは複数のActive Directoryグループを取得するコマンドレットです。

書式は3つあり、Filterパラメーターを使用する方法、Identityパラメーターを使用する方法、LDAPFilterパラメーターを使用する方法があります。その他にもにも様々なパラメーターを持っていますが、まずは大きく3つに分類されていることを押さえておきましょう。

samAccountNameを指定してグループを取得する

samAccountNameを指定してグループを取得するには

Get-ADGroup samAccountName

とします。

たとえば、samAccountNameがAdministartorsのグループを取得する場合は下記のようにします。

Get-ADGroup Administrators

識別名を指定してグループを取得する

識別名を指定してグループを取得する場合はIdentityパラメーターを使用します。

例えば、crop.contoso.comのビルトインAdministratorsグループを取得する場合は下記のようにします。

Get-ADGroup -Identity "CN=Administrators,CN=Builtin,DC=corp,DC=contoso,DC=com"

GUIDを指定してグループを取得する

GUIDを指定してグループを取得する場合はIdentityパラメーターを使用します。

例えばGUID(objectGUID)がad52136a-0e5c-48b2-b372-20250e268cd1のグループを取得する場合は下記のようにします。

Get-ADGroup -Identity "ad52136a-0e5c-48b2-b372-20250e268cd1"

セキュリティ識別子を指定してグループを取得する

セキュリティ識別子を指定してグループを取得するにはIdentityパラメーターを指定します。

セキュリティ識別子がS-1-5-32-544のグループを取得するには下記のようにします。

Get-ADGroup -Identity "S-1-5-32-544"

LDAPクエリを指定してグループを取得する

LDAPクエリを指定してグループを取得するにはLDAPFilterパラメーターを使用します。

下記はcorp.contoso.comの中から名前がadmで始まるすべてのグループを検索します。
パラメーターSearchScorpは検索の範囲を示しており、SubtreeはSearchBaseパラメーターで指定したパスのすべての子を検索対象とします。

Get-ADGroup -LDAPFilter "(name=adm*)" -SearchScope Subtree -SearchBase "DC=corp,DC=contoso,DC=com"

任意のカテゴリーに属するのグループを取得する

任意のカテゴリーに属するグループを取得するにFilterパラメーターを使用して、クエリ文字列で検索を行います。

例えばカテゴリーがセキュリティのグループを取得する場合は「GroupCategoryが”Security”と等しいか」というフィルタを作成すればよいことになります。

このとき、グループのスコープ(GroupScope)を指定すると取得範囲を限定することができます。

下記はグループスコープが”Domain Local”のセキュリティグループを取得する例です。

Get-ADGroup -Filter 'GroupCategory -eq "Security" -and GroupScope -eq "DomainLocal"'

サーバーから返される出力オブジェクトのプロパティを指定する

Propertyパラメーターを使用することで、サーバーから返される出力オブジェクトのプロパティを指定することが出来ます。

すべての出力オブジェクトを取得する場合は”*”を指定し、任意の出力オブジェクトを指定する場合はプロパティ名をカンマで区切って指定します。

例えばsamAccoutNameがAdministratorsの説明(Description)と変更日時(whenChanged)が返されるようにするには下記のようにします。

Get-ADGroup Administrators -Properties Description, whenChanged

CSVに出力する

Get-ADGroupコマンドレットの実行結果をExport-Csvコマンドレットに渡すことで、結果をCSVに出力することができます。

例えば、既定のドメイン内のすべてのグループを取得してCSVファイルに出力するには下記のようにします。

Get-ADGroup -Filter * | Export-CSV -Path C:\Work\ADGroups.csv

このほかにも様々な使用方法があります。

興味のある方はヘルプを参照ください。

[ActiveDirectory] グループ管理(1) New-ADGroup コマンドレット

今回はNew-ADGroupコマンドレットを使用して、グループを作成する方法について見ていきたいと思います。

New-ADGroup

Active Directoryにグループを作成するコマンドレットです。

グループのオブジェクトパラメーターは、コマンドレットパラメーターで設定することができます。

グループを新規作成する場合にはNameパラメーターとGroupScopeパラメーターでグループの名前とスコープを指定する必要があります。

また、GroupTypeパラメーターを設定することで、グループをセキュリティグループまたは配布グループとして定義することができます。

それでは、いくつか例を見ていきましょう。

新規グループを作成する

まず一番簡単なグループの作成方法です。

NameパラメーターとGroupScopeパラメーターだけを指定して作成します。

GroupScopeパラメーターに指定できる値は下記の通りです。

グループのスコープ
ドメインローカル Domain Local または 0
グローバル Global または 1
ユニバーサル Universal または 2

下記はドメインローカルスコープを持つSystemAdminsという名前のグループを作成します。

New-ADGroup -Name SystemAdmins -GroupScope DomainLocal

次に、グループの種類まで指定してグループを作成する方法についてみてみましょう。

グループの種類はGroupCategoryパラメーターで指定します。

グループの種類
配布 Distribution または 0
セキュリティ Security または 1

管理者を指定してグループを作成する

ManagedByパラメーターを使用して、オブジェクトを管理するユーザーやグループを指定することができます。

パラメーターの値には、識別名、GUID、セキュリティ識別子、SAMアカウント名のいずれかを指定することができます。

下記は、SAMアカウント名が「PowerShellfromJapan」というユーザーを管理者として指定する例です。

New-ADGroup -Name SystemAdmins -GroupScope DomainLocal -ManagedBy PowerShellfromJapan

OUを指定してグループを作成する

Pathパラメーターを使用すると、作成先のOUを指定することができます。

下記はcorp.contoso.comの「IT」というOUにSystemAdminsというグループを作成する例です。

New-ADGroup -Name SystemAdmins -GroupScope DomainLocal -Path "OU=IT,DC=corp,DC=contoso,DC=com"

説明を追加してグループを作成する

Descriptionパラメーターを使用すると、説明を付けてグループを作成することが出来ます。

下記はグループSystemAdminsを作成するとともに、「システム管理者」という説明を付けます。

New-ADGroup -Name SystemAdmins -GroupScope DomainLocal -Description "システム管理者"

[ActiveDirectory] グループ関連コマンドレット一覧

PowerShellのActiveDirectoryモジュールには、下記に示すグループ操作用のコマンドレットが備わっています。

今後 PowerShell from Japan!! ではグループ操作系コマンドレットについて取り上げていきたいと思います。

コマンドレット 説明
Add-ADGroupMember ActiveDirectoryグループに1つまたは複数のメンバーを追加する
Add-ADPrincipalGroupMemberShip 1つまたは複数のActiveDirectoryグループに1つまたは複数のメンバーを追加する
Add-ADAccountAuthorizationGroup アカウントトークングループ情報を取得する
Get-ADGroup 1つまたは複数のActiveDirectoryグループを取得する
Add-ADAccountAuthorizationGroup Active Directoryグループのメンバーを取得する
Get-ADPrincipalGroupMembership/td> 指定したユーザー、コンピューター、グループ、またはサービスアカウントを含むActiveDirectoryグループを取得する
New-ADGroup Active Directoryグループを作成する
Remove-ADGroup Active Directoryグループを削除する
Remove-ADGroupMember Active Directoryグループから1つまたは複数のメンバーを削除する
Remove-ADPrincipalGroupMembership 1つまたは複数のActive Directoryグループからメンバーを削除する
Set-ADGroup Active Directoryグループを変更する