web-dev-qa-db-ja.com

2003R2のグループポリシーを介して_default_プリンターをXP

2003R2のセットアップに勝ちます。グループポリシーとpushprinterconnections.exeを使用してプリンターをプッシュできますが、プリンターが既定のプリンターとして設定されていません。グループポリシーを介してXPボックスのデフォルトプリンターを設定する方法についてのアイデアはありますか?

3
WaldenL

過去には、起動スクリプトを使用してこれを実行しました。

Wscriptの使用:

    Set WSHNetwork = CreateObject("WScript.Network")
    WSHNetwork.SetDefaultPrinter "[PRINTER_NAME]"

このリンク から取得

3
Jimmie R. Houts

this に対するコメントで、タイミングの問題について言及しています。私たちのシステムでは、下にスクリプトを追加してデフォルトのプリンターを設定するスクリプトを呼び出します

ユーザー設定-テンプレート-システム/ログオン-ログオン時にプログラムを実行する

「ログオン時にプログラムを実行する」の下のプログラムは、プロファイルの読み込みが完了した後、およびWindowsエクスプローラーが起動した後に発生します。これですべての場合にタイミングの問題が解決されるかどうかは100%確信できませんが、問題はありません。

1
Zoredache

これは、解決すべき驚くほど厄介な問題です。最初の問題は、デフォルトのプリンタ設定がユーザー固有であるということです。 Jimmieへのコメントで指摘したように、2番目の問題は、ユーザーごとのログインスクリプトを使用しても、プリンターが技術的に存在しないか、HKCUハイブの読み込みが完了していないタイミングの問題があることです。

私たちがこの状況でやったことは、基本的に、デフォルトとして設定しようとする前に、存在するプリンターを探すためにループするログインスクリプトを使用することです。一定時間経っても見つからない場合は諦めます。

0
Ryan Bolger

ラボにR2印刷展開を使用している学区があります。 R2からのこの省略された関数と戦うために、 Kixtart を使用して支援します。これは、特定のラボのユーザー向けにプリンターを展開するのに役立ちます。これにより、Windowsがプリンターを追加するのを待つために必要な遅延も提供されます。

ラボには命名規則があります。 HS101-01、HS101-02、HS102-01、HS102-02など

グループポリシーオブジェクトのkixtart起動スクリプトを使用して、kix32.exeに以下のスクリプトを実行させます。

;Capture room number
$pos = INSTR(@WkSta, "-");
IF $pos > 0
    $Room = LEFT(@WkSta, ($pos - 1));
    ; ? $Room
ELSE
    $Room = @WkSta;
ENDIF


SLEEP 45   ; Give the computer time to log in and add the printer

;;;;;;;;;;;;; BEGIN PRINTER DEFAULTS LIST ;;;;;;;;;;;;

SELECT

    Case $Room = "HS71"
        SetDefaultPrinter("\\nebsdfs\HS71 - HP LaserJet 4100 Series PCL")

    Case $Room = "HS086"
        SetDefaultPrinter("\\nebsdfs\HS086 - HP LaserJet 4000")

    Case $Room = "ES102"
        SetDefaultPrinter("\\nebsdfs\ES102 - HP LaserJet 4000")


ENDSELECT

;;;;;;;;;;;;;; END PRINTER DEFAULTS LIST ;;;;;;;;;;;;;

これがお役に立てば幸いです。ありがとう。

0
Zach