- ベストアンサー
プリントサーバ機器交換によるプリンタ登録方法の効率化
- プリントサーバ機器交換を行う際に、ログインスクリプトを活用して既存のプリンタを新しいプリンタに自動登録する方法を検討しています。
- 現在、PRINTOLDというプリンタサーバに登録されているプリンタは100近くあり、ユーザーが利用しているものもあります。
- ログインスクリプトを実行することで、利用者の意思で名称を変更していないプリンタを自動的に新しいプリンタに登録することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
初回判断とか無しにして、何度実行されても構わないようにすればいいと思う。 ・ 古いプリンタが登録されていれば、古いプリンタを削除する。 ・ 新しいプリンタが登録されていなければ、新しいプリンタを登録する。 このスクリプトを 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さん。 レス+ソースまで記載いただいてありがとうございます。 早速、会社で動作確認してみます。