Désactiver Windows Defender dans Windows 10

32

Je ne trouve aucune information sur la façon de désactiver Windows Defender dans Windows 10. Il y a des informations sur la façon de le faire dans les aperçus, mais les pages de configuration ont changé avec la version finale.

Plus précisément, je souhaite arrêter et désactiver le service Windows Defender.

  • L'utilisation à net stop windefendpartir d'une invite de commande élevée donne "accès refusé"
  • Les types d'arrêt et de démarrage sont grisés dans sevices.msc, même lorsqu'ils sont connectés en tant qu'administrateur
  • Il ne semble pas y avoir de moyen graphique pour désactiver l'UAC dans Windows 10

Quelqu'un a-t-il compris comment désactiver Defender dans Windows 10?

Todd Wilcox
la source
3
Méthode la plus simple. Installez simplement une suite de sécurité payante / gratuite et elle se désactivera automatiquement. En dehors de cela, allez dans «Mise à jour et sécurité» et désactivez la protection en temps réel. Vous ne pouvez pas désactiver l'UAC dans Windows 8 et supérieur au même degré que vous le pourriez dans Windows 7. Bien sûr, je ne suis pas sûr de ce que l'UAC a à voir avec Windows Defender.
Ramhound
J'ai mentionné l'UAC parce qu'il semblait possible que l'UAC m'empêche de désactiver Defender. Je n'ai pas encore déployé le dernier Kaspersky qui prend en charge Windows 10, et franchement, je ne suis pas sûr que Kaspersky s'installera bien avec Defender en cours d'exécution. De plus, je veux pouvoir le désactiver par principe au cas où j'en aurais besoin ou le souhaiterais pour d'autres raisons.
Todd Wilcox
J'ai ouvert Update & Securityet je peux désactiver Windows Defender. Personnellement, j'ai pu désactiver le service après cela.
Ramhound
Windows Defender est conçu pour être facilement remplaçable, installez simplement un autre AV et il devrait s'éteindre automatiquement.
gronostaj
3
@gronostaj Si ma question était de savoir comment remplacer Windows Defender par une autre solution A / V, je vous suggérerais de poster votre commentaire comme réponse et je l'accepterais, sauf que votre commentaire est le même que celui de Ramhound, donc je vous suggère vraiment il le fait. Mais ce n'est pas ce que j'essaie de faire.
Todd Wilcox

Réponses:

22

Vous pouvez le faire à l'aide d'une stratégie de groupe .

ouvrir gpedit.msc

aller vers Computer Configuration > Administrative Templates > Windows Components > Windows Defender

Turn off Windows Defender = Activé

Si vous essayez ensuite d'ouvrir Windows Defender, vous verrez ceci: entrez la description de l'image ici

Et même si, dans les paramètres, il peut sembler être activé, le service ne fonctionne pas:entrez la description de l'image ici

Plus d'informations:

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

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

Aaron Hoffman
la source
Je ne peux pas croire que je n'ai pas trouvé ça tout seul. Merci!
Todd Wilcox
2
Est-ce également pour Windows Home? Je ne trouve pasgpedit.msc
Stijn de Witt
2
Non, cela ne fonctionne pas pour les utilisateurs à domicile. Pro / Enterprise / Education uniquement
sloosecannon
2
J'ai essayé ... mais le service est toujours en cours d'exécution dans le gestionnaire de tâches.
Brigue
12

J'ai trouvé une autre façon d'utiliser le registre.

À l'aide de cet article , j'ai changé le type de démarrage pour les services et pilotes Defender (!!) dans le registre lorsque je me suis connecté en tant qu'administrateur. Voici un bref aperçu:

  1. Parcourir le Registre pour HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  2. Recherchez les services commençant par «wd» qui ont «Windows Defender» dans la valeur Description. Une liste éventuellement incomplète est: wdboot, wdfilter, wdnisdrv, wdnissvc, windefend.
  3. Remplacez la Startvaleur de chaque service par 0x4(hex 4, décimal 4).
  4. Redémarrez.
Todd Wilcox
la source
4
Je suis connecté en tant qu'administrateur et j'obtiens toujours l'erreur "Erreur d'écriture au démarrage. Erreur d'écriture du nouveau contenu de la valeur."
Mark
1
Moi aussi avec la même erreur "Error writing start. Error writing the value's new contents. Y a-t-il un travail pour nous @Todd Wilcox?
Nam G VU
1
Avez-vous essayé de cliquer avec le bouton droit sur regedit et d'exécuter en tant qu'administrateur?
Todd Wilcox
2
malheureusement sur Win10 Home Single Language, j'obtiens la même erreur même si j'ai commencé regedit en tant qu'administrateur, toute autre solution de contournement. Je commence vraiment à dépeindre Windows 10 maintenant.
gideon
Si vous obtenez Error writing (...), fermez regedit et rouvrez.
Marc.2377
11

Version courte

  1. Télécharger
  2. Extrait
  3. Double-cliquez DisableDefender.reg

Explication

Le moyen le plus efficace et le plus efficace pour désactiver définitivement Windows Defender dans Windows 10 est via la stratégie de groupe, comme décrit par Aaron Hoffman. Malheureusement, Windows 10 Home ne dispose pas des outils nécessaires.

Voici un fichier de registre qui contient les modifications apportées par gpedit.msc sur une machine Windows 10 Pro. Il a également été testé sur Windows 10 Home. Enregistrez le fichier sous les DisableDefender.regfins de ligne de style Windows et double-cliquez dessus pour l'importer dans votre registre.

Windows Registry Editor Version 5.00

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

Si vous souhaitez réactiver Defender, passez 00000001à 00000000sur les deux lignes.

Vous pouvez télécharger les fichiers pour désactiver et réactiver le défenseur depuis Gist .

Zenexer
la source
1
Vous gagnez Internet aujourd'hui, monsieur.
ivan_bilan
J'ai dû réactiver WD en enregistrant la valeur à 00000000, la protection WD en temps réel est désactivée car vous utilisez un autre AV. En fait, je n'ai aucun antivirus installé. Comment régler ceci? Merci
Santosa Sandy
@SantosaSandy Cela pourrait se produire pour un certain nombre de raisons, y compris les logiciels malveillants. Vous devriez commencer une question distincte.
Zenexer
Merci Monsieur PB. En cas d'urgence et d'absence d'erreur lors de la recherche d'un indice, je viens de mettre à jour les fenêtres et d'exécuter le nettoyeur de registre (par exemple CCleaner). Windows Defender est de nouveau actif. Merci
Santosa Sandy
4

Pour désactiver complètement Windows Defender (pas seulement la protection en temps réel), vous pouvez:

  1. Installez une autre suite de sécurité (comme Ramhound l'a mentionné).
  2. Si vous êtes prêt à utiliser une application tierce, vous pouvez utiliser NoDefender: http://msft.gq/pub/apps/NoDefender.zip

Plus d'informations sur NoDefender peuvent être trouvées ici: http://winaero.com/blog/nodefender-disable-windows-defender-in-windows-10-with-few-clicks/

user5071535
la source
Je soupçonne que NoDefender pourrait simplement être un moyen automatisé de modifier le registre, ce que j'ai fait manuellement.
Todd Wilcox
@ToddWilcox, Votre méthode est meilleure que la mienne alors! Une application tierce de moins à s'inquiéter.
user5071535
1
je vois toujours le service anti-programme malveillant en cours d'exécution, qui exécute Windows Defender. J'ai installé l'édition gratuite avg
shorif2000
2
Exactement, @Sharif, j'aimerais voir toutes les confirmations que le service anti-programme malveillant est également désactivé.
Mark
2

J'ai écrit le fichier de commandes et les fichiers de registre qui devraient désactiver complètement Windows Defender dans Windows 10.

  1. Enregistrez les fichiers suivants dans le même dossier.
  2. Exécutez en Disable Windows Defender.battant qu'administrateur.
  3. Une fois le fichier de commandes terminé, redémarrez.
  4. Réexécutez Disable Windows Defender.baten tant qu'administrateur.
  5. Windows Defender devrait être complètement désactivé maintenant.

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
la source
Merci! BTW: Cela nécessite que la version anglaise de Windows fonctionne correctement
M. Abdelhafid
2

Il serait utile de comprendre pourquoi vous ne pouvez pas arrêter un service particulier.

  • Je suis l'administrateur; pire que l'échec, l'administrateur ne peut-il pas administrer?!

C'est à cause des autorisations de sécurité sur le service WinDefend .

Remarque : WinDefendest le nom réel du "Service antivirus Windows Defender"

entrez la description de l'image ici

Affichage des autorisations

Si vous exécutez à partir d'une ligne de commande:

>sc sdshow WinDefend

  • sdshowsignifie "Affiche le descripteur de sécurité d'un service."

Vous obtiendrez le descripteur de sécurité :

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)

C'est un vilain blob, et il est complètement non documenté par Microsoft, mais nous allons essayer de le décoder. D'abord par habillage:

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)

Le D:signifie que c'est une liste de contrôle d'accès discrétionnaire . Une liste de contrôle d'accès est composée d'un certain nombre d'entrées de contrôle d'accès (ACE):

  • D: liste de contrôle d'accès discrétionnaire
    • 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

Chaque ACE est un ensemble de 5 paramètres terminés par un point-virgule, suivis de la personne à laquelle il s'applique.

En regardant d'abord à qui ils postulent, un article de blog aléatoire décode certains d'entre eux ( archive.is ) :

  • BU: Utilisateurs intégrés
  • SY: Système local
  • BA: Administrateurs intégrés
  • UI: Utilisateur connecté de manière interactive
  • SU: Utilisateur de connexion au service
  • S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464: Installateur de confiance
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736:

Vous pouvez obtenir le nom associé à un SID en exécutant:

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

Chaque ACE contient une liste d'autorisations accordées ou refusées à l'utilisateur.

  • D: liste de contrôle d'accès discrétionnaire
    • ACE 1: A;;CCLCSWRPLOCRRC;;; utilisateurs intégrés
    • ACE 2: A;;CCLCSWRPLOCRRC;;; système local
    • ACE 3: A;;CCLCSWRPLOCRRC;;; administrateurs intégrés
    • ACE 4: A;;CCLCSWRPLOCRRC;;; utilisateur interactif
    • ACE 5: A;;CCLCSWRPLOCRRC;;; utilisateur de connexion au service
    • ACE 6: programme d' A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; installation approuvé
    • ACE 7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Décomposition des sections séparées par des points-virgules restantes dans un ACE:

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

Le premier Asignifie Autorisé et les autorisations sont des codes à deux lettres:

  • D: liste de contrôle d'accès discrétionnaire
    • ACE 1 : Autoriser les CC LC SW RP LO CR RCutilisateurs intégrés
    • ACE 2 : Autoriser CC LC SW RP LO CR RC,, système local
    • ACE 3 : Autoriser les CC LC SW RP LO CR RCadministrateurs intégrés
    • ACE 4 : Autoriser CC LC SW RP LO CR RC,, Utilisateur interactif
    • ACE 5 : Autoriser CC LC SW RP LO CR RC,, utilisateur d'ouverture de session de service
    • ACE 6 : Autoriser CC LC SW RP LO CR RC DC WP DT SD WD WO,, programme d'installation de confiance
    • ACE 7 : Autoriser CC LC SW RP LO CR RC DC WP DT SD WD WO,, S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Et c'est là que je vais devoir m'arrêter pour sauver mon travail. Ce détour sur la façon d'arrêter le service Windows Defender est intéressant et tout: mais je l'ai déjà arrêté et mon PC se comporte toujours mal.

Becquet:

sc sdset WinDefend [newSDLString]

Lecture bonus

Ian Boyd
la source
1

La méthode PowerShell facile est ici à partir d'une réponse que j'ai postée sur une question marquée plus tard en double pour cela.

La façon la plus simple de le faire serait d'utiliser PowerShell pour le désactiver, la commande que vous voulez probablement est la suivante

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

Pour un article sur l'utilisation de PowerShell pour désactiver / activer Windows Defender, consultez ici: http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender-on-windows -10-using-powershell

Voici l'article technet pour un aperçu plus détaillé des applets de commande Defender disponibles: https://technet.microsoft.com/en-us/library/dn433280.aspx

Abraxas
la source
Je ne pense pas que cela arrêterait et désactiverait le service lui-même. Il désactive simplement les capacités en temps réel de Windows Defender, ce qui se fait simplement via les paramètres, pas besoin d'une applet PowerShell.
Ramhound
@Ramhound édité pour le service mgmt avec powershell. Je ne suis pas à 100%, cela arrêtera le service sans le même problème que le service net stop, mais j'ai eu plus de chance avec powershell et je ne crois pas que l'alias get / stop-service pour net-stop
Abraxas
1

J'ai trouvé que la procédure suivante fonctionne bien; il ne supprime ni ne désactive Windows Defender, mais il désactive Windows Defender SERVICE, arrête tout démarrage et analyse en temps réel, et empêche Windows Defender Real-Time Scan de se réactiver. (Il laisse Windows Defender en place, vous pouvez donc l'utiliser pour effectuer une analyse à la demande des fichiers suspects.)

PROCÉDURE:

  1. Recherchez, téléchargez, installez la suite de programmes "SysInternals".
  2. Exécutez le programme "AutoRuns".
  3. Recherchez «Windows Defender Service».
  4. Décochez la case.
  5. Redémarrez votre ordinateur.

Après cela, mon temps de démarrage est passé de 20 minutes à 5 minutes et l'utilisation de la mémoire après le démarrage (avant de lancer des applications) est passée de 2,1 Go à 1,2 Go. Et quand j'ai regardé dans "Services", j'ai trouvé que "Windows Defender Service", alors qu'il était toujours là, est maintenant marqué "NON en cours d'exécution, désactivé".

Robbie Hatley
la source
Donne "l'accès est refusé", même en tant qu'administrateur
pgr
1

Il n'est pas si facile de désactiver de manière fiable et totale le Windows Defender. Il existe un script PowerShell qui désinstalle Windows Defender, mais vous ne pourrez peut-être pas le réinstaller ultérieurement. Ce script nécessite deux redémarrages.

Téléchargez simplement le Debloat-Windows-10 et suivez ces étapes, fournies par l'auteur:

  1. Décompressez l'archive;
  2. Activez l'exécution des scripts PowerShell:

    PS> Set-ExecutionPolicy Unrestricted

  3. Débloquez les scripts et modules PowerShell dans ce répertoire:

    PS> ls -Recurse * .ps1 | Débloquer le fichier PS> ls -Recurse * .psm1 | Débloquer-fichier

  4. Courir scripts\disable-windows-defender.ps1

  5. Redémarrez l'ordinateur (de la manière habituelle ou via le PS > Restart-Computer)
  6. Exécutez scripts\disable-windows-defender.ps1une fois de plus.
  7. Redémarrez à nouveau l'ordinateur.

Ce n'est pas le moyen le plus simple, mais très fiable et résistant.

Il existe également des scripts pour supprimer les programmes inutiles comme BingFinance, Skype, OneDrive, etc. - si vous n'en avez pas besoin.

L'archive contient également de nombreux scripts qui peuvent vous être utiles.

Veuillez noter que ces scripts suppriment irréversiblement des fichiers et peuvent supprimer des fonctions vitales de Windows. Par exemple, ils peuvent désactiver totalement le menu Démarrer!

Ne pas exécuter à disable-ShellExperienceHost.batpartir de ce package, sinon le menu Démarrer cessera de s'ouvrir.

Maxim Masiutin
la source
0

J'ai réussi à le désactiver en utilisant Autoruns; sous l'onglet services, il y a une entrée WinDefend, décochez la case et redémarrez.

FreddyFlares
la source
Donne «l'accès est refusé», même en tant qu'administrateur
pgr
0

Le moyen le plus simple que j'ai trouvé est d'ouvrir une invite de commande administrateur et d'exécuter:

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

Redémarrez ensuite. Je n'ai pas réussi à arrêter le service une fois qu'il a démarré sans redémarrage.

jcoffland
la source
0

D'après mon expérience, la définition de la stratégie de groupe est le moyen le plus fiable d'arrêter Windows Defender et son exécutable de service anti-programme malveillant. Cependant, j'ai récemment rencontré une situation où la définition d'une stratégie de groupe n'avait aucun effet et l'exécutable Antimalware continuait de fonctionner et de manger dans mon processeur.

J'ai fini par écrire un petit script pour prendre possession de l'exécutable et refuser de lire et d'exécuter les droits d'accès pour celui-ci. Cela a résolu le problème. Le script est ci-dessous.

@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
la source
Cela a fonctionné pour moi sur Windows 10 Pro [version 10.0.18362.476] et a survécu à un redémarrage. Mais mon chemin étaitc:\Program Files\Windows Defender\MsMpEng.exe
pgr