Active Directoryを運用するにあたってのポイントです。
「Active Directory ワークショップ」のドキュメントからの抜粋になります。
詳細はこちらを参照ください
目次
Active Directoryの操作はpowershellでできる
powershell を使うとActive Directory のいろいろな操作ができます。
専用のアプリケーションを購入しなくとも、基本的な操作を行うことができます。
たとえば、ユーザアカウントの一括登録や変更といった作業は、
excelで台帳作成 → csvファイル作成 → powershellでActive Directoryに投入
といったことが簡単にできます。
基本的なpowershellの使い方
powershell でActive Directoryを扱うにあたりモジュールのインポートが必要な場合があります。
一度だけの実行ですので、おまじない程度に実行しておくのもよいでしょう。
Import-Module ActiveDirectory
OUの操作
下記のOU管理のためのPowershellコマンドレットがあります。
コマンドレット | 機能 |
Get-ADOrganizationalUnit | 1つまたは複数のOU情報を取得する |
New-ADOrganizationalUnit | 新しいOUを作成する |
Set-ADOrganizationalUnit | 既存のOUのプロパティを変更する |
Remove-ADOrganizationalUnit | 既存のOUを削除する |
■OU情報の取得はGet-ADOrganizationUnitコマンドレットを使用します。
---- すべてのOUの取得 ---- Get-ADOrganizationalUnit -Filter "*" Get-ADOrganizationalUnit -Filter "*" | Export-CSV -Path C:\Work\ADGroups.csv ---- すべてのOUのOU名を取得 ---- Get-ADOrganizationalUnit -Filter "*" | Select-Object {$_.Name} ---- 任意のOUの子OUを取得 ---- Get-ADOrganizationalUnit -Filter "*" -SearchBase "OU=IT,DC=SC,DC=com" -SearchScope Onelevel | Select {$_.Name}
■OUの新規作成はNew-ADOrganizationUnitコマンドレットを使用します。
---- OUを指定して作成---- New-ADOrganizationalUnit -Name “営業部” -Path "DC=SC,DC=local" New-ADOrganizationalUnit -Name “営業1課” -Path "OU=営業部,DC=SC,DC=local" ---- 保護を無効にしてOUを作成(規定値は有効)---- New-ADOrganizationalUnit -Name “営業部” -Path "DC=SC,DC=local" -ProtectedFromAccidentalDeletion $false
■OUのプロファイルの編集はSet-ADOrganizationUnitコマンドレットを使用します。
---- OU ”営業部” を ”営業本部” に変更 --- Get-ADOrganizationalUnit -Filter 'Name -eq "営業部"' -SearchBase "DC=SC,DC=local" -SearchScope OneLevel | Set-ADOrganizationalUnit -Description "営業本部"
■OUの削除はRemove-ADOrganizationUnitコマンドレットを使用します。なお、必要に応じて保護機能を無効にしてから削除します。
---- OU(営業部)を保護機能を無効にしてから削除 ---- Set-ADOrganizationalUnit -Identity "OU=営業部,DC=SC,DC=local" -ProtectedFromAccidentalDeletion $false Remove-ADOrganizationalUnit -Identity "OU=営業部,DC=SC,DC=local" -Confirm:$false ---- OU(営業部)を上位から回まで再帰的に削除 ---- Remove-ADOrganizationalUnit -Identity "OU=営業部,DC=SC,DC=local" -Recursive -Confirm:$false
グループの操作
下記のようなグループ管理のためのPowershellコマンドレットがあります。
コマンドレット | 機能 |
Get-ADGroup | 1つまたは複数のグループ情報を取得する |
Get-ADPrincipalGroupMembership | 指定したユーザー、コンピューター、グループ、またはサービスアカウントを含むActiveDirectoryグループを取得する |
New-ADGroup | 新しいグループを作成する |
Add-ADPrincipalGroupMemberShip | 1つまたは複数のActiveDirectoryグループに1つまたは複数のメンバーを追加する |
Add-ADGroupMember | 1つまたは複数のメンバーを追加する |
Remove-ADGroup | 既存のグループを削除する |
Remove-ADGroupMember | Active Directoryグループから1つまたは複数のメンバーを削除する |
Remove-ADPrincipalGroupMembership | 1つまたは複数のActive Directoryグループからメンバーを削除する |
Set-ADGroup | 既存のグループを変更する |
■グループ情報を取得するにはGet-ADGroupコマンドレットを使用します。
---- すべてのグループの参照 ---- Get-ADGroup -filter * Get-ADGroup -filter * | Export-CSV -Path C:\Work\ADGroups.csv ---- administratorsグループの参照 ---- Get-ADGroup Administrators ---- 識別子を使ってグループの参照 ---- ドメインが sample.local の場合 Get-ADGroup -Identity "CN=Administrators,CN=Builtin,DC=sample,DC=local"
■新規グループを作成するにはNew-ADGroupコマンドレットを使用します。
---- 「営業グループ」グループの作成(ローカルグループ) ---- New-ADGroup -Name “営業グループ” -GroupScope DomainLocal ---- OUを指定して「営業グループ」グループの作成(グローバルグループ) ---- ドメインが sample.local の場合 New-ADGroup -Name “営業グループ” -GroupScope Global -Path "OU=IT,DC=sample,DC=local"
■グループに属しているユーザ情報を取得するにはGet-ADGroupMemberコマンドレットを使用します。
---- administratorsグループのメンバーを取得 ---- Get-ADGroupMember -Identity Administrators Get-ADGroupMember -Identity Administrators| Export-CSV -Path C:\Work\ADGroups.csv ---- administratorsグループのメンバー名のみを取得 ---- Get-ADGroupMember -Identity Administrators | Select {$_.SamAccountName}
■グループにユーザを追加するにはAdd-ADGroupMemberコマンドレットを使用します。
---- 営業グループのメンバーとしてuser001と user002を追加 ---- Add-ADGroupMember -Identity “営業グループ” -Members user001,user002
■グループからユーザを削除するにはRemove-ADGroupMemberコマンドレットを使用します。
---- 営業グループのメンバーからuser001を削除 ---- Remove-ADGroupMember -Identity “営業グループ” -Members user001 -Confirm:$false
ユーザアカウントの操作
下記のようなユーザアカウント管理のためのPowershellコマンドレットがあります。
コマンドレット | 機能 |
Get-ADUser | ユーザーアカウント情報を取得する |
New-ADUser | 新しくユーザーアカウントを作成する |
Set-ADUser | ユーザープロファイルを修正する |
Remove-ADUser | 既存のユーザーアカウントを削除する |
Get-ADUserResultantPasswordPolicy | ユーザーのパスワードポリシーの結果を取得する |
■ユーザーアカウント情報を取得するにはGet-ADUserコマンドレットを使用します。
---- 全ユーザー ---- Get-ADUser -Filter * Get-ADUser -Filter * | Export-Csv -path user.csv -Encoding Default ---- メールアドレスでユーザーを検索 ---- Get-ADUser -Filter {EmailAddress -like "メールアドレス"} ---- 任意のOUに属するユーザー(下記では「IT」OU) ---- ドメインが sample.local 、OUが IT の場合 Get-ADUser -Filter * -SearchBase "OU=IT,DC=sample,DC=local"
■新規ユーザーアカウントを作成するにはNew-ADUserコマンドレットを使用します。
---- ユーザを作成(既定の場所に作成) ---- New-ADUser -UserPrincipalName "TestUser" -Name "TestUser" -Enabled $true -Surname "テスト" -GivenName "太郎" -DisplayName "テスト 太郎" -PasswordNotRequired $true -AccountPassword (ConvertTo-SecureString -AsPlainText "P@ssword123" -Force) ---- OUを指定する場合 ---- ドメインが sample.local 、OUが IT の場合 New-ADUser TestUser -UserPrincipalName "TestUser" -Name "TestUser" -Enabled $true -Surname "テスト" -GivenName "太郎" -DisplayName "テスト 太郎" -PasswordNotRequired $true -Path "OU=IT,DC=sample,DC=local" -AccountPassword (ConvertTo-SecureString -AsPlainText "P@ssword123" -Force)
New-ADUserでよく使われるオプションは以下になります。
■既存ユーザーアカウントを削除するにはRemove-ADUserコマンドレットを使用します。
---- ユーザ(TestUser)を削除 ---- Get-ADUser TestUser | Remove-ADUser -Confirm:$false
powershellでユーザアカウントの一括処理
こちらを参照ください。