Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

dsコマンドを使ってパスワードの無期限設定を変更する

―― dsget、dsmodなどのActive Directoryオブジェクト操作用コマンドを利用する ――

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2006/12/16
 
対象OS
Windows XP
Windows Server 2003
コマンド・プロンプトからユーザー・アカウントの情報を操作するにはnet userコマンドが利用できる。だがこのコマンドでは、Active Directoryで拡張された属性を操作することはできない。
Active Directoryオブジェクトを操作するにはdsgetやdsmod、dsqueryなどのコマンドが利用できる。
これらのコマンドでは、Active Directory上のオブジェクトを表すために識別名(DN)という特別な表記を利用する。
 
解説

 コマンド・プロンプトからドメインのユーザー・アカウントを操作する場合、net user /domainコマンドが利用できる。詳細についてはTIPS「net userコマンドの使い方」を参照していただきたいが、ドメイン・アカウントの作成や削除、属性の設定確認/変更などができる。

 だがnet userコマンドは、もともとはWindows NT時代に(Windows NTのユーザー・アカウントの仕組み向けに)作られたコマンドであり、Active Directory関連で追加・拡張された属性を確認したり、操作したりすることができない。例えばユーザー・アカウントの「パスワードを無期限にする」という属性をオンにしたくても(net user /domain /add 〜で追加した直後は、デフォルトではオフになっている)、net userコマンドでは操作できない。

 このような目的のためには、Windows Server 2003で追加されたActive Directory操作用のコマンドライン・ツール(dsgetやdsquery、dsmodなど)を利用するとよい(以下まとめてdsコマンドと呼ぶことにする)。Windows XPの場合は、TIPS「サーバ用管理ツールをクライアントPCにインストールする」の方法でWindows Server 2003(SP1もしくはR2)の管理ツール(adminpak.msiファイル)をインストールすれば、同様に利用できる。

操作方法

 コマンド・プロンプトからActive Directoryの情報を操作するためには、dsqueryやdsget、dsmodなどのツールを利用する。

ツール 用途
dsadd.exe Active Directoryオブジェクトの追加
dsget.exe Active Directoryオブジェクトのプロパティの取得
dsmod.exe Active Directoryオブジェクトのプロパティの変更
dsmove.exe Active Directoryオブジェクトの移動/名前変更
dsquery.exe Active Directoryオブジェクトの問い合わせ
dsrm.exe Active Directoryオブジェクトの削除
Active Directoryオブジェクト操作用のdsコマンド
これらはWindows Server 2003で追加されたコマンド。Windows XPの場合は、Windows Server 2003に含まれる管理ツール・パックからインストールすれば利用できる。

 それぞれのコマンドの詳しい使い方は、ヘルプとサポート・センターで検索するか、「dsquery /?」とか「dsquery user /?」などで見ることができる。dsqueryの結果をパイプで別のコマンドに送り、複数のオブジェクトに対してまとめて操作するといったこともできる。

 以下ではこれらのコマンドの使用例として、ユーザー・アカウントの「パスワードを無期限にする」という属性(フラグ)をオンにする方法を紹介する。そのほかの使い方については、今後別TIPSで取り上げる。

dsqueryコマンドによるActive Directory情報のクエリ

 dsコマンドを利用するためには、Active Directory上のオブジェクトを指定するために「識別名(DN:Distinguished Name)」と呼ばれる表記方法を利用する。これは例えば「CN=hiroshi,CN=Users,DC=example,DC=com」というふうに表記するが(これはexample.comドメインのUsersコンテナにあるhiroshiというユーザー名という意味)、このDN名を簡単に求めるには、dsqueryコマンドを利用すればよい。名前を検索するだけならば、例えば次のようにする。これは先頭がhiで始まるユーザー名の一覧を表示させているところである。結果がDN名で表示されるので、その後のコマンドではこれを利用すればよいだろう。

C:\>dsquery user -name hi* ……hiで始まる名前の検索
"CN=hiroaki,CN=Users,DC=example,DC=com" ……結果
"CN=hiroko,CN=Users,DC=example,DC=com"
"CN=hiroshi,CN=Users,DC=example,DC=com"
"CN=hirotaka,OU=SupportStaffs,DC=example,DC=com"

C:\>

 結果は前後がダブルクォート記号で囲まれているが、以下のコマンドで指定する場合は、途中に空白記号などが含まれていなければ省略してもよい。だが間違えないように、常にダブルクォートで囲むようにした方がいいだろう。

dsgetコマンドで属性を取得する

 DN名が分かったら、それを使ってユーザー・アカウントの属性を調べてみよう。このためにはdsgetコマンドを利用するが、「パスワードを無期限にする」という属性を調べるには、さらに「-pwdneverexpires」というパラメータを指定する。指定可能なパラメータの一覧は「dsget user /?」で確認していただきたい。

C:\>dsget user "CN=hiroshi,CN=Users,DC=example,DC=com" -pwdneverexpires
  pwdneverexpires ……属性名
  no ……結果は「no」。つまり、この設定フラグはオフ
dsget 成功 ……dsgetコマンドの実行は正常に終了

C:\>

dsmodによる属性の変更

 確認した属性の値を変更するには、dsgetコマンドに代えてdsmodコマンドを実行すればよい。そして最後に「-pwdneverexpires yes」とか「-pwdneverexpires no」などと指定する。ほかのオプションについては、dsmod user /?で確認していただきたい。End of Article

■属性の設定
C:\>dsmod user "CN=hiroshi,CN=Users,DC=example,DC=com" -pwdneverexpires yes
dsmod 成功:CN=hiroshi,CN=Users,DC=example,DC=coms ……成功した

■属性の確認

C:\>dsget user "CN=hiroshi,CN=Users,DC=example,DC=com" -pwdneverexpires
  pwdneverexpires
  yes ……結果
dsget 成功

関連記事(Windows Server Insider)
Windows TIPS:net userコマンドの使い方
Windows TIPS:サーバ用管理ツールをクライアントPCにインストールする
Windows TIPS:netコマンドの使い方
Windows TIPS:ユーザー・アカウントのロックアウトを解除する
Windows TIPS:大量のユーザー・アカウントを一括登録する
 
この記事と関連性の高い別のWindows TIPS
net userコマンドの使い方
Active Directoryオブジェクトの識別名(DN)とは
netコマンドの使い方
これだけは覚えておきたい、コマンド・プロンプトの使い方
コマンド・プロンプトでレジストリを操作する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH