今回は、まず先週の続きとして、ユーザーアカウントのプロパティ変更について解説する。それと、Active Directoryが管理するユーザーアカウント(ドメインアカウント)と、個々のコンピュータが持つユーザーアカウント(ローカルアカウント)の区別についても解説しよう。
表示名の変更
日本語版WindowsサーバのActive Directoryでは、ユーザーアカウントに対して[姓]と[名]を設定すると、両者を連結する形で表示名を自動的に設定している(自動設定した表示名を、後から変更することもできる)。
したがって、ユーザーアカウントのプロパティ画面にある[アカウント]タブで[姓]や[名]、さらに[表示名]や[ミドルネーム]の設定も可能だ。これについては先週の本連載で取り上げている。
ユーザーログオン名と一緒に表示名を変更するのであれば、プロパティ画面を使用する方法が合理的だ。しかし、表示名だけを変更するのであれば、[Active Directoryユーザーとコンピュータ]管理ツールの一覧画面から直接変更できる。その際の手順は以下の通りだ。
[Active Directoryユーザーとコンピュータ]管理ツールを起動する。
左側のツリー画面で、プロパティを表示、あるいは変更したいオブジェクトがある場所(ドメイン、OUまたはコンテナ)を選択する。
右側の一覧で対象となるオブジェクトを選択して、[操作]-[名前の変更]、あるいは右クリックして[名前の変更]を選択する。
[Active Directoryユーザーとコンピュータ]管理ツールでは、最初に一覧画面で表示名を書き換えるようになっている。そこで、新しい表示名を入力してから、[Enter]キーを押して入力結果を確定する。
続いて表示するダイアログで、[姓][名][表示名]を修正する。このとき、先に一覧画面で入力した表示名を基にして[姓][名]を自動設定しているが、それが間違っていれば、この段階で修正する。
- 最後に[OK]をクリックすると、変更結果が確定する。
dsmod userコマンドによるユーザーログオン名の変更
先週の本連載では、dsmod userコマンドを使用して表示名や各種プロパティを変更する際の手順について解説した。
実は、このコマンドを使用すると、ユーザーログオン名・識別名・表示名を個別に変更できる。ただし、変更の対象を間違えるとトラブルの原因になるので、以下の手順で作業を進めるとよいだろう。
コマンドプロンプトで「dsquery user」と入力する。すると、ユーザーアカウントの識別名一覧を表示する。
その中から変更の対象となるユーザーアカウントの識別名を選んで、dsmod userコマンドの対象を指示する際に入力する。
表示名・姓・名については、dsmod userコマンドで引数「-display」「-ln」「-fn」を用いて設定する。
ユーザーログオン名については、dsmod userコマンドで引数「-upn」を使用して、ユーザープリンシパル名(UPN)、つまり「<ユーザーログオン名>@<ドメインDNS名>」の形式で指定する。
識別名の変更に限り、dsmoveコマンドと引数「-newname」の組み合わせを使用する。
以下に、これらのコマンド操作に関する実行例を示す。
「ad-domain.company.local」ドメインのコンテナ「Users」にあるユーザーアカウント「井上 孝司」について、表示名を「井上孝司(kojii)」に変更
dsmod user cn=井上 孝司,ou=Clients,dc=ad-domain,dc=company,dc=local -display "井上孝司(kojii)"
「ad-domain.company.local」ドメインのOU「Admins」にあるユーザー「井上 孝司」のユーザーログオン名を、「kojii」に設定
dsmod user "cn=井上 孝司,ou=Admins,dc=ad-domain,dc=company,dc=local" -upn kojii@ad-domain.company.local
「ad-domain.company.local」ドメインのコンテナ「Users」にあるユーザーアカウント「井上 孝司」について、識別名を「kojii」に変更
dsmove "cn=井上 孝司,cn=Users,dc=ad-domain,dc=company,dc=local" -newname kojii
ローカルアカウントが出現する場面と、アカウント名の表記ルール
次に、ローカルアカウントとドメインアカウントの区別について解説しよう。
Active Directoryに関連するコンピュータのうち、ドメインコントローラにはローカルアカウントが存在しない。ドメインコントローラにログオンする際に利用できるのは、ドメインアカウントだけだ。しかし、一般サーバやクライアントPCでは、ドメインアカウントを使ったログオンも、ローカルアカウントを使ったログオンも可能だ。
実は、ワークグループ環境における認証のメカニズムと同じ理由から、ドメインアカウントとローカルアカウントのユーザーログオン名が同一で、かつパスワードも同じであれば、ローカルアカウントでログオンしていても、ドメインアカウントを使ってアクセスを許可した資源にアクセスできてしまう。この設定はセキュリティの構成ウィザードによって変更できるのだが、既定値では有効だ。
そのため、ドメインアカウントを使ってログオンしているつもりが、実はローカルアカウントを使用していた、ということも起こり得る。特にこのことが問題になりやすいのがパスワードの変更で、ドメインアカウントのパスワードを変更したつもりが、実はローカルアカウントのパスワードを変更していた、という結果になってトラブルの原因を作る。
このように、同じユーザーログオン名を持つユーザーアカウントが異なる場所に存在する可能性があるため、ドメインアカウントとローカルアカウントを区別する目的で、以下の記述方法を使用する。
・ドメインアカウント : <ドメイン名>\<ユーザーログオン名>
・ローカルアカウント : <コンピュータ名>\<ユーザーログオン名>
このうち「<ドメイン名>\<ユーザーログオン名>」で記述するドメイン名は、ドメインDNS名とドメインNetBIOS名のどちらも使用できる。
Windows VistaやWindows Server 2008では、ログオン画面に[ログオン先]リストボックスがなく、この記述を用いてログオン先を指定するようになっている。だから、この表記方法を覚えておくことは重要だ。
whoamiコマンドを覚えておくと便利
そこで覚えておくと便利なのが、whoamiコマンドだ(Who am I? と覚える)。このコマンドは、現在ログオン中のユーザーに関する情報を画面に表示するもので、何も引数を指定せずに実行すると、ログオン名を「<ドメイン名>\<ユーザーログオン名>」という形式で表示する。
個々のコンピュータが持つローカルアカウントでログオンしていれば、表示する結果は「<コンピュータ名>\<ユーザーログオン名>」となるので、Active Directoryのユーザーアカウントでログオンしているかどうかを、容易に判断できるというわけだ。
このコマンドでは、引数の指定によってさまざまな情報を得ることができる。以下に、構文と引数の一覧を示す。
whoamiコマンドの構文
whoami [/upn | /fqdn | /logonid]
whoami { [/user] [/groups] [/priv] } [/fo ] [/nh]
whoami /all [/fo ] [/nh]
whoamiコマンドの引数一覧
引数 | 解説 |
---|---|
/upn | ユーザー名をUPN(ユーザープリンシパル名)で表示 |
/fqdn | ユーザー名をFQDN(Fully Qualified Domain Name、完全修飾ドメイン名)で表示 |
/user | ユーザー名とSIDを表示 |
/groups | ユーザーが所属しているグループ、アカウントの種類、SID、属性の情報を表示 |
/priv | ユーザーのセキュリティ特権に関する情報を表示 |
/logonid | ユーザーのログオンIDを表示 |
/all | すべての情報を表示 |
/fo | 情報を表示する際の形式を、「table」「list」「csv」のいずれかで指定。既定値はtable |
/nh | 列見出しを出力に表示しない。「/fo table」「/fo csv」と併用できる |