Wyłącz Windows Defender w Windows 10

32

Nie mogę znaleźć żadnych informacji na temat wyłączania programu Windows Defender w systemie Windows 10. Jest kilka informacji o tym, jak to zrobić w podglądzie, ale strony konfiguracji zmieniły się wraz z ostateczną wersją.

W szczególności chcę zatrzymać i wyłączyć usługę Windows Defender Service.

  • Korzystanie net stop windefendz wiersza polecenia z podwyższonym poziomem uprawnień powoduje „odmowę dostępu”
  • Typ zatrzymania i uruchamiania jest wyszarzony w sevices.msc, nawet po zalogowaniu jako administrator
  • Wydaje się, że nie ma sposobu GUI na wyłączenie UAC w Windows 10

Czy ktoś wymyślił, jak wyłączyć Defender w systemie Windows 10?

Todd Wilcox
źródło
3
Najprostsza metoda. Wystarczy zainstalować płatny / bezpłatny pakiet bezpieczeństwa, a on sam się automatycznie wyłączy. Poza tym wystarczy przejść do „Aktualizacji i bezpieczeństwa” i wyłączyć ochronę w czasie rzeczywistym. Nie można wyłączyć UAC w Windows 8 i wyżej w takim samym stopniu, jak w Windows 7. Oczywiście nie jestem pewien, co UAC ma wspólnego z Windows Defender.
Ramhound
Wspomniałem o UAC, ponieważ wydawało się możliwe, że UAC uniemożliwiał mi wyłączenie Defender. Nie wdrożyłem jeszcze najnowszego Kaspersky, który obsługuje system Windows 10 i szczerze mówiąc, nie jestem pewien, czy Kaspersky dobrze zainstaluje się z uruchomionym Defender. Dodatkowo chcę być w stanie ją wyłączyć w zasadzie na wypadek, gdy będę potrzebować lub chcę z innych powodów.
Todd Wilcox
Otworzyłem Update & Securityi mogę wyłączyć Windows Defender. Osobiście udało mi się jednak wyłączyć tę usługę.
Ramhound
Program Windows Defender został zaprojektowany tak, aby można go było łatwo wymienić. Wystarczy zainstalować inny system AV i powinien on automatycznie się wyłączyć.
gronostaj
3
@gronostaj Gdyby moje pytanie dotyczyło sposobu zastąpienia programu Windows Defender innym rozwiązaniem audio / wideo, sugerowałbym opublikowanie komentarza jako odpowiedzi i zaakceptowałbym go, z wyjątkiem tego, że komentarz jest taki sam jak Ramhounda, więc naprawdę sugeruję on to robi. Ale nie to próbuję zrobić.
Todd Wilcox

Odpowiedzi:

22

Możesz to zrobić za pomocą zasad grupy .

otwarty gpedit.msc

nawigować do Computer Configuration > Administrative Templates > Windows Components > Windows Defender

Turn off Windows Defender = Włączone

Jeśli następnie spróbujesz otworzyć program Windows Defender, zobaczysz to: wprowadź opis zdjęcia tutaj

I chociaż w Ustawieniach może się wydawać, że jest włączony, Usługa nie działa:wprowadź opis zdjęcia tutaj

więcej informacji:

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

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

Aaron Hoffman
źródło
Nie mogę uwierzyć, że sam tego nie znalazłem. Dzięki!
Todd Wilcox,
2
Czy dotyczy to także Windows Home? Nie mogę znaleźćgpedit.msc
Stijn de Witt
2
Nie, nie działa dla użytkowników domowych. Pro / Enterprise / Education only
sloosecannon
2
Próbowałem tego ... jednak usługa nadal działa w menedżerze zadań.
Bryg.
12

Znalazłem inny sposób korzystania z rejestru.

Korzystając z tego artykułu , zmieniłem typ uruchamiania usług i sterowników Defender (!!) w rejestrze, gdy jestem zalogowany jako administrator. Oto krótkie podsumowanie:

  1. Przeglądaj rejestr do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  2. Poszukaj usług zaczynających się od „wd”, które mają „Windows Defender” w wartości Opis. Prawdopodobnie niepełna lista to: wdboot, wdfilter, wdnisdrv, wdnissvc, windefend.
  3. Zmień Startwartość dla każdej usługi na 0x4(szesnastkowy 4, dziesiętny 4).
  4. Restart.
Todd Wilcox
źródło
4
Jestem zalogowany jako administrator i nadal pojawia się błąd „Błąd zapisu. Rozpocznij zapisywanie nowej zawartości wartości”.
Mark
1
Ja też z tym samym błędem "Error writing start. Error writing the value's new contents. Jakiś pracodawca dla nas @Todd Wilcox?
Nam G VU
1
Czy próbowałeś kliknąć prawym przyciskiem myszy regedit i uruchomić jako administrator?
Todd Wilcox,
2
niestety w Win10 Home Single Language pojawia się ten sam błąd, nawet jeśli zacząłem regedit jako admin, w innym rozwiązaniu. Naprawdę zaczynam obniżać system Windows 10.
gideon
Jeśli się pojawi Error writing (...), zamknij regedit i otwórz ponownie.
Marc.2377
11

Krótka wersja

  1. Ściągnij
  2. Wyciąg
  3. Podwójne kliknięcie DisableDefender.reg

Wyjaśnienie

Zdecydowanie najbardziej skutecznym i czystym sposobem na trwałe wyłączenie programu Windows Defender w systemie Windows 10 jest zastosowanie zasad grupy, zgodnie z opisem Aarona Hoffmana. Niestety w systemie Windows 10 Home brakuje niezbędnych narzędzi.

Oto plik rejestru zawierający zmiany wprowadzone przez gpedit.msc na komputerze z systemem Windows 10 Pro. Został również przetestowany w systemie Windows 10 Home. Zapisz plik jak DisableDefender.regz zakończeniami linii w stylu Windows i kliknij go dwukrotnie, aby zaimportować do rejestru.

Windows Registry Editor Version 5.00

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

Jeśli kiedykolwiek chcesz ponownie włączyć Defender, zmień 00000001na 00000000na obu liniach.

Możesz pobrać pliki, aby wyłączyć i ponownie włączyć Defender z Gist .

Zenexer
źródło
1
Wygrałeś dzisiaj Internet, proszę pana.
ivan_bilan
Ponownie włączyłem WD przez regedit na wartość 00000000, wyniki WD Ochrona w czasie rzeczywistym jest wyłączona, ponieważ używasz innego AV. W rzeczywistości nie mam zainstalowanego żadnego programu antywirusowego. Jak to naprawić? Dzięki
Santosa Sandy,
@SantosaSandy Może się to zdarzyć z wielu powodów, w tym złośliwego oprogramowania. Powinieneś zacząć osobne pytanie.
Zenexer,
Dzięki, panie PB. W sytuacji awaryjnej i braku błędu przy badaniu wskazówek, po prostu aktualizuję system Windows i uruchamiam narzędzie do czyszczenia rejestru (np. CCleaner). Program Windows Defender jest ponownie aktywny. Dzięki
Santosa Sandy
4

Aby całkowicie wyłączyć program Windows Defender (nie tylko ochronę w czasie rzeczywistym), możesz:

  1. Zainstaluj inny pakiet bezpieczeństwa (jak wspomniano Ramhound).
  2. Jeśli chcesz korzystać z aplikacji innej firmy, możesz użyć NoDefender: http://msft.gq/pub/apps/NoDefender.zip

Więcej informacji o NoDefender można znaleźć tutaj: http://winaero.com/blog/nodefender-disable-windows-defender-in-windows-10-with-few-clicks/

użytkownik5071535
źródło
Podejrzewam, że NoDefender może być po prostu zautomatyzowanym sposobem edycji rejestru, co zrobiłem ręcznie.
Todd Wilcox
@ToddWilcox, Twoja metoda jest lepsza niż moja! Jedna aplikacja innej firmy, o którą należy się martwić.
user5071535,
1
nadal widzę uruchomioną usługę antimalware, która uruchamia Windows Defender. Mam zainstalowaną średnią bezpłatną edycję
shorif2000
2
Dokładnie, @Sharif Chciałbym zobaczyć wszelkie potwierdzenia, że ​​usługa antimalware jest również wyłączona.
Mark
2

Napisałem plik wsadowy i pliki rejestru, które powinny całkowicie wyłączyć Windows Defender w Windows 10.

  1. Zapisz następujące pliki w tym samym folderze.
  2. Uruchom Disable Windows Defender.batjako administrator.
  3. Po zakończeniu pliku wsadowego uruchom ponownie.
  4. Uruchom Disable Windows Defender.batponownie jako administrator.
  5. Windows Defender powinien być teraz całkowicie wyłączony.

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
źródło
Dzięki! BTW: Wymaga to poprawnej pracy angielskiej wersji systemu Windows
M. Abdelhafid,
2

Pomocne byłoby zrozumienie, dlaczego nie można zatrzymać określonej usługi.

  • Jestem administratorem; gorzej niż awaria, czy Administrator nie może administrować ?!

Wynika to z uprawnień bezpieczeństwa w usłudze WinDefend .

Uwaga : WinDefendto rzeczywista nazwa „usługi antywirusowej Windows Defender”

wprowadź opis zdjęcia tutaj

Wyświetlanie uprawnień

Jeśli uruchamiasz z wiersza poleceń:

>sc sdshow WinDefend

gdzie

  • sdshowoznacza „Wyświetla deskryptor bezpieczeństwa usługi”.

Otrzymasz deskryptor bezpieczeństwa :

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)

Jest to dość brzydka kropelka i jest całkowicie nieudokumentowana przez Microsoft, ale będziemy mieć problem z jej dekodowaniem. Najpierw przez zawijanie słów:

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:Oznacza to uznaniowe lista kontroli dostępu . Lista kontroli dostępu składa się z kilku pozycji kontroli dostępu (ACE):

  • D: uznaniowa lista kontroli dostępu
    • 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

Każde ACE to zestaw 5 ustawień zakończonych średnikiem, a następnie określający, kogo dotyczy.

Patrząc najpierw na kogo się ubiegają, losowy artykuł na blogu dekoduje niektóre z nich ( archive.is ) :

  • BU: Wbudowani użytkownicy
  • SY: System lokalny
  • BA: Wbudowani administratorzy
  • UI: Interaktywnie zalogowany użytkownik
  • SU: Użytkownik logowania do usługi
  • S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464: Zaufany instalator
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736:

Nazwę powiązaną z identyfikatorem SID można uzyskać, uruchamiając:

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

Każda pozycja ACE zawiera listę uprawnień, na które użytkownik ma pozwolenie lub odmowę.

  • D: uznaniowa lista kontroli dostępu
    • ACE 1: A;;CCLCSWRPLOCRRC;;; Wbudowani użytkownicy
    • ACE 2: A;;CCLCSWRPLOCRRC;;; System lokalny
    • ACE 3: A;;CCLCSWRPLOCRRC;;; Wbudowani administratorzy
    • ACE 4: A;;CCLCSWRPLOCRRC;;; Użytkownik interaktywny
    • ACE 5: A;;CCLCSWRPLOCRRC;;; Użytkownik zalogowany do usługi
    • ACE 6: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; Zaufany instalator
    • ACE 7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Podział pozostałych sekcji oddzielonych średnikami w ACE:

  • AS: A;;CCLCSWRPLOCRRC;;;
    • AceType: AACCESS_ALLOWED_ACE_TYPE
    • AceFlags: (brak)
    • 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: (brak)
    • InheritObjectGuid: (brak)

Wiodące Aoznacza Dozwolone , a uprawnienia to dwuliterowe kody:

  • D: uznaniowa lista kontroli dostępu
    • ACE 1 : Zezwalaj CC LC SW RP LO CR RC, Wbudowani użytkownicy
    • ACE 2 : Zezwalaj CC LC SW RP LO CR RC,, System lokalny
    • ACE 3 : Pozwól CC LC SW RP LO CR RC, Wbudowani administratorzy
    • ACE 4 : Zezwalaj CC LC SW RP LO CR RC,, Interaktywny użytkownik
    • ACE 5 : Zezwól CC LC SW RP LO CR RC,, Użytkownik logowania do serwisu
    • ACE 6 : Pozwól CC LC SW RP LO CR RC DC WP DT SD WD WO, Zaufany instalator
    • ACE 7 : Zezwalaj CC LC SW RP LO CR RC DC WP DT SD WD WO,, S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

I tutaj muszę się zatrzymać, aby zapisać swoją pracę. Ten sposób na zatrzymanie usługi Windows Defender jest interesujący i wszystko: ale już go zatrzymałem, a mój komputer wciąż źle się zachowuje.

Spojler:

sc sdset WinDefend [newSDLString]

Czytanie bonusowe

Ian Boyd
źródło
1

Łatwa metoda PowerShell jest tutaj z odpowiedzi, którą zamieściłem na pytanie później oznaczone jako duplikat.

Najłatwiejszym sposobem na to jest użycie programu PowerShell, aby go wyłączyć, prawdopodobnie jest to polecenie, które prawdopodobnie chcesz

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

Artykuł na temat używania programu PowerShell do wyłączania / włączania programu Windows Defender znajduje się tutaj: http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender-on-windows -10-using-powershell

Oto artykuł w witrynie Technet, aby uzyskać bardziej szczegółowe informacje na temat dostępnych poleceń cmdlet obrońcy: https://technet.microsoft.com/en-us/library/dn433280.aspx

Abraxas
źródło
Nie sądzę, aby to zatrzymało i spowodowało wyłączenie samej usługi. Po prostu wyłącza funkcje Windows Defender w czasie rzeczywistym, które można po prostu zrobić za pomocą Ustawień, bez apletu PowerShell.
Ramhound
@Ramhound edytowany dla mgmt usługi z PowerShell. Nie jestem w 100%, że zatrzyma usługę bez tego samego problemu co usługa Net Stop, ale miałem więcej szczęścia z PowerShellem i nie wierzę w alias get / stop-service do Net-Stop
Abraxas
1

Stwierdziłem, że poniższa procedura działa dobrze; nie usuwa ani nie wyłącza Windows Defender, ale wyłącza USŁUGĘ Windows Defender, zatrzymuje wszystkie uruchamianie i skanowanie w czasie rzeczywistym oraz zapobiega ponownemu włączeniu się skanowania w czasie rzeczywistym Windows Defender. (Pozostawia program Windows Defender w miejscu, dzięki czemu można go używać do przeprowadzania skanowania podejrzanych plików na żądanie).

PROCEDURA:

  1. Znajdź, pobierz, zainstaluj pakiet programu „SysInternals”.
  2. Uruchom program „AutoRuns”.
  3. Znajdź „Usługa Windows Defender”.
  4. Odznacz pole.
  5. Zrestartuj swój komputer.

Po wykonaniu tej czynności mój czas uruchamiania skrócił się z 20 minut do 5 minut, a zużycie pamięci po uruchomieniu (przed uruchomieniem jakichkolwiek aplikacji) spadło z 2,1 GB do 1,2 GB. A kiedy spojrzałem na „Usługi”, zauważyłem, że „Usługa Windows Defender”, mimo że tam jest, jest teraz oznaczona jako „NIE działa, wyłączona”.

Robbie Hatley
źródło
Daje „odmowa dostępu”, a nawet działa jako administrator
PGR
1

Nie jest tak łatwo niezawodnie i całkowicie wyłączyć Windows Defender. Istnieje skrypt PowerShell, który odinstalowuje program Windows Defender, ale później może nie być w stanie go zainstalować ponownie. Ten skrypt wymaga dwóch restartów.

Wystarczy pobrać Debloat-Windows-10 i wykonać następujące kroki, dostarczone przez autora:

  1. Rozpakuj archiwum;
  2. Włącz wykonywanie skryptów PowerShell:

    PS> Set-ExecutionPolicy Nieograniczony

  3. Odblokuj skrypty i moduły PowerShell w tym katalogu:

    PS> ls -Recurse * .ps1 | Odblokuj plik PS> ls -Recurse * .psm1 | Odblokuj plik

  4. Biegać scripts\disable-windows-defender.ps1

  5. Uruchom ponownie komputer (w zwykły sposób lub przez PS > Restart-Computer)
  6. Uruchom scripts\disable-windows-defender.ps1jeszcze raz.
  7. Uruchom ponownie komputer.

To nie jest najłatwiejszy sposób, ale bardzo niezawodny i odporny.

Istnieją również skrypty do usuwania niepotrzebnych programów, takich jak BingFinance, Skype, OneDrive itp. - jeśli ich nie potrzebujesz.

Archiwum zawiera również wiele skryptów, które mogą okazać się przydatne.

Należy pamiętać, że skrypty te nieodwracalnie usuwają pliki i mogą usuwać ważne funkcje systemu Windows. Na przykład mogą całkowicie wyłączyć menu Start!

Nie uruchamiaj disable-ShellExperienceHost.batz tego pakietu, w przeciwnym razie menu Start przestanie się otwierać.

Maxim Masiutin
źródło
0

Udało mi się to wyłączyć za pomocą Autoruns; pod zakładką usługi znajduje się wpis WinDefend, odznacz pole i uruchom ponownie.

FreddyFlares
źródło
Daje „odmowa dostępu”, nawet działa jako Administrator
pgr
0

Najprostszym sposobem, jaki znalazłem, jest otwarcie wiersza polecenia administratora i uruchomienie:

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

Następnie uruchom ponownie. Nie udało mi się znaleźć drogi do zamknięcia usługi po jej uruchomieniu bez ponownego uruchomienia.

jcoffland
źródło
0

Z mojego doświadczenia wynika, że ​​zasady grupy są najbardziej niezawodnym sposobem zatrzymania programu Windows Defender i jego wykonywalnej usługi ochrony przed złośliwym oprogramowaniem. Jednak ostatnio spotkałem się z sytuacją, w której ustawienie zasad grupy nie miało żadnego efektu, a plik wykonywalny ochrony przed złośliwym oprogramowaniem nadal działał i zjadał mój procesor.

Skończyło się na napisaniu małego skryptu, aby przejąć na własność plik wykonywalny i odmówić odczytu i wykonania praw dostępu do niego. To rozwiązało problem. Skrypt znajduje się poniżej.

@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
Andy
źródło
To działało dla mnie w systemie Windows 10 Pro [wersja 10.0.18362.476] i przetrwało ponowne uruchomienie. Ale moja ścieżka byłac:\Program Files\Windows Defender\MsMpEng.exe
pgr