Перейти к содержанию

Не работает автоматическое обновление windows


Максим Гуркалов

Рекомендуемые сообщения

Привет.
На windows 10 отключал центр обновлений windows (не помню уже зачем) и теперь он не включается.А вместе с ним перестала запускаться его служба (автоматическое обновление) с ошибкой:"Не удалось запустить службу автоматического обновления на локальный компьютер ошибка 2:не удаётся найти указанный файл"

CollectionLog-2017.01.15-13.07.zip

Ссылка на комментарий
Поделиться на другие сайты

Внимание! Рекомендации написаны специально для этого пользователя. Если рекомендации написаны не для вас, не используйте их - это может повредить вашей системе.

 

Если у вас похожая проблема - создайте тему в разделе Уничтожение вирусов и выполните Правила оформления запроса о помощи.

 

Здравствуйте!

 

Закройте все программы, временно выгрузите антивирус, файрволл и прочее защитное ПО.

 

Важно! на Windows Vista/7/8 AVZ запускайте через контекстное меню проводника от имени Администратора. Выполните скрипт в АВЗ (Файл - Выполнить скрипт):

 

 

var
DescriptionTextWuauServ, DispayNameTextWuauServ, DescriptionTextBITS: String;
DispayNameTextBITS, FullPathSystem32, NameFolderSystem32, FileServiceDll: String;
ImagePathStr, RootStr, SubRootStr, LangID: string;
AllRoots, AllKeys, RootsRestored, KeysRestored, KeysFixed: integer;
FinishMsg, RestoreMsg, FixMsg, CheckMsg: String;
RegSectMsg, ParamMsg, ParamValueMsg, InRegSectMsg, CorrectMsg, RestMsg: String;

procedure CheckAndRestoreSection(Root: String);
begin
Inc(AllRoots);
if RegKeyExistsEx('HKLM', Root)
  then RegKeyResetSecurity('HKLM', Root)
  else
   begin
    Inc(RootsRestored);
    RegKeyCreate('HKLM', Root);
    AddToLog(RegSectMsg + Root + RestMsg);
   end;
end;

procedure CheckAndRestoreSubSection;
begin
CheckAndRestoreSection(SubRootStr);
end;

procedure RestoredMsg(Root, Param: String);
begin
AddToLog(ParamMsg + Param + InRegSectMsg + Root + RestMsg);
Inc(KeysRestored);
end;

procedure FixedMsg(Root, Param: String);
begin
AddToLog(ParamValueMsg + Param + InRegSectMsg + Root + CorrectMsg);
Inc(KeysFixed);
end;

procedure RestoreStrParam(Root, Param, Value: String);
begin
RegKeyStrParamWrite('HKLM', Root, Param, Value);
RestoredMsg(Root, Param);
end;

procedure CheckAndRestoreStrParam(Root, Param, Value: String);
begin
Inc(AllKeys);
if not RegKeyParamExists('HKLM', Root, Param)
  then RestoreStrParam(Root, Param, Value);
end;

procedure CheckAndRestoreIntParam(Root, Param: String; Value: Integer);
begin
Inc(AllKeys);
if not RegKeyParamExists('HKLM', Root, Param) then
  begin
   RegKeyIntParamWrite('HKLM', Root, Param, Value);
   RestoredMsg(Root, Param);
  end;
end;

procedure CheckAndRestoreMultiSZParam(Param, Value: String);
begin
Inc(AllKeys);
if not RegKeyParamExists('HKLM', RootStr, Param)
  then
   begin
    ExecuteFile('REG ADD HKLM\' + RootStr + ' /v ' + Param + Value, '', 0, 10000, true);
    RestoredMsg(RootStr, Param);
   end;
end;

// Исправление значения параметра ImagePath для служб 'wuauserv' и 'BITS'
procedure ImagePathFix(Node, Srv: String);
var RegStr: String;
begin
RegStr:= 'SYSTEM\' + Node + '\Services\' + Srv;
if RegKeyExistsEx('HKLM', RegStr) then
  begin
   Inc(AllKeys);
   RegKeyResetSecurity('HKLM', RegStr);
   RegKeyStrParamWrite('HKLM', RegStr, 'ImagePath', ImagePathStr);
   FixedMsg(RegStr, 'ImagePath');
  end;
end;

{ Выполнение исправление всех ключей в ветках -
   'HKLM\SYSTEM\CurrentControlSet\Services\BITS' и 'HKLM\SYSTEM\CurrentControlSet\Services\wuauserv'}
procedure CorrectRegistryRoot(DescriptionText, DisplayNameText, Srv: String);
var FileServiceDll, CCSNumber: string;
     i : integer;
begin
if Srv = 'BITS'
  then FileServiceDll := FullPathSystem32 + 'qmgr.dll'
  else FileServiceDll := FullPathSystem32 + 'wuauserv.dll';
RootStr:= 'SYSTEM\CurrentControlSet\Services\' + Srv;

CheckAndRestoreSection(RootStr);

CheckAndRestoreStrParam(RootStr, 'Description', DescriptionText);
CheckAndRestoreStrParam(RootStr, 'DisplayName', DisplayNameText);
CheckAndRestoreStrParam(RootStr, 'ObjectName', 'LocalSystem');

Inc(AllKeys);
if not RegKeyParamExists('HKLM', RootStr, 'ImagePath')
  then RestoreStrParam(RootStr, 'ImagePath', ImagePathStr)
  else
   begin
    Dec(AllKeys);
    if LowerCase(RegKeyStrParamRead('HKLM', RootStr, 'ImagePath')) <> LowerCase(ImagePathStr)
     then
      for i:= 0 to 999 do
       begin
        if i > 0
         then CCSNumber:= FormatFloat('ControlSet000', i)
         else CCSNumber:= 'CurrentControlSet';
         ImagePathFix(CCSNumber, Srv);
        end;
   end;

CheckAndRestoreIntParam(RootStr, 'ErrorControl', 1);
CheckAndRestoreIntParam(RootStr, 'Start', 2);
CheckAndRestoreIntParam(RootStr, 'Type', 32);

if Srv = 'BITS'
  then
   begin
    CheckAndRestoreMultiSZParam('DependOnService', ' /t REG_MULTI_SZ /d RpcSs');
    CheckAndRestoreMultiSZParam('DependOnGroup', ' /t REG_MULTI_SZ');
   end;

SubRootStr:= RootStr + '\Enum';
CheckAndRestoreSubSection;

CheckAndRestoreStrParam(SubRootStr, '0', 'Root\LEGACY_' + UpperCase(Srv) + '\0000');
CheckAndRestoreIntParam(SubRootStr, 'Count', 1);
CheckAndRestoreIntParam(SubRootStr, 'NextInstance', 1);

SubRootStr := RootStr + '\Security';
CheckAndRestoreSubSection;

Inc(AllKeys);
if not RegKeyParamExists('HKLM', SubRootStr, 'Security') then
  begin
   RegKeyBinParamWrite('HKLM', SubRootStr, 'Security', '01,00,14,80,78,00,00,00,84,00,00,00,14,00,00,00,30,00,00,00,02,00,1c,00,01,00,00,00,02,80,14,00,ff,00,0f,00,01,01,00,00,00,00,00,01,00,00,00,00,02,00,48,00,03,00,00,00,00,00,14,00,9d,00,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,00,00,00,14,00,ff,01,0f,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00');
   RestoredMsg(SubRootStr, 'Security');
  end;

SubRootStr:= RootStr + '\Parameters';
CheckAndRestoreSubSection;

Inc(AllKeys);
if not RegKeyParamExists('HKLM', SubRootStr, 'ServiceDll')
  then
  begin
   RegKeyParamWrite('HKLM', SubRootStr, 'ServiceDll', 'REG_EXPAND_SZ', FileServiceDll);
   RestoredMsg(SubRootStr, 'ServiceDll');
  end
   else
    if LowerCase(RegKeyStrParamRead('HKLM', SubRootStr, 'ServiceDll')) <> LowerCase(FileServiceDll)
     then
      begin
       RegKeyParamWrite('HKLM', SubRootStr, 'ServiceDll', 'REG_EXPAND_SZ', FileServiceDll);
       FixedMsg(SubRootStr, 'ServiceDll');
      end
end;

{ Главное выполнение }
begin
ClearLog;
ExpRegKey('HKLM', 'SYSTEM\CurrentControlSet\Services\wuauserv', 'wuauserv.reg');
ExpRegKey('HKLM', 'SYSTEM\CurrentControlSet\Services\BITS', 'BITS.reg');
LangID:= RegKeyStrParamRead('HKLM', 'SYSTEM\CurrentControlSet\Control\Nls\Language', 'InstallLanguage');
if LangID = '0419'
  then
   begin
    DescriptionTextWuauServ:= 'Включает загрузку и установку обновлений Windows. Если служба отключена, то на этом компьютере нельзя будет использовать возможности автоматического обновления или веб-узел Центра обновления Windows.';
    DispayNameTextWuauServ:= 'Автоматическое обновление';
    DescriptionTextBITS:= 'Обеспечивает передачу данных между клиентами и серверами в фоновом режиме. Если служба BITS отключена, такие возможности, как Windows Update, не могут правильно работать.';
    DispayNameTextBITS:= 'Фоновая интеллектуальная служба передачи (BITS)';
    AddToLog('Операционная система - русская');
    FinishMsg:= '–––– Восстановление завершено ––––';
    RestoreMsg:= 'Восстановлено разделов\параметров: ';
    FixMsg:= 'Исправлено параметров: ';
    CheckMsg:= 'Проверено разделов\параметров: ';
    RegSectMsg:= 'Раздел реестра HKLM\';
    ParamMsg:= 'Параметр ';
    ParamValueMsg:= 'Значение параметра ';
    InRegSectMsg:= ' в разделе реестра HKLM\';
    CorrectMsg:= ' исправлено на оригинальное.';
    RestMsg:= ' восстановлен.';
   end
  else
   if LangID = '0409'
    then
     begin
      DescriptionTextWuauServ:= 'Enables the download and installation of Windows updates. If this service is disabled, this computer will not be able to use the Automatic Updates feature or the Windows Update Web site.';
      DispayNameTextWuauServ := 'Automatic Updates';
      DescriptionTextBITS:= 'Transfers data between clients and servers in the background. If BITS is disabled, features such as Windows Update will not work correctly.';
      DispayNameTextBITS:= 'Background Intelligent Transfer Service';
      AddToLog('Operation system - english');
      FinishMsg:= '–––– Restoration finished ––––';
      RestoreMsg:= 'Sections\parameters restored: ';
      FixMsg:= 'Parameters corrected: ';
      CheckMsg:= 'Sections\parameters checked: ';
      RegSectMsg:= 'Registry section HKLM\';
      ParamMsg:= 'Parameter ';
      ParamValueMsg:= 'Value of parameter ';
      InRegSectMsg:= ' in registry section HKLM\';
      CorrectMsg:= ' corrected on original.';
      RestMsg:= ' restored.';
     end;
AddToLog('');

{ Определение папки X:\Windows\System32\ }
NameFolderSystem32:= RegKeyStrParamRead('HKLM', 'SYSTEM\CurrentControlSet\Control\Windows', 'SystemDirectory');
ImagePathStr:= NameFolderSystem32 + '\svchost.exe -k netsvcs';
Delete(NameFolderSystem32, 1, pos('\', NameFolderSystem32) - 1);
FullPathSystem32:= GetEnvironmentVariable('WinDir') + NameFolderSystem32 + '\';

AllRoots:= 0;
AllKeys:= 0;
RootsRestored:= 0;
KeysRestored:= 0;
KeysFixed:= 0;

CorrectRegistryRoot(DescriptionTextBITS, DispayNameTextBITS, 'BITS');
CorrectRegistryRoot(DescriptionTextWuauServ, DispayNameTextWuauServ, 'wuauserv');

AddToLog('');
AddToLog(FinishMsg);
AddToLog('');
AddToLog(RestoreMsg + IntToStr(RootsRestored) + ' \ ' + IntToStr(KeysRestored));
AddToLog(FixMsg + IntToStr(KeysFixed));
AddToLog(CheckMsg + IntToStr(AllRoots) + ' \ ' + IntToStr(AllKeys));
SaveLog(RegKeyStrParamRead('HKEY_CURRENT_USER', 'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Desktop') + '\Correct_wuauserv&BITS.log');
RebootWindows(false);
end.
Внимание! Будет выполнена перезагрузка компьютера.

 

После выполнения скрипта на рабочем столе появится текстовый файл Correct_wuauserv&BITS. Прикрепите его.

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • alyx
      Автор alyx
      Здравcтвуйте, появилаcь проблема c Центром обновления Windows. На cколько давно я не знаю, оcобо не обращал внимания. При проверке обновлений начинаетcя беcконечная загрузка (1). Думаю это cвязанно c тем, что cлужба для обновления переименована (2). Читал информацию о иcправлении проблемы и cледовал по вcем пунктам для иcправления. Ничего не помогло.


    • Gistap
      Автор Gistap
      Здравствуйте. Виндовс 11. При запуске таймера на автоматическое выключение  через - выполнить, (shutdown -s -t 4000) мелькает окошко терминала и ничего не происходит. В чём проблема? Причём если поставить таймер на 10 секунд, то он его вырубит.
        CollectionLog-2025.03.11-16.27.zip
    • Gobafraggle
    • vasili_rb
      Автор vasili_rb
      Добрый вечер.
      Прошу помочь знающих людей.
      Поймал трояна. Антивирусом вычистил, но не работают службы обновления Windows.
      Заранее спасибо.
      Дополнение:
      возможно удалились службы...
      Либо троян что то с ними сделал...
    • infobez_bez
      Автор infobez_bez
      Здравствуйте
      интересует такой вопрос:
      Например есть группа администрирования "Карантин" - в ней 0 устройств, управляется политикой, которая ограничивает доступ в сеть, блокирована USB шина и т.д.
      Есть группа администрирования " Не карантин" - в ней например 100 устройств, там своя политика.
       
      В KSC, во вкладке "Устройства/Правила перемещения" - есть возможность настройки автоматического перемещения устройств между группами/ распределенными и нераспределенными устройствами. Для настройки перемещения есть условия сработки правила перемещения (теги, сеть, программы и т.д.).

      Плюс есть вкладка Устройства/Выборки устройств - где собраны различные выборки, с защитой/без защиты, устаревшие базы, есть активные угрозы и т.д.
       
      Хотелось бы выполнить настройку таким образом, чтобы при наличии на устройстве активных угроз оно автоматически перемещалось в группу администрирования "Карантин".

      В правилах перемещения - условия похожего на "наличие активных угроз" - нет, перемещать по попаданию в выборку тоже нельзя, но появилась мысль зацепиться за теги, например, есть активная угроза -> назначается тег -> по тегу устройство автоматически перемещается в группу администрирования "карантин" и на него действует соответствующая политика. Но в тегах тоже ничего подходящего не смог найти.
       
      Подскажите, можно ли выполнить настройку автоматического перемещения устройства между группами администрирования (или между политиками)  по наличию на устройстве активных угроз или нахождения вирусной активности? 
      Используется KSC 14.2 для Windows
×
×
  • Создать...