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

Изменение порта по умолчанию с 8530 на 80 для WSUS сервера Windows 2008R2/2012/2012R2

Начиная с версии 3.0 WSUS сервера Microsoft сделала порт 8530 по умолчанию портом для обслуживания клиентов. Чтобы это изменить (например переключиться на 80), пройдите следующие шаги:

1. Выполните команду "inetmgr" из под администратора, чтобы войти в консоль управления IIS.
2. Выберите "Default Web Site". Отключите, удалите или перенесите его на другой порт, отличный от 80.
3. Затем перейдите к сайту "WSUS Administration". Кликните на нём правой кнопкой и выберите "Edit bindings...", поменяйте порт "http" с 8530 на 80.


4. Откройте ветку реестра "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup" и поменяйте значение параметра "Port Number", соответственно, на 80.
5. Если у вас ОС Windows 2012 и выше, достаточно просто перегрузить сервер. В противном случае выполните дополнительный шаг до перезагрузки:
6. Откройте командную строку из под администратора, перейдите в каталог WSUS сервиса, в папку "Setup" (при установке по умолчанию это: "C:\Program Files\Update Services\setup"), и выполните скрипт "cscript installselfupdateonport80.vbs".

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

Включение функций копирования и вставки текста через буфер обмена при работе с консолью VMware vSphere Client

По умолчанию данный функционал отключен в целях безопасности, но его можно задействовать несколькими способами:

1. Включение на уровне ESXi хоста:
Через консоль или SSH добавляем следующие строки в конец файла "/etc/vmware/config":

isolation.tools.copy.disable="FALSE"
isolation.tools.paste.disable="FALSE"

2. Включение на уровне виртуальной машины:
Заходим в свойства выбранной виртуалки, переходим во вкладку "Options", затем в "Advanced","General". Нажимаем "Configuration Parameters..." и вносим два параметра: "isolation.tools.copy.disable" и "isolation.tools.paste.disable" со значением "false".

 
Использовать можно любой из вариантов. Все зависит от политики безопасности вашей организации. В первом случае буфер заработает на всех виртуалках настраиваемого гипервизора, во втором - на конкретной машине. Чтобы изменения вступили в силу, необходимо выключить и включить виртуалку или выполнить vMotion. Стоит отметить, что буфер будет работать только для текстовой информации, но не для файлов, изображений и т.п. Более подробно о проблеме и решении можно прочитать в VMware Knowledge Base.

Если вы администрируете виртуальную среду большого объема, применить настройки вам поможет скрипт PowerCLI:


$NewExtraOptions = @{
   "isolation.tools.copy.disable"="false";
   "isolation.tools.paste.disable"="false";
}
$VMConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec 
foreach ($Option in $NewExtraOptions.GetEnumerator())
{
   $OptionValue = New-Object VMware.Vim.OptionValue
   $OptionValue.Key = $Option.Key
   $OptionValue.Value = $Option.Value
   $VMConfigSpec.ExtraConfig += $OptionValue
}
$VMs = Get-View -ViewType VirtualMachine -Property Name -Filter @{"Config.Template"="false"} | where {$_.name -like "*"}
foreach($VM in $VMs)
{
   $VM.ReconfigVM_Task($VMConfigSpec)
}


В строке с элементом "where {$_.name -like "*"}" вместо звёздочки задаётся фильтр по имени виртуальных компьютеров, согласно которому будут применяться параметры.
Данный скрипт можно без опасений выполнять повторно по планировщику, чтобы настраивать недавно созданные машины в виртуальных центрах.

Проблемы отсутствия в консоли WSUS клонированных или установленных из образа Windows XP/2003 систем

Данная проблема происходит из-за того, что при выполнении sysprep ОС Windows старших поколений (до Vista/2008) значение SusClientId не удаляется. Соответственно ID не может быть сгенерирован заново из уже обновленного SID, что приводит к дублированию идентификаторов и некорректной работе ОС с сервером WSUS.

Для решения проблемы следует использовать данный cmd-скрипт:


net stop wuauserv
rd /S /Q %WinDir%\SoftwareDistribution
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIDValidation /f
net start wuauserv
wuauclt /resetauthorization /detectnow


Чтобы в дальнейшем исключить проблему дублирования SusClientId, создаём текстовый файл Sysprep.inf в каталоге с Sysprep.exe (команды будут выполняться при распаковке образа) следующего содержания:


[GuiRunOnce]
Command0="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f"
Command1="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f"
Command2="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f"
Command3="reg.exe delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientIDValidation /f"


Для поиска и исправления проблемных компьютеров в домене можно использовать следующий скрипт:


@echo off
setlocal ENABLEEXTENSIONS
set KEY_NAME=HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate
set VALUE_NAME=SusClientId
for /F "usebackq tokens=3" %%A IN (`reg query "%KEY_NAME%" /v "%VALUE_NAME%" 2^>nul ^| find "%VALUE_NAME%"`) do (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca51" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca52" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca53" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca54" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca55" (
if not "%%A"=="30dd6c6d-b444-4b98-802b-0d35a28bca56" (
exit
))))))
net stop wuauserv
rd /S /Q %WinDir%\SoftwareDistribution
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientIDValidation /f
net start wuauserv
wuauclt /resetauthorization /detectnow
)


В нём необходимо перечислить ваши дублирующиеся SusClientId и установить на выполнение в автозагрузку групповыми политиками домена.

среда, 27 ноября 2013 г.

Проблема при запуске виртуальной машины на последней версии VMware Workstation: This virtual machine's policies are too old to be run by this version of VMware Workstation

При открытии в обновленной версии VMware Workstation старых виртуальных машин может возникнуть следующая ошибка:


Для решения данной проблемы достаточно отредактировать .vmx файл виртуалки.
Удалите строки:

policy.vm.mvmtid = "52 b5 eb 58 4c 32 cd ec-fb 5f 46 a1 ab 8a 17 78"
policy.vm.managedVMTemplate = "TRUE"
policy.vm.managedVM = "FALSE"


Затем найдите в той же папке файл с расширением .vmpl и переименуйте его в .vmpl.bak.
Более подробно о проблеме можно узнать из Knowledge Base.

среда, 20 ноября 2013 г.

Сброс счётчика rearm на ОС Windows Vista/7/2008/2008R2

Продолжительность работы Windows Vista и выше без активации составляет 30 суток. Если данного периода не хватает, командой "slmgr.vbs /rearm" можно до 4 раз сбросить счётчик и таким образом получить около 120 суток времени работы. Счётчик уменьшается и в случае выполнения sysprep-а системы.
При острой необходимости продления триального периода, количество попыток сброса можно увеличить до первоначального значения без переустановки ОС. Для этого:

1. Создаем в корне системного диска текстовый файл, называем его "delwpa.bat".
2. Открываем файл на редактирование и заносим туда следующие строки:

reg load HKLM\MY_SYSTEM "%~dp0Windows\System32\config\system"
reg delete HKLM\MY_SYSTEM\WPA /f
reg unload HKLM\MY_SYSTEM


3. Сохраняемся и перегружаемся в режиме устранения неполадок компьютера. В данный режим можно зайти, нажав сразу после BIOS клавишу "F8".


Если у вас пункт "Устранение неполадок компьютера" отсутствует, загрузитесь с инсталляционного диска и выберите режим восстановления.
4. Далее понадобится  выбрать раскладку клавиатуры и ввести данные локального администратора для доступа к системе.

 
5. Когда окажемся в командной строке, переключаемся на системный диск с установленной Windows (для Vista/2008 это будет C:, для 7/2008R2 - D:) и выполняем наш скрипт: "delwpa.bat".


6. После успешного отрабатывания bat-ника загружаемся в обычном режиме и используем "slmgr.vbs /rearm".
По завершению финальной перезагрузки можно проверить информацию о лицензии и состояние счётчика rearm командой "slmgr.vbs /dlv".

вторник, 19 ноября 2013 г.

Использование логических операций И ИЛИ (AND OR) в скриптах командного процессора CMD

При написании bat-ников часто появляется необходимость использовать логические операции И и ИЛИ в условиях IF и т.д. К сожалению, разработчики не заложили такой синтаксис в командный процессор. Но данный функционал можно успешно заменить следующими наборами команд:

1. Логическое И (AND):

IF a&&b&&c


@echo off
set a="1"
set b="1"
set c="0"
echo %a%
echo %b%
echo %c%
if %a%=="1" (
if %b%=="1" (
if %c%=="1" (
echo "TRUE a&&b&&c"
goto END
)))
echo "FALSE a&&b&&c"
:END
pause


2. Логическое ИЛИ (OR):

IF a||b||c


@echo off
set a="0"
set b="0"
set c="1"
echo %a%
echo %b%
echo %c%
if not %a%=="1" (
if not %b%=="1" (
if not %c%=="1" (
echo "FALSE a||b||c"
goto END
)))
echo "TRUE a||b||c"
:END
pause


В зависимости от заданных в начале значений переменных "a","b" и "c" вы будете попадать в блоки "TRUE" или "FALSE" в соответствии с выполнением той или иной логической операции.

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

SYSPREP прекращает свою работу с неустранимой ошибкой на ОС Windows Vista/2008 и выше

Если вы подготовили образ операционной системы, запустили sysprep и получили данное окно с ошибкой, действуйте следующим образом:


Проверьте лог-файл setuperr.log, который находится в папке "%windir%\System32\sysprep\Panther". В случае обнаружения похожих строк,

[0x0f0073] SYSPRP RunExternalDlls:Not running DLLs; either the machine is in an invalid state or we couldn't update the recorded state, dwRet = 31
[0x0f00ae] SYSPRP WinMain:Hit failure while processing sysprep cleanup external providers; hr = 0x8007001f

откройте реестр и проверьте следующие параметры ключа "HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus\":

CleanupState должен быть равен 2,
GeneralizationState должен быть равен 7.

Если значения другие, исправьте их и запустите sysprep.

В ином случае, если вы слишком часто (более 4 раз) запускали скрипт Windows Software Licensing Rearm (slmgr.vbs /rearm) для сброса триального периода, сможете увидеть следующие строки в setuperr.log:

[0x0f0082] SYSPRP LaunchDll:Failure occurred while executing 'C:\Windows\System32\slc.dll,SLReArmWindows', returned error code -1073425657
[0x0f0070] SYSPRP RunExternalDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = -1073425657
[0x0f00a8] SYSPRP WinMain:Hit failure while processing sysprep generalize internal providers; hr = 0xc004d307

Сброс "Rearm" также автоматически производится при выполнении sysprep. Поэтому, если вы используете единый эталонный образ, постоянно раскрываете его для обновлений, а затем заново делаете sysprep, Microsoft рекомендует задействовать файл ответов Unattend.xml примерно следующего содержания:


<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="generalize">
<component name="Microsoft-Windows-Security-Licensing-SLC" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SkipRearm>1</SkipRearm>
</component>
</settings>
</unattend>

Файл подкладывается в папку с sysprep.exe. Это позволит исключить выполнение Windows Software Licensing Rearm при использовании sysprep. Если целевая ОС 32-битная, значение параметра "processorArchitecture" должно быть установлено в "x86".
Для ОС Windows 7/2008R2 и выше можно обойтись без файла ответов. Достаточно изменить значение параметра SkipRearm с 0 на 1 в ветке реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SoftwhereProtectionPlatform\

После распаковки образа данный параметр автоматически установится в 0.

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

svchost.exe загружает процессор на 100% во время подключения к серверу обновлений Windows

Отключение сервиса "Автоматическое обновление" поможет убедиться наверняка в том, что проблема связана именно с сервером обновлений, а не с наличием в системе вредоносного ПО и т.п.
Если svchost.exe перестал забирать 100% времени у ядра процессора, то переходим по данной ссылке и устанавливаем накопительное обновление безопасности для Internet Explorer (KB2888505) в соответствии с используемой операционной системой и версией браузера. Этот патч должен решить проблему некорректного поведения процесса.

Шлюз по умолчанию пропадает после перезагрузки в Windows Vista/2008 и выше

В случае возникновения подобной проблемы, нужно зайти в реестр по пути "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Para
meters\Interfaces\\"
и отредактировать соответствующие ключи:

Параметр DefaultGateway типа REG_MULTI_SZ может иметь лишнюю пустую запись:


В этом случае нужно её удалить:


Тоже самое, при необходимости, сделайте с параметром DefaultGatewayMetric.
Если данные параметры совсем отсутствуют, создайте их заново.

Чтобы в дальнейшем избежать подобных ошибок, рекомендуется установить следующий hotfix.

вторник, 17 сентября 2013 г.

Создание стенда в виртуальной среде VMware vSphere 5.1 и выше, установка ESXi на ESXi (nested)

Иногда появляется необходимость отработать настройки виртуальной среды VMware перед внедрением в эксплуатацию. Для таких целей может понадобится стенд из нескольких серверов ESXi и машины для SSO, vCenter Server и другой обвязки. Но что делать, если мы не имеем дополнительного железа в нужном количестве? Можно использовать уже готовую виртуальную среду, освободив или разгрузив один из ESXi серверов.

Порядок действий по созданию стенда следующий:
1. Выделяем сервер с установленным ESXi.
2. Создаем виртуальный коммутатор(vSwitch) для нашей среды и переводим его в Promiscuous Mode (Accept), иначе гостевые гипервизоры не смогут корректно работать с сетью.
3. Заходим на консоль ESXi или подключаемся по SSH, выполняем следующую команду, которая допишит строку в конфигурационный файл config:

echo 'vhv.allow = "TRUE"' >> /etc/vmware/config

и перегружаем управляющий сервис для применения настроек:

/etc/init.d/hostd restart

/etc/init.d/vpxa restart

4. Установленные гостевые гипервизоры клонировать нельзя, поэтому создадим шаблон чистой виртуальной машины, чтобы каждый раз не проходилось повторять следующие настройки:

- создаем виртуалку из шаблона Red Hat Enterprise Linux 5 (64-bit);


- выбираем минимум 2 процессора;
- минимум 2Гб оперативной памяти;
- все остальное можно оставить по-умолчанию;
- сразу после создания машину не включаем, заходим в свойства(Edit Settings...);
- переходим во вкладку Options;
- поле General Options, изменяем Guest Operation System на VMware ESXi 5.x (experimental);


- в поле CPU/MMU Virtualization установите переключатель в нижнее положение, согласно рисунку;


- повышаем версию "виртуального железа" до 9-ой минимум: в контекстном меню выбираем пункт Upgrade Virtual Hardware и подтверждаем операцию в диалоговом окне (виртуальная машина должна быть выключена);


- также необходимо сделать дополнительно одну настройку с помощью Web-клиента, так как в классической версии она недоступна: открываем свойства CPU (Edit Settings...->Virtual Hardware->CPU->Hardware virtualization) и устанавливаем галку Expose hardware assisted virtualization to the guest OS (без данной опции 64-битные гипервизоры могут отказаться работать);


- с помощью сторонних утилит (например "WinSCP") понадобится отредактировать .vmx файл, добавив туда строку:

 vhv.enable = "TRUE"

- сохранив сделанные настройки, используем данную машину в качестве шаблона при последующей установке гипервизора с iso-образа или сети.

5. Для того чтобы заработал Fault Tolerance необходимо в настройках виртуальных гипервизоров установить параметр Migrate.VMotionStreamDisable в единицу. Делается это в Configuration->Software->Advenced Settings.


Кроме того, в конфигурации виртуалки (Edit Settings->Options->Advanced->General->Configurations Parameters), которую будем переводить в режим FT, делаем следующие изменения:

replay.supported = "true"
replay.allowFT = "true"
replay.allowBTOnly = "true"


четверг, 29 августа 2013 г.

Как удалить iSCSI Software Adapter из VMware ESXi сервера

Если перейти во вкладку "Configuration->Storage Adapters" и попытаться удалить iSCSI Software Adapter через команду контекстного меню "Remove", данный пункт окажется недоступен.
Решается вопрос следующим образом:

1. В том же меню вместо "Remove" выбираем "Properties".
2. В открывшемся окне на вкладке "General" жмем кнопку "Configure".
3. В поле "Status" снимаем галку "Enabled".
4. Для применения настройки необходимо перезагрузить гипервизор.


В том случае, если загрузка самого гипервизора настроена по iSCSI, после перезагрузки сервера адаптер будет автоматически включен обратно.

понедельник, 19 августа 2013 г.

Скрипт командной строки CMD с ветвлением по версии выпуска ОС Windows

Ниже приведен пример единого cmd-скрипта, который позволяет выполнять для каждой версии операционной системы Microsoft Windows соответствующий ей набор консольных команд:


@echo off
setlocal
for /f %%v in ('wmic os get version /value^|find "Version"') do set %%v
set version=%Version:~0,3%
if "%version%"=="6.2" (
rem Код для Windows 8 или Windows 2012


rem Конец кода
goto END
)
if "%version%"=="6.1" (
rem Код для Windows 7 или Windows 2008 R2


rem Конец кода
goto END
)
if "%version%"=="6.0" (
rem Код для Windows Vista или Windows 2008


rem Конец кода
goto END
)
if "%version%"=="5.2" (
rem Код для Windows 2003


rem Конец кода
goto END
)
if "%version%"=="5.1" (
rem Код для Windows XP


rem Конец кода
goto END
)
if "%version%"=="5.0" (
rem Код для Windows 2000


rem Конец кода
goto END
)
:END


Определение ОС осуществляется благодаря запросу WMI. В связи с этим для старых систем понадобится дополнительно установить  данные службы и проверить работоспособность утилиты "wmic".

Второй вариант скрипта не нуждается в WMI, а для определения версии использует утилиту командной строки "ver":


@echo off
ver|find "5.0.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 2000


rem Конец кода
goto END
)
ver|find "5.1.">NUL
if NOT errorlevel == 1 (
rem Код для Windows XP


rem Конец кода
goto END
)
ver|find "5.2.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 2003


rem Конец кода
goto END
)
ver|find "6.0.">NUL
if NOT errorlevel == 1 (
rem Код для Windows Vista или Windows 2008


rem Конец кода
goto END
)
ver|find "6.1.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 7 или Windows 2008 R2


rem Конец кода
goto END
)
ver|find "6.2.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 8 или Windows 2012


rem Конец кода
goto END
)
:END


четверг, 15 августа 2013 г.

Создание собственного правила для фаервола VMware ESXi 5

По умолчанию в гипервизоре ESXi находится ряд общих правил встроенного фаервола, удовлетворяющих заложенному разработчиком функционалу. Но иногда, при установке собственными силами дополнительных демонов, появляется необходимость в открытии нестандартных портов.
Чтобы это сделать, нужно создать собственный файл формата VIB и инсталлировать его на гипервизор. Ниже приведена пошаговая инструкция по созданию и внедрению собственного vib-файла:

1. Для начала нам понадобится доступ к командной строке ESXi, через консоль или SSH.

2. Логинимся под root-ом и переходим в каталог где лежат конфигурационные файлы фаервола:

cd /etc/vmware/firewall

3. Тут в качестве примера можно посмотреть xml-файлы с готовыми правилами. Файл service.xml содержит в себе большой список стандартных правил гипервизора.

less service.xml

Для выхода из режима просмотра нажмите "q".

4. Теперь мы знаем как написать файл с необходимым нам правилом, для примера возьмем правило, которое будет пропускать исходящий трафик гипервизора на удаленный порт 5000 по протоколу TCP.

5. Следующем шагом будет установка ESXi Community Packaging Tools, которые можно скачать тут: http://www.v-front.de/p/esxi5-community-packaging-tools.html

6. Запускаем установщик на своем компьютере и указываем папку, например "D:\vmware"


7. Переходим в каталог: "D:\vmware\ESXi5-CPT-v2.1" и создаем в ней папку "stage" и папку "output".

8. Заходим в "stage" и создаем тут структуру каталогов, подобную гипервизору. Должно получится так: "D:\vmware\ESXi5-CPT-v2.1\stage\etc\vmware\firewall"

9. В последней папке создаем текстовый файл "MyRule.xml" и вносим следующие данные:


<ConfigRoot>
  <service>
      <id>MyRule</id>
      <rule id="0000">
          <direction>outbound</direction>
          <protocol>tcp</protocol>
          <porttype>dst</porttype>
          <port>5000</port>
      </rule>
      <enabled>false</enabled>
      <required>false</required>
  </service>
</ConfigRoot>


10. Подготовительные работы закончены. Переходим в каталог
"D:\vmware\ESXi5-CPT-v2.1" и запускаем скрипт "tgz2vib5.cmd" (если включен UAC, запускаем от имени администратора).

11. Заполняем поля в появившимся окне по примеру ниже:


12. Кликаем "Run!". В случае успешной сборки увидите следующее сообщение:


13. Заходим в папку "output" и видим наш vib-файл и лог по сборке.

14. Если нужно получить zip-файл для последующего внедрения данной настройки в инсталляционный диск ESXi, создаем дополнительно каталог: "D:\vmware\ESXi5-CPT-v2.1\zip", запускаем скрипт "vib2zip.cmd", заполняем поля как показано на картинке:


Кликаем "Run!". При успешном выполнении получаем собранный файл в каталоге "zip".

15. Теперь можно приступить к инсталляции vib-файла на гипервизор, для этого копируем данный файл на сервер в каталог "/tmp" с помощью vSphere Client или сторонних утилит, например "WinSCP". Порядок действий следующий: сначала загружаем файл на локальное хранилище (например "datastore1/vib"), затем используем команду "cp":

cp /vmfs/volumes/datastore1/vib/MyRule-1.0.0.x86_64.vib /tmp/MyRule-1.0.0.x8
6_64.vib


16. В консоли гипервизора переходим в каталог с файлом:

cd /tmp

17. Устанавливаем vib-файл:

esxcli software vib install -v "/tmp/MyRule-1.0.0.x86_64.vib" -f

Небольшое примечание:
Параметр "-f" означает форсированную установку. Если его не использовать, то патч не удастся установить пока не будет понижен уровень одобрения ("Acceptance level") до "Community Supported" (Partner Supported по умолчанию).


18. Проверяем вывод консоли, успешна ли была установка:

Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: Me_bootbank_MyRule_1.0.0
VIBs Removed:
VIBs Skipped:


Следующей командой можно посмотреть список всех установленных vib-файлов и убедиться, что среди них есть и наш:

esxcli software vib list|less

19. Теперь можно зайти в vSphere Client и включить новое правило, которое должно появится в настройках:


20. Для удаления правила используйте следующую команду:

esxcli software vib remove -n MyRule -f

21. В конце не забудьте удалить vib-файл на локальном хранилище гипервизора.

Установка нового шрифта в Windows с помощью скрипта

Данный cmd-скрипт является примером автоматизации установки нового шрифта на рабочие станции под управлением Windows. Распространять можно с помощью специализированного софта или групповых политик.

@echo off
xcopy "\\server\folder\Myfont.ttf" %systemroot%\Fonts /Y
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Myfont (TrueType)" /t REG_SZ /d Myfont.ttf

пятница, 28 июня 2013 г.

Настройка NFS сервера на Windows 2008 и подключение к нему VMware ESXi

Используя сетевую файловую систему NFS можно предоставить доступ серверам ESXi к файловым ресурсам или дисковой емкости другого оборудования, работающего под различными ОС. Например, удобно сделать доступными iso-образы, чтобы проще было их подключать к CD-ROM накопителям виртуальных машин.

Рассмотрим порядок установки и настройки связки NFS сервиса и VMware ESXi на примере сервера под Windows 2008 в самом простом варианте, без использования Active Directory:

1. Устанавливаем необходимые роли, а именно "Файловые службы" и ниже по иерархии "Служба для NFS".



2. После того как установка закончится, рекомендуется проверить, работает ли сервис "Служба для NFS" и открыт ли порт 111.


Иногда установке NFS сервиса может помешать уже работающая программа или служба, использующая тот же 111 порт. Например, так себя может вести "ONC/RPC Portmapper". В таком случае придется решить конфликт, отключив данный сервис.

3. Далее заходим в свойства той папки, которую будем расшаривать по NFS. Переключаемся на закладку "Совместный доступ NFS".


4. Нажимаем "Управление доступом NFS" и переходим в новое окно. Устанавливаем следующие настройки:


5. Ставим галку "Открыть общий доступ к этой папке", именуем общий ресурс, хотя лучше оставить имя по-умолчанию. Далее снимаем две следующие галки, оставляя "Не использовать серверную проверку подлинности" и устанавливаем "Разрешить доступ несопоставленным пользователям", затем "Разрешить анонимный доступ" и в полях анонимных UID и GID пишем идентификатор встроенного пользователя ESXi для работы с NFS(nfsnobody): 65534.

6. Нажимаем "Разрешения":


7. В данном окне нужно выбрать тип доступа и обязательно поставить галку "Разрешить доступ с правами root". Тут также можно более подробно настроить доступ хостов к серверу NFS. На картинке показана лишь одна группа по-умолчанию, но с помощью консольной утилиты "nfsadmin" можно создать свои группы("nfsadmin server creategroup MyGroup") и добавить туда необходимые клиенты("nfsadmin server addmembers MyGroup \\MyESXiHost").

8. Далее заходим в свойство расшариваемой директории в параметры безопасности и добавляем требуемые права для файловой системы NTFS локальной группе "АНОНИМНЫЙ ВХОД".


9.  Если нужен доступ не только на чтение, но и на запись, в настройках локальной политики безопасности нужно обязательно включить параметр "Сетевой доступ: разрешать применение разрешений "Для всех" к анонимным пользователям"("Локальные политики -> Параметры безопасности").


10. Продолжаем настройку на стороне ESXi. В vSphere Client выберите нужный сервер, затем переходим на "Configuration"->"Storage"->"Add Storage". Выбираем "Network File System":


 11. Заполняем параметры подключения(имя сервера, название шары на сервере, название хранилища на ESXi). Устанавливаем галочку "Mount NFS read only" если доступ должен быть только в режиме чтения.


При успешном подключении и последующей проверке доступности хранилища можно считать задачу завершенной.

суббота, 22 июня 2013 г.

Работа с буфером обмена в командной строке CMD

Начиная с Windows 2003XP нету) в процессоре командной строки появилась утилита CLIP. Она позволяет взаимодействовать с буфером обмена ОС.
Несколько примеров использования:

ipconfig | clip

- изменение направления вывода команды "ipconfig" из консоли в буфер обмена;

clip < 1.txt

- копирование содержимого файла "1.txt" в буфер обмена.

Отключение службы "Отчеты о проблемах и их решениях" (Problem Reports And Solutions) в Windows Vista/2008

Если в вашей системе под ОС Windows Vista или 2008 вы заметили, что папка по пути "C:\ProgramData\Microsoft\Windows\WER\ReportQueue" занимает десятки гигабайт, то вам необходимо очистить накопившиеся отчеты Windows Error Reporting (WER) и, возможно, отключить вовсе.

Для очистки:
1. Нажмите "Пуск" и в строке поиска наберите "Отчеты о проблемах и их решениях" (для английской версии - "Problem Reports And Solutions"). Откройте найденное приложение.
2. Нажмите "Очистить журнал проблем и их решений" и подтвердите ваш выбор в диалоговом окне.

Для отключения:
1. В главном окне приложения нажмите "Изменить параметры", затем "Дополнительные параметры".
2. В поле "Для всех пользователей и программ, отчеты о проблемах:" нажмите кнопку "Изменить параметр".
3. Переключите настройку в положение "Выкл".
4. Закройте окна, подтверждая свой выбор.

пятница, 21 июня 2013 г.

Отключение предупреждающего сообщения "The number of heartbeat datastores for host is 1, which is less than required: 2" в VMware vSphere 5

Такое сообщение означает, что кластер vSphere HA получает heartbeats от системы хранения данных по одному пути, а в пятой версии по-умолчанию требуется по двум. Для отключения данного предупреждения нужно сделать следующее:

1. Кликните правой кнопкой мыши на проблемном кластере и в контекстном меню нажмите на Edit Settings.
2. Выберите vSphere HA и нажмите Advanced Options.
3. Добавьте следующий параметр в список das.ignoreInsufficientHbDatastore со значением true.


4. Нажмите ОК.
5. Перейдите в закладку Cluster Features.
6. Уберите галочку с пункта Turn on vSphere HA и нажмите ОК.
7. Дождитесь пока перестроится кластер, затем установите галочку обратно и опять нажмите ОК.

Больше данное предупреждение беспокоить не будет.

среда, 19 июня 2013 г.

Настройка синхронизации времени гостевой ОС с гипервизором VMware ESXi 5.1

В предыдущих версиях VMware vSphere, до выхода 5.1, была возможность настройки синхронизации времени гостевой ОС с гипервизором при помощи VMware Tools прямо из виртуальной машины. Начиная с ESXi 5.1, все настройки были убраны из VMware Tools, но их по-прежнему можно сделать в свойствах vSphere Client.
Для этого кликните правой кнопкой мыши на виртуальной машине, выберите в контекстном меню Edit Settings..., перейдите во вкладку Options. В разделе VMware Tools можно установить галочку "Synchronize guest time with host" для выполнения синхронизации времени гостевой ОС с гипервизором. Подтвердите изменения кнопкой ОК.


суббота, 18 мая 2013 г.

Скрипт для поиска по номеру KB и извлечения обновлений с сервера WSUS

Данный скрипт, написанный на Visual Basic Script, позволяет извлекать необходимые номера KB из контента WSUS-сервера. Запускать его следует только на самом сервере WSUS. Для работы понадобятся привилегии локального администратора и администратора сервиса WSUS.
Текст скрипта приведен ниже:


'Export KB Files from WSUS
dim obj, obj_from, obj_to, oExec, WshShell, oFSO, objTextFile, obj_srv, obj_db
title = "Export KB Files from WSUS"

Set WshShell = CreateObject("WScript.Shell")
Set obj = CreateObject("Shell.Application")
Set oFSO = CreateObject("Scripting.FileSystemObject")

obj_from = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\ContentDir")
obj_from = obj_from&"\WsusContent"

obj_srv = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\SqlServerName")

obj_db = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup\SqlDatabaseName")

set obj_to = obj.browseforfolder(0,"Укажите путь к папке, в которую будут помещены "&Chr(13)&"извлекаемые обновления.",&H0001,&H0000)
if obj_to is Nothing then
wscript.quit(1)
end if
path_to = obj_to.self.path

request = "osql -o export.lst -h-1 -w 300 -E -d "
request=request&obj_db
request=request&" -S "
request=request&obj_srv
request=request&" /Q "&Chr(34)&"select FileDigest,FileName from tbFile where"

KB = InputBox("Введите номер нужного обновления, например KBxxxxxx",title) 
if KB = "" then
wscript.quit(1)
else
request=request&" FileName like '%%"&KB&"%%'"
end if

request=request&"and (FileName like '%%ENU%%' or FileName like '%%RUS%%') and FileName like '%%.exe%%' and FileName not like '%%express%%' and FileName not like '%%IE%%' order by Modified"&Chr(34)

If oFSO.FileExists(".\export.lst") Then
oFSO.DeleteFile(".\export.lst")
end if

Set oExec = WshShell.Exec(request)

Do While oExec.Status = 0
WScript.Sleep 100
Loop

IF oExec.ExitCode = 1 then 
MsgBox "Не удалось подключиться серверу WSUS..:("
oFSO.DeleteFile(".\export.lst")
wscript.quit(1)
end if

set objTextFile = oFSO.OpenTextFile(".\export.lst",1)

Do Until objTextFile.AtEndofStream
strNextLine=objTextFile.ReadLine
strNextLine=trim(strNextLine)

IF InStr (strNextLine,".exe") then
 newArray=Split(strNextLine)
 WSUSFile   = right(newArray(0),40)&".exe"
 WSUSFolder = right(newArray(0),2)
 If oFSO.FileExists(obj_from&"\"&WSUSFolder&"\"&WSUSFile) Then
 oFSO.CopyFile obj_from&"\"&WSUSFolder&"\"&WSUSFile, path_to&"\"&newArray(1)
 end if  
end if

Loop
objTextFile.Close
oFSO.DeleteFile(".\export.lst")
MsgBox "Операция выполнена успешно! :)"

Set obj = Nothing
Set obj_from = Nothing
Set obj_to = Nothing
Set oExec = Nothing
Set WshShell = Nothing
Set oFSO  = Nothing
Set objTextFile = Nothing


Поместите скрипт в текстовый файл с расширением ".vbs". После запуска понадобится указать путь для извлекаемых обновлений и номер KB, который нам нужен. Скрипт произведет поиск по базе WSUS-сервера и скопирует необходимые файлы из папок контента.

четверг, 16 мая 2013 г.

Решение проблемы восстановления свёрнутого окна консоли гостевой машины в VMware vSphere Client 5

Проявляется следующим образом:  если открыть несколько окон различных виртуальных машин по команде "Open Console", затем свернуть в панель задач, некоторые из них обратно разворачиваться не станут, проблемные окна придется закрывать и открывать заново.
Согласно kb.vmware.com/kb/1033948 в данный момент не существует обновления, решающего эту проблему с клиентом. Но есть обходное решение:

1. Отключаем группировку кнопок панели задач, для этого кликаем правой кнопкой по панели и вызываем свойства.
2. Далее, для Windows XP/2003/Vista/2008 - снять галочку напротив "Группировать сходные кнопки панели задач", для Windows 7/2008R2/8/2012 - в выпадающем меню пункта "Кнопки панели задач" выбрать "Не группировать". Применить изменения и закрыть окно настроек.
3. Также VMware, для решения данной проблемы, рекомендует удалить "снапшоты" виртуальных машин и отказаться от их дальнейшего использования.

среда, 8 мая 2013 г.

Смена пароля пользователя в терминальной сессии Windows

При работе в терминальном сеансе, через "Удаленный рабочий стол", аналогом сочетания клавиш Ctrl-Alt-Del консольного режима служит сочетание Ctrl-Alt-End. Вызвав данное служебное меню в сессии, можно сменить пароль пользователя на удаленном сервере.

Как уменьшить виртуальный диск гостевой ОС в VMware ESXi 5

Если ваш виртуальный диск SCSI интерфейса, вы можете легко его расширить с помощью GUI vSphere Client. Но разработчики в текущей версии гипервизора убрали возможность его уменьшения. Поэтому будем действовать следующим образом:
1. Первым делом необходимо освободить сокращаемое место на диске от разделов с файловой системой. Можно или удалить их, или уменьшить в размере с помощью различных утилит, например Acronis Disk Director. Это нужно сделать обязательно, иначе получите неработоспособную файловую систему ОС.
2. Теперь логинимся в консоль гипервизора или подключаемся по SSH.
3. Находим папку с файлами нашей гостевой ОС и открываем в редакторе конфигурационный файл VMDK диска:

vi vm.vmdk (если гостевая машина называется "vm")

4. В файле ищем следующую строку:

# Extent description
RW 209715200 VMFS “vm-flat.vmdk”

5. Число  209715200 означает максимальный размер виртуального диска. Рассчитывается по следующей формуле:

"RW число" = "Размер в Гб" * 1024 * 1024 * 1024 / 512

Таким образом для уменьшения размера диска со 100Гб до 20Гб изменяем число 209715200 на 41943040.

# Extent description
RW 41943040 VMFS “vm-flat.vmdk”

Для перехода в режим редактирования нажмите "i", для выхода - "Esc". Чтобы сохранить файл и выйти из редактора, наберите: ":wq".
6. После изменения конфигурационного файла нужно клонировать виртуальную машину, чтобы получить урезанный образ жесткого диска. Если отсутствует vCenter, можно клонировать только сам VMDK диск, затем удалить текущий, и еще раз клонировать, уже с корректными именами файлов, например, используя следующие команды:

vmkfstools -i vm.vmdk vm-new-size.vmdk (клонируем в новый диск)
rm vm.vmdk                                                 (удаляем файлы исходного диска)
rm vm-flat.vmdk
vmkfstools -i vm-new-size.vmdk vm.vmdk -d thin (клонируем новый диск для соответствия именования файлов ".vmdk" и с преобразованием в тонкий формат)

7. В завершении, в случае использования vmkfstools, следует переподключить виртуальный диск в настройках гостевой машины, так как он может некорректно отображать свой новый размер в vSphere Client.

понедельник, 6 мая 2013 г.

Конвертация виртуального IDE диска в SCSI в VMware ESXi 5

Виртуальные IDE диски VMware обладают существенными недостатками, они менее производительны и их нельзя расширять штатными способами. Кроме того VMware рекомендует использовать VMware Paravirtual (PVSCSI) SCSI контроллер для гостевых операционных систем, поскольку он предоставляет лучшую производительность при низких накладных расходах.

Для конвертации диска выполните следующие шаги:
1. Если гостевая система семейства Windows, убедитесь в установленных VMware tools, так как в их составе находятся драйвера Paravirtual адаптера, или в присутствии драйверов Bus logic или LSI logic типов адаптеров.
2. Выключите виртуальную машину(рекомендуется сделать бэкап в виде клона).
3. Заходим в свойства виртуальной машины("Edit Settings"), и во вкладке "Hardware" добавляем новый жесткий диск, при этом в поле "Virtual device node" обязательно выбираем SCSI.
4. Опять заходим в свойства виртуалки и меняем тип контроллера на нужный нам("SCSI Controller Type").


5. Теперь можно загрузить машину и подождать пока система установит все появившиеся новые устройства.
6. Опять выключаем виртуалку, в свойствах безвозвратно удаляем наш временный дополнительный диск("Remove from virtual machine and delete files from disk").
7. Подключаемся на консоль или по SSH к гипервизору. Командами "ls", "cd" переходим в каталог с файлами гостевой ОС.
8. Открываем файл на редактирование командой "vi имя_виртуалки.vmdk".
9. Находим строку ddb.adapterType = "ide" и меняем на ddb.adapterType = "buslogic" или ddb.adapterType = "lsilogic", в зависимости от типа выбранного адаптера SCSI(для перехода в режим редактирования нажмите "i", для выхода из режима - "Esc").
10. Сохраняемся и выходим(":wq").
11. Отключаем виртуальный диск с гостевой ОС, НО без удаления файлов("Remove from virtual machine")!!!!


12. Добавляем этот же диск заново, выбирая в визарде "Use an existing virtual disk". Теперь он отобразится как SCSI диск.


13. Еще раз заходим в свойства и меняем тип у только что появившегося контроллера на нужный нам("SCSI Controller Type").
14. Так же стоит поменять для CD-ROM устройства его "Virtual Device Node" на IDE(0:0), если он имеет другое значение(при опции, затемненной серым, стоит переподключить привод). Соответственно, для нашего жесткого диска, "Virtual Device Node" должен быть SCSI(0:0).
 15. Включаем гостевую машину. После удачной загрузки, нескольких контрольных перезагрузок и проверки корректности установленных драйверов устройств, можно очистить сделанные клоны-бэкапы.

Таким образом, в итоге, мы получили повышение производительности дисковой подсистемы и возможность её расширения.

четверг, 2 мая 2013 г.

Конвертация дисков виртуальных машин VMware ESXi 5: толстый в тонкий или тонкий в толстый

При создании новой виртуальной машины в гипервизоре VMware ESXi можно выбрать следующие варианты организации жесткого диска:
Thin Provision -"тонкий" диск, изначально не занимает на файловой системе VMFS места, разрастается до максимального размера по мере накопления информации.
Thick Provision Lazy Zeroed - "толстый" диск, резервирует свое максимальное пространство на VMFS сразу же при создании.
Thick Provision Eager Zeroed - тоже самое что и Thick Provision Lazy Zeroed, только в момент создания все пространство заполняется нулями, это замедляет процесс инсталляции но повышает производительность диска в эксплуатации.

Способы конвертации диска через GUI vSphere Client:
1. Толстый в тонкий(THICK to THIN) - при наличии "Storage VMotion", во время миграции на другой datastore можно в окне мастера поменять формат виртуального диска. Т.е. мигрируем туда и обратно. Либо, при отсутствии "Storage VMotion", клонируем виртуальную машину под другим именем и с изменением формата диска.



2. Тонкий в толстый(THIN to THICK) - также подойдет первый способ, но кроме него можно кликнуть правой кнопкой в окне "Datastore Browser" на соответствующем файле формата ".vmdk", и выбрать в контекстном меню команду "Inflate".



Способы конвертации диска используя консоль ESXi сервера или подключение по SSH:
 1. Толстый в тонкий(THICK to THIN) - используя консоль, переходим в каталог с файлами виртуальной машины и выполняем команду:

vmkfstools -K vm1.vmdk  (вместо -K можно использовать --punchzero)

В этом случае файл виртуального диска называется vm1.vmdk. Чтобы не ошибиться с выбором файла, его имя нужно уточнить в свойствах виртуальной машины("Edit Settings"), закладка "Hardware". Кликните на жесткий диск, и в поле "Disk File" будет указан путь к необходимому файлу ".vmdk".


2. Тонкий в толстый(THIN to THICK) - также как и в первом пункте, только используя другой параметр:

 vmkfstools -j vm1.vmdk  (вместо -j можно использовать --inflatedisk)

 Нужно помнить, что при копировании виртуальной машины на файловую систему, отличную от VMFS, любой диск будет преобразован в толстый и займет свой максимальный объём.