|
Windows XPからWindows XPへ共有アクセス
Windows NT以降のOS(Windows 2000/Windows XP/Windows Server 2003)では、IPC$共有リソースに接続するときに、ユーザー・アカウントやパスワードを明示的に指定することができる。この機能を使えば、バッチ・ファイル中で特定のアカウント情報(資格情報)でサーバに接続し、サービスを受けるということが可能になる。例えば、普段仕事で使っているマシンには一般的なユーザー・アカウントでログオンしているが、特定の管理業務を行う場合に、管理者権限のある特別なアカウントで接続し、作業を行いたいとする。通常ならば、管理者権限のあるユーザーでログオンし直して、目的のサーバへ接続し、作業を行うことになるだろう。しかしいちいちローカル・マシンでログオンし直さなくても、IPC$に接続するときに、管理者権限のあるアカウントを明示的に指定すればよい。具体的には、net useコマンドでIPC$への接続を明示的に行えばよい。
net useコマンドは、コマンド・プロンプト上で、ほかのマシンの共有リソースに接続するために使われるコマンドである。通常は、例えば次のようにして使うことが多い。
net use x:
\\server1\share1 |
これは、¥¥server1のshare1という共有(公開)リソースを、ローカルのx:ドライブにマップするというコマンドである。この場合は、接続に利用されるアカウントは、ユーザーがシステムにログオンした場合のものが使われるが、明示的に指定することもできる。
net use x: \\server1\share1 /user:user01
password01 |
ここでは、ユーザー・アカウント「user01」、パスワード「password01」で接続している。これはserver1上のローカル・アカウントの場合であるが、ドメインのユーザー・アカウントを利用する場合は次のようにする。
net use x: \\server1\share1
/user:domain\user01 password01 |
これはすべてのWindowsで利用できる形式であるが、Active Directory環境ならば次のようにしてFQDN名を指定することもできる。
net use x: \\server1\share1
/user:user01@domainname.com password01 |
最後にパスワードが直接指定されているが、バッチ・ファイルなどに記述する場合は、セキュリティ上望ましくない。そこで、次のような表記方法もある。
net use x: \\server1\share1 /user:user01
* |
パスワードとして「*」を指定すると、実行時にユーザーに問い合わせるようになる。
C:\>net use x: \\server1\share1
/user:user01 * \\server1\share1 のパスワードを入力してください: ここでパスワードを入力する コマンドは正常に終了しました。
|
なお、以上では、共有リソースを「x:」というドライブにマップしているが、これをなくすこともできる。
net use \\server1\share1 /user:user01
* |
この場合は、ユーザーは例えば「dir ¥¥server1¥share1」というふうに、常にUNC形式でリソースを指定する必要がある。
実際に相手のサーバ側で、どのようなアカウント(資格情報)でログオンしているかを調べるには、「net
session」というコマンドを(サーバ側で)実行すればよい(クライアント側の利用状況は「net
use」で調査する)。どのクライアント・マシンから、どのユーザー名で接続しているかが分かる。
接続の解除
共有リソースの使用が終了したら、「net use 〜 /delete」コマンドを発行して、接続を明示的に解除することができる。「〜」には「net
use」で指定したリソース名を指定する(「x:」とか「¥¥server1¥share1」など)。この操作により、サーバへの接続数が減算され、ほかのクライアントからの接続を新たに受け付けることができる。Workstation版をサーバ代わりに使っている場合など、このようにして積極的に接続を解除して、接続数制限に(なるべく)到達しないようにすることができる(通常はログオフ時に自動的に接続が解除される)。
net use \\server1\share1 /user:user01
* …必要な操作… net use \\server1\share1
/delete |
IPC$共有の使用
以上では、¥¥server1¥share1という共有ファイル・リソースへ接続したが、同様にして「IPC$」リソースへ接続することもできる。
net use \\server1\ipc$ /user:user01
* |
この例では、server1のIPC$リソースへ、user01というユーザー・アカウントで接続している(「net use ¥¥server1
/user:user01 *」でも同じ)。また、パスワードはインタラクティブに入力する。
いったんこの接続が完了すれば、以後は、server1のそのほかの共有(公開)リソースや各種のサービスへの接続は、user01というアカウントで行われることになる。そのため、例えばレジストリを操作するような(管理者権限の必要な)コマンドを実行したければ、その操作の前に、このようなコマンドを発行してログオンしておくとよい。すると以後のレジストリ操作は指定されたユーザー権限で行われることになる。
|