連載
» 2006年09月09日 05時00分 UPDATE

Tech TIPS:コマンド・プロンプトでファイル共有を管理する

ファイルの共有や使用の設定、管理をコマンド・プロンプトで行うには、netコマンドを利用する。公開する共有リソースの管理はnet share、リソースの使用はnet use、セッションとファイルの管理はnet session、net fileコマンドで行う。net shareを使えば、共有設定などをテキスト化して保存しておくことができる。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000/Windows XP/Windows Server 2003



解説

 ファイル共有を設定したり、その内容を確認するには、通常はエクスプローラや[コンピュータの管理]ツールを利用したりする。

 だが、テスト用途などで簡単に設定したり、Telnetなどでリモートからメンテナンスする場合は、コマンド・プロンプト上で操作できると便利である。また現在の共有の設定状態をテキスト・ファイルに保存できれば、再設定するのも簡単になるし、コマンド列にしてバッチ・ファイルに書き込んでおくと、設定をすばやく再現できる。

 本TIPSでは、ファイルの共有設定やその使用(ドライブなどへのマップ)について、コマンド・プロンプト上で操作する方法についてまとめておく。

操作方法

●公開のための設定(サーバ側)

 ファイル共有を利用するためには、まずサーバ側で公開の設定を行う。エクスプローラなら、公開したいフォルダを選んで右クリックし、ポップアップ・メニューから[共有とセキュリティ]を実行するが、コマンド・プロンプト上では「net share」コマンドを利用する。このコマンドのヘルプは、「net share /?(短形式)」か「net share /help(長形式)」で参照できる。

●公開リソースの一覧の表示(サーバ側)

 公開している共有フォルダの一覧は、単に「net share」とすれば表示されるし、より詳しく知るには「net share <共有名>」とすればよい。リダイレクトしてファイルに保存しておけば、後で再設定する場合の参考にもなる。

C:\>net share ……一覧の表示

共有名       リソース                            注釈

-------------------------------------------------------
IPC$                                         Remote IPC ……管理共有
ADMIN$       C:\WINDOWS                      Remote Admin
C$           C:\                             Default share
C            C:\ ……ユーザー定義の項目
コマンドは正常に終了しました。


C:\>net share c ……特定の共有に関する詳細情報の表示
共有名             C  ……共有の名前
パス               C:\ ……共有フォルダのパス
注釈
最大ユーザー数     制限なし
ユーザー
キャッシュ         ドキュメントの手動キャッシュ
コマンドは正常に終了しました。



 IPC$やADMIN$は管理共有であり、デフォルトで定義されている共有項目である。これらについては右上の関連記事を参照していただきたい。

●共有フォルダの作成(サーバ側)

 新しく共有(公開)されるフォルダを定義するには、「net share <共有名>=<パス名>」というコマンドを利用する。

C:\>net share public=c:\public ……新規共有の作成
public が共有されました。


C:\>net share public ……共有の確認
共有名             public
パス               c:\public
注釈
最大ユーザー数     制限なし
ユーザー
キャッシュ         ドキュメントの手動キャッシュ
コマンドは正常に終了しました。



 ただしこのコマンドでは、エクスプローラの[共有]タブや[コンピュータの管理]ツールなどとは違い、ユーザーごとにアクセス権を設定することはできない。デフォルトでは「Everyoneに対してフルコントロール」というアクセス権のみが設定される。

 必要なら、エクスプローラやコンピュータの管理ツールを使って、共有フォルダのアクセス権を設定、確認する必要がある。またNTFS側でも適切なアクセス権を設定しておいていただきたい。

●共有の削除(サーバ側)

 定義されている共有を削除するには、「net share <共有名> /delete」(/deleteは/dや/delでも可)とする。

C:\>net share projectfolder /delete ……共有の停止(削除)
projectfolder が削除されました。



●共有の使用(クライアント側)

 以上はサーバ側(リソースを公開する側)の設定であるが、次はリソースを利用する側の設定について説明する。

 クライアント側で共有リソースを利用する場合、基本的には準備は不要であり、直接エクスプローラなどで該当する共有(\\<サーバ名>\<共有名>)を開けばよい。

 だがWindows OSでは、ドライブにマップして利用すると便利な場合も多い。コマンド・プロンプトを使ってドライブにマップするには「net use <ドライブ名>: \\<サーバ名>\<共有名>」を利用する。

 特定のドライブではなく、任意の(空き文字の)ドライブにマップするなら、「<ドライブ名>:」の代わりに「*」を使うか、「pushd \\<サーバ名>\<共有名>」を実行してもよい(この場合はpopdコマンドで使用が解除される)。

 なお、共有に接続する前に、共有の一覧を確認するには「net view \\<サーバ名>」を実行する。

C:\>net view \\winxp-pc02 ……公開されているリソースの確認
\\winxp-pc02 の共有リソース

共有名  タイプ  使用  コメント
---------------------------------------------------
C       Disk ……利用できる共有の一覧
public  Disk
コマンドは正常に終了しました。

C:\>net use x: \\winxp-pc02\public ……X:ドライブへマップする
コマンドは正常に終了しました。

C:\>pushd \\winxp-pc02\c ……別のマップ方法

Z:\> ……マップと同時に、カレント・ドライブも切り替わる



 この例では、現在ログオンしているユーザー・アカウントでサーバへ接続しているが、別のユーザー・アカウント(資格情報)を利用して、サーバへ接続することもできる。詳細は右上の関連記事を参照していただきたい。

●使用の確認とマップの解除(クライアント側)

 現在どのリソースを利用しているかは、「net use」コマンドで表示できる。またドライブへのマップを解除し、共有の使用を停止するには、「net use <ドライブ名>: /delete」を実行する。

Z:\>net use ……使用の確認
新しい接続は記憶されます。

ステータス  ローカル名 リモート名                ネットワーク名
-------------------------------------------------
OK           X:        \\winxp-pc02\public       Microsoft Windows Network
OK           Z:        \\winxp-pc02\c            Microsoft Windows Network
コマンドは正常に終了しました。

Z:\>net use x: /d ……使用の停止(X:ドライブへのマップの解除)
x: が削除されました。



●セッション情報の確認(サーバ側)

 共有で公開しているサーバ側のリソースが、どのクライアント・コンピュータから利用されているかという情報をセッション情報という。これを確認するには、「net session」コマンドを利用する。

C:\>net session ……セッション情報の一覧の表示

コンピュータ           ユーザー名           クライアント   オープン アイドル時間

---------------------------------------------
\\10.20.1.111          ADMINISTRATOR        Windows Server 20     0 00:00:03
コマンドは正常に終了しました。


C:\>net session \\10.20.1.111 ……より詳細な情報の確認(上記のコンピュータ名のところに表示されている文字列を指定すること)
ユーザー名              ADMINISTRATOR ……アクセスしているユーザー名
コンピュータ            10.20.1.111 ……コンピュータ名/IPアドレス
ゲスト ログオン         No ……匿名アクセスかどうか
クライアント タイプ     Windows Server 2003 R2 3790 Service Pack 1
セッション時間          00:00:07
アイドル時間            00:00:05

共有名         タイプ   オープン数
---------------------------------------------- 
C              Disk     0 ……使用しているリソースの状況
コマンドは正常に終了しました。



●セッションの強制クローズ(サーバ側)

 ファイル・サーバの運用を一時的に停止したり、アクセス権の変更などのために、現在のセッションを強制的にクローズすることもできる。このためには「net session /delete」コマンドを利用する。

C:\>net session \\10.20.1.111 /delete ……セッションの強制クローズ
10.20.1.111 からのセッションで開かれているファイルがあります。

この操作を続行しますか? (Y/N) [N]: y ……確認メッセージ
コマンドは正常に終了しました。



●使用しているファイルの確認と強制クローズ(サーバ側)

 現在のセッションにおいて、クライアントが利用しているファイルの一覧を調べるには、「net file」コマンドを利用する。また、そのファイルを強制的にクローズ(解放)するには、net fileコマンドで表示された番号を指定し、/closeオプションを付ける。オープンされたまま放置されているファイルや、(何らかの理由で)排他ロックされてアクセスできなくなったファイルなどに使用するとよい。

C:\>net file ……使用中のファイルの一覧
ID         パス                     ユーザー名           ロック数
--------------------------------------
2448       C:\public\filetext2.txt  ADMINISTRATOR         0
コマンドは正常に終了しました。

C:\>net file 2448 ……詳細情報
ファイル ID      2448
ユーザー名       ADMINISTRATOR
ロック数         0
パス             C:\public\filetext2.txt
アクセス許可     R
コマンドは正常に終了しました。

C:\>net file 2448 /close ……ファイルを強制的にクローズし、解放する
コマンドは正常に終了しました。



「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。