пятница, 26 октября 2012 г.

Перенаправление логов VMware ESXi 5

Гипервизор ESXi свои логи по умолчанию записывает на тот же диск, где сам установлен. Но в случае загрузки гипервизора по сети или с флэшки - все файлы с логами обнуляются после перезагрузки сервера!
Чтобы это предотвратить, необходимо перенести лог-файлы на другой Datastore (локальный или находящийся на СХД). Для настройки:
1. Заходим в vSphere Client;
2. Подключаемся к ESXi или vCenter серверу;
3. Переключаемся на закладку Configuration;
4. В разделе Software выбираем Advanced Settings;
5. Открывается окно, в котором кликаем на пункте Syslog:


6. Нас интересует поле Syslog.global.logDir. Указываем тут "[Лун]/путь к конечной папке";
7. Нажимаем ОК.

Кроме этого, можно настроить пересылку Syslog на выделенную машину, которой обычно является VMware vSphere Management Assistant (vMA) или VMware Syslog Collector. Для данной настройки в том же пункте Syslog измените поле Syslog.global.logHost на udp://система для сбора логов:514 или ssl://система для сбора логов:1514 если используется шифрование. В добавок нужно открыть порты Firewall-а:
1. Переключаемся на закладку Configuration;
2. В разделе Software выбираем Security Profile;
3. Далее раздел Firewall -> Properties;
4. В открывшемся окне устанавливаем галочку на правиле с именем "syslog";



5. Нажимаем ОК.

четверг, 25 октября 2012 г.

Переустановка протокола TCP/IP

В сложных случаях, при повреждении стека TCP/IP, когда не помогает сброс настроек (netsh int ip reset; netsh winsock reset) необходимо полностью переустановить протокол. По умолчанию Windows не дает удалить TCP/IP:



Поэтому действуем следующим образом:

1. Открываем реестр и удаляем следующие ключи:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2

2. Находим файл Nettcpip.inf в директории %winroot%\inf и открываем на редактирование в Блокноте (для Windows Vista и выше понадобится стать владельцем файла и выдать дополнительно права на изменение, иначе система не даст сохранить файл).

3. В открытом файле находим раздел [MS_TCPIP.PrimaryInstall] и строку в нем Characteristics = 0xA0 ; NCF_HAS_UI | NCF_NOT_USER_REMOVABLE

4. Меняем значение Characteristics с 0xA0 на 0x80 и сохраняем файл.

5. Заходим в свойства сетевого подключения.

6. Нажимаем "Установить", выбираем "Протокол" -> "Добавить" "Установить с диска". Указываем путь "%SystemRoot%\inf" и файл 1394.inf

7. Выбираем "Протокол интернета (TCP/IP)" или "Протокол интернета версии 4 (TCP/IPv4)" и кликаем ОК.

8. Теперь кнопка "Удалить" стала доступна. Удаляем "Протокол интернета (TCP/IP)". Перезагружаемся.

9. Повторяем шаги 5-7 для повторной установки протокола на место и опять перезагружаемся.

10. Все готово. Потребуется отредактировать файл Nettcpip.inf, чтобы вернуть старое значение, и выставить прежние настройки ip адреса, маски, DNS, WINS машины.

Удаление записей о плагинах в VMware vCenter Plug-in Manager

Иногда, после удаления VMware плагинов из vCenter, их записи сохраняются в Plug-in Manager.
 
 
Чтобы избавиться от ненужных записей, делаем следующее:
 
1. В браузере подключаемся по адресу "http://имя или ip vCenter сервера/mob" и авторизируемся под аккаунтом, имеющим доступ к управлению vCenter сервером
2. Попадаем на страницу Managed Object Type
 

3. Переходим по ссылке "content"
 
 

4. Выбираем "ExtensionManager"
5. Далее находим в таблице "Properties" необходимый плагин, который был удален, но не отрегистрирован
 
 

6. В нашем случае это будет extensionList["com.vmware.syslog"]. Копируем в буфер "com.vmware.syslog"
7. В таблице "Methods" кликаем "UnregisterExtension"
 

8. Открывается новое окошко, в котором нам нужно указать имя плагина, предварительно скопированное в буфер, и нажать Invoke Method
 

9. Остается обновить страницу Managed Object Type чтобы убедиться в исчезновении плагина. Теперь Plug-in Manager будет отображать корректную информацию.

 

вторник, 23 октября 2012 г.

Использование Sysprep для настройки шаблонов виртуальных машин VMware

Если вы управляете виртуальной структурой на базе VMware, используя vCenter, то можете упростить подготовку новых гостевых ОС на базе Windows XP/2003 и более ранних версий, добавив утилиту Sysprep на сервер управления.
Делается это следующим образом:
1. Открываем инсталляционный диск гостевой Windows, которую мы будем настраивать на Sysprep.
2. В папке Support/Tools/ находим файл DEPLOY.cab и распаковываем его содержимое по следующему пути на сервере с установленным vCenter:

C:\ProgramData\VMware\VMware VirtualCenter\sysprep\win_folder - если vCenter установлен на Windows Server 2008 или Windows Server 2008 R2;

C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\sysprep\win_folder - если vCenter установлен на Windows 2003 любой версии;

где win_folder - папка, соответствующая версии гостевой ОС.
Поддерживаются только следующие версии Windows:

 
Нужные KB, содержащие Sysprep, для всех версий ОС Windows можно также скачать с сайта Microsoft.
3. Подготавливаем эталон гостевой ОС с установленными обновлениями и необходимым ПО.
4. Выключаем машину и конвертируем ее в шаблон.
5. При развертывании новой машины из шаблона, на шаге мастера Guest Customization, станет доступен мастер настройки спецификации гостевой ОС:
 
 
Можно создать как новую спецификацию настройки, так и использовать существующую. Редактировать данные спецификации можно с помощью Home->Management->Customization Specifications Manager.
6. Когда мастер настройки закончит работу, запускаем созданную из шаблона виртуальную машину.
7. Логинимся в ОС, далее начинает работу Sysprep. После перезагрузки гостевая система готова к использованию.

Утилита для замены функционала moveuser в Windows Vista/7/2008/2008 R2

Утилита UserTransferWizard является аналогом moveuser (Windows Server 2003 Resource Kit Tools) для Windows Vista/7/2008/2008 R2 и более новых версий. Скачать можно в свободном доступе вместе с исходным кодом по адресу: http://code.google.com/p/user-transfer-wizard/ . Работает она через новый функционал WMI Win32_UserProfile  и имеет понятный графический интерфейс. Написана под .Net 3.5. Для корректной работы обязательно запускаем программу под администратором или выключаем "Контроль учетных записей" (User Account Control)

 

понедельник, 22 октября 2012 г.

Перемещение профиля пользователя Windows XP/2003

При необходимости перемещения профиля от одного пользователя к другому в пределах одной машины, удобно использовать утилиту moveuser, которая входит в состав Windows 2003 Resource Kit. Это может пригодится при переводе компьютера в домен, при выводе из домена, а так же при смене одного домена на другой (в этом случае придется создавать транзитного локального пользователя, привязывать профиль к нему, и уже после смены домена, переводить профиль на нового доменного пользователя).

Синтаксис следующий:

moveuser <исходный_пользователь> <конечный_пользователь> /y /c:имя_компьютера /k

исходный_пользователь - профиль которого мы будем перемещать;
конечный_пользователь - пользователь, который станет владельцем профиля;

Параметры:
y - если профиль у пользователя уже существует, указываем что необходимо его перезаписать;
c - указываем целевой компьютер в сети, на котором происходит перемещение;
k - если исходный пользователь является локальным на компьютере, то его учетную запись не следует удалять после перемещения.

Если работаем с доменным пользователем, необходимо указывать префикс в виде имя_домена\имя_пользователя.
При возникновении ошибок выполнения команды, убедитесь, что залогинены под пользователем, не являющимся исходным или конечным для перемещаемого профиля!

Средство переноса данных Windows для серверных платформ Windows 2008

По-умолчанию, утилита migwiz.exe (находится в Пуск -> Стандартные -> Служебные -> Средство переноса данных Windows) существует только в рабочих станциях (Vista, 7). Для серверных ОС она не предусмотрена. Но есть неофициальный способ переноса данного визарда:

1. Необходимо найти донора в виде рабочей станции. Vista подойдет для Windows Server 2008, "семерка" для Windows 2008 R2.
2. Копируем с рабочей станции папку %SystemRoot%\System32\migwiz на серверную ОС в любую директорию, но не по тому пути, где она лежала раньше!!!
3. Поскольку, при попытке запуска migwiz.exe, система выдает нам следующую ошибку, скачиваем с сайта Microsoft утилиту Application Verifier. Устанавливаем на Windows Server.


4. Запускаем Application Verifier. Выбираем File -> Add Application. Открываем migwiz.exe.
5. В настройках разворачиваем пункт Compatibility и устанавливаем галочку на HighVersionLie, через правый клик заходим в Properties.


6. Для Windows 2008 указываем следующие настройки, и нажимаем ОК.


7. Для Windows 2008 R2 следующие:


8. Сохраняем результаты изменений, закрываем утилиту и запускаем migwiz.exe. Теперь можно приступать к переносу профилей пользователей.

среда, 17 октября 2012 г.

Как удалить Microsoft Java Virtual Machine (JVM)

Поддержку своей версии Java Microsoft прекратила достаточно давно. Сейчас повсеместно используется версия от Sun Oracle. Чтобы проверить установлена ли JVM на машине, проинспектируйте наличие файла jview.exe в папке %SystemRoot%\System32 (%SystemRoot%\SysWOW64 для х64).

Удаляем JVM следующим образом:

1. Выполните следующую команду: "RunDll32 advpack.dll,LaunchINFSection java.inf,UnInstall";
2. В диалоговом окошке подтвердите удаление;
3. После завершения, перегрузите компьютер;
4. Удалите следующие файлы и директории:

%SystemRoot%\Java
%SystemRoot%\System32\wjview.exe (%SystemRoot%\SysWOW64\wjview.exe для х64)
%SystemRoot%\System32\jview.exe (%SystemRoot%\SysWOW64\jview.exe для х64)

5. В реестре удалите следующие разделы:

Для х64:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Java VM

Для х32:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\JAVA_VM
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Java VM

6. JVM удалена из вашей системы.

четверг, 11 октября 2012 г.

Использование прокси для работы пользовательских программ или системных сервисов. Активация и обновление Windows через прокси

Работа любого ПО через прокси сервера может происходить по следующим сценариям:
 1. В настройках программы разработчик позволяет указать адрес и порт прокси.
 2. Используются параметры функции автоматического поиска прокси-сервера (Web Proxy Auto Detect, WPAD), настраиваемые администраторами служб DNS, DHCP.
 3. Настройки прокси могут быть взяты программой из контекста пользователя, под которым она была запущена.
Так, если ПО запускается под обычной учетной записью, то информация берется из пользовательского профиля, а именно из настроек Internet Explorer. Например, чтобы активировать Windows через прокси, нужно установить настройки в IE, активатор сам их использует при отсутствии прямого подключения (при этом прокси сервер должен уметь прокидывать и HTTPS-трафик, информация о ключах конфиденциальна).
В случае работы сервиса, который обычно запускается под служебными пользователями и не имеет доступа к настройкам прокси-сервера определенного пользователя в IE, придется вручную изменить настройки Winhttp. Делается это в старых системах с помощью утилиты "Proxycfg.exe". В новых версиях, начиная с Windows Vista/2008, функционал был перенесен на утилиту командной строки - netsh. Синтаксис следующий:

netsh winhttp set proxy 192.168.1.1:8080

- устанавливаем прокси сервер 192.168.1.1 и порт 8080, исключая все локальные адреса;

netsh winhttp set proxy 192.168.1.1:8080 bypass-list="*.windowsupdate.com;*.microsoft.com"

- устанавливаем прокси сервер 192.168.1.1 и порт 8080, исключая домены windowsupdate.com и microsoft.com со всеми поддоменами;

netsh winhttp import proxy source=ie

- получить настройки из IE пользователя, выполняющего команду;

netsh winhttp reset proxy

- сбрасываем текущие настройки на прямой доступ;

netsh winhttp show proxy

- показать текущие настройки.

Для работы Windows Update через прокси, воспользуйтесь netsh winhttp, так как служба обновлений работает под системным пользователем.

среда, 20 июня 2012 г.

Узнаем время последнего входа пользователя в домен Windows 2003

  Данная информация хранится в одном из параметров объекта пользователей, но чтобы ее увидеть, нужно установить и зарегистрировать дополнительную библиотеку acctinfo.dll на контроллере домена командой regsvr32. Находится данная библиотека в дополнительном архиве, который называется "Account Lockout and Management Tools", скачивается с сайта Microsoft. После регистрации библиотеки, в оснастке "Active Directory Users and Computers" появится дополнительная вкладка "Additional Account Info", в которой можно увидеть необходимое нам поле - "Last Logon".
  Есть еще один способ, описанный по данному линку:http://www.denaie.ru/?p=811
Можно воспользоваться следующим VBS-скриптом для получения информации обо всех активных пользователях домена:

******************************************************************
ON ERROR RESUME NEXT
dim Target
set Target = GetObject("WinNT://домен/контроллердомена")
set fso = CreateObject("Scripting.FileSystemObject")
set file = fso.OpenTextFile("test.txt", 8, true)
rem WScript.echo Target.Name & "," & Target.Class
file.WriteLine(Target.Name & "," & Target.Class)
Target.Filter = Array("User")
for Each C in Target
rem WScript.Echo C.Name&" "&C.LastLogin
if c.accountdisabled = 0 then
file.WriteLine(C.Name & ";" & C.LastLogin )
end if
next
file.WriteBlankLines(1)
file.Close()
WScript.Echo("Downloading completed!")
******************************************************************
  Информация окажется в файле "test.txt", который будет создан в том же каталоге, откуда был запущен скрипт.

пятница, 8 июня 2012 г.

Настройка часового пояса на FreeBSD

  После установки ОС FreeBSD может возникнуть ситуация со сдвигом времени на несколько часов. Так происходит из-за некорректных настроек, заданных во время инсталляции системы.
  Существует два варианта установки времени: первый – время в BIOS установлено по Гринвичу, и система делает сдвиг от него в зависимости от выбранного часового пояса, и второй – система использует время из BIOS без сдвига, т.е. там должно быть установлено правильное время для текущего часового пояса.
  Рассмотрим настройку:

Для 1 варианта:
1. tzsetup – запускаем мастер настройки часового пояса;
2. В диалоговом окне “Select local or UTC clock” выбираем - Yes;
3. Далее выбираем свой часовой пояс(регион, страну, город);
4. В последнем диалогово окне так же выбираем – Yes;
5. Перезагружаемся.
6. Командой «sysctl machdep.wall_cmos_clock» проверяем значение переменной, оно должно быть равно 0.
7. Проверяем командой «date» текущее время в ОС.

Для 2 варианта:
1. tzsetup – запускаем мастер настройки часового пояса;
2. В диалоговом окне “Select local or UTC clock” выбираем – No;
3. Далее выбираем свой часовой пояс(регион, страну, город);
4. В последнем диалогово окне так же выбираем – Yes;
5. Перезагружаемся.
6. Командой «sysctl machdep.wall_cmos_clock» проверяем значение переменной, оно должно быть равно 1.
7. Проверяем командой «date» текущее время в ОС.

  Время при необходимости можно выставить с помощью команды «date», например установим
 8 июня 2012 года 18:35

date 201206081835.00

вторник, 8 мая 2012 г.

Управление электропитанием через групповые политики в домене Windows 2003

В AD уровня 2008 и выше появились дополнительные предпочитаемые настройки в групповой политике, которые позволяют настроить в том числе и электропитание компьютеров. Но в доменах уровня 2003 и ниже, данные функции отсутствуют. Проблему можно решить с помощью встроенной команды POWERCFG, позволяющая через консоль управлять довольно большим количеством настроек схем электропитания. Вот пример скрипта, его можно запускать при логине через GPO:

*******************************************************************
powercfg /query MYGROUP
if %errorlevel%==1 (
powercfg /create MYGROUP

)
powercfg /change MYGROUP /monitor-timeout-ac 0
powercfg /change MYGROUP /monitor-timeout-dc 0
powercfg /change MYGROUP /disk-timeout-ac 0
powercfg /change MYGROUP /disk-timeout-dc 0
powercfg /change MYGROUP /standby-timeout-ac 0
powercfg /change MYGROUP /standby-timeout-dc 0
powercfg /change MYGROUP /hibernate-timeout-ac 0
powercfg /change MYGROUP /hibernate-timeout-dc 0
powercfg /change MYGROUP /processor-throttle-ac ADAPTIVE
powercfg /change MYGROUP /processor-throttle-dc ADAPTIVE
powercfg /setactive MYGROUP

*******************************************************************

В cmd-файле мы проверяем наличие схемы электропитания с именем MYGROUP, при её отсутствии - создаем. Далее устанавливаем параметры для нашей схемы и делаем её активной. Таким образом, даже если пользователь захочет поменять настройки схемы питания, при следующем входе в систему они опять перестроятся скриптом.

понедельник, 7 мая 2012 г.

Проблемы синхронизации паролей аккаунтов компьютеров в домене Windows

В Windows AD объект "компьютер", так же как и объект "пользователь", имеет пароль, который по умолчанию изменяется каждые 30 дней по инициативе локального компьютера.
Таким образом часто возникает проблема рассинхронизации пароля локального хоста с доменом, например, когда машина долго находилась в выключенном состоянии или была восстановлена из образа или снимка.
Оказавшись в такой ситуации достаточно просто зайти под локальной учетной записью, вывести машину из домена, перегрузится, и завести заново. Но есть более простой способ: воспользоваться командой netdom, которая по умолчанию присутствует в Windows Vista/7/2008, а в XP появляется после установки Support Tools.
Команда имеет следующий формат:

netdom resetpwd /server:mydomain.local /userD:mydomain\Administrator /passwordD:*

В данном примере используется аккаунт администратора домена mydomain.local для авторизации на контроллере. Звездочка нужна чтобы не светить в командной строке пароль. Если данная команда выполнится успешно, то можно попытаться перелогиниться под доменной учетной записью и проверить работоспособность машины в домене.
Теперь о том, как можно отключить изменение паролей:
необходимая ветка реестра:
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters"

- для клиентов, отключение изменения пароля, параметр "DisablePasswordChange" нужно установить в 1,
- для клиентов, изменение времени генерации нового пароля компьютерного аккаунта в домене, параметр "MaximumPasswordAge" имеет значение, показывающее максимальный срок до смены нового пароля, по умолчанию 30 дней, меняем на нужное количество,
- для домен контроллеров, отключение изменения паролей компьютеров во всем домене, для этого создаем параметр типа REG_DWORD с именем "RefusePasswordChange" и устанавливаем его в 1. Это действие необходимо выполнить на всех контроллерах. Тогда не понадобится делать изменения на рабочих станциях.
Параметры начнут действовать после перезагрузки. Так же, если данные изменения выполняются по всей сети, то лучше произвести настройки как на домен контроллерах, так и на клиентских машинах. Это избавит сеть от генерации лишнего трафика по синхронизации. Автоматизировать внесение изменений можно как с помощью скриптов, так и  используя шаблоны групповых политик.

четверг, 26 апреля 2012 г.

Решение проблемы Microsoft Exchange: процесс store.exe забирает все свободные ресурсы процессора

Данная проблема может наблюдаться из-за нехватки виртуального адресного пространства некоторых объемных процессов, которым например является store.exe.
В ОС Windows по умолчанию для 32-битного приложения может быть отведено 4 Гб виртуального адресного пространства. Два гигабайта резервируется для ядра ОС и два – для программ пользовательского режима.
Указав ключ /3GB в файле Boot.ini операционной системы, можно изменить распределение виртуального адресного пространства, отведя программам пользовательского режима 3 Гб и ограничив количество памяти для ядра до 1 Гб. Ключ /3GB рекомендуется использовать для серверов Exchange с почтовыми ящиками и общими папками.
Для Windows Server 2003 так же необходимо использовать ключ /USERVA=3030, который предназначен для повышения уровня детализации распределения памяти между режимами пользователя и ядра. Это позволяет масштабировать сервер для обслуживания большего числа пользователей, не рискуя использовать все системные ресурсы.

пятница, 30 марта 2012 г.

Создание SPF записи для собственного почтового домена

SPF(Sender Policy Framework) - это расширение протокола SMTP, помогающее проверить достоверность домена отправителя почты. SPF позволяет владельцу домена указать в TXT записи, соответствующей имени домена, специальным образом сформированную строку, указывающую список серверов, имеющих право отправлять сообщения с обратными адресами в этом домене. Агенты передачи почты получающие почтовые сообщения могут запрашивать SPF-информацию с помощью простого запроса, верифицируя таким образом сервер отправителя.
Строка записи формируется по следующим критериям:
- в начале идет версия протокола: v=spf1;
- далее через пробел, и предваряя знаками операций, следуют элементы по которым производится проверка достоверности: a, mx, ip4 и т.д.;
- в конце обычно строка завершается элементом all, означающим все остальные узлы, не перечисленные ранее.

Операции могут быть следующего типа:
+ - запись говорит, что от данных хостов почту следует принять;
- - "строгое отрицание", запрещает принимать почту от данных хостов;
~ - "мягкое отрицание", почта может быть принята на ваше усмотрение;
? - запись ничего не может сказать о валидности данного отправителя, обычно используется в тестовых целях.
Отсутствие оператора перед элементом означает "+" !!!

Разновидности элементов:
all - все узлы;
ip4:x - хост с адрессом "x" по протоколу ipv4;
ip4:x/y - подсеть "x" с маской "y";
ip6:x - хост с адрессом
"x" по протоколу ipv6;
ip6:x/y - подсеть "x" с маской "y";
a - поиск совпадения записи в DNS типа A с доменом отправителя;

a/y - тоже самое, но сюда входит и вся подсеть хоста с заданной маской "y";
a:x - тоже самое, но можно указать иной домен "x";
a:x/y - явное указание домена "x" и длины маски "y";
mx - аналогично, только производится поиск по типу записи MX в домене отправителя(сюда же можно отнести: mx/y; mx:x; mx:x/y;
ptr - проверка записи в реверсивной зоне, совпадает ли ip отправителя с доменом, которым он представляется;
ptr:x - тоже самое, но можно явно указать домен "x" для проверки на реверсивную запись;
exists:x - запрос A записи домена "x", проверка на существование, сама запись не обязательна должна совпадать с адресом сервера отправителя;
include:x - поиск другой SPF записи в указанном домене "x", её отсутствие не критично.

Небольшой пример: "v=spf1 a/24 a:offsite.example.com/24 -all"
Пояснение: Если отправитель представился пользователем домена example.com(например admin@example.com), то его письмо будет принято лишь в том случае, если сервер, отправляющий сообщение, находится в одной подсети(маска 255.255.255.0) с хостом, имеющим запись "same as parent folder"типа A в зоне example.com ИЛИ в одной подсети с хостом, имеющим запись "same as parent folder"типа A в зоне offsite.example.com.

среда, 28 марта 2012 г.

Проблема расширения раздела NTFS с помощью оснастки управления дисками

Заключается в том, что после процедуры расширения(expand) тома с помощью оснастки управления дисками(diskmgmt.msc), файловая система NTFS по прежнему работает с диском старой емкости, т.е. в свойствах тома или через chkdsk мы видим прежний объем, хотя в оснастке система отображает расширенный том. Так же команда list partition утилиты diskpart отображает новый размер. При этом фактически для системы ничего не изменилось, она не может пользоваться расширенным пространством. Данная проблема возникает, когда драйвер файловой системы NTFS исчерпывает свои ресурсы при попытки расширить том.
Чтобы избавиться от данной ошибки, нужно воспользоваться все той же diskpart. С помощью команд list и select идентифицировать и установить фокус на нужный раздел. Далее выполнить команду утилиты: extend filesystem. Выполнить exit и проверить свойства тома. Если размеры тома корректны - проблема решена.

вторник, 27 марта 2012 г.

Подготовка образа Windows XP/2003 перед клонированием

Для быстрого тиражирования рабочих станций, удобно пользоваться клонированием готовых инсталлированных машин, имеющих в своем составе весь необходимый набор ПО. Для этих целей будут незаменимы WDS, Acronis, Norton Ghost и т.д. Но, чтобы не столкнуться с дублированием метаданных (например SID - могут возникать проблемы в доменной структуре), необходимо произвести подготовку(запечатывание) образа с помощью утилиты sysprep.
В отличии от линеек Vista/7/2008/2008R2, данная программа не встроена в систему, а лежит отдельно на дистрибутиве, в Support\Tools. Последовательность действий такова:
1. Распаковываем файлы из архива DEPLOY.CAB в папку C:\Sysprep.
2. Запускаем setupmgr.exe - мастер генерации файла ответов, необходим для создания inf-файла.
3. Выбираем Create new - создание нового файла.
4. Далее Sysprep setup - файл ответов для нашего случая.
5. Выбираем версию ОС.
6. С помощью мастера заполняем необходимые поля и сохраняем полученный файл в каталоге C:\Sysprep под именем Sysprep.inf.
7. Удаляем из каталога C:\Sysprep все файлы кроме: Sysprep.inf, Sysprep.exe, Setupcl.exe.
8. Теперь необходимо проверить(ВАЖНО!!!) наличие файла $winnt$.inf в каталоге %windir%\system32, и удалить его в случае присутствия. Если этого не сделать, то данные файла ответов могут не попасть в систему, а точнее в этот самый файл!!!
9. Далее запускаем Sysprep.exe и выбираем Reseal(Запечатать). В этом окне также можно отметить Use Mini-Setup и выбрать действие после выполнения процедуры: Shutdown Mode.
10. Компьютер подготовлен для изготовления образа. Создавать слепок нужно аккуратно, не загружаясь в запечатанную ОС, иначе придется повторять процедуру.

четверг, 22 марта 2012 г.

Удаление файлов определенного срока давности консольной командой FORFILES

Иногда можно столкнуться с задачей очистки диска от устаревших бэкапов, архивов или логов. В этом нам сможет помочь консольная утилита forfiles. Пример использования:

forfiles /p "c:\mylogs" /s /m *.* /d -30 /c "cmd /c del /q /f @file"

Вместо c:\mylogs нужно подставить свой путь к файлам. Возраст файлов в примере 30 дней (параметр /d), можно задать любое значение. Используя, например, маску /m *.log, можно удалять файлы только с расширением log, и тп. За рекурсивное удаление (во вложенных папках) отвечает параметр /s. Данную команду удобно использовать в пакетных файлах.

вторник, 20 марта 2012 г.

Восстановление активного каталога: принудительное и непринудительное

Чтобы выполнить любое восстановление службы каталогов, необходимо перезагрузить контроллер домена в режиме Directory Services Restore Mode, т.е. режим восстановления службы каталога. При такой работе не стартуют службы домена, что дает возможность перезаписывать файлы данных AD. Зайти в режим можно удерживая F8 при загрузке контроллера и выбрав соответствующий пункт. Затем необходимо локально авторизоваться на сервере, используя единственную встроенную запись администратора, пароль на которую задается во время инсталляции службы каталога, и который можно сменить через ntdsutil.
Для восстановления нужно иметь SystemState бэкап или полный бэкап системного диска, все зависит от степени повреждений.
Различают принудительное и непринудительное восстановление служб каталога.
Для непринудительного, достаточно после окончания восстановления перегрузиться в нормальном режиме работы, и подождать пока новая информация отреплицируется с работающих контроллеров домена. Обычно применяется при использовании одного контроллера либо контроллера домена, несущего на себе доменные роли, так же являющимся единственным глобальным каталогом в лесу.
Принудительное восстановление используется обычно в случае, когда некоторые объекты были удалены из AD и восстановление их другими способами неприемлемы. В отличии от непринудительного восстановления, мы сразу не загружаемся в нормальном рабочем режиме, а запускаем ntdsutil. Нас будет интересовать раздел authotitative restore. Используя команды restore object и restore subtree, мы сможем помечать соответственно объекты, контейнеры и подразделения для принудительного восстановления, что предотвратит затирание данных при репликации с рабочих контроллеров. Кроме того восстановленные объекты будут реплицированы по всему домену и лесу с нашего сервера.

Используем переменные текущей даты и времени в пакетных файлах

Иногда в пакетных файлах бывает неудобно использовать встроенные системные переменные DATE и TIME, например когда нужно именовать созданный файл или директорию в формате YYYYMMDD_hhmmss. Можно воспользоваться следующей конструкцией:

set now=%TIME:~0,-3%
set now=%now::=%
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%_%now%


1. %TIME:~0,-3%
 Сначала убираем лишних три символа в конце переменной: 12:23:45,34 -> 12:23:45
2. set now=%now::=%
 Затем двоеточия между цифрами:  12:23:45 -> 122345
3. set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%_%now%
 Окончательно выстраиваем нужную переменную: 20120323_122345
где
 %DATE:~-4% - 2012,
 %DATE:~3,2% - 03,
 %DATE:~0,2% - 23,
 %now% - 122345.

пятница, 16 марта 2012 г.

Использование корзины Active Directory в Windows 2008 R2

В Windows Server 2008 R2 появилась новая особенность - корзина Active Directory(Active Directory Recycle Bin). Корзина представляет собой возможность полного восстановления недавно удаленного объекта из каталога. Ранее при восстановлении, объект терял практически все свои атрибуты, оставляя только самые критические, например SID. Теперь же список атрибутов восстанавливается полностью. Функция Корзины Active Directory доступна только в режиме работы леса и домена Windows Server 2008 R2 и по умолчанию  она выключена. Включив эту функцию вы так же не сможете её отключить и следовательно при необходимости понизить уровень домена с Windows Server 2008 R2 до Windows Server 2008.
Для включения корзины нужно проделать следующее:
Запускаем Ldp.exe. Затем нажимаем Connection->Connect, выбираем имя контроллера домена и порт. Затем нажимаем View->Tree, в BaseDN выбираем CN=Configuration,DC=mycompany,DC=com. Раскрываем CN=Configuration, переходим к CN=Partitions..., нажимаем правой кнопкой по CN=Partitions… и выбираем Modify. Очищаем поле DN, в строке Attribute пишем: enableOptionalFeature, в строке Values пишем CN=Partitions,CN=Configuration,DC=mycompany,DC=com:766ddcd8-acd0-445e-f3b9-a7f9b6744f2a, выбираем Add и нажимаем Enter и потом Run. Число 766ddcd8-acd0-445e-f3b9-a7f9b6744f2a является GUID-ом корзины и оно одинаково для любого домена.
После добавления, для восстановления пользователей можно использовать как тот же Ldp.exe,так и язык PowerShell, что гораздо удобнее.
Для того, чтобы найти объекты, используется командлет Get-ADObject. Чтобы он искал и удалённые объекты, нужно использовать ключ -IncludeDeletedObjects. А для восстановления объектов используется командлет Restore-ADObject. Когда необходимо восстановить объект, или тем более несколько объектов, удобнее всего использовать перенаправление (pipeline) вывода командлета Get-ADObject на вход командлета Restore-ADObject:

Get-ADObject -Filter {sAMAccountName -eq "myuser"} -IncludeDeletedObjects | Restore-ADObject

Здесь задан фильтр, для указания что нужно восстановить только объект, который имеет атрибут sAMAccountName: myuser. Данной строчки достаточно чтобы восстановить удаленный объект.

Восcтановление случайно удаленных объектов Active Directory

При удалении пользователей или компьютеров из активного каталога на самом деле они просто помечаются как "объекты-памятники" (tombstone) и перемещаются в скрытый раздел. При этом у объектов удаляется большая часть атрибутов. Поэтому после восстановления необходимо заново задать аккаунту пароль, включить его и восстановить руками членство в необходимых группах, а так же заполнить ряд дополнительной описательной информации(адреса,телефоны и тп). Окончательно из AD объекты удаляются по истечении атрибута Tombstone Lifetime, который по умолчанию составляет 60 дней(Microsoft рекомендует 120).
Значение этого атрибута может быть изменено с использованием ADSIEdit. Перейдите к CN=Directory Service,CN=WindowsNT,CN=Services,CN=Configuration,DC=mycompany,DC=com (заменив DC=mycompany,DC=com на данные вашего домена). Кликните правой кнопкой мыши на контейнере CN=Directory Service и выберите Properties. Найдите Tombstone Lifetime в списке атрибутов, нажмите кнопку Edit и введите количество дней, необходимое для хранения удаленных объектов.
 Для восстановление нам понадобятся права администратора домена и утилита ldp.exe, которая, при отсутствии, устанавливается вместе с Support Tools. Запустив ldp.exe, выбираем из меню Connections команду Connect. В появившемся окне указываем имя контроллера домена и порт LDAP, по умолчанию – 389. Далее выбрав из того же меню Connections команду Bind, авторизуемся на контроллере.Тут возможны варианты: под текущим пользователем или можно задать другого пользователя и пароль. Далее, необходимо разрешить отображение скрытого каталога Deleted Objects, для этого в меню Options выбираем команду Controls. В открывшемся окне в поле Load Predefined из выпадающего списка выбираем Return deleted objects. Далее выбираем в меню View пункт Tree, для отображения дерева контейнеров в левой панели. В окне Tree view  в поле BaseDN выбираем корень леса, например DC=mycompany,DC=com.
Дважды щелкнув на корне дерева получаем список контейнеров, в котором ищем контейнер CN=Deleted Objects,DC=mycompany,DC=com. Раскрываем контейнер и находим в нем удаленный объект, который необходимо восстановить. К примеру удаленного пользователя звали myuser:

CN=myuserADEL:41057e80-84fd-4c96-8e54-26886519b6e8,CN=Deleted Objects,DC=mycompany,DC=com

Далее выделяем объект в левой панели. Правым кликом вызываем контекстное меню, выбираем в нем пункт Modify. В разделе Edit Entry, в поле Attribute вводим isDeleted, в панели Operation  выбираем Delete, затем жмем Enter. В результате в поле Entry List появляется строка [Delete]isDeleted. Далее, не предпринимая действий по применению внесенных изменений меняем distiguishedName. Для этого:
- В разделе Edit Entry, в поле Attribute вводим имя атрибута, т.е. distiguishedName,
- В разделе Edit Entry, в поле Values вводим значение атрибута lastKnownParent, которое берем в правой панели, в списке атрибутов объекта. В нашем случае OU=MyOU,DC=mycompany,DC=com, где MyOU - подразделение в котором находился удаленный пользователь,
- В самом начале значения добавляем имя объекта: CN=myuser,
- В итоге получаем значение атрибута CN=myuser,OU=MyOU,DC=mycompany,DC=com,
- В разделе Operation, выбираем  Replace, жмем кнопку Enter.
В поле Entry List появляется вторая строка, со значением: [Replace]distinguishedName:CN=myuser,OU=MyOU,DC=mycompany,DC=com.
Далее, убедившись, что выбраны флаги Synchronous и Extended, нажимаем кнопку Run.
Анализируем правую панель окна на наличие ошибок. Если все прошло успешно, в подразделении MyOU появится наш ранее удаленный пользователь myuser в отключенном состоянии.

вторник, 6 марта 2012 г.

Дефрагментация базы Active Directory

База данных AD представляет из себя набор файлов, находящихся в каталоге NTDS (по умолчанию находится в папке WINDOWS). Существует два вида дефрагментации данной базы: онлайн - выполняется во время работы службы собственными механизмами, оффлайн - производится в ручном режиме утилитой ntdsutil. Данная процедура позволяет уменьшить размер файла базы данных и ускорить ее работу. Последовательность выполнения следующая:
1. Останавливаем службу Active Directory Domain Services (Win2008 и более поздние) или перегружаемся в Directory Services Restore Mode (Win2003 и более ранние).
2. Запускаем ntdsutil в окошке командного процессора cmd.
3. Для Win2008 выполняем: activate instance ntds.
4. Вводим file, переходим в режим file maintenance.
5. Вводим info, идем по указанному пути к файлу ntds.dit и делаем его резервную копию. Понадобится в случае неудачного исхода дефрагментации.
6. Выполняем compact to c:\ad , где c:\ad - путь где будет создан дефрагментированый файл ntds.dit.
7. Заменяем полученным файлом исходный.
8. Удаляем в каталоге NTDS два файла с расширением log (это будет подсказывать утилита).
9. Запускаем сервис в случае Windows 2008, или загружаемся в полноценном режиме.
10. Проверяем работоспособность и удаляем резервные копии файлов ntds.dit.
Перед началом работ желательно сделать бэкап system state сервера.

пятница, 24 февраля 2012 г.

Переустановка пароля встроенного администратора для режима восстановления службы каталогов

Для данной задачи воспользуемся утилитой командной строки ntdsutil :
1. Набираем команду: set dsrm password
2. Далее в приглашении вводим: reset password on server DC1 (где DC1 - имя контроллера домена, на котором изменяем пароль).
3. Вводим новый пароль, затем еще раз подтверждаем его.

Удобный скрипт для использования удаленного помощника в Windows Vista/7/2008

Для удобства использования можно создать следующий cmd-скрипт:
**********************************************************
@echo off
set /P rcomp="Input name of remote pc: "
start msra /offerRA %rcomp%
**********************************************************
Данный батник при запуске запрашивает адрес удаленной машины. Далее происходит запуск удаленного помощника в режиме принудительного подключения без запроса пользователя.

Решение проблемы доступа к сетевым ресурсам при включении контроля учетных записей пользователей в Windows Vista/7/2008

Проблема может проявится в неприменении групповых политик, связанных с подключением сетевого диска. Для решения следует выставить параметр реестра EnableLinkedConnections типа DWORD, находящийся в ветке "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", в "1".

четверг, 2 февраля 2012 г.

Узнаем время последней перезагрузки ОС Windows или время установки

Достаточно выполнить команду в cmd: "net statistics workstation"
Смотрим на время в строке "Статистика после".  Это и есть время с последней загрузки ОС.

Чтобы узнать дату и время установки данной копии Windows, там же выполняем команду systeminfo. Смотрим в строке "Дата установки" (начиная с Windows Vista, там же можно узнать и время последней загрузки системы в следующей строке "Время загрузки системы").

среда, 4 января 2012 г.

Откат IE9 на более раннюю версию

1 способ: Открываем панель управления -> Программы и компоненты -> Просмотр установленных обновлений. Ищем Windows Internet Explorer 9 и нажимаем "Удалить". Если в списке присутствует так же Internet Explorer 9 ru-RU Language Pack, то он удалится самостоятельно.
2 способ (если в списке отсутствует IE9): Нужно запустить cmd от имени Администратора и выполнить следующую строку: "FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*9.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /norestart"". Игнорируйте ошибки при выполнении. Дождитесь окончания работы и выполните строку еще раз. Перегрузите компьютер.