пятница, 22 ноября 2013 г.

Удаление всех сетевых принтеров за исключением нескольких, и добавление новых принтеров в одном скрипте (remove network printers except several printers, add new printers by script)

Задача: Открывается новый офис и часть пользователей со своими ПК переезжают на новое место. Необходимо чтобы у пользователей удалились старые принтеры и подключились новые.
Решение: написать логон скрипт групповой политики на VBS.
В скрипте будут указаны переменные соответствующие 3 принтерам.
Сначала скрипт удаляет все сетевые принтеры за исключением указанных трех, т.к. необходимо удалить все старые принтеры, а исключение сделано чтобы при каждом последующем запуске скрипта он не удалял новые принтеры.
Далее скрипт добавляет 3 принтера указанные в тех же переменных.
Преимущество этой политики в том, что ее можно будет включить на неделю и после отработки на всех пользователях, ее можно отключить.

При изменении списка принтеров достаточно отредактировать переменные в скрипте, вынесенные отдельно в начале скрипта.

Скрипт:

' Script to add printers and to remove existing network printers except specified in script 

On Error resume Next ' otherwise users will get errors on subsequent reconnections

' Create the variable to hold printer connections

Dim NewPrinters , DelPrinters

' Create variables for each printer string
' You can create as many as you like here

Dim Printer_1, Printer_2, Printer_3
' Initialise our printers

Printer_1 = "\\msc-print01\SiegePRN031" 
Printer_2 = "\\msc-print01\SiegePRN032"
Printer_3 = "\\msc-print01\SiegePRN033"



Set DelPrinters = CreateObject("WScript.Network")

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer Where Network = TRUE")
     
For Each objPrinter in colPrinters
    If objPrinter.Name <> Printer_1 and objPrinter.Name <> Printer_2 and objPrinter.Name <> Printer_3 Then 
        strPrinter = objPrinter.Name
        DelPrinters.RemovePrinterConnection strPrinter
    End If
Next

' Initialise the printer connections object
Set NewPrinters = CreateObject("WScript.Network") 
' Connect each of our printers
NewPrinters.AddWindowsPrinterConnection Printer_1 
NewPrinters.AddWindowsPrinterConnection Printer_2
NewPrinters.AddWindowsPrinterConnection Printer_3
WScript.Quit

понедельник, 11 ноября 2013 г.

Назначить другой smtp порт для отправки писем в HP SIM (hp sim specific smtp port for e-mail settings)

В окне настройки если ввести smtp host с добавление порта, то HP SIM будет выдавать ошибку, при попытке отправки тестового сообщения.



Это связано с ограничением HP SIM, из-за которого нельзя использовать кастомный порт для SMTP сервера.
Для обхода этого ограничения можно воспользоваться встроенным функционалом Windows: командой netsh для настройки port proxy.
Пусть 192.168.10.5 – адрес SMTP сервера.
2504 – smtp  порт открытый на сервере 192.168.10.5
 Запускаем командную строку из-под администратора на сервере HP SIM и выполняем следующее:

C:\Windows\system32>netsh
netsh>interface
netsh interface>portproxy
netsh interface portproxy>add v4tov4 listenport=25 connectaddress= 10.223.9.41  connectport=2504

netsh interface portproxy>dump

#===========================
# Конфигурация портов прокси
#===========================
pushd interface portproxy

reset
add v4tov4 listenport=25 connectaddress=10.223.9.41  connectport=2504


popd

# Конец конфигурации портов прокси


Теперь в поле SMTP вводим ip сервера hp sim и проверяем отправку тестового письма. Письмо должно быть успешно отправлено, т.к. теперь при обращении к 25 порту сервера мониторинга, он перенаправляет запрос на нужный порт почтового сервера.