• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プリントサーバ機器交換の場合)

プリントサーバ機器交換によるプリンタ登録方法の効率化

このQ&Aのポイント
  • プリントサーバ機器交換を行う際に、ログインスクリプトを活用して既存のプリンタを新しいプリンタに自動登録する方法を検討しています。
  • 現在、PRINTOLDというプリンタサーバに登録されているプリンタは100近くあり、ユーザーが利用しているものもあります。
  • ログインスクリプトを実行することで、利用者の意思で名称を変更していないプリンタを自動的に新しいプリンタに登録することができます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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 --------

shapecat02
質問者

お礼

temtecomai2さん。 レス+ソースまで記載いただいてありがとうございます。 早速、会社で動作確認してみます。

関連するQ&A