пятница, 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 порту сервера мониторинга, он перенаправляет запрос на нужный порт почтового сервера.

вторник, 5 февраля 2013 г.

При доступе к шаре на NAS пускает не все компьютеры при вводе одной и той же учетной записи

Сегодня был интересный случай. Коллеги настроили NAS и расшарили папку, т.е. сделали обычный smb ресурс. И заметили, что с некоторых компьютеров доступ к папкам на шаре есть, а с других компьютеров видна расшаренная папка, но войти в нее нельзя . При входе на шару запрашивается логин и пароль, которые мы вводим одинаковые на всех компьютерах. Все компьютеры подключены к одному свичу. Проверили на 10 машинах с ОС XP, VISTA, 7, 2008 R2, результаты были разные для одних и тех же версий ОС.
На NAS открыли полный  доступ к папке для всех пользователей и это тоже не помогло.
По-прежнему одни компьютеры могли подключаться, а другие нет.
Мистика.
Проблему решил коллега из группы сетевых решений, он обнаружил, что на NAS настроен слишком большой размер MTU. После его уменьшения 1500 стало все нормально работать на всех ПК.

Как добавить язык ввода windows server 2003?

Сегодня помогал клиентам добавить русский язык ввода windows server 2003. Был создан терминальный сервер, на котором по умолчанию была только английская раскладка, сервер запустили в продакшен и десятки пользователей начали работать на нем, но возникла необходимость в русском языке ввода.
Если сервер был бы еще на этапе тестирования, то можно было бы легко назначить язык ввода пользователю по умолчанию, но поскольку профили многих пользователей уже были созданы, то это не помогло бы в нашей ситуации.
Тогда используя программу regshot.exe, я сделал снимки реестра до и после ручного добавления языка ввода и зафиксировал изменения в bat файл.
вот его код:

@echo off
REG ADD "HKCU\Keyboard Layout\Preload" /v 1 /d 00000409 /f
REG ADD "HKCU\Keyboard Layout\Preload" /v 2 /d 00000419 /f
REG ADD "HKCU\Keyboard Layout\Toggle" /v "Hotkey" /d 1 /f
REG ADD "HKCU\Keyboard Layout\Toggle" /v "Language Hotkey" /d 1 /f
REG ADD "HKCU\Keyboard Layout\Toggle" /v "Layout Hotkey" /d 1 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\CTF\LangBar" /v ShowStatus /t REG_DWORD /d 4 /f
REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v ctfmon.exe  /d "C:\\WINDOWS\\system32\\CTFMON.EXE" /f

Данный файл делался для терминального сервера на ОС Windows Server 2003 R2 Eng Ent SP2.
Для других версий ОС возможно необходимо будет доработать некоторые параметры (regshot  в помощь).
далее данный батник копируем в папку %Папка с профилями%\All Users\Start Menu\Programs\Startup. И после 2 логоф/логон у пользователей появится русский язык ввода и языковая панель в трее.