VBScript(Visual Basic Scripting Edition)は、Windows環境でのシステム管理やタスクの自動化に広く利用されるスクリプト言語です。
特に、ネットワーク操作を行うためのスクリプトを作成する際に非常に有用です。
本記事では、VBScriptを使用してネットワーク操作をマスターするための基本的な手法を紹介します。
実践編としてVBScriptの基本的な文法がわかる中級者の方にご紹介しています。
基本的な文法がわからない方は、初級編の記事も紹介しているのでそちらを参考にしてください。
Pingコマンドの実行
ネットワーク接続を確認するための基本的な方法の一つが、Pingコマンドの実行です。
VBScriptを使用して、指定されたホストにPingを送信し、その結果を取得する方法を見てみましょう。
Dim objShell, objExec
Dim strHost, strCommand, strOutput
strHost = "www.google.com"
strCommand = "ping -n 4 " & strHost
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec(strCommand)
Do While Not objExec.StdOut.AtEndOfStream
strOutput = objExec.StdOut.ReadLine()
WScript.Echo strOutput
Loop
Set objExec = Nothing
Set objShell = Nothing
ネットワーク共有フォルダへの接続
ネットワーク共有フォルダに接続し、ファイル操作を行うこともVBScriptを使って可能です。
以下のスクリプトは、ネットワーク共有フォルダにマップし、ファイルをコピーする例です。
Dim objNetwork, strLocalDrive, strRemotePath
strLocalDrive = "Z:"
strRemotePath = "\\ServerName\ShareName"
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strLocalDrive, strRemotePath
' ファイルコピーの例
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\source\file.txt", strLocalDrive & "\file.txt"
' マップドライブの解除
objNetwork.RemoveNetworkDrive strLocalDrive
Set objFSO = Nothing
Set objNetwork = Nothing
WMIを使ったネットワーク情報の取得
Windows Management Instrumentation (WMI) を使用して、ネットワークに関する詳細な情報を取得することができます。
以下のスクリプトは、ローカルマシンのネットワークアダプタ情報を取得する例です。
Dim objWMIService, colItems, objItem
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objItem in colItems
WScript.Echo "Description: " & objItem.Description
WScript.Echo "MAC Address: " & objItem.MACAddress
WScript.Echo "IP Address: " & Join(objItem.IPAddress, ", ")
Next
Set colItems = Nothing
Set objWMIService = Nothing
FTP操作
VBScriptを使ってFTPサーバーに接続し、ファイルをアップロードまたはダウンロードすることができます。
以下のスクリプトは、FTPを使ってファイルをアップロードする例です。
Dim objShell, strFtpCommandFile, strFtpCommands
strFtpCommandFile = "ftpcommands.txt"
strFtpCommands = "open ftp.example.com" & vbCrLf & _
"username" & vbCrLf & _
"password" & vbCrLf & _
"put C:\localfile.txt /remotepath/remotefile.txt" & vbCrLf & _
"bye"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile(strFtpCommandFile, True)
objFile.WriteLine strFtpCommands
objFile.Close
Set objShell = CreateObject("WScript.Shell")
objShell.Run "ftp -s:" & strFtpCommandFile, 1, True
objFSO.DeleteFile strFtpCommandFile
Set objFile = Nothing
Set objFSO = Nothing
Set objShell = Nothing
まとめ
VBScriptを使用してネットワーク操作を行う方法をいくつか紹介しました。
これらのスクリプトは、ネットワークの接続確認、共有フォルダへのアクセス、ネットワーク情報の取得、FTP操作など、さまざまなネットワークタスクを自動化するのに役立ちます。
VBScriptのネットワーク操作をマスターすることで、システム管理や運用の効率を大幅に向上させることができます。