web-dev-qa-db-fra.com

Désactiver Windows Defender dans Windows 10

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

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

  • En utilisant net stop windefend à partir d'une commande élevée, l'invite 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 le contrôle de compte d'utilisateur dans Windows 10

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

27
Todd Wilcox

Vous pouvez le faire en utilisant un Stratégie de groupe .

ouvrir gpedit.msc

accédez à Computer Configuration > Administrative Templates > Windows Components > Windows Defender

Turn off Windows Defender = activé

Si vous essayez ensuite d'ouvrir Windows Defender, vous verrez ceci:  enter image description here

Et même si, dans Paramètres, il peut sembler être activé, le service ne fonctionne pas:  enter image description here

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

20
Aaron Hoffman

J'ai trouvé un autre moyen en utilisant le registre.

À l’aide de cet article , j’ai modifié le type de démarrage des services et des pilotes Defender (!!) dans le registre tout en étant connecté en tant qu’administrateur. Voici un bref aperçu:

  1. Parcourez 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 peut-être incomplète est la suivante: wdboot, wdfilter, wdnisdrv, wdnissvc, windefend.
  3. Modifiez la valeur Start de chaque service en 0x4 (hex 4, décimal 4).
  4. Redémarrer.
11
Todd Wilcox

Version courte

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

Explication

Le moyen le plus efficace et le plus propre de désactiver définitivement Windows Defender dans Windows 10 consiste à utiliser la stratégie de groupe, comme décrit par Aaron Hoffman. Malheureusement, Windows 10 Home n’a pas les outils nécessaires.

Voici un fichier de registre contenant les modifications apportées par gpedit.msc sur un ordinateur Windows 10 Pro. Il a également été testé sur Windows 10 Home. Enregistrez le fichier en tant que DisableDefender.reg avec des fins 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, modifiez 00000001 en 00000000 sur les deux lignes.

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

9
Zenexer

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 mentionné par Ramhound).
  2. Si vous souhaitez 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/

4
user5071535

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

  1. Enregistrez les fichiers suivants dans le même dossier.
  2. Exécutez Disable Windows Defender.bat en tant qu'administrateur.
  3. Une fois le fichier de traitement terminé, redémarrez.
  4. Exécutez à nouveau Disable Windows Defender.bat en 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
2
XP1

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?!

Cela est dû aux autorisations de sécurité sur le service WinDefend.

Remarque: WinDefend est le nom réel du "service antivirus de Windows Defender"

 enter image description here

Affichage des autorisations

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

>sc sdshow WinDefend

  • sdshow signifie "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)

Il s’agit là d’un vilain blob qui n’a jamais été documenté par Microsoft, mais nous allons essayer de le décoder. D'abord par Word-wrapping:

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 qu'il s'agit d'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 des points-virgules, suivis de who auquel elle s'applique.

En examinant d’abord leur destinataire, un article de blog sélectionné au hasard en décode certains( 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 approuvé
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736:

Vous pouvez obtenir le nom associé à un SID en lançant:

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

Chaque entrée de contrôle d'accès contient une liste des autorisations que l'utilisateur est autorisé ou refusé.

  • 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:A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; Installateur de confiance
    • ACE 7:A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Décomposition des sections restantes séparées par un point-virgule dans une ACE:

  • ACE: A;;CCLCSWRPLOCRRC;;;
    • AceType: A ACCESS_ALLOWED_ACE_TYPE
    • AceFlags: _ {(none))
    • Masque d'accès: 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: (none)} _
    • InheritObjectGuid: (none)} _

La A au début signifie Allowed, et les permissions sont des codes à deux lettres:

  • D: _ {liste de contrôle d'accès discrétionnaire}
    • ACE 1: Autoriser, CC LC SW RP LO CR RC, Utilisateurs intégrés
    • ACE 2: Autoriser, CC LC SW RP LO CR RC, Système local
    • ACE 3: Autoriser, CC LC SW RP LO CR RC, administrateurs 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 de connexion au service
    • ACE 6: Autoriser, CC LC SW RP LO CR RC DC WP DT SD WD WO, programme d'installation approuvé
    • 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 sauvegarder mon travail. Ce détour pour savoir comment arrêter le service Windows Defender est intéressant et tout cela: mais je l’ai déjà arrêté et mon PC fonctionne toujours mal.

Becquet:

sc sdset WinDefend [newSDLString]

Lecture bonus

1
Ian Boyd

La méthode facile de powershell est issue d’une réponse que j’ai posée sur une question marquée plus tard en double pour cela.

Le moyen le plus simple de le faire est 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 la page: http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender- sur-windows-10-using-powershell

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

1
Abraxas

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 toutes les analyses au démarrage et en temps réel et empêche l'analyse en temps réel de Windows Defender de se réactiver. (Windows Defender reste sur place, vous pouvez donc l'utiliser pour analyser à la demande des fichiers suspects.)

PROCÉDURE:

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

Après cela, mon temps de démarrage a été réduit de 20 min à 5 min, et l'utilisation de la mémoire après le démarrage (avant de lancer une application) est passée de 2,1 Go à 1,2 Go. Et quand j'ai regardé dans "Services", j'ai trouvé que "Windows Defender Service", bien qu'il soit toujours là, est maintenant marqué "PAS en cours d'exécution, désactivé".

0
Robbie Hatley

Il n’est pas si facile de désactiver complètement et totalement Windows Defender. Un script PowerShell désinstalle Windows Defender, mais vous ne pourrez peut-être pas l'installer ultérieurement. Ce script nécessite deux redémarrages.

Il suffit de télécharger le Debloat-Windows-10 et de suivre les étapes fournies par l'auteur:

  1. Déballez l'archive;
  2. Activer l'exécution des scripts PowerShell:

    PS> Set-ExecutionPolicy Unrestricted

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

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

  4. Exécuter scripts\disable-windows-defender.ps1

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

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 tels que BingFinance, Skype, OneDrive, etc., si vous n'en avez pas besoin.

L'archive contient également beaucoup de scripts que vous pouvez trouver utiles.

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

N'exécutez pas disable-ShellExperienceHost.bat à partir de ce paquet, sinon le menu Démarrer ne s'ouvrira pas.

0
Maxim Masiutin

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

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

Puis redémarrez. Je n'ai pas été capable de trouver un moyen d'arrêter le service une fois qu'il a été démarré sans redémarrage.

0
jcoffland