第1回 ユーザーとグループアカウント:Windows OS入門(2/2 ページ)
GUI を採用しているWindows OSは、その「中身」をあまり知らなくてもそれなりに使うことができる。だが、より進んだ使い方をしたり、効率よく管理するためには、その内部に対する理解も必要である。本連載ではWindows OSを構成するさまざまな技術について、その内部的な仕組みや構成などを踏まえながら解説していく。今回はユーザーとグループアカウントについて解説する。
スコープの違いによるユーザーアカウントの種類
ユーザーアカウントには、その「スコープ」(有効範囲)の違いに応じて「ローカルユーザーアカウント」と「ドメインユーザーアカウント」の2種類がある。
ローカルユーザーアカウント
これはコンピューターごとに個別に作成されるユーザーアカウントである。ドメインに参加していないスタンドアロンのコンピューターを使う場合は、このアカウントでログオンして利用することになる。複数のコンピューターを持っている場合は、それぞれのコンピューター上でアカウントを作成しなければならないし、デスクトップ環境や設定なども共通化できず(OSやインストールされているアプリケーションなどの違いにより、何でも共通化できるわけではないが)、手間が掛かる。
ドメインユーザーアカウント
これは、Active DirectoryドメインやWindows NTドメインなどで作成できるアカウントである。ドメインに参加しているコンピューター全体で共通して利用できるため、コンピューターの台数が増えても、どのコンピューターでも同じアカウント、同じパスワードでログオンできる。OSやインストールされているアプリケーションなどにもよるが、デスクトップ環境や設定なども自動的に共通化される。
グループアカウントの種類
ユーザーアカウントにローカルアカウントとドメインアカウントの違いがあるように、グループにも用途やスコープの違いにより、次のような種類がある。詳細についてはTIPS「グループ・アカウントの種類を知る」を参照していただきたい。
グループの用途
グループには、その用途や利用できる場所などに応じて、次の3つの種類がある。
- ローカルグループ
これは、ローカルユーザーアカウントのように、ローカルのコンピューター上でのみ有効なグループアカウントである。ローカルグループには、ローカルのアカウントとドメインアカウントの両方をメンバーとして追加できる。 - セキュリティグループ
これは、Active Directoryにおいて、他のユーザーアカウントやグループアカウントを1つにまとめて集約させるためのものである。このグループには、ドメインのアカウントのみを追加できる。 - 配布グループ(Distribution group)
これは、Active DirectoryとExchange Serverのようなメールアプリケーションの組み合わせで利用されるグループアカウントであり、メールの配布先などを指定するために利用される。リソースのアクセス権制御には使えない。このグループもActive Directoryでのみ有効であり、ドメインのアカウントのみをメンバーとして追加できる。
グループのスコープ
セキュリティグループと配布グループには、そのスコープに応じて次の3つの種類がある。
- ドメインローカルグループ
これは、特定の1つのドメイン内でのみ有効なグループである。他のドメインやドメインよりも上位の概念(ドメインツリーやフォレスト)からは参照できない。 - グローバルグループ
これは他のドメインやドメインツリー、フォレスト全体から参照可能なグループである。ただしメンバーとして追加できるのは、同一ドメインのアカウントやグローバルグループのみである。 - ユニバーサルグループ
これも、他のドメインやドメインツリー、フォレスト全体から参照可能なグループである。メンバーとしては、他のドメインやドメインツリー、フォレストのアカウントやグループを追加できる。
アカウントの一覧
Windows OSであらかじめ用意されているデフォルトのアカウント(組み込みアカウント)にはさまざまなものがあるし、OSのバージョンによっても変わるので、今回は省略する。必要なら以下のリンクなどを参照していただきたい。
- TIPS「オブジェクトを識別するSIDとは?」
- TIPS「デフォルトのローカル・グループを知る」
- TIPS「サービスで使用されるSystem、Local Service、Network Serviceアカウントとは?」
アカウントの内部識別情報SID
「SID(Security ID)」とは、アカウントを識別するためにWindows OS内部で使用されている識別子である。ユーザー名をいくら変更しても、そのユーザーに割り当てられている権限やユーザープロファイル(ユーザー環境や設定など)が変わらないのは、このSIDが変わらないからである。ただしSIDはアカウントを削除すると消滅するため、たとえ後で同じ名前やパスワードでアカウントを作成しても、以前の環境は維持・復元されず、別のユーザーとして扱われる。SIDは管理画面のさまざまな場面で目にすることになるので(特にActive Directory関連で)、今後詳しく解説する。
ユーザーに割り当てられているSIDは、例えば「whoami /user」や「whoami /all」コマンドなどで確認できる。SIDについては、次のTIPSも参照していただきたい。
- TIPS「オブジェクトを識別するSIDとは?」
SIDを確認する
アカウントのSIDは、whoamiコマンドなどで確認できる。
(1)「whoami /user」を実行する。
(2)ユーザーアカウント名。
(3)SID情報。組み込みアカウントは固定的なSID識別子を持っているが、後から追加したアカウントはこのようなランダムな番号を持っている。
アカウントを調査・確認するさまざまな方法
ここまでの説明で触れてきたように、ユーザーアカウントやグループアカウントの調査・確認には、コントロールパネルのユーザー管理ツールや「コンピューターの管理」ツールの他、コマンドプロンプトなら「net user」や「net localgroup」コマンドなどが利用できる。ドメインに参加しているコンピューターなら、「Active Directoryユーザーとコンピューター」管理ツールや「net user /domain」「net localgroup /domain」などで確認できる。
netコマンドによるアカウントの確認例
一番古くからあるユーザーアカウントを確認する方法は、コマンドプロンプト上でnetコマンドを使う方法である。
(1)ユーザーアカウントの一覧を取得するには「net user」コマンドを使う。
(2)グループの一覧を取得するには、「net localgroup」コマンドを使う。
これ以外にも、WMICというコマンドラインツールなら、「useraccount」や「group」といったサブコマンドで一覧を取得できる。WMICの使い方については、次のTIPSが参考になる。
- TIPS「WMIとwmicコマンドを使ってシステムを管理する(基本編)」
- TIPS「wmicコマンドでシステムの構成を設定/変更する」
- TIPS「wmicコマンドでイベント・ログを表示する」
PowerShellなら「Get-CimInstance -ClassName Win32_UserAccount」「Get-CimInstance -ClassName Win32_GroupUser」などで一覧を取得できる。PowerShell自体の使い方については、次の連載記事が参考になる。
- TIPS「Windows PowerShellコマンド&スクリプティング入門」
- TIPS「PowerShell的システム管理入門」
PowerShellによるアカウント情報の確認
最近ではPowerShellによる管理業務処理も一般的になっている。
(1)ユーザー名の一覧を取得するには「Get-CimInstance -ClassName Win32_UserAccount」を使う。
(2)NTLM形式(後述)のユーザー名表記。
(3)SIDは、アカウントの内部的な識別情報。ユーザー名をいくら変更しても、このSIDは変わらない。
(4)グループ名の一覧を取得するには「Get-CimInstance -ClassName Win32_GroupUser」を使う。
ユーザーアカウントの表記方法
プログラムやバッチファイル、スクリプトなどでリモートのサーバーへ接続したり、リモートのリソースを使ったりする場合、ユーザー名とドメイン名、PC名をまとめて表現することがある。Windows OSではいくつかの方法があるので、用途やアプリケーションの使用などによって使い分けていただきたい。
ユーザー名の表記方法は「net use /?」コマンドで確認できる(TIPS「Windowsネットワークにおけるユーザー名とドメイン名の指定方法」も参照)。
C:\>net use /?
このコマンドの構文は次のとおりです:
NET USE
[デバイス名 | *] [\\コンピューター名\共有名[\ボリューム] [パスワード | *]]
[/USER:[ドメイン名\]ユーザー名] ……NTLM形式1
[/USER:[ドット付きのドメイン名\]ユーザー名] ……NTLM形式2
[/USER:[ユーザー名@ドット付きのドメイン名] ……UPN形式
[/SMARTCARD]
……(以下省略)……
NTLM形式1――「ドメイン名\ユーザー名」
これは最も基本的な表記方法である。ドメイン名(最大15文字のNetBIOS名)とユーザー名をバックスラッシュ記号で接続する。例えば「MYDOMAIN\USER01」のように指定する(大文字/小文字はどちらでもよい)。「NTLM(NT LAN-Manager)」形式とか「ダウンレベル」形式といい、最も古くから使われている形式なので、ほとんどの場合に問題なく利用できるだろう。
NTLM形式2――「FQDNドメイン名\ユーザー名」
これはドメイン名の部分をFQDN形式のドメイン名(ドット表記のドメイン名)にした形式である。例えば「example.co.jp\user01」のように指定する。インターネット上のサーバーのFQDNドメイン名を指定する場合に使えるが、Active Directory上のアカウントを指定するなら、次のUPN形式を使うのが一般的だ。
UPN形式――「ユーザー名@FQDNドメイン名」
「UPN(User Principal Name)」とは、ドメイン名とユーザー名を「@」で接続した、メールアドレスのような形式である。例えば「user01@example.co.jp」のように指定する。
ローカルアカウントを指定する――「.\ユーザー名」
これは少し特殊な使い方であり、どこでも使えるわけではないが、リモートデスクトップでログオンする場合などに、ログオン先コンピューター上のローカルなアカウントを簡単に指定する方法である。通常ドメインに参加しているコンピューターにログオンしようとすると、デフォルトではドメイン名が表示されていることがある。その状態で単にユーザーとパスワードを入力してログオンすると、ドメインにログオンしてしまう。だからローカルのコンピューターにログオンするなら、ローカルのコンピューター名を調べて、ユーザー名として「MYPC209AB334\user01」などと入力しなければならない。だがコンピューター名を知らない場合はこれは面倒だ。
このような場合は、ユーザー名欄の先頭に「.\」と入力する(「 .(ドット)」は自分自身を指し示す際によく使われる表現だ)。するとログオン先がドメイン名からローカルのコンピューターに自動的に切り替わる。後はユーザー名とパスワードを入力するだけでよい。
ローカルアカウントを簡単似指定する
ドメインに参加しているコンピューターで、ローカルアカウントを使ってログオン(サインイン)したい場合は、先頭に「.\」と入力すると簡単である。これはWindows Server 2012 R2のサインイン画面の例。
(1)先頭に「.\」を入力してから、ローカルのアカウント名を入力する。
(2)デフォルトではここにはドメイン名が表示されているが、「.\」と入力すると、ローカルコンピューター名に切り替わる(この例では、TTTSERVERがローカルのコンピューター名)。
(3)これをクリックすると(4)や(5)の説明文が表示される(これをクリックしないと、ローカルのコンピューター名が分からないということ)。
(4)別のドメインを指定したい場合はこのような形式で入力する。
(5)ローカルアカウントでログオンするには、本来はこの形式で入力する必要がある。だがローカルのコンピューター名が分からないとサインインできない。
今回はユーザーアカウントについて解説した。次回はWindowsリソースの管理画面などでよく見かける、「ACL(アクセス制御リスト)」について取り上げる予定である。
Copyright© Digital Advantage Corp. All Rights Reserved.