Сценарии входа в Windows 7 - установить принтер по умолчанию

Мне было поручено устранить неполадки сценария входа в систему на клиентском сайте, который, помимо прочего, устанавливает принтер по умолчанию. Сценарий входа vbscript с принтером, установленным с помощью

Set WshNetwork = CreateObject("WScript.Network")

...

WshNetwork.SetDefaultPrinter(strPrinter)

Техник, который установил это, сказал, что это работает. Клиент сказал, что это не так. Мой тест показывает, что он работает только периодически. В настоящее время у меня есть что-то вроде этого:

WScript.Echo GetDefaultPrinter
For i = 0 to 50
    if strPrinter <> GetDefaultPrinter then
        WshNetwork.SetDefaultPrinter(strPrinter)
    end if
Next    
'WshNetwork.SetDefaultPrinter("Fax")

Msgbox("Called WshNetwork.SetDefaultPrinter(" & strPrinter & ")")
WScript.Echo GetDefaultPrinter


Function GetDefaultPrinter
sComputer = "."
Set oWMIService = GetObject("winmgmts:\\" & sComputer & "\root\cimv2")
Set colItems = oWMIService.ExecQuery("Select * from Win32_Printer",,48)
For Each oItem in colItems
If (oItem.Attributes And 2^(3-1)) = 4 Then
sDefault = oItem.Name
Exit For
End If
Next
GetDefaultPrinter = sDefault
End Function

Это позволяет мне проверять принтер по умолчанию до и после попытки его замены. Цикл, кажется, помог, но не решил полностью проблему. Иногда новый принтер настроен правильно, иногда я могу выйти и снова включиться, и он не может установить тот же принтер по умолчанию. Чтобы уточнить, я не полный рабочий день администратора. Эта техника устарела? Должен ли я использовать что-то еще для установки принтера по умолчанию?

Изменить: Кроме того, нам нужно запомнить принтер по умолчанию, который пользователь мог установить или изменить во время сеанса пользователя, а затем установить этот принтер по умолчанию

2 ответа

Решение

Вместо того чтобы использовать объект Network, я запускаю команду напрямую: rundll32 printui.dll,PrintUIEntry /y /n "", кажется, работает просто отлично

Поскольку у вас есть Server 2008 и Windows 7, у вас есть возможность установить принтер по умолчанию с помощью предпочтений групповой политики. Мы используем это прямо сейчас, чтобы установить принтеры по умолчанию в наших компьютерных лабораториях. Это требует создания объекта групповой политики для этих контейнеров, но вы можете получить довольно детальный с ними.

В редакторе групповой политики, политика находится в...

Конфигурация пользователя -> Настройки -> Настройки панели управления -> Принтеры

Добавьте туда принтеры. Один из флажков - "сделать принтер по умолчанию". Это действительно работает.

Другие вопросы по тегам