aRger Выполни скрипт AVZ (как выполнить скрипт в шапке) 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.var После чего сделать новые логи AVZ (2й стандартный скрипт AVZ) Что с проблемами?