HIRO の紹介

PowerShell from Japan!! 管理人のHIROです。 PowerShellの情報を一緒に発信していきたいという方、是非ご連絡ください。

[ActiveDirectory] ユーザー管理(4) Set-ADUser コマンドレット

[ad code=2 align=left]

今回は Set-ADUser コマンドレットを使用して、Active Directoryユーザーのプロパティを変更する方法について見ていきたいと思います。

Set-ADUser

Set-ADUserコマンドレットを使用すると、既存のActive Directoryユーザーのプロパティを変更することができます。

指定できるパラメーター数が非常に多いのですが、これはGUIメニューの「Active Directory ユーザーとコンピューター」で指定できる項目がパラメーターとして提供されているだけですので、あまり戸惑うことはないでしょう。

ユーザーのメールアドレスを変更する

ユーザー”NaotoDate”のメールアドレスを”daten@corp.contoso.com”に変更するには、下記のようにします。

Set-ADUser -Identity NaotoData -EmailAddress "daten@corp.contoso.com"

上記コマンドによって作成されたユーザーを「Active Directory ユーザーとコンピューターで確認すると、下記のようになります。

パイプライン経由で取得したユーザーのプロパティを変更する

Get-ADUserコマンドレットを使用して取得した既存のユーザーを、パイプラインを使用してSet-ADUserコマンドレットに渡すことが可能です。

下記は、Get-ADUserコマンドレットでユーザー”NaotoDate”を取得し、Set-ADUserへ渡す例です。

パイプラインでユーザーを受け取っているので、Set-ADUserコマンドレットで-Identityプロパティを省略しています。

[sourcecoe language=”powershell”]
Get-ADUser -Identity NaotoDate | Set-ADUser -Department “営業部”
[/sourcecode]

既存ユーザーのインスタンスを変更後、設定を反映する

「既存ユーザーのインスタンス」とは、ユーザー情報の実体そのものと考えてください。

たとえば、ユーザーNaotoDateの実体は、下記$user変数のことを言います。

$user = Get-ADUser -Identity "NaotoDate"

$user変数にはユーザー”NaotoDate”の情報が格納されているので、下記のようにして$userの情報を変更後、Set-ADUserコマンドレットで更新をかけることができます。

Set-ADUserコマンドレットでユーザーのインスタンスを用いて設定を反映する場合は-Instanceパラメーターを使用します。

#ユーザー情報を取得して$userへ代入(これがユーザーのインスタンス)
$user = Get-ADUser "NaotoDate"
#ユーザーインスタンスの情報を変更(ここではメールアドレス)
$user.EmailAddress = "nao@corp.contoso.com"
#Set-ADUserコマンドレットで設定を反映させる
Set-ADUser -Instance $user

[ActiveDirectory] ユーザー管理(3) Remove-ADUser コマンドレット

今回は Remove-ADUser コマンドレットを使用して、ユーザーを削除する方法について見ていきたいと思います。

Remove-ADUser コマンドレット

Remove-ADUserコマンドレットを使用すると、既存のユーザーを削除することができます。

パラメーター数が比較的少なく、使用方法を覚えるのが簡単なコマンドレットです。

ただし「削除する」という操作を行うコマンドレットですから、使用する場合は十分注意が必要です。

samAccountNameを指定して、ユーザーを削除する

samAccountNameが”HIRO”のユーザーを削除する場合は下記のようにします。

Remove-ADUser HIRO

実行すると、削除してもよいかどうか尋ねられるので、削除してもよい場合には”Y”を入力します。

ユーザーを検索して削除する

Remove-ADUserコマンドレットは、パイプラインからの入力を受け取ることが可能なので、Get-ADUserやSearch-ADAccountと言ったコマンドレットの結果を用いたユーザーの削除が可能です。

下記は、Get-ADUserでアカウント”HIRO”を検索し、見つかった場合に削除を行う例です。

Get-ADUser HIRO | Remove-ADUser

ユーザーとOUを指定して削除する

削除したいユーザーが所属するOUがわかっている場合には、下記のようにユーザー名とOUを指定して削除することができます。

Remove-ADUser -Identity "CN=高橋 広樹,OU=IT,DC=corp,DC=contoso,DC=com"

[ActiveDirectory] ユーザー管理(2) New-ADUserコマンド

今回は、New-ADUserコマンドを使用してユーザーを作成する方法について見ていきたいと思います。

New-ADUser

New-ADUserコマンドレットを使用すると、新しい Active Directoryユーザーを作成することができます。

指定できるパラメーター数が非常に多いのですが、これはGUIメニューの「Active Directory ユーザーとコンピューター」で指定できる項目がパラメーターとして提供されているだけですので、あまり戸惑うことはないでしょう。

ユーザーを作成する

ユーザーIDが”Naoto”、表示名が”伊達直人”というユーザーを作成するには下記のようにします。

表示名はDisplayNameパラメーターを使用します。

New-ADUser Naoto -DisplayName 伊達直人

上記コマンドによって作成されたユーザーを「Active Directory ユーザーとコンピューターで確認すると、下記のようになります。

性・名を指定してユーザーを作成する

下記は性が”伊達”、名が”直人”、表示名が”伊達直人”というユーザー”Naoto”を作成します。

性はSurnameパラメーター、名はGivenNameパラメーターを使用します。

New-ADUser Naoto -Surname 伊達 -GivenName 直人 -DisplayName 伊達直人

上記コマンドによって作成されたユーザーを「Active Directory ユーザーとコンピューターで確認すると、下記のようになります。

OUを指定してユーザーを作成する

下記はcorp.contoso.comのITというOUに、”Naoto”というユーザーを作成します。

OUを指定するには-Pathパラメーターを使用します。

New-ADUser Naoto -Surname 伊達 -GivenName 直人 -Path "OU=IT,DC=corp,DC=contoso,DC=com"

上記コマンドによって作成されたユーザーを「Active Directory ユーザーとコンピューターで確認すると、下記のようになります。

参考までにパラメーターの一覧を下記に示します。

パラメーター 説明 指定する値の例
AccountExpirationDate アカウントの有効期限 “2/17/2011″
AccountNotDelegated ユーザーのセキュリティコンテキストをサービスに委任するかどうかを指定 $false または $true
AccountPassword アカウントの新しいパスワード (Read-Host -AsSecureString “password”)
AllowReversiblePasswordEncryption 暗号化を元に戻せるパスワードを設定できるかどうかを指定する $false または $true
AuthType 使用する認証方法を指定する Nagotiate または Basic
CannotChangePassword アカウントパスワードの変更を可能にするかどうかを指定する $false または $true
Certificates アカウントのDERエンコードされたX.509v3証明書が変更される 値を追加する場合
-Certificates @{Add=value1, value2,…}
値を削除する場合
-Certificates @{Remove=value1, value2,…}
値を置換する場合
-Certificates @{Replace=value1, value2,…}
すべての値をクリアする場合
-Certificates @{Remove=value1, value2,…}
ChangePasswordAtLogon 次回ログオン時にパスワードを変更するかどうかを指定する $false または $true
City ユーザーの市区町村 -City “世田谷”
Company ユーザーの会社 -Company “HIRO’s.NET”
Country ユーザーが選択した言語の国または地域コードを指定する “JP”
Credential このタスクの実行に使用するユーザーアカウント資格を指定する “Domain01\User1″
Department ユーザーの部署 “経理部”
Description オブジェクトの説明を指定する “カリフォルニア出身”
DisplayName オブジェクトの表示名を指定する “山田太郎”
Division ユーザーの事業部を指定する “システム情報”
EmailAddress ユーザーのメールアドレスを指定する “hiro@corp.contoso.com”
EmployeeID ユーザーの従業員IDを指定する “JNO00001″
EmployeeNumber ユーザーの従業員番号を指定する “00001”
Enabled アカウントが有効であるかどうかを指定する $false または $true
Fax ユーザーのFax番号を指定する “+1 (123) 456 7890″
GivenName ユーザーの名を指定する “太郎”
HomeDirectory ユーザーのホームディレクトリを指定する “\\Share\users\taro”
HomeDrive HomeDirectoryプロパティで定義したUNCパスに関連づけられているドライブを指定する “D:”
HomePage オブジェクトのホームページURLを指定する “http://hiros-dot.net/”
HomePhone ユーザーの自宅電話番号を指定する “+1 (123) 456 7899″
Initials ユーザーの名前の一部を表すイニシャルを指定する “T”
Instance 新しいユーザーオブジェクトのテンプレートとして使用するユーザーオブジェクトのインスタンスを指定する。 (Get-ADUser -Identity “taroYamada”)
LogonWorkstations ユーザーがアクセスできるコンピューターを指定する “PC1,PC2,PC3″
Manager ユーザーのマネージャーを指定する SAMアカウント名(sAMAccountName)
“jhondavid”
MobilePhone ユーザーの携帯電話番号を指定する “+1 (123) 987 6543″
Name オブジェクトの名前を指定する “TaroYamada”
Office ユーザーのオフィスまたは勤務先の住所を指定 “PowerShell from Japan”
Office Phone ユーザーのオフィスの電話番号を指定する “+1 (222) 333 4444″
Organization ユーザーの組織を指定する “情報システム”
OtherAttributes コマンドレットパラメーターで表されていない属性のオブジェクト属性値を指定する
1つまたは複数のパラメーターを設定できる。
-OtherAttributes @{‘AttributeLDAPDisplayname’=value1,value2,…}
OtherName ユーザーの名と姓に付加する名前(ミドルネームなど)を指定する “HIRO”
PathThru<switch> 新しいオブジェクトまたは変更されたオブジェクトを返す
PasswordNeverExpires アカウントパスワードの期限切れを可能にするかどうかを指定する $false または $true
PasswordNotRequired アカウントのパスワードを必須にするかどうかを指定する $false または $true
Path 新しいオブジェクトを作成する組織単位(OU)またはコンテナのX.500パスを指定する “ou=IT,dc=corp,dc=contoso,dc=com”
POBox ユーザーの私書箱番号を指定する “12345”
PostalCode ユーザーの郵便番号を指定する “0123456”
ProfilePath ユーザーのプロファイルのパスを指定する “\\users\profiles\HIRO”
SamAccountName ユーザー、グループ、コンピューター、またはサービスアカウントのセキュリティアカウントマネージャーアカウント名を指定する “hiro”
ScriptPath ユーザーのログオンスクリプトのパスを指定する “\\logonScripts\hiroLogin””
Server 対応するドメイン名またはディレクトリザーバーを指定する “corp.contoso.com”
ServerPrincipalNames アカウントサービスルプリンシパル名を指定する ServerPrincipalNames @{Add=value1,value2,…}
SmartcardLogonRequired ログオンするためにスマートカードが必要かどうかを指定する $false または $true
State ユーザーまたは組織単位の都道府県(州)を指定する “Tokyo”
StreetAddress ユーザーの番地を指定する “5 Suginami”
Surname ユーザーの性を指定する “Yamada”
Title ユーザーの役職を指定する “部長”
TrustedForDelegation アカウントをKerberos委任用に信頼するかどうかを指定する $false または $true
Type 作成するオブジェクトの種類を指定する。このパラメーターを使用しない場合は既定値Userが使用される “InetOrgPerson”
UserPrincipalName ユーザープリンシパル名を指定する “”hiro@corp.contoso.com”
Confirm<Switch> コマンドを実行する前に確認メッセージを表示する
WhatIf<Switch> 実際に実行せず、コマンドを実行すると何が起きるかを出力する

[ActiveDirectory] ユーザー管理(1) Get-ADUser コマンドレット

今回より何回かに分けて、Active Directoryモジュールを使用したユーザーの管理方法について説明していきたいと思います。

最初に、ユーザー管理に使用できるコマンドレットを見てみましょう。

Active Directoryモジュールでは、ユーザー操作に関するコマンドレットの名詞部には必ず「ADUser」という文字が含まれています。

そこで、「ADUser」が含まれるコマンドレットを探してみると、下記のように5つあることがわかります。

コマンドレット 説明
Get-ADUser 1人以上のADユーザーを取得する
Get-ADUserResultantPasswordPolicy ユーザーのパスワードポリシーの結果を取得する
New-ADUser 新しくADユーザーを作成する
Remove-ADUser ADユーザーを削除する
Set-ADUser ADユーザーを修正する

今回は Get-ADUser の使用方法を見ていきましょう。


Get-ADUser

Get-ADUser は非常に多くのパラメータを持っており、一口に「ADユーザーを取得する」といっても、その取得方法は多様です。

次に示すように、使用方法は3つあります

  1. Filterパラメータを使用してPowerShellの記述言語でクエリ文字列を作成しADユーザーを取得する方法
  2. Identityパラメータを使用して取得するADユーザーを指定する方法
  3. LDAPFilterパラメータを使用してLDAPクエリ文字列でADユーザーを取得する方法

Filterパラメーターを使用する

もっとも汎用性の高いパラメーターで、ユーザー検索の条件を指定することができます。

たとえば、「メールアドレスの先頭が”Sato”から始まっているユーザーを取得したい」、「最終ログオン日時が2011/2/1移行のユーザーを取得したい」といった検索で使用します。

・全ユーザーの取得

全ユーザーを取得するには、-Filterパラメーターにワイルドカード(*)を指定するだけです。

Get-ADUser -Filter *

・メールアドレスによるユーザーの取得

メールアドレスが”hiro”で始まるユーザーを検索してみましょう。

「メールアドレスが”hiro”で始まる」を式で表すと 「mail -like ‘hiro*’」 となるので、コマンドは以下のようになります。

Get-ADUser -Filter {mail -like "hiro*"}

メールアドレスでユーザーを検索する以外にも、ユーザーが持つ属性による(性(givenname)、名(surnname)、電話番号(telephonenumber))検索も可能です。

・特定のOUに属するユーザーの取得

今度は-SearchBase パラメータを追加して任意のOUに属するユーザーを取得してみましょう。

下記はcorp.contoso.comのITに属するユーザーを検索します。

Get-ADUser -Filter * -SearchBase "OU=IT,DC=corp,DC=contoso,DC=com"

Identityパラメータを使用する

Identityパラメータには次のプロパティのいずれかを指定した検索を行うことができます。

  • 識別名
  • GUID
  • セキュリティ識別子
  • SAMアカウント名

例としてGUIDによる検索例を見てみましょう。

Get-ADUser -Identity "S-1-5-21-4193795416-3281483866-4073542180-1110"


LDAPFilterパラメータを使用する

LDAPFilterパラメータを使用すると、LADPクエリ文字列による検索をすることができます。

下記はcorp.contoso.comのIT組織(OU)の中から名前が”HIRO”で始まるオブジェクトを検索します。

Get-ADUser -LDAPFilter "(name=HIRO*)" -SearchScope Subtree -SearchBase "OU=IT,DC=corp,DC=contoso,DC=com"

このほかにも様々なパラメータがありますので、興味があるかたは是非ヘルプを参照ください。

詳細なヘルプを見たい場合は下記コマンドを実行してください。

help Get-ADUser -Detailed

[BPOS] 新しい4つのコマンドレット

Microsoft Online Service PowerShell 機能に新しく4つのコマンドレットが追加されました。

追加されたコマンドレットは下記の4つです。


Set-MSOnlineAlternateRecipient

機能

Microsoft Online Serviceにあるユーザーのメールボックスに対する代理受信者をすべて削除する。


Clear-MSOnlineAlernateRecipient

機能

Microsoft Online Serviceにあるユーザーのメールボックスに対する代理受信者を設定する。


Enable-MSOnlinePOPAccess

機能

Microsoft Online Serviceの特定ユーザーのメールボックスに対するPOP3アクセスを有効にする。


Disable-MSOnlinePOPAccess

機能

Microsoft Online Serviceの特定ユーザーのメールボックスに対するPOP3アクセスを無効にする。