Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Windows Server Update Services (WSUS & SUS)

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

emx (28-03-2006 22:49): Следующая часть этой темы здесь. Обновите закладки и подписку.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

axelk



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Software Update Services (SUS)

 
с 1.07.2005 Microsoft прекратила поддержку SUS, апдейты будут доступны до июня 2006г.

 
Отдельно обсуждается:
 
клиент SUS
Настройка SUS для работы на нестандартном порту
SUS уведомления
 
СУС не поддерживает обновление драйверов.
Поэтому в логах клиента появляется запись: Error IUENGINE Querying software update catalog from http://xxx.xxx.xxx.xxx/autoupdatedrivers/getmanifest.asp (Error 0x80190194)
 


 
Установка локального WindowsUpdate сервера под Unix
SUS for Linux -- набор свободных скриптов на Python под это дело
 


 
   
Windows Server Update Services (WSUS)

WSUS = Windows Server Update Services = SUS 2.0  
 
Home page:
http://www.microsoft.com/windowsserversystem/updateservices/downloads/WSUS.mspx
WSUS Operations Guide (.doc 994Kb)
 
Описание нововведений:
http://www.osp.ru/win2000/2005/02/034.htm
 
Прямые ссылки на финальный релиз и все необходимое можно взять тут:
http://forum.ru-board.com/topic.cgi?forum=107&topic=0026
 
 
WSUS Mini FAQ
~~~~~~~~~~~~~

Всего записей: 498 | Зарегистр. 29-10-2001 | Отправлено: 17:22 25-06-2002 | Исправлено: G14, 19:46 31-01-2006
biakus

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просьба потестировать скрипт, который извлекает из WSUSа последние обновления с учетом заменяемости между ними, раскладывает их по полочками и создает описания:
 

Цитата:
 
#!/usr/bin/perl -w
#
# Name:           WSUSExtractor.pl
#
# Purpose:        Extract latest or all updates from WSUS and generate descriptions.
#
# Syntax:         WSUSExtractor.pl  
#
# Version:        2.0
#
# Requirements:   Windows 2000+
#                 ActivePerl 5.8.7 buld 815 or higher from www.ActiveState.com
#                 osql.exe Utility (included in MSDE)
#                 WSUS on MSDE
#
# Author:         biakus
#
 
 
use strict;
use locale;
use IO::File;
use File::Path;
use Win32::Registry;
use Fcntl;
 
$|=1;
 
  my $ppid;
  my $fpid=open_pid_file("WSUSExtractor.pid");
  print $fpid $$;  
  close($fpid);
#  warn("Starting script (pid=$$)\n");
 
###########################################################################################
#  Tunable params
###########################################################################################
 
  my $root = "C:\\WSUS\\FtpRoot"; # your dir for files (volume must be the same at WSUS content folder for NTFS hardlinks)
  my $is_latest = 1; # Is all updates extract or latest only  
  my $update_langs = " 0,1033,1049 "; # comma separated languageIDs of extracting updates (0-all,1033-en,1049-ru,..%lang)  
  my $descr_lang = "ru";      # short language of titles and descriptions of updates (en,ar ..)
  my $descfile = "_contents.html";
  my $root_url = "ftp://ftp.server.com/microsoft";
  my $db_name = "SUSDB";
  my $content_dir = ""; # WSUS content folder
  my $server_name = ""; # WSUS SqlServerName
  my $tmpfile = "query.sql";
 
###########################################################################################
 
  my @rec = ();
  my $col;
  my $query;
  my $cmd;
  my $is_replaced;
###########################################################################################
#  Huge SQL query temporary save to file
###########################################################################################
my $latest_str = "";
if ($is_latest) { $latest_str  = qq { AND tbBundleDependency.BundledRevisionID NOT IN (  
SELECT  tbBundleDependency.BundledRevisionID    
FROM tbRevisionSupersedesUpdate  
INNER JOIN tbUpdate ON ( tbUpdate.UpdateID = tbRevisionSupersedesUpdate.SupersededUpdateID )    
INNER JOIN tbRevision ON ( tbRevision.LocalUpdateID = tbUpdate.LocalUpdateID )  
INNER JOIN tbBundleDependency ON ( tbBundleDependency.RevisionID = tbRevision.RevisionID ) )  
};  
          print "\nStart extracting latest updates\n"; }
else {          print "\nStart extracting all updates\n"; }
 
  open (SQL, ">$tmpfile");
  print SQL qq {
SELECT  C2.CategoryID, C3.CategoryID, RC4.CategoryID, tbRevisionLanguage.LanguageID,  
tbFile.FileName, tbFile.FileDigest, tbFile.Modified, tbFile.Size,  
tbPreComputedLocalizedProperty.Title, tbPreComputedLocalizedProperty.Description,  
tbPreComputedLocalizedProperty.RevisionNumber  
FROM tbCategory AS C1  
INNER JOIN tbCategory AS C2 ON C1.CategoryID = C2.ParentCategoryID  
INNER JOIN tbCategory AS C3 ON C2.CategoryID = C3.ParentCategoryID  
INNER JOIN tbCategory AS C4 ON (C4.ParentCategoryID IS NULL AND C4.CategoryID != 7 )  
INNER JOIN tbRevisionInCategory AS RC3 ON ( C3.CategoryID = RC3.CategoryID )  
INNER JOIN tbRevisionInCategory AS RC4 ON ( RC4.RevisionID = RC3.RevisionID AND RC4.CategoryID = C4.CategoryID )  
INNER JOIN tbBundleDependency ON  ( RC4.RevisionID = tbBundleDependency.BundledRevisionID $latest_str )  
INNER JOIN tbPreComputedLocalizedProperty ON ( tbPreComputedLocalizedProperty.RevisionID = tbBundleDependency.RevisionID  )  
INNER JOIN tbRevision ON ( tbRevision.RevisionID = RC4.RevisionID  AND tbRevision.IsLatestRevision = 1 )  
INNER JOIN tbFileForRevision ON ( tbFileForRevision.RevisionID = RC4.RevisionID  )  
INNER JOIN tbRevisionLanguage ON ( tbRevisionLanguage.RevisionID = tbFileForRevision.RevisionID )  
INNER JOIN tbFile ON ( tbFile.FileDigest = tbFileForRevision.FileDigest  )  
WHERE ( tbRevisionLanguage.Expanded = 0 AND tbRevisionLanguage.LanguageID IN ( $update_langs )  
AND tbPreComputedLocalizedProperty.ShortLanguage like '$descr_lang' )  
ORDER BY tbFile.Modified };
 
close(SQL);  
 
###########################################################################################
#  Find WSUS content folder and SQL server address
###########################################################################################
 
   my $reg;
   $::HKEY_LOCAL_MACHINE->Open("SOFTWARE\\Microsoft\\Update Services\\Server\\Setup", $reg)
       or die "Can't open registry: $^E";
   $reg->QueryValueEx("ContentDir", $col, $content_dir) or die "Cannot find WSUS content folder in registry: $^E";
   $content_dir = $content_dir."\\WsusContent";
#   print "Here's a dir: $content_dir\n";
 
   $reg->QueryValueEx("SqlServerName", $col, $server_name) or die "Cannot find WSUS content folder in registry: $^E";
   $server_name =~ s/%computername%/$ENV{computername}/;
#   print "Here's a server name: $server_name\n";
 
###########################################################################################
#  Put to hash Microsoft WSUS languages
###########################################################################################
  my %lang = ();
  $query= "SELECT LanguageID, ShortLanguage FROM tbLanguage";
  $cmd = "osql.exe -w 500 -h-1 -s# -n -E -d $db_name -S $server_name -Q \"$query\"  2>nul |";
 
  open (DAT, $cmd);
    while(<DAT>) {  
        chomp;  
#        print $_."\n";  
            if ( @rec = split(/#/) )  
            { foreach $col (@rec) { if( $col =~ /^\s*(.+?)\s*$/ ) {$col = $1;} } }
        else { last; }
        $lang{$rec[0]} = $rec[1];
#        print $rec[0]."\t".$rec[1]."\n";  
    }
  close(DAT);
 
###########################################################################################
#  Put to hash Microsoft WSUS categories
###########################################################################################
  my %ctg = ();
  $query= "SELECT CategoryID, Title FROM tbPrecomputedCategoryLocalizedProperty  WHERE ( ShortLanguage like 'en') ";
  $cmd = "osql.exe -w 500 -h-1 -s# -n -E -d $db_name -S $server_name -Q \"$query\"  2>nul |";
 
  open (DAT, $cmd);
    while(<DAT>) {  
        chomp;
            if ( @rec = split(/#/) )  
            { foreach $col (@rec) {  if( $col =~ /^\s*(.+?)\s*$/ ) {$col = $1;} } }
        else { last; }
                $rec[1] =~ s/\s+|\//_/g;
        $rec[1] =~ s/\W//g;  
        $ctg{$rec[0]} = $rec[1];
    }
  close(DAT);
 
###########################################################################################
#  Processing Microsoft WSUS database and save files with descriptions
###########################################################################################
 
  my $srcfile;
  my $dstfile;
  my $path;
  my $counter = 0;
  my $result;
 
  $cmd = "osql.exe -w 5000 -h-1 -s# -n -E -d $db_name -S $server_name -i $tmpfile  2>nul |";
  print "\nProcessing..\n";
  open (DAT, $cmd);
    while(<DAT>) {  
        chomp;  
#        print $_."\n";  
            if ( @rec = split(/#/) )  
            { foreach $col (@rec) {  if( $col =~ /^\s*(.+?)\s*$/ ) {$col = $1;} } }
        else { last; }
 
        if ($rec[4] =~ m/.(\w+)$/ ) { $srcfile = $1; }
        if ($rec[5] =~ m/^0x(\w{38})(\w{2})$/){ $srcfile = "$content_dir\\$2\\$1$2.$srcfile"; }
        $path = $root."\\".$ctg{$rec[0]}."\\".$ctg{$rec[1]}."\\".$ctg{$rec[2]}."\\".$lang{$rec[3]};
        if (! -e $path) { mkpath($path, 0, 0777) or die "Can't create dir: $^E\n";}
        $dstfile = $path."\\".$rec[4];  
        $result = hardlink($srcfile, $dstfile, 1);
        if ( $result && ! $is_replaced ) { $counter += 1; }
        if ( $result ) { add2file($path, $rec[6], $rec[4], $rec[7], $rec[8], $rec[9], $rec[10],  
        $root_url."/".$ctg{$rec[0]}."/".$ctg{$rec[1]}."/".$ctg{$rec[2]}."/".$lang{$rec[3]}."/".$rec[4] );
        }  
    }
  close(DAT);
  print "\nTotal matching updates in database: $counter\n";
 
  unlink($tmpfile) or die "Cannot unlink tmpfile: $^E";
 
  warn "\nSuccess\n";
 
###########################################################################################
# POSIX NTFS hard link to file
###########################################################################################
sub hardlink {
  my $exist_file=shift;
  my $new_file=shift;
  my $is_rewrite = shift;
  $is_replaced = 0;
  if(-e $new_file && $is_rewrite)  
    { $is_replaced = 1; unlink ($new_file) or return 0;  }
 
  link ( $exist_file, $new_file ) or return 0;  
 
  return 1;
}
###########################################################################################
#  Adding description to file
###########################################################################################
 
sub add2file {
  my $file_path=shift;  my $file = $file_path."\\".$descfile;
  my $modified = shift;
  my $name = shift;
  my $size = shift;
  my $title = shift;
  my $desc = shift;
  my $revnum = shift;
  my $url = shift;
 
  my $header = qq {<html>
<head>
<title>Description of updates</title>
<meta http-equiv="Content-Type" content="text/html; charset=cp866">
</head>
<body>
<table align=center border cellspacing=0 cellpadding=5>
<caption align=up><h2>Описания и ссылки на обновления для данной директории</h2></caption>
<tr>
    <td><h3>Имя Файла</h3></td>
    <td><h3>Размер файла</h3></td>
    <td><h3>Название</h3></td>
    <td><h3>Описание</h3></td>
    <td><h3>Дата модификации</h3></td>    
</tr>
};
 
my $footer = qq {
</table>
<p align="right"><font size="2">&copy;biakus</font></p>
</body></html>};
 
  if(-e $file) {  
    sysopen (DESC, "$file", O_WRONLY);  
    seek (DESC, -length($footer)-1, 2);
          print DESC "<tr>"."\n\t"."<td><a href=".$url.">".$name."</a></td>"
                   ."\n\t"."<td>".dots($size)."</td>"
                   ."\n\t"."<td>".$title."</td>"
                   ."\n\t"."<td>".$desc."</td>"
                   ."\n\t"."<td>".$modified."</td>"
                   ."\n</tr> \n";
    print DESC $footer;
    close(DESC);
  }
  else {
    open (DESC, ">$file");  
              print DESC $header;  
          print DESC "<tr>"."\n\t"."<td><a href=".$url.">".$name."</a></td>"
                   ."\n\t"."<td>".dots($size)."</td>"
                   ."\n\t"."<td>".$title."</td>"
                   ."\n\t"."<td>".$desc."</td>"
                   ."\n\t"."<td>".$modified."</td>"
                   ."\n</tr> \n";
#  FileName, Size, Title, Desc, Modified
              print DESC $footer;
    close(DESC);
  }
 
  return 1;
}
###########################################################################################
#  dots for bytes processing
###########################################################################################
 
sub dots {                                                                              
my $tmp = shift; my @tmp=();                                                                
    unshift (@tmp, $1) while ($tmp =~ s/(\d{1,3})$//g);                                    
      return join ('.', @tmp);                                                              
      }                                                                                        
 
###########################################################################################
#  pid processing
###########################################################################################
 
sub open_pid_file {
  my $file=shift;
   
  if(-e $file) {  
    my $fh=IO::File->new($file) or die "Can't open PID file $file: $^E";
    $ppid=<$fh>;
    die "Invalid PID file" unless $ppid=~ /^(\d+)$/;
    die "Process already running with PID $ppid" if(kill 0 => $ppid);
    warn "Removing PID file for defunct process ($ppid).\n";
    die "Can't unlink PID file $file" unless -w $file && unlink $file;
  }
  $ppid=$$;
  return IO::File->new($file,O_WRONLY|O_CREAT|O_EXCL,0644)  
          or die "Can't create $file: $^E\n";
}
###########################################################################################
 
END {
  unlink "WSUSExtractor.pid" or die "Can't unlink PID file: $^E";  
#  warn("Stoping script (pid=$$)\n");
}
 
 
__END__
 
 
 


Всего записей: 3 | Зарегистр. 03-02-2006 | Отправлено: 09:22 16-02-2006
Iv Michael

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня таки заработало. Правда появились не все компьютеры. Но большинство. Разбираюсь с этим. Уже понятно, что от СП это не зависит - не появился к примеру мой ноут - на котором установлены ВСЕ нужные обновления и он тоже в домене).
При инсталляции я ставил WSUS не на 80-й порт (у меня на том же компьютере Project Server + Sharepoint), а на 8530. Кстати, в шарепойнте так же пришлось публиковать скрипты.
Через GPo указал именно http://server2:8530 в обоих строчках. И компьютеры начали появлятся.
Политику создавал новую (а не правил Default Domain Policy), всё по описанию.
SSL выключено.
В настройках безопасности IIS для веб-сайта Wsus administration стоит "разрешать анонимный доступ" и "встроенная аутентификация виндов".
Если доступ есть, попробуй "скачать"  
http://WSUSServerName/iuident.cab
http://WSUSServerName/selfupdate/AU/x86/osvariable/languagevariable/wuaucomp.cab
Заменив osvariable/languagevariable на нужные значения (у меня XP/ru).
Это всё описано в WSUSOperationsGuide.doc от MS. Внимательно прочитай об устранении неполадок (в самом конце).
PS: WSUS у меня стоит на дополнительном контроллере с Windows Server 2003 без SP, с IIS + Sharepoint.

Всего записей: 105 | Зарегистр. 16-07-2004 | Отправлено: 10:04 16-02-2006
wers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iv Michael, похоже что ты прав. В логах IIS нахожу следующие записи, где 192.168.189.5 - сервкак, а 130 - клиент. 401 - ошибка аунтентификации.
 
2006-02-15 15:06:42 W3SVC1 192.168.189.5 HEAD /clientwebservice/SusServerVersion.xml 0602151506 80 - 192.168.189.130 Industry+Update+Control 401 1 0
 

Всего записей: 24 | Зарегистр. 15-07-2005 | Отправлено: 11:12 16-02-2006
Iv Michael

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С тем, что я прав, мне глупо спорить... Только вот я не понял, в чём именно я прав
Кстати, у меня появились ВСЕ компьютеры, кроме одного w2000. Ну да там не SP3 и ладно - потом заведу. И это без всяких шаманских плясок с принудительным поиском сервера обновлений и принудительного обновления групповой политики. Хотя на этапе настройки wuauclt.exe /detectnow и gpupdate /force были очень полезны - чтобы не ждать.
Пока ставятся только критические и обновления безопасности. Кто-нибудь пробовал ВСЕ ставить?

Всего записей: 105 | Зарегистр. 16-07-2004 | Отправлено: 11:25 16-02-2006
BULLDOG



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iv Michael
 
У меня все ставятся.

Всего записей: 387 | Зарегистр. 29-08-2003 | Отправлено: 15:10 16-02-2006
I am Robespier



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если информация такая уже была - не судите строго несколько дней назад я не смог найти ее и вот докопался сам, а потом нашел опубликованый вариант.
 
Решение: не появляются новые компьютеры на WSUS сервере
Проблемма заключалась в том, что компьютеры получали обновления, но их небыло видно в списке на WSUS сервере.
т.к. по документации WSUS идентефицирует компьютеры по уникальному ID, я принялся исходить их этого. На нашем предприятии операционки на рабочие станции заливаются из имиджа, а потом вносятся в домен. Это меня смутило и сбило поначалу с толку, т.к. ID машины при этом меняется. Но как выяснилось в последствии, что имидж операционки предварительно уже добавлялся в домен, а потом его вывели от туда. Но Update Service успел сохранить в своих настройках ID старой машины, из за чего все новые компьютеры идентифицировались WSUS сервером как одна машина, которая первая успела на нем зарегистрироваться. Следующие строки должны все обьяснить:
 
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v AccountDomainSid /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v PingID /f
rem И наконец удаляем злополучный ID
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate /v SusClientId /f

net stop wuauserv
net start wuauserv
wuauclt /resetauthorization /detectnow
 
Полезные вещи есть в
http://download.microsoft.com/download/8/d/0/8d068114-bd66-4fde-a04c-aeaa9d1fe640/Update%20Services%20API%20Samples%20and%20Tools.EXE
 
А также в SQL Query Analyzer на вашем WSUS сервере.

Всего записей: 46 | Зарегистр. 06-07-2005 | Отправлено: 17:40 16-02-2006
denisdenis



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В SUSe когда просматриваешь обновления, можно было прямо с той страницы сохранить их для дальнейшего использования. Можно ли это же сделать во WSUSe?

Всего записей: 149 | Зарегистр. 21-11-2003 | Отправлено: 18:01 16-02-2006
DikSoft



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
I am Robespier

Цитата:
 На нашем предприятии операционки на рабочие станции заливаются из имиджа, а потом вносятся в домен.

Вы забыли сделать один шаг перед созданием имиджа: sysprep.
Актуально для WinXP.

Всего записей: 123 | Зарегистр. 17-12-2003 | Отправлено: 08:11 17-02-2006
I am Robespier



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DikSoft
С одной стороны к счастью, с другой к сожалению, но я не занимаюсь созданием и разработкой имиджей, этим занимаются ребята соседнего подразделения. И мне не известно каким путем они их создают. Меня волнует работа рабочих станций в домене. А т.к. имидж операционки находится до внесения в домен и при установке новой машины те ребята вносят новую машину и при этом SID компьютера в любом случае меняется. В данной ситуации проблемма была именно одного конкретного имиджа и только со службой Windows Update по причине, что этот имидж уже когдато вносился в домен, а потом его вывели. Но служба успела записать старый SID. А новый она не подхватывает. Считаю, что в данной ситуации это недоработка microsoft-овцев. Т.к. SID компьютера изменился, а служба не предпринимает по этому поводу никаких действий. И, кстати, эта проблемма может подпортить жизнь сотрудникам с мобильными ПК если у предприятия разрозненая доменная структура.

Всего записей: 46 | Зарегистр. 06-07-2005 | Отправлено: 10:37 17-02-2006
Iv Michael

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Получил ошибку при установке SP1 для Office 2003 на одной машине (на другие не ставил). Мелочь, конечно, есть ещё SP2 (пока не докачался).
Вопрос в том - как повторить установку и что делать в таких случаях?

Всего записей: 105 | Зарегистр. 16-07-2004 | Отправлено: 10:59 17-02-2006
mikas



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iv Michael
Repair на машине локально установки офиса

Всего записей: 1007 | Зарегистр. 27-08-2003 | Отправлено: 11:03 17-02-2006
Iv Michael

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mikas
Что-то я не совсем понял... что сделать? Какие установки?
Офис на той машине нормально работает... Запустить установку/удаление и сказать Repair, так? Попробую...

Всего записей: 105 | Зарегистр. 16-07-2004 | Отправлено: 11:08 17-02-2006
mikas



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Iv Michael
да
дождись уж лучше sp2, он кумулятивный...

Всего записей: 1007 | Зарегистр. 27-08-2003 | Отправлено: 11:12 17-02-2006
SergPV



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
I am Robespier
В ньюс групе микриковской по WSUS проскакивал неплохой скриптец для решения таких траблов:
 
' Folder that the script needs create/write access to, one file for
' each SusClientId will be created.
sFolderPath = "\\SERVER\WSUS"
 
' Path and name of file where the script will log the name
' of the computers where the SusClientId is deleted by the script.
' This script is for administrator information only, it's content is
' not used by the script in any way.
' Using _ as first character in the name will cause it to be
' listed first in Explorer
sLogFilePath = sFolderPath & "\_ClientIdResetLog.txt"
 
Const OpenAsASCII      =  0
Const OverwriteIfExist = -1
Const ForAppending = 8
 
Set oShell = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oWshNetwork = CreateObject("WScript.Network")
 
sRegKey = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate"
 
' Suppress error in case values does not exist
On Error Resume Next
 
' Check for registry marker
sIDChecked = oShell.RegRead(sRegKey & "\ClientIdChecked")
Err.Clear
 
' To be sure the script is run only once, test on marker
If sIDChecked <> "yes" Then
 
   SusClientId = ""   ' init value
   sSusClientId = oShell.RegRead(sRegKey & "\SusClientId")
   If sSusClientId <> "" And oFSO.FolderExists(sFolderPath) Then
 
     sFilePath = sFolderPath & "\" & sSusClientId & ".txt"
 
     If oFSO.FileExists(sFilePath) Then
 
       ' Another computer is using the same SusClientId, we need to
       ' clear out the registry values.
 
       ' delete values
       oShell.RegDelete sRegKey & "\AccountDomainSid"
       oShell.RegDelete sRegKey & "\PingID"
       oShell.RegDelete sRegKey & "\SusClientId"
 
       ' Stop and start the Automatic updates service
       oShell.Run "%SystemRoot%\system32\net.exe stop wuauserv", 0, True
       oShell.Run "%SystemRoot%\system32\net.exe start wuauserv", 0, True
 
       ' Run wuauclt.exe with resetauthorization
       sCmd = _
          "%SystemRoot%\system32\wuauclt.exe /resetauthorization /detectnow"
       oShell.Run sCmd, 0, True
 
 
       ' Create entry in log file.
       ' If script is not able to open the file for write access, it
       ' will give up after 5 seconds (10 loops)
       bUpdLogFinished = False
       iLoops = 0
 
       On Error Resume Next
       Do
         Err.Clear
         ' Open for appending
         Set fLogFile = oFSO.OpenTextFile(sLogFilePath, ForAppending, True)
         If Err.Number <> 0 Then
           ' Was not able to open the log file for writing
           ' Waiting 1/2 a second before trying again
           WScript.Sleep 500
         Else
           fLogFile.WriteLine Now & ", " & oWshNetwork.ComputerName
           fLogFile.Close
           bUpdLogFinished = True
         End If
         iLoops = iLoops + 1
       Loop Until bUpdLogFinished Or iLoops > 10
 
     Else
       ' No other computer have reported this SusClientId, we need
       ' to create a text file in the common folder using the SusClientId
       ' as file name. Putting the computer name inside the file.
       Set f = oFSO.CreateTextFile(sFilePath, OverwriteIfExist, OpenAsASCII)
       f.WriteLine oWshNetwork.ComputerName
       f.Close
 
     End If
 
   End If
   On Error Resume Next
 
   ' Create registry marker
   oShell.RegWrite sRegKey & "\ClientIdChecked", "yes"
 
End If
 
Навязываеш его в GP через  скрипт запуска компов и удачно забываеш о таких траблах.

Всего записей: 132 | Зарегистр. 20-11-2001 | Отправлено: 11:19 17-02-2006
gretis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какой пароль назначается sa при установке SQL$WSUS? Не могу получить доступа к базе. Не удается запустить ни hotfixinfo, ни WSUSClient в рекомендациях пишут "смените пароль sa: osql -U sa" а он у меня уже запрашивает пароль. Пустой не принимает: ошибка подключения, сервер недоступен либо ошибка авторизации Никаких паролей при установке не задавал

Всего записей: 15 | Зарегистр. 22-12-2005 | Отправлено: 14:00 19-02-2006
ssgorbunkov

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые Господа! Есть следующая информация:
 
На практике введение системы Windows Genuine Advantage 1.0 означает, что теперь загрузить обновления и программы через привычные сервисы Windows Update, Microsoft Update, Microsoft Download Center без проверки подлинности лицензии нельзя.
 
Может кто-нибудь знает, при получении обновлений через WSUS это актуально? Не сдает ли наш любимый WSUS нас?

Всего записей: 37 | Зарегистр. 11-02-2005 | Отправлено: 09:42 20-02-2006
ViktorVal



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пока нет.

Всего записей: 224 | Зарегистр. 06-10-2003 | Отправлено: 10:17 20-02-2006
Iv Michael

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Может кто-нибудь знает, при получении обновлений через WSUS это актуально? Не сдает ли наш любимый WSUS нас?

Только вот мне кажется, что всякие SP1/SP2 на "ломаные" винды не будут ставится через WSUS.

Всего записей: 105 | Зарегистр. 16-07-2004 | Отправлено: 10:37 20-02-2006
ilion



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Только вот мне кажется

Когда кажется, креститься надо... Все работает, ибо механизм проверки подлинности во WSUS не реализован.

Всего записей: 1362 | Зарегистр. 15-05-2002 | Отправлено: 11:29 20-02-2006
Iv Michael

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Во WSUS - нет. А вот если какой-нибудь Reset 5 на клиентской машине? И устанавливается SP2... Попадалось упоминание, что начинаются проблемы.
Так что всё это - IMHO, мной не проверенное...

Всего записей: 105 | Зарегистр. 16-07-2004 | Отправлено: 11:42 20-02-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Windows Server Update Services (WSUS & SUS)
emx (28-03-2006 22:49): Следующая часть этой темы здесь. Обновите закладки и подписку.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru