ネットワークドライブ操作

 ここでは、JScriptネットワークドライブ接続や、解除等をする方法について紹介します。
プリンター接続についても紹介したいところですが、環境がないためここでは紹介は省きます。
仕事場で隙をみて実験しようと思いますが、期待はしないでください。

それからこれから紹介するサンプルソースは実行しないでください。
かならずエラーが出ます。
理由は、ネットワーク物理的接続できていないのもありますが、ネットワークについてオレはさっぱり理解していないので細かいことはググってください。
ちなみに、オレの自宅でも試せる環境がなかったので、サンプルソースも適当なサンプルパスを使っています。
しかし、仕事現場で使ったことがあるので、使い方はサンプルソースから読み取れると思います。

 新しくネットワークドライブ接続するには以下の関数を利用することで実現できます。
関数名
 object.MapNetworkDrive( DriveNm, ServerNm, [Update], [User], [Pass] );

関数説明
  ネットワークドライブを割り当てる。
 
引数
 object・・・・・・WshNetworkオブジェクト
 DriveNm ・・・・・割り当てるドライブ名(例:「Z:」ドライブに
          割り当てる場合は、「"Z:"」を設定する )
 ServerNm・・・・・共有ドライブのUNC名(サーバ名及びIPアドレスからの
          設定も可能です)
 Update・・・・・・割り当てたドライブを保存するかどうかを示すブール値。
          trueを指定するとシャットダウンしても次回起動時も
          接続されています。
          falseを指定するとシャットダウンすると次回起動時は
          接続は解除されます。(省略可能で、省略するとfalseが指定される)
 User・・・・・・・ServerNmで指定したサーバに入るために使用するユーザID。
          (省略可能で、省略するとnullが指定されます)
 Pass・・・・・・・ServerNmで指定したサーバに入るために使用するパスワード(
          Userに対応したもの)。
          (省略可能で、省略するとnullが指定されます)

戻り値
 なし
 

[サンプルコード]
//  
//  ネットワークドライブ操作
//  
//   ネットワークドライブを割り当てる。
//  

//  コンピュータが接続しているネットワーク上の共有リソースへの
//  アクセスを提供するオブジェクト
var nw = new ActiveXObject( "WScript.Network" );

//  「Z:」ドライブにネットワークドライブを割り当てる
nw.MapNetworkDrive( "Z:", "\\\\Server\\FolderName", true, "userid", "password" );

WScript.Echo( "終了" );

//  オブジェクトを解放
nw = null;


[実行結果]
 「Z:」ドライブに「\\Server」サーバの「FolderName」フォルダが割り当てられます。
このサンプルは実行したらまず間違いなくエラーになります。
関数の引数に使用している「\\\\Server\\FolderName」と「userid」と「password」はサンプルですので、ご使用の際はこの4つを自分で直して使ってください。

 ネットワークドライブ接続を削除するには以下の関数を利用することで実現できます。
関数名
 object.RemoveNetworkDrive( DriveNm, [Force], [Update] );

関数説明
  ネットワークドライブの接続を解除する。
 
引数
 object・・・・・・WshNetworkオブジェクト
 DriveNm ・・・・・接続を解除するドライブ名(例:「Z:」ドライブの
          接続を解除する場合は、「"Z:"」を設定する )
 Force ・・・・・・ドライブの割り当てを強制的に解除するかどうかを
          示すブール値。
          trueを指定するとたとえそのドライブ内のファイルを
          使用していても強制的にドライブの接続を解除できます。
          falseを指定するとそのドライブ内のファイルを使用していた
          場合はエラーメッセージが表示され、接続は解除できません。
          (省略可能で、省略するとfalseが指定される)
 Update・・・・・・接続を解除したことを保存するかどうかを示すブール値。
          trueを指定するとシャットダウンし、次回起動時も
          接続は解除されています。
          falseを指定するとシャットダウンし、次回起動時は
          接続は元に戻っています。ただし、接続をしたときに
          接続を保存していない場合は、接続は解除されたままです。
          (省略可能で、省略するとfalseが指定される)

戻り値
 なし
 

[サンプルコード]
//  
//  ネットワークドライブ操作
//  
//   ネットワークドライブを削除。
//  

//  コンピュータが接続しているネットワーク上の共有リソースへの
//  アクセスを提供するオブジェクト
var nw = new ActiveXObject( "WScript.Network" );

//  「Z:」ドライブに割り当てられているネットワークドライブを削除
nw.RemoveNetworkDrive( "Z:" );

WScript.Echo( "終了" );

//  オブジェクトを解放
nw = null;


[実行結果]
 実行前に、「Z:」ドライブにネットワークドライブを割り当ててください。
その後、実行すると「Z:」ドライブの接続が解除されます。

 現在割り当ててあるネットワークドライブを取得するには以下の関数プロパティを利用することで実現できます。
関数名
 object.EnumNetworkDrives();

関数説明
  現在割り当てられているネットワークドライブのコレクションを取得する。
 返されたコレクションに格納されているデータは、インデックスが0から設定されていて、
 偶数のインデックス値のデータにはドライブ名が設定されていて、
 奇数のインデックス値のデータには割り当てられている共有ドライブのUNC名が
 設定されています。
 
引数
 object・・・・・・WshNetworkオブジェクト

戻り値
 現在割り当てられているネットワークドライブのコレクション
 

プロパティ名
 object.length;

プロパティ説明
  現在割り当てられているネットワークドライブのコレクションに
 格納されているデータ数を管理するプロパティ。
 
引数
 object・・・・・・現在割り当てられているネットワークドライブのコレクション

戻り値
 コレクションに格納されているデータ数
 

[サンプルコード]
//  
//  ネットワークドライブ操作
//  
//   現在割り当てられているネットワークドライブを表示。
//  

//  コンピュータが接続しているネットワーク上の共有リソースへの
//  アクセスを提供するオブジェクト
var nw = new ActiveXObject( "WScript.Network" );

//  現在割り当てられているネットワークドライブコレクションを取得
var drives = nw.EnumNetworkDrives();

//  コレクションから1つずつドライブ名と物理ドライブのローカル名を表示
for( var i=0; i<drives.length; i+=2 )
    WScript.Echo( drives.Item(i) + " = " + drives.Item(i + 1) );

WScript.Echo( "終了" );

//  オブジェクトを解放
nw = null;


[実行結果]
 実行前に1つ以上ネットワークドライブの割り当てを行っておいてください。
実行すると、現在ドライブに割り当てられているネットワークドライブが一つずつ表示されます。


ショートカットファイル操作へ 目次 アプリケーション操作へ