Ошибка при установке роли WSUS на Windows Server 2008

Если при попытке установить в Windows Server 2008 роль «Windows Server Update Services» возникает ошибка "The update could not be found. Either the update is not applicable to this computer or the update no longer exists. Verify that the update still exists and is applicable to this computer from your WSUS server or Windows Update.", то необходимо:

  1. Установить обновление KB940518.
  2. Если в сети уже установлен экземпляр WSUS, то включить категории синхронизации «Windows Server 2008 Server Manager — Windows Server Updates Services (WSUS) Dynamic Installer» и «Windows Server 2008 Server Manager Dynamic Installer» и провести синхронизацию. В противном случае проверить наличие доступа к серверам Windows Update.

Update: В блоге WSUS Product Team опубликована статья, описывающая процесс установки роли WSUS. Я опередил их на два дня 😛

Гениально!

« А химические формулы я использую вместо паролей. Очень удобно кстати. Формулы типа K3[Fe(CN)6] удовлетворяют всем базовым правилам создания паролей и легко запомниаются — формально это «калия гексацианоферриат», но лучше запомнить «Красная кровяная соль» ))) »

via bash.org.ru

Настройка зoн бeзoпacнocти Internet Explorer через групповую политику

Иногда требуется внести определенные веб-сайты в какую-либо зону безопасности Internet Explorer на всех компьютерах домена. Например, внести портал на MOSS 2007 в зону Интрасети, чтобы пользователи могли прозрачно авторизоваться. Для этого следует воспользоваться групповой политикой User configuration -> Administrative templates -> Windows components -> Internet Explorer -> Internet control panel -> Security page -> Site to zone assignment list (Конфигурация пользователя -> Административные шаблоны -> Компоненты Windows -> Internet Explorer -> Панель управления обозревателем -> Страница безопасности -> Cпиcoк нaзнaчeния зoны бeзoпacнocти для вeб-узлoв).
В описании политики ничего не говорится про использование масок, однако их можно использовать. Для добавления зоны domain.local необходимо указать маску *.domain.local. С IP адресами дело обстоит несколько сложнее, т.к. согласно описанию, можно использовать только диапазоны: 192.168.0.1-255, 192.168.0-255.1-255. На самом деле можно использовать и маски, но только в полной форме: 192.168.*.*. Если воспользоваться сокращенной формой, например 192.168.* (как в настройках исключений для прокси-сервера), то на компьютерах будет возникать следующая ошибка:

Event Type:     Error
Event Source:   Userenv
Event Category: None
Event ID:       1085
Description:    The Group Policy client-side extension Internet Explorer Zonemapping failed to execute. Please look for any errors reported earlier by that extension. For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. (Клиентское расширение групповой политики Internet Explorer Zonemapping не может выполняться. Проверьте ранее выдававшиеся сообщения об ошибках этого расширения.)

Крепление длинных рельсов к стойке

Вчера устанавливали новые серверы в открытую стойку и столкнулись с тем, что рельсы оказались на пару сантиметров длиннее стойки. Покумекав, съездили на строительный рынок за крепежом и приступили к монтажу. Получилось достаточно надежно:

DSC00606DSC00609DSC00611

Для монтажа потребовалось: 6 болтов, 6 шайб и 12 гаек (на каждый комплект рельсов).

Сокращенная форма имени локального пользователя

Оказывается, что для входа в систему под локальным пользователем помимо полной формы Computername\User существует сокращенная: .\User. Очень удобно, особенно когда имя компьютера сгенерировано автоматически. Спасибо Алексею Пахунову, сотруднику Майкрософт.

Новая версия клиента служб терминалов 6.0.6001

В состав Windows Server 2008, Windows Vista SP1 и Windows XP SP3 входит новая версия клиента служб терминалов 6.0.6001. Из новшеств — поддержка RDP версии 6.1. Также стоит обратить внимание на то, что ключ /console заменен на /admin, подробнее в kb947723.

Скрипт для архивации файлов старше определенной даты

Для архивации файлов старше определенной даты, например логов, предлагаю воспользоваться следующим скриптом на языке JScript:

if (WScript.Arguments.Length < 4)
{
  WScript.Echo("Usage: archivelogs.js c:\\folder\\with_logs\\ log_extension c:\\temp\\filelist.txt c:\\folder\\archive_name_w/o_extension");
  WScript.Quit();
}
var archname = new String();
var currdate = new Date();
var regexp = new RegExp(String().concat("\\.", WScript.Arguments(1), "$"), "i");
var shell = WScript.CreateObject("WScript.Shell");
var filesys = WScript.CreateObject("Scripting.FileSystemObject");
var filelist = filesys.CreateTextFile(WScript.Arguments(2), true, false);
var folder = filesys.GetFolder(WScript.Arguments(0));
var files = new Enumerator(folder.Files);
currdate.setDate(1);
currdate.setHours(0);
currdate.setMinutes(0);
currdate.setSeconds(0);
currdate.setMilliseconds(0);
for (; !files.atEnd(); files.moveNext())
{
  if (regexp.test(files.item().Name))
    if (files.item().DateLastModified < currdate)
      filelist.WriteLine(files.item());
}
filelist.Close();
switch (currdate.getMonth())
{
  case 0: archname = String().concat(WScript.Arguments(3), currdate.getFullYear()-1, "12"); break;
  case 10:
  case 11: archname = String().concat(WScript.Arguments(3), currdate.getFullYear(), currdate.getMonth()); break;
  default: archname = String().concat(WScript.Arguments(3), currdate.getFullYear(), "0", currdate.getMonth());
}
shell.Run(String().concat("\"C:\\Program Files\\WinRAR\\Rar.exe\" m -ep -m5 -s ", archname, " @", WScript.Arguments(2)), 1, true);
filesys.DeleteFile(WScript.Arguments(2), true);

Как работает скрипт. Получив входные данные, выполняется поиск файлов по расширению в указанном каталоге. Если файл не изменялся в текущем месяце (поведение определяется в строках 14-18), то путь к нему записывается во временный список. Затем запускается WinRAR, который перемещает файлы в архив с указанным именем и суффиксом года и прошлого месяца, например: archname200712.rar, archname200803.rar.
Формат запуска скрипта: cscript.exe //nologo archivelogs.js путь_к_папке_с_файлами расширение_файлов путь_к_временному_списку_файлов путь_к_создаваемому_архиву_без_расширения

Скрипт для отправки текстовых файлов по почте

Для отправки текстовых файлов по почте (в теле письма, а не вложением) предлагаю воспользоваться следующим скриптом на языке JScript:

if (WScript.Arguments.Length < 1)
{
  WScript.Echo("Usage: email.js filetosend.txt");
  WScript.Quit();
}
var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var File = FSO.OpenTextFile(WScript.Arguments(0), 1);
var Email = WScript.CreateObject("CDO.Message");
Email.From = "results@domain.com";
Email.To = "administrator@domain.com";
Email.Subject = "Task results";
Email.Bodypart.Charset = "koi8-r";
Email.Textbody = File.ReadAll();
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2;
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.domain.com";
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25;
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user";
Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "pwd";
Email.Configuration.Fields.Update();
Email.Send();
File.Close();

Отправляемый файл должен быть в кодировке ANSI (windows-1251). Если авторизация на почтовом сервере не требуется, необходимо закомментировать строки 17 и 18 двумя косыми чертами (//).
Формат запуска скрипта: cscript.exe //nologo email.js путь_к_файлу_для_отправки