初回判断とか無しにして、何度実行されても構わないようにすればいいと思う。
・ 古いプリンタが登録されていれば、古いプリンタを削除する。
・ 新しいプリンタが登録されていなければ、新しいプリンタを登録する。
このスクリプトを 1か月も繰り返していれば休職してるオーナーの PC や休眠 PC じゃないかぎり新しいプリンタの環境に移行できると思いますが。
---- 登録されているプリンタの一覧を表示するサンプル
Dim netObject
Set netObject = WScript.CreateObject("WScript.Network")
Dim printers
Dim i
Set printers = netObject.EnumPrinterConnections
For i = 0 To printers.Count -1
WScript.Echo printers.Item(i)
Next
-------- プリンタ移行のためのスクリプト
Dim netObject
Set netObject = WScript.CreateObject("WScript.Network")
' 古いプリンタが接続されていれば削除する
If PrinterExists(netObject, "\\PRINTOLD\PrinterNameA") Then
netObject.RemovePrinterConnection "\\PRINTOLD\PrinterNameA"
End If
' 新しいプリンタが接続されていなければ接続する
If Not(PrinterExists(netObject, "\\PRINTNEW\PrinterNameA")) Then
netObject.AddPrinterConnection "\\PRINTNEW\PrinterNameA"
End If
' 指定したプリンタが存在すれば Ture を返す
Function PrinterExists(aNetObject, aPrinterUNC)
Dim returnValue
returnValue = False
Dim printers
Dim i
Set printers = netObject.EnumPrinterConnections
For i = 0 To printers.Count -1 Step 2
If printers.Item(i + 1) = aPrinterUNC Then
returnValue = True
Exit For
End If
Next
PrinterExists = returnValue
End Function
--------
お礼
temtecomai2さん。 レス+ソースまで記載いただいてありがとうございます。 早速、会社で動作確認してみます。