Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для zirreX

Ветеран


Сообщения: 876
Благодарности: 287

Профиль | Отправить PM | Цитировать


• Выполните скрипт AVZ
Перед выполнением скрипта отключите защитное ПО (антивирус, файрволл)

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');
end.
После выполнения скрипта на рабочем столе появится текстовый файл Correct_wuauserv&BITS. Его необходимо прикрепить к следующему посту в теме где вам оказывает помощь.

Данный скрипт распространяется свободно и может быть модицифирован по согласованию с авторами - представителями VirusNet.Info
При публикации скрипта данный комментарий обязателен.


Скачайте Malwarebytes' Anti-Malware или с зеркала, установите, обновите базы, выберите "Perform Full Scan", нажмите "Scan", после сканирования - Ok - Show Results (показать результаты) - Откройте лог и скопируйте в блокнот и прикрепите его к следующему посту.

-------


Отправлено: 19:48, 13-11-2010 | #2