Отключить Защитник Windows в Windows 10

32

Я не могу найти информацию о том, как отключить Защитник Windows в Windows 10. В предварительном просмотре есть некоторая информация о том, как это сделать, но страницы конфигурации изменились с окончательным выпуском.

В частности, я хочу остановить и отключить службу Защитника Windows.

  • Использование net stop windefendиз командной строки с повышенными привилегиями дает «доступ запрещен»
  • Останов и тип запуска отображаются серым цветом в sevices.msc, даже если вы вошли в систему как администратор
  • Похоже, нет способа с графическим интерфейсом отключить UAC в Windows 10

Кто-нибудь разобрался, как отключить Defender в Windows 10?

Тодд уилкокс
источник
3
Самый простой способ. Просто установите платный / бесплатный пакет безопасности, и он автоматически отключится. Помимо этого просто зайдите в «Обновление и безопасность» и отключите защиту в режиме реального времени. Вы не можете отключить UAC в Windows 8 и выше в той же степени, что и в Windows 7. Конечно, я не уверен, что UAC имеет отношение к Защитнику Windows.
Ramhound
Я упомянул UAC, потому что казалось, что UAC мешал мне отключить Защитника. Я еще не установил последнюю версию Kaspersky, которая поддерживает Windows 10, и, честно говоря, я не настолько уверен, что Kaspersky будет хорошо установлен с работающим Defender. Кроме того, я хочу иметь возможность отключить его в принципе, в случае необходимости или по другим причинам.
Тодд Уилкокс
Я открыл Update & Securityи смог отключить Защитник Windows. Лично я смог отключить службу, хотя после этого я это сделал.
Ramhound
Защитник Windows разработан так, чтобы его можно было легко заменить, просто установите другое аудио-видео устройство, и оно должно автоматически отключиться.
Гроностай
3
@gronostaj Если бы мой вопрос состоял в том, как заменить Защитника Windows другим A / V-решением, я бы посоветовал вам опубликовать свой комментарий в качестве ответа, и я бы принял его, за исключением того, что ваш комментарий такой же, как у Ramhound, поэтому я бы действительно предложил он делает это. Но это не то, что я пытаюсь сделать.
Тодд Уилкокс

Ответы:

22

Вы можете сделать это с помощью групповой политики .

открыто gpedit.msc

перейдите к Computer Configuration > Administrative Templates > Windows Components > Windows Defender

Turn off Windows Defender = Включено

Если вы попытаетесь открыть Защитник Windows, вы увидите следующее: введите описание изображения здесь

И хотя в настройках может показаться, что служба включена, она не работает:введите описание изображения здесь

больше информации:

http://aaron-hoffman.blogspot.com/2015/08/install-and-setup-windows-10-for.html

и http://www.download3k.com/articles/How-to-Turn-Off-Windows-Defender-Permanently-in-Windows-10-01350

Аарон Хоффман
источник
Я не могу поверить, что я не нашел это самостоятельно. Благодарность!
Тодд Уилкокс
2
Это также для Windows Home? Я не могу найтиgpedit.msc
Stijn de Witt
2
Нет, это не работает для домашних пользователей. Pro / Enterprise / Образование только
sloosecannon
2
Попробовал это ... однако служба все еще работает в диспетчере задач.
Бриг
12

Я нашел другой способ, используя реестр.

Используя эту статью , я изменил тип запуска для служб и драйверов Защитника (!!) в реестре, когда вошел в систему как администратор. Вот краткий обзор:

  1. Просмотрите реестр на HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  2. Найдите службы, начинающиеся с «wd» и имеющие значение «Защитник Windows» в значении «Описание». Возможно неполный список: wdboot, wdfilter, wdnisdrv, wdnissvc, windefend.
  3. Измените Startзначение для каждой услуги на 0x4(шестнадцатеричное 4, десятичное 4).
  4. Перезагружать.
Тодд уилкокс
источник
4
Я вошел в систему как администратор и все еще получаю сообщение об ошибке «Ошибка записи. Ошибка записи нового содержимого значения».
Марк
1
Я тоже с той же ошибкой "Error writing start. Error writing the value's new contents. Любая работа для нас @Todd Wilcox?
Нам G VU
1
Вы пытались щелкнуть правой кнопкой мыши на Regedit и работает как администратор?
Тодд Уилкокс
2
К сожалению, на Win10 Home Single Language я получаю ту же ошибку, даже если я начал regedit от имени администратора, любой другой обходной путь. Я действительно начинаю готовить Windows 10 сейчас.
Гидеон
Если получаете Error writing (...), закройте regedit и снова откройте.
23 марта
11

Укороченная версия

  1. Скачать
  2. экстракт
  3. Двойной щелчок DisableDefender.reg

объяснение

Безусловно, самый эффективный и чистый способ навсегда отключить Защитника Windows в Windows 10 - через групповую политику, как описано Аароном Хоффманом. К сожалению, в Windows 10 Home отсутствуют необходимые инструменты.

Вот файл реестра, который содержит изменения, сделанные gpedit.msc на компьютере с Windows 10 Pro. Он также был протестирован на Windows 10 Home. Сохраните файл, как в DisableDefender.regконце строки в стиле Windows, и дважды щелкните его, чтобы импортировать в реестр.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
"DisableAntiSpyware"=dword:00000001
"DisableRoutinelyTakingAction"=dword:00000001

Если вы когда - нибудь захотите повторно включить Защитник, изменения 00000001в 00000000обеих линиях.

Вы можете скачать файлы для отключения и повторного включения защитника из Gist .

Zenexer
источник
1
Вы выиграли сегодня в Интернете, сэр.
ivan_bilan
Я снова включил WD с помощью regedit значения 00000000, результаты WD Защита в режиме реального времени отключена, потому что вы используете другой AV. На самом деле у меня не установлен антивирус. Как это исправить? Спасибо
Сантоса Сэнди
@SantosaSandy Это может произойти по ряду причин, включая вредоносные программы. Вы должны начать отдельный вопрос.
Zenexer
Спасибо г-н PB. В экстренной ситуации и отсутствии подсказки об ошибках, я просто обновляю окна и запускаю очиститель реестра (например, CCleaner). Защитник Windows снова активен. Спасибо
Сантоса Сэнди
4

Чтобы полностью отключить Защитник Windows (а не только защиту в реальном времени), вы можете:

  1. Установите другой пакет безопасности (как упомянул Ramhound).
  2. Если вы хотите использовать стороннее приложение, вы можете использовать NoDefender: http://msft.gq/pub/apps/NoDefender.zip

Более подробную информацию о NoDefender можно найти здесь: http://winaero.com/blog/nodefender-disable-windows-defender-in-windows-10-with-few-clicks/

user5071535
источник
Я подозреваю, что NoDefender может быть просто автоматическим способом редактирования реестра, что я сделал вручную.
Тодд Уилкокс
@ ToddWilcox, твой метод лучше моего! Одно менее стороннее приложение для беспокойства.
user5071535
1
я все еще вижу запущенную службу защиты от вредоносных программ, которая запускает защитник Windows. У меня установлено бесплатное издание avg
shorif2000
2
Точно, @Sharif Я хотел бы увидеть любые подтверждения того, что служба защиты от вредоносных программ также отключена.
Марк
2

Я написал командный файл и файлы реестра, которые должны полностью отключить Защитника Windows в Windows 10.

  1. Сохраните следующие файлы в той же папке.
  2. Запуск Disable Windows Defender.batот имени администратора.
  3. После того, как пакетный файл готов, перезапустите.
  4. Запустите Disable Windows Defender.batснова как администратор.
  5. Защитник Windows должен быть полностью отключен.

Disable Windows Defender.bat

@echo off

call :main %*
goto :eof

:main
    setlocal EnableDelayedExpansion

    rem Check if Windows Defender is running.
    tasklist /fi "imageName eq "MsMpEng.exe"" | find /i "MsMpEng.exe" > nul 2> nul
    if %errorLevel% equ 0 (
        rem Windows Defender is running.
        echo Windows Defender is running.

        rem Performable operations while Windows Defender is running.
        rem Disable Windows Defender drivers.
        echo Disabling Windows Defender drivers...
        set "drivers="%SystemRoot%\System32\drivers\WdBoot.sys";"%SystemRoot%\System32\drivers\WdFilter.sys";"%SystemRoot%\System32\drivers\WdNisDrv.sys""
        set "drivers=!drivers:""="!"

        set "wasDriverDisabled=false"
        for %%d in (!drivers!) do (
            if exist "%%~d" (
                echo Disabling Windows Defender driver "%%~d"...
                call :disableFile "%%~d"
                set "wasDriverDisabled=true"
            )
        )

        rem Disable Windows Defender objects.
        echo Disabling Windows Defender objects...
        call :importRegistry "Disable Windows Defender objects.reg"

        rem Require restart to unload Windows Defender drivers and objects.
        echo.
        echo Restart required.
    ) else (
        rem Windows Defender is not running.
        echo Windows Defender is not running.

        rem Performable operations while Windows Defender is not running.
        rem Disable Windows Defender features.
        echo Disabling Windows Defender features...
        call :importRegistry "Disable Windows Defender features.reg"
        rem Disable Windows Defender services.
        echo Disabling Windows Defender services...
        call :importRegistry "Disable Windows Defender services.reg"

        rem Disable Windows Defender files.
        echo Disabling Windows Defender files...
        ren "%ProgramFiles%\Windows Defender" "Windows Defender.bak"
        ren "%ProgramFiles(x86)%\Windows Defender" "Windows Defender.bak"
        ren "%ProgramData%\Microsoft\Windows Defender" "Windows Defender.bak"
    )

    endlocal
    goto :eof

:ownFile
    setlocal
    set "filePath=%~1"
    set "user=%~2"
    takeown /f "%filePath%" /a
    icacls "%filePath%" /grant "%user%:F"
    endlocal
    goto :eof

:disableFile
    setlocal
    set "filePath=%~1"
    call :ownFile "%filePath%" "Administrators"
    ren "%filePath%" "%~nx1.bak"
    endlocal
    goto :eof

:importRegistry
    setlocal
    set "filePath=%~1"
    call OwnRegistryKeys.bat "%filePath%"
    @echo off
    regedit /s "%filePath%"
    endlocal
    goto :eof

Disable Windows Defender objects.reg

Windows Registry Editor Version 5.00

; Disable "Scan with Windows Defender..." right click context menu.
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{09A47860-11B0-4DA5-AFA5-26D86198A780}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{09A47860-11B0-4DA5-AFA5-26D86198A780}]
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{D8559EB9-20C0-410E-BEDA-7ED416AECC2A}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{D8559EB9-20C0-410E-BEDA-7ED416AECC2A}]

; Disable PSFactoryBuffer ("mpuxhostproxy.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{13F6A0B6-57AF-4BA7-ACAA-614BC89CA9D8}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{13F6A0B6-57AF-4BA7-ACAA-614BC89CA9D8}]

; Disable "DefenderCSP.dll".
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{195B4D07-3DE2-4744-BBF2-D90121AE785B}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{195B4D07-3DE2-4744-BBF2-D90121AE785B}]

; Disable Windows Defender IOfficeAntiVirus implementation ("MpOav.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{2781761E-28E0-4109-99FE-B9D127C57AFE}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{2781761E-28E0-4109-99FE-B9D127C57AFE}]

; Disable InfectionState WMI Provider ("MpProvider.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{361290c0-cb1b-49ae-9f3e-ba1cbe5dab35}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{361290c0-cb1b-49ae-9f3e-ba1cbe5dab35}]

; Disable Status WMI Provider ("MpProvider.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{8a696d12-576b-422e-9712-01b9dd84b446}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{8a696d12-576b-422e-9712-01b9dd84b446}]

; Disable PSFactoryBuffer ("mpuxhostproxy.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{94F35585-C5D7-4D95-BA71-A745AE76E2E2}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{94F35585-C5D7-4D95-BA71-A745AE76E2E2}]

; Disable Microsoft Windows Defender ("MsMpCom.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{A2D75874-6750-4931-94C1-C99D3BC9D0C7}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{A2D75874-6750-4931-94C1-C99D3BC9D0C7}]
[-HKEY_LOCAL_MACHINE\Software\Classes\TypeLib\{8C389764-F036-48F2-9AE2-88C260DCF43B}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\TypeLib\{8C389764-F036-48F2-9AE2-88C260DCF43B}]

; Disable Windows Defender WMI Provider ("ProtectionManagement.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{A7C452EF-8E9F-42EB-9F2B-245613CA0DC9}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{A7C452EF-8E9F-42EB-9F2B-245613CA0DC9}]

; Disable AMMonitoring WMI Provider ("AMMonitoringProvider.dll").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{DACA056E-216A-4FD1-84A6-C306A017ECEC}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{DACA056E-216A-4FD1-84A6-C306A017ECEC}]

; Disable MP UX Host ("MpUxSrv.exe").
[-HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{FDA74D11-C4A6-4577-9F73-D7CA8586E10D}]
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{FDA74D11-C4A6-4577-9F73-D7CA8586E10D}]

Disable Windows Defender features.reg

Windows Registry Editor Version 5.00

; Disable Windows Defender features.
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Defender]
"DisableAntiSpyware"=dword:00000001
"DisableRoutinelyTakingAction"=dword:00000001
"ProductStatus"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Defender\Real-Time Protection]
"DisableAntiSpywareRealtimeProtection"=dword:00000001
"DisableRealtimeMonitoring"=dword:00000001

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Defender\Scan]
"AutomaticallyCleanAfterScan"=dword:00000000
"ScheduleDay"=dword:00000008

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Defender\UX Configuration]
"AllowNonAdminFunctionality"=dword:00000000
"DisablePrivacyMode"=dword:00000001

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows Defender]
"DisableAntiSpyware"=dword:00000001
"DisableRoutinelyTakingAction"=dword:00000001
"ProductStatus"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows Defender\Real-Time Protection]
"DisableAntiSpywareRealtimeProtection"=dword:00000001
"DisableRealtimeMonitoring"=dword:00000001

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows Defender\Scan]
"AutomaticallyCleanAfterScan"=dword:00000000
"ScheduleDay"=dword:00000008

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows Defender\UX Configuration]
"AllowNonAdminFunctionality"=dword:00000000
"DisablePrivacyMode"=dword:00000001

Disable Windows Defender services.reg

Windows Registry Editor Version 5.00

; Disable "Windows Defender" services.
[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\WinDefend]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\WinDefend]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WinDefend]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\WdBoot]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\WdBoot]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WdBoot]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\WdFilter]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\WdFilter]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WdFilter]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\WdNisDrv]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\WdNisDrv]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WdNisDrv]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\WdNisSvc]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\WdNisSvc]
"Start"=dword:00000004
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WdNisSvc]
"Start"=dword:00000004

OwnRegistryKeys.bat

@echo off

rem Get the location of the PowerShell file.
for /f "usebackq tokens=*" %%f in (`where "OwnRegistryKeys.ps1"`) do (
    rem Run command for each argument.
    for %%a in (%*) do (
        powershell -executionPolicy bypass -file "%%~f" "%%~a"
    )
)

OwnRegistryKeys.ps1

$script:baseKey = @{
    "HKEY_CLASSES_ROOT" = @{
        "name" = "HKEY_CLASSES_ROOT";
        "shortName" = "HKCR";
        "key" = [Microsoft.Win32.Registry]::ClassesRoot
    };
    "HKEY_CURRENT_CONFIG" = @{
        "name" = "HKEY_CURRENT_CONFIG";
        "shortName" = "HKCC";
        "key" = [Microsoft.Win32.Registry]::CurrentConfig
    };
    "HKEY_CURRENT_USER" = @{
        "name" = "HKEY_CURRENT_USER";
        "shortName" = "HKCU";
        "key" = [Microsoft.Win32.Registry]::CurrentUser
    };
    "HKEY_DYN_DATA" = @{
        "name" = "HKEY_DYN_DATA";
        "shortName" = "HKDD";
        "key" = [Microsoft.Win32.Registry]::DynData
    };
    "HKEY_LOCAL_MACHINE" = @{
        "name" = "HKEY_LOCAL_MACHINE";
        "shortName" = "HKLM";
        "key" = [Microsoft.Win32.Registry]::LocalMachine
    };
    "HKEY_PERFORMANCE_DATA" = @{
        "name" = "HKEY_PERFORMANCE_DATA";
        "shortName" = "HKPD";
        "key" = [Microsoft.Win32.Registry]::PerformanceData
    };
    "HKEY_USERS" = @{
        "name" = "HKEY_USERS";
        "shortName" = "HKU";
        "key" = [Microsoft.Win32.Registry]::Users
    }
}

function enablePrivilege {
    param(
        # The privilege to adjust. This set is taken from:
        # http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx
        [validateSet(
            "SeAssignPrimaryTokenPrivilege",
            "SeAuditPrivilege",
            "SeBackupPrivilege",
            "SeChangeNotifyPrivilege",
            "SeCreateGlobalPrivilege",
            "SeCreatePagefilePrivilege",
            "SeCreatePermanentPrivilege",
            "SeCreateSymbolicLinkPrivilege",
            "SeCreateTokenPrivilege",
            "SeDebugPrivilege",
            "SeEnableDelegationPrivilege",
            "SeImpersonatePrivilege",
            "SeIncreaseBasePriorityPrivilege",
            "SeIncreaseQuotaPrivilege",
            "SeIncreaseWorkingSetPrivilege",
            "SeLoadDriverPrivilege",
            "SeLockMemoryPrivilege",
            "SeMachineAccountPrivilege",
            "SeManageVolumePrivilege",
            "SeProfileSingleProcessPrivilege",
            "SeRelabelPrivilege",
            "SeRemoteShutdownPrivilege",
            "SeRestorePrivilege",
            "SeSecurityPrivilege",
            "SeShutdownPrivilege",
            "SeSyncAgentPrivilege",
            "SeSystemEnvironmentPrivilege",
            "SeSystemProfilePrivilege",
            "SeSystemtimePrivilege",
            "SeTakeOwnershipPrivilege",
            "SeTcbPrivilege",
            "SeTimeZonePrivilege",
            "SeTrustedCredManAccessPrivilege",
            "SeUndockPrivilege",
            "SeUnsolicitedInputPrivilege"
        )]
        $privilege,

        # The process on which to adjust the privilege. Defaults to the current process.
        $processId = $pid,

        # Switch to disable the privilege, rather than enable it.
        [switch] $disable
    )

    # Taken from P/Invoke.NET with minor adjustments.
    $definition = @'
using System;
using System.Runtime.InteropServices;

public class AdjustPrivilege {
    [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
    internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);

    [DllImport("advapi32.dll", ExactSpelling = true, SetLastError = true)]
    internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);

    [DllImport("advapi32.dll", SetLastError = true)]
    internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    internal struct TokPriv1Luid {
        public int Count;
        public long Luid;
        public int Attr;
    }

    internal const int SE_PRIVILEGE_ENABLED = 0x00000002;
    internal const int SE_PRIVILEGE_DISABLED = 0x00000000;
    internal const int TOKEN_QUERY = 0x00000008;
    internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;

    public static bool EnablePrivilege(long processHandle, string privilege, bool disable) {
        bool result;
        TokPriv1Luid tp;
        IntPtr hproc = new IntPtr(processHandle);
        IntPtr htok = IntPtr.Zero;
        result = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
        tp.Count = 1;
        tp.Luid = 0;
        if (disable) {
            tp.Attr = SE_PRIVILEGE_DISABLED;
        } else {
            tp.Attr = SE_PRIVILEGE_ENABLED;
        }
        result = LookupPrivilegeValue(null, privilege, ref tp.Luid);
        result = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);
        return result;
    }
}
'@

    $processHandle = (get-process -id $processId).handle
    $type = add-type $definition -passThru
    $type[0]::EnablePrivilege($processHandle, $privilege, $disable)
}

function getKeyNames {
    param(
        [parameter(mandatory = $true)]
        [string[]] $filePaths = $null
    )

    return (get-content $filePaths | select-string -pattern "\[\-?(.*)\]" -allMatches | forEach-object {$_.matches.groups[1].value} | get-unique)
}

function splitKeyName {
    param(
        [parameter(mandatory = $true)]
        [string] $keyName = $null
    )

    $names = $keyName.split("\\/", 2)

    $rootKeyName = $names[0]
    $subKeyName = $names[1]

    $keyPart = @{
        root = $baseKey[$rootKeyName];
        subKey = @{
            name = $subKeyName
        }
    }

    return $keyPart
}

function ownRegistryKey {
    param(
        [parameter(mandatory = $true)]
        [string] $keyName = $null
    )

    write-host """$keyName"""

    # Check if the key exists.
    if ($(try { test-path -path "Registry::$keyName".trim() } catch { $false })) {
        write-host "    Opening..."

        $keyPart = splitKeyName -keyName $keyName
        $ownableKey = $keyPart.root.key.openSubKey($keyPart.subKey.name, [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree, [System.Security.AccessControl.RegistryRights]::TakeOwnership)
        if ($ownableKey -ne $null) {
            # Set the owner.
            write-host "    Setting owner..."
            $acl = $ownableKey.getAccessControl([System.Security.AccessControl.AccessControlSections]::None)
            $owner = [System.Security.Principal.NTAccount] "Administrators"
            $acl.setOwner($owner)
            $ownableKey.setAccessControl($acl)

            # Set the permissions.
            write-host "    Setting permissions..."
            $acl = $ownableKey.getAccessControl()
            $person = [System.Security.Principal.NTAccount] "Administrators"
            $access = [System.Security.AccessControl.RegistryRights] "FullControl"
            $inheritance = [System.Security.AccessControl.InheritanceFlags] "ContainerInherit"
            $propagation = [System.Security.AccessControl.PropagationFlags] "None"
            $type = [System.Security.AccessControl.AccessControlType] "Allow"

            $rule = new-object System.Security.AccessControl.RegistryAccessRule($person, $access, $inheritance, $propagation, $type)
            $acl.setAccessRule($rule)
            $ownableKey.setAccessControl($acl)

            $ownableKey.close()

            write-host "    Done."

            # Own children subkeys.
            $readableKey = $keyPart.root.key.openSubKey($keyPart.subKey.name, [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadSubTree, [System.Security.AccessControl.RegistryRights]::ReadKey)
            if ($readableKey -ne $null) {
                $subKeyNames = ($readableKey.getSubKeyNames() | forEach-object { "$keyName\$_" })
                $readableKey.close()
                if ($subKeyNames -ne $null) {
                    ownRegistryKeys -keyNames $subKeyNames
                }
            } else {
                write-host "    Unable to open children subkeys."
            }
        } else {
            write-host "    Unable to open subkey."
        }
    } else {
        write-host "    Key does not exist."
    }

    write-host
}

function ownRegistryKeys {
    param(
        [parameter(mandatory = $true)]
        [string[]] $keyNames = $null
    )

    $keyName = $null
    foreach ($keyName in $keyNames) {
        # Own parent key and children subkeys.
        ownRegistryKey -keyName $keyName
    }
}

function requestPrivileges {
    $numberOfRetries = 10

    $privilegeResult = $false
    for ($r = 0; !$privilegeResult -band $r -lt $numberOfRetries; $r += 1) {
        $privilegeResult = enablePrivilege -privilege "SeTakeOwnershipPrivilege"
    }

    if (!$privilegeResult) {
        write-host "Unable to receive privilege."
        exit 1
    }
}

function main {
    param(
        [parameter(mandatory = $true)]
        [string[]] $filePaths = $null
    )

    requestPrivileges

    $keyNames = getKeyNames -filePaths $filePaths
    ownRegistryKeys -keyNames $keyNames
}

main $args
XP1
источник
Благодарность! КСТАТИ: Это требует английской версии Windows для правильной работы
М. Абдельхафид
2

Было бы полезно понять, почему вы не можете остановить определенную службу.

  • Я администратор; хуже, чем неудача, администратор не может администрировать ?!

Это из-за разрешений безопасности на сервис WinDefend .

Примечание . WinDefendФактическое название «Антивирусная служба Защитника Windows».

введите описание изображения здесь

Разрешения на просмотр

Если вы запускаете из командной строки:

>sc sdshow WinDefend

где

  • sdshowозначает «Отображает дескриптор безопасности сервиса».

Вы получите дескриптор безопасности :

C:\Users\Ian>sc sdshow WinDefend

D:(A;;CCLCSWRPLOCRRC;;;BU)(A;;CCLCSWRPLOCRRC;;;SY)(A;;CCLCSWRPLOCRRC;;;BA)(A;;CCLCSWRPLOCRRC;;;IU)(A;;CCLCSWRPLOCRRC;;;SU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736)

Это довольно уродливый блоб, и он полностью недокументирован Microsoft, но у нас будет шанс расшифровать его. Сначала по переносу слов:

D:
   (A;;CCLCSWRPLOCRRC;;;BU)
   (A;;CCLCSWRPLOCRRC;;;SY)
   (A;;CCLCSWRPLOCRRC;;;BA)
   (A;;CCLCSWRPLOCRRC;;;IU)
   (A;;CCLCSWRPLOCRRC;;;SU)
   (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)
   (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736)

D:Означает , что это дискреционные список управления доступом . Список контроля доступа состоит из нескольких записей контроля доступа (ACE):

  • D: дискреционный список контроля доступа
    • ACE1: A;;CCLCSWRPLOCRRC;;;BU
    • ACE2: A;;CCLCSWRPLOCRRC;;;SY
    • ACE3: A;;CCLCSWRPLOCRRC;;;BA
    • ACE4: A;;CCLCSWRPLOCRRC;;;IU
    • ACE5: A;;CCLCSWRPLOCRRC;;;SU
    • ACE6: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464
    • ACE7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Каждый элемент ACE представляет собой набор из 5 параметров с точкой с запятой, после которых указывается, к кому он относится.

Сначала рассмотрим, к кому они обращаются, случайная статья блога расшифрует некоторые из них ( archive.is ) :

  • BU: Встроенные пользователи
  • SY: Локальная система
  • BA: Встроенные администраторы
  • UI: Интерактивно вошедший в систему пользователь
  • SU: Пользователь службы входа в систему
  • S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464: Доверенный установщик
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736:

Вы можете получить имя, связанное с SID, запустив:

>wmic useraccount where sid='S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736' get name

Каждый ACE содержит список разрешений, которые пользователю разрешено или запрещено.

  • D: дискреционный список контроля доступа
    • ACE 1: A;;CCLCSWRPLOCRRC;;; встроенные пользователи
    • ТУЗ 2: A;;CCLCSWRPLOCRRC;;; Локальная система
    • ACE 3: A;;CCLCSWRPLOCRRC;;; встроенные администраторы
    • ACE 4: A;;CCLCSWRPLOCRRC;;; интерактивный пользователь
    • ACE 5: A;;CCLCSWRPLOCRRC;;; пользователь входа в систему
    • ACE 6: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; доверенный установщик
    • ACE 7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Разбивка оставшихся разделенных точкой с запятой разделов в ACE:

  • ACE: A;;CCLCSWRPLOCRRC;;;
    • AceType: AACCESS_ALLOWED_ACE_TYPE
    • AceFlags: (нет)
    • AccessMask: CC LC SW RP LO CR RC
      • CC: CREATE_CHILD
      • LC: LIST_CHILDREN
      • SW: SELF_WRITE
      • RP: READ_PROPERTY
      • LO: LIST_OBJECT
      • CR: CONTROL_ACCESS
      • RC: READ_CONTROL
    • ObjectGuid: (нет)
    • InheritObjectGuid: (нет)

Ведущий Aозначает « Разрешено» , а разрешения - двухбуквенные коды:

  • D: дискреционный список контроля доступа
    • ТУЗ 1 : Разрешить CC LC SW RP LO CR RC, Встроенные пользователи
    • ТУЗ 2 : Разрешить CC LC SW RP LO CR RC, Локальная система
    • ACE 3 : Разрешить CC LC SW RP LO CR RC, встроенные администраторы
    • ACE 4 : Разрешить CC LC SW RP LO CR RC, Интерактивный пользователь
    • ACE 5 : Разрешить CC LC SW RP LO CR RC, Сервисный пользователь входа
    • ACE 6 : Разрешить CC LC SW RP LO CR RC DC WP DT SD WD WO, Доверенный установщик
    • ACE 7 : Разрешить CC LC SW RP LO CR RC DC WP DT SD WD WO, S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

И здесь мне придется остановиться, чтобы сохранить свою работу. Этот обходной путь в том, как остановить службу Защитника Windows, интересен и все: но я уже остановил это, и мой компьютер все еще плохо себя ведет.

Спойлер:

sc sdset WinDefend [newSDLString]

Бонус Чтение

Ян Бойд
источник
1

Простой способ powershell - здесь из ответа, который я разместил на вопрос, позже помеченный как дубликат для этого.

Самый простой способ сделать это - использовать PowerShell, чтобы отключить его, команда, которую вы, вероятно, хотите, это

Set-MpPreference -DisableRealtimeMonitoring $true
Get-Service WinDefend | stop-service 

Чтобы узнать статью об использовании PowerShell для отключения / включения Защитника Windows, перейдите по ссылке: http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender-on-windows. -10-используя-PowerShell

Вот техническая статья для более подробного изучения доступных командлетов защитника: https://technet.microsoft.com/en-us/library/dn433280.aspx

Абраксас
источник
Я не верю, что это остановит и отключит сам сервис. Он просто отключает возможности Защитника Windows в режиме реального времени, что можно сделать просто через Настройки, не требуя апплета PowerShell.
Ramhound
@Ramhound отредактирован для службы mgmt с powershell. Я не на 100% остановлю службу без той же проблемы, что и служба сетевой остановки, но мне повезло больше с PowerShell, и я не верю, что псевдоним get / stop-service для net-stop
Abraxas
1

Я обнаружил, что следующая процедура работает хорошо; он не удаляет и не отключает Защитника Windows, но отключает СЕРВИС Защитника Windows, останавливает все процессы запуска и сканирования в реальном времени и предотвращает повторное включение Защитника Windows в реальном времени. (Защитник Windows остается на месте, поэтому вы можете использовать его для проверки подозрительных файлов по требованию.)

ПРОЦЕДУРА:

  1. Найти, скачать, установить пакет программ "SysInternals".
  2. Запустите программу «Автозапуск».
  3. Найдите «Служба Защитника Windows».
  4. Снимите флажок.
  5. Перезагрузите компьютер.

После этого время запуска уменьшилось с 20 до 5 минут, а использование памяти после запуска (до запуска любых приложений) уменьшилось с 2,1 до 1,2 ГБ. И когда я посмотрел в «Службы», я обнаружил, что «Служба Защитника Windows», пока она еще там, теперь помечена как «НЕ работает, отключена».

Робби Хэтли
источник
Дает "доступ запрещен", даже работает как администратор
pgr
1

Надежно и полностью отключить Защитника Windows не так просто. Существует сценарий PowerShell, который удаляет Защитник Windows, но позже вы не сможете установить его обратно. Этот скрипт требует двух перезагрузок.

Просто скачайте Debloat-Windows-10 и выполните следующие действия, предоставленные автором:

  1. Распаковать архив;
  2. Включить выполнение сценариев PowerShell:

    PS> Set-ExecutionPolicy Unrestricted

  3. Разблокируйте скрипты и модули PowerShell в этом каталоге:

    PS> ls -Recurse * .ps1 | Разблокировать файл PS> ls -Recurse * .psm1 | Разблокировать-файл

  4. Бег scripts\disable-windows-defender.ps1

  5. Перезагрузите компьютер (обычным способом или через PS > Restart-Computer)
  6. Беги scripts\disable-windows-defender.ps1еще раз.
  7. Перезагрузите компьютер снова.

Это не самый простой способ, но очень надежный и отказоустойчивый.

Существуют также сценарии для удаления ненужных программ, таких как BingFinance, Skype, OneDrive и т. Д., Если они вам не нужны.

Архив также содержит множество скриптов, которые могут оказаться полезными для вас.

Обратите внимание, что эти сценарии необратимо удаляют файлы и могут удалять жизненно важные функции Windows. Например, они могут полностью отключить меню «Пуск»!

Не запускайте disable-ShellExperienceHost.batиз этого пакета, иначе меню «Пуск» перестанет открываться.

Максим Масютин
источник
0

Мне удалось отключить его с помощью автозапуска; под вкладкой сервисы есть запись WinDefend, снимите флажок и перезагрузите компьютер.

FreddyFlares
источник
Дает "доступ запрещен", даже работает в качестве администратора
pgr
0

Самый простой способ, который я нашел, - это открыть командную строку администратора и запустить:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /t REG_DWORD /v DisableAntiSpyware /f /d 1

Затем перезагрузите компьютер. Я не смог найти, чтобы отключить службу, как только она была запущена без перезагрузки.

jcoffland
источник
0

По моему опыту, настройка групповой политики является наиболее надежным способом остановки Защитника Windows и исполняемого файла службы защиты от вредоносных программ. Однако недавно я столкнулся с ситуацией, когда настройка групповой политики не имела никакого эффекта, и исполняемый файл Antimalware продолжал работать и загружаться в мой процессор.

Я закончил тем, что написал небольшой скрипт, который стал владельцем исполняемого файла и лишил его прав на чтение и выполнение. Это решило проблему. Сценарий ниже.

@echo off

echo.
echo Disabling Windows Defender Antimalware Executable
echo Note: must be run with Admin permissions
echo.

rem taking ownership of Windows Defender files so that we can change their permissions
takeown /f "%PROGRAMDATA%\Microsoft\Windows Defender\Platform" /A /r /d y > takeown-result.txt

rem denying read and execute for all MsMpEng.exe files found in the directory structure (there may be multiple versions)
icacls %PROGRAMDATA%"\Microsoft\Windows Defender\Platform\*MsMpEng.exe" /deny SYSTEM:(RX) /T /C  /deny Administrators:(RX) /T /C   /deny Users:(RX) /T /C

@echo on
Энди
источник
Это работало для меня в Windows 10 Pro [Версия 10.0.18362.476] и пережило перезагрузку. Но мой путь былc:\Program Files\Windows Defender\MsMpEng.exe
пгр