【ネットワーク自動化の極意】WScript.Networkで挑む、共有リソース管理の完全自動化
こんにちは。現場の最前線で自動化を支え続けてきたエンジニアとして、今日は「ネットワーク環境の自動制御」という、実務で最も重宝されるスキルの核心をお話しします。
「朝出社して、毎回決まったフォルダをマウントし、プリンタを切り替える」。そんな退屈なルーチンワークをVBScriptで終わらせてしまいましょう。これは単なるスクリプトではなく、あなたの時間を買い戻すための「魔法の杖」です。
—
1. WScript.Networkとは何か?
VBScriptでネットワークを操るための心臓部、それが `WScript.Network` オブジェクトです。WindowsというOSが持つ「ネットワークリソース管理」の窓口だと思ってください。
これを使うことで、以下のことが可能になります。
- ネットワークドライブの割り当て(切断・再接続)
- 共有プリンタの接続
- ログインユーザー情報やドメイン名の取得
—
2. 【実務コード】ネットワークリソース自動制御スクリプト
現場でそのまま使える、堅牢なスクリプト例です。エラーハンドリング(例外処理)を組み込むことが、プロのエンジニアとしての第一歩です。
‘ WScript.Network を生成
Dim objNetwork
Set objNetwork = WScript.CreateObject(“WScript.Network”)
‘ — 1. ネットワークドライブの割り当て —
‘ 既存接続を一度切断してから繋ぐのが、トラブルを防ぐ「現場の定石」です
On Error Resume Next ‘ エラーが発生しても止めない
objNetwork.RemoveNetworkDrive “Z:”, True, True
On Error GoTo 0 ‘ エラー制御を戻す
‘ Zドライブに共有フォルダをマウント
objNetwork.MapNetworkDrive “Z:”, “\\ServerName\ShareFolder”
‘ — 2. プリンタの接続とデフォルト設定 —
‘ プリンタ接続
objNetwork.AddWindowsPrinterConnection “\\PrintServer\OfficePrinter”
‘ 標準プリンタに設定(ここが重要!)
objNetwork.SetDefaultPrinter “\\PrintServer\OfficePrinter”
‘ 後始末:オブジェクトの解放(メモリ管理の基本です)
Set objNetwork = Nothing
WScript.Echo “ネットワーク環境のセットアップが完了しました。”
—
3. 初学者が陥りやすい「3つの罠」
コードを書くとき、以下のポイントを意識するだけで、スクリプトの安定性が劇的に向上します。
① 既存接続の「死に体」を掃除せよ
`MapNetworkDrive`を実行する前に、必ず`RemoveNetworkDrive`を呼ぶ癖をつけてください。前回のセッションでZドライブが残っていると、スクリプトは容赦なく「既に使われています」とエラーを吐きます。
② `On Error Resume Next` の正しい使い方
VBScriptはエラーで止まると、ユーザーに黒い画面(エラーダイアログ)を見せます。しかし、ネットワークの切断は「既に切れているならエラーで良い」というケースがほとんど。一時的にエラーを無視し、処理を継続させるのが賢い制御です。
③ 権限の壁(UAC)
もしスクリプトが動かない場合、それは「管理者権限」が必要な領域かもしれません。特にプリンタの追加はシステム設定に関わるため、スクリプトを「管理者として実行」しているか確認しましょう。
—
4. なぜ今、VBScriptなのか?
「PowerShellがあるのに、なぜVBScript?」そう思うかもしれません。
答えは、「軽さと即効性」です。
VBScriptはWindows環境であれば、追加のインストールも実行環境の構築も一切不要です。メモ帳一つで書き、ダブルクリックで動く。この「環境を選ばない機動力」こそが、急ぎの現場で自動化を成功させる鍵なのです。
—
最後に:自動化は「あなたの意志」から始まる
ネットワークドライブをマウントする、プリンタを繋ぐ。そんな些細な作業でも、毎日繰り返せば膨大な時間になります。このスクリプトを `startup` フォルダに入れておけば、明日からあなたのPCは、電源を入れるだけで「仕事ができる状態」で立ち上がるようになります。
まずは、コードをコピーして、サーバーのパスを自分の環境に合わせて書き換えてみてください。
ここをクリアすれば、あなたはもう「手作業で困る」というステージから卒業です。
さあ、次の自動化の扉を開きましょう!
