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

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

Get-ADGroupMember

既存のActive Directoryグループのメンバーを取得するためのコマンドレットです。

Active Directoryグループを指定してメンバーを取得する

任意のActive Directoryグループに属するメンバーを取得するには-Identityパラメーターにグループ名を指定します。
たとえばAdministratorsに属するメンバーを取得したい場合は下記のようにします。

Get-ADGroupMember -Identity Administrators

任意のActive Directoryグループに属するメンバーのSamAccountNameのみを取得する

先ほどの例では、結果としてdistinguishedName,name,objectClass,objectGUID,SamAccountName,SIDを返します。
この結果から、SamAccountNameだけを取得したい場合はSelect-Objectコマンドレットを使用して下記のようにします。

Get-ADGroupMember -Identity Administrators | Select {$_.SamAccountName}

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

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

Remove-ADGroup

既存のActive Directoryグループを削除するためのコマンドレットです。

samAccountNameを指定してグループを削除する

samAccountNameを指定してグループを削除るには

Remove-ADGroup samAccountName パラメータ 値

とします。

例えば、samAccountNameがTESTというグループを削除する場合は下記のようにします。

Remove-ADGroup TEST

コマンドを実行すると、「この操作を実行しますか?」とメッセージが表示されるので操作したい内容に合わせてキーを押します。

フィルターを使用してグループを削除する

Remove-ADGroupコマンドレットはパイプライン経由でグループ情報を受け取ることが可能です。

このことを利用して、Get-ADGroupコマンドレットでフィルターを使用してグループを取得し、remove-ADGroupコマンドレットで削除を行うことができます。

例えば”Test”で始まるグループを一括して削除したい場合は下記の用にします。

Get-ADGroup -Filter 'Name -like "Test*" | Remove-ADGroup

[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

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

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

[Tips] Active DirectoryオブジェクトのSIDを取得する

Active DirectoryオブジェクトのSIDを取得するには、下記のようにします(あくまでも一例です)。

ユーザーのSIDを取得する

SamAccountNameがHIROのSIDを取得する例

(Get-ADUser "HIRO").SID.ToString()

グループのSIDを取得する

SamAccountNameがDnsAdminsのSIDを取得する例

(Get-ADGroup "DnsAdmins").SID.ToString()

コンピューターのSIDを取得する

SamAccountNameがClient1のSIDを取得する例

(Get-ADComputer "Client1").SID.ToString()