Deshabilitar Windows Defender en Windows 10

32

No puedo encontrar ninguna información sobre cómo deshabilitar Windows Defender en Windows 10. Hay información sobre cómo hacerlo en las vistas previas, pero las páginas de configuración han cambiado con la versión final.

Específicamente, quiero detener y deshabilitar el Servicio de Windows Defender.

  • El uso net stop windefenddesde un símbolo del sistema elevado proporciona "acceso denegado"
  • El tipo de detención e inicio aparecen atenuados en sevices.msc, incluso cuando se inicia sesión como administrador
  • No parece haber una forma de GUI para deshabilitar UAC en Windows 10

¿Alguien ha descubierto cómo deshabilitar Defender en Windows 10?

Todd Wilcox
fuente
3
El método más simple. Simplemente instale un paquete de seguridad de pago / gratuito y se desactivará automáticamente. Fuera de eso solo vaya a 'Actualización y seguridad' y desactive la protección en tiempo real. No puede deshabilitar UAC en Windows 8 y superior en el mismo grado que lo haría en Windows 7. Por supuesto, no estoy seguro de qué tiene que ver el UAC con Windows Defender.
Ramhound
Mencioné a UAC porque parecía posible que UAC me estuviera impidiendo desactivar Defender. Todavía no he implementado la última versión de Kaspersky que sea compatible con Windows 10 y, francamente, no estoy tan seguro de que Kaspersky se instale bien con Defender en ejecución. Además, quiero poder desactivarlo por principio en caso de que lo necesite o quiera por otros motivos.
Todd Wilcox
Abrí Update & Securityy puedo desactivar Windows Defender. Personalmente pude deshabilitar el servicio aunque después de hacer eso.
Ramhound
Windows Defender está diseñado para ser fácilmente reemplazable, solo instale otro AV y debería apagarse automáticamente.
gronostaj
3
@gronostaj Si mi pregunta fuera cómo reemplazar Windows Defender con otra solución de A / V, sugeriría que publicara su comentario como respuesta y lo aceptaría, excepto que su comentario es el mismo que el de Ramhound, así que realmente sugeriría El lo hace. Pero eso no es lo que estoy tratando de hacer.
Todd Wilcox

Respuestas:

22

Puede hacerlo utilizando una Política de grupo .

abierto gpedit.msc

navegar a Computer Configuration > Administrative Templates > Windows Components > Windows Defender

Turn off Windows Defender = Habilitado

Si luego intentas abrir Windows Defender, verás esto: ingrese la descripción de la imagen aquí

Y aunque en Configuración parezca estar activado, el Servicio no se está ejecutando:ingrese la descripción de la imagen aquí

más información:

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

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

Aaron Hoffman
fuente
No puedo creer que no haya encontrado esto por mi cuenta. ¡Gracias!
Todd Wilcox
2
¿Esto también es para Windows Home? No puedo encontrargpedit.msc
Stijn de Witt
2
No, no funciona para usuarios domésticos. Pro / Enterprise / Education only
sloosecannon
2
Intenté esto ... sin embargo, el servicio aún se está ejecutando en el administrador de tareas.
Brig
12

Encontré otra forma de usar el registro.

Al usar este artículo , cambié el tipo de inicio para los servicios y controladores de Defender (!!) en el registro mientras estaba conectado como administrador. Aquí hay un breve resumen:

  1. Examine el registro para HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  2. Busque los servicios que comienzan con "wd" que tienen "Windows Defender" en el valor Descripción. Una lista posiblemente incompleta es: wdboot, wdfilter, wdnisdrv, wdnissvc, windefend.
  3. Cambie el Startvalor de cada servicio a 0x4(hex 4, decimal 4).
  4. Reiniciar.
Todd Wilcox
fuente
44
He iniciado sesión como administrador y sigo recibiendo el error "Error al escribir el inicio. Error al escribir los nuevos contenidos del valor".
Mark
1
Yo también con el mismo error "Error writing start. Error writing the value's new contents. ¿Alguna solución para nosotros @Todd Wilcox?
Nam G VU
1
¿Has intentado hacer clic derecho en regedit y ejecutarte como administrador?
Todd Wilcox
2
desafortunadamente en Win10 Home Single Language, obtengo el mismo error incluso si comencé a regedit como administrador, cualquier otra solución alternativa. Realmente estoy empezando a depise windows 10 ahora.
Gedeón
Si lo consigue Error writing (...), cierre regedit y vuelva a abrir.
Marc.2377
11

Version corta

  1. Descargar
  2. Extraer
  3. Haga doble clic DisableDefender.reg

Explicación

Con mucho, la forma más efectiva y limpia de desactivar permanentemente Windows Defender en Windows 10 es a través de la Política de grupo, como lo describe Aaron Hoffman. Desafortunadamente, Windows 10 Home carece de las herramientas necesarias.

Aquí hay un archivo de registro que contiene los cambios realizados por gpedit.msc en una máquina con Windows 10 Pro. También se ha probado en Windows 10 Home. Guarde el archivo como DisableDefender.regcon los finales de línea estilo Windows y haga doble clic para importarlo a su registro.

Windows Registry Editor Version 5.00

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

Si alguna vez desea volver a habilitar Defender, cambie 00000001a 00000000en ambas líneas.

Puede descargar los archivos para deshabilitar y volver a habilitar defender desde Gist .

Zenexer
fuente
1
Usted gana Internet hoy, señor.
ivan_bilan
Volví a habilitar WD por regedit el valor a 00000000, resultados WD La protección en tiempo real está desactivada porque está utilizando otro AV. De hecho, no tengo ningún antivirus instalado. ¿Cómo arreglar esto? Gracias
Santosa Sandy
@SantosaSandy Eso podría suceder por varias razones, incluido el malware. Deberías comenzar una pregunta por separado.
Zenexer
Gracias señor PB. En una emergencia y falta de error al investigar la pista, solo actualizo las ventanas y ejecuto el limpiador del registro (por ejemplo, CCleaner). Windows Defender está activo nuevamente. Gracias
Santosa Sandy
4

Para deshabilitar completamente Windows Defender (no solo la protección en tiempo real) puede:

  1. Instale otra suite de seguridad (como mencionó Ramhound).
  2. Si está dispuesto a usar una aplicación de terceros, puede usar NoDefender: http://msft.gq/pub/apps/NoDefender.zip

Puede encontrar más información sobre NoDefender aquí: http://winaero.com/blog/nodefender-disable-windows-defender-in-windows-10-with-few-clicks/

usuario5071535
fuente
Sospecho que NoDefender podría ser una forma automatizada de editar el registro, lo que hice manualmente.
Todd Wilcox
@ToddWilcox, ¡entonces tu método es mejor que el mío! Una aplicación de terceros menos de la que preocuparse.
user5071535
1
Todavía veo el servicio antimalware ejecutándose, que ejecuta Windows Defender. Tengo instalada la edición gratuita de avg
shorif2000
2
Exactamente, @Sharif Me gustaría ver cualquier confirmación de que el servicio antimalware también esté deshabilitado.
Mark
2

He escrito el archivo por lotes y los archivos de registro que deberían desactivar completamente Windows Defender en Windows 10.

  1. Guarde los siguientes archivos en la misma carpeta.
  2. Ejecutar Disable Windows Defender.batcomo administrador.
  3. Una vez que el archivo por lotes esté listo, reinicie.
  4. correr Disable Windows Defender.bat nuevamente como administrador.
  5. Windows Defender debería estar completamente deshabilitado ahora.

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
fuente
¡Gracias! Por cierto: esto requiere que la versión en inglés de Windows funcione correctamente
M. Abdelhafid
2

Sería útil comprender por qué no puede detener un servicio en particular.

  • Soy el administrador; peor que el fracaso, ¿no puede administrar el administrador?

Se debe a los permisos de seguridad en el servicio WinDefend .

Nota : WinDefendes el nombre real del "Servicio antivirus de Windows Defender"

ingrese la descripción de la imagen aquí

Ver permisos

Si corre desde una línea de comando:

>sc sdshow WinDefend

dónde

  • sdshow medio "Muestra el descriptor de seguridad de un servicio".

Obtendrá el descriptor de seguridad :

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)

Este es el blob bastante feo, y está completamente indocumentado por Microsoft, pero tendremos una oportunidad para decodificarlo. Primero envolviendo palabras:

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)

El D:medio es una lista de control de acceso discrecional . Una lista de control de acceso está compuesta por varias entradas de control de acceso (ACE):

  • D: lista de control de acceso discrecional
    • 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

Cada ACE es un conjunto de 5 configuraciones terminadas en punto y coma, seguidas de quién se aplica.

Mirando primero a quién se aplican, un artículo de blog aleatorio decodifica algunos de ellos ( archive.is ) :

  • BU: Usuarios incorporados
  • SY: Sistema local
  • BA: Administradores incorporados
  • UI: Usuario conectado de forma interactiva
  • SU: Usuario de inicio de sesión de servicio
  • S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464: Instalador de confianza
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736:

Puede obtener el nombre asociado con un SID ejecutando:

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

Cada ACE contiene una lista de permisos para los que se permite o deniega al usuario.

  • D: lista de control de acceso discrecional
    • ACE 1: A;;CCLCSWRPLOCRRC;;; usuarios incorporados
    • ACE 2: A;;CCLCSWRPLOCRRC;;; sistema local
    • ACE 3: A;;CCLCSWRPLOCRRC;;; administradores integrados
    • ACE 4: A;;CCLCSWRPLOCRRC;;; usuario interactivo
    • ACE 5: A;;CCLCSWRPLOCRRC;;; usuario de inicio de sesión de servicio
    • ACE 6: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; instalador de confianza
    • ACE 7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Desglosando las secciones separadas por punto y coma restantes en un ACE:

  • AS: A;;CCLCSWRPLOCRRC;;;
    • AceType: AACCESS_ALLOWED_ACE_TYPE
    • AceFlags: (ninguno)
    • Máscara de acceso: CC LC SW RP LO CR RC
      • CC: CREATE_CHILD
      • LC: LIST_CHILDREN
      • SW: AUTOESCRIBIR
      • RP: READ_PROPERTY
      • LO: LIST_OBJECT
      • CR: CONTROL_ACCESS
      • RC: READ_CONTROL
    • ObjectGuid: (ninguno)
    • InheritObjectGuid: (ninguno)

El principal Asignifica Permitido , y los permisos son códigos de dos letras:

  • D: lista de control de acceso discrecional
    • ACE 1 : Permitir, CC LC SW RP LO CR RCUsuarios integrados
    • ACE 2 : Permitir, CC LC SW RP LO CR RCSistema local
    • ACE 3 : Permitir, CC LC SW RP LO CR RCAdministradores integrados
    • ACE 4 : Permitir, CC LC SW RP LO CR RCUsuario interactivo
    • ACE 5 : Permitir, CC LC SW RP LO CR RCusuario de inicio de sesión de servicio
    • ACE 6 : Permitir, CC LC SW RP LO CR RC DC WP DT SD WD WOinstalador de confianza
    • ACE 7 : Permitir CC LC SW RP LO CR RC DC WP DT SD WD WO, S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Y aquí es donde voy a tener que parar para salvar mi trabajo. Este desvío sobre cómo detener el servicio de Windows Defender es interesante y todo: pero ya lo detuve y mi PC todavía se está portando mal.

Spoiler

sc sdset WinDefend [newSDLString]

Lectura adicional

Ian Boyd
fuente
1

El método fácil de PowerShell está aquí a partir de una respuesta que publiqué en una pregunta que luego marcó como duplicado para esto.

La forma más fácil de hacer esto sería usar powershell para deshabilitarlo, el comando que probablemente desee es este

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

Para obtener un artículo sobre el uso de powershell para deshabilitar / habilitar Windows Defender, consulte aquí: http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender-on-windows -10-utilizando-powershell

Aquí está el artículo de Technet para obtener una visión más detallada de los cmdlets de defensa disponibles: https://technet.microsoft.com/en-us/library/dn433280.aspx

Abraxas
fuente
No creo que esto pueda detener y deshabilitar el servicio en sí. Simplemente deshabilita las capacidades en tiempo real de Windows Defender que simplemente se puede hacer a través de Configuración sin necesidad de un applet PowerShell.
Ramhound
@Ramhound editado para el servicio de administración con powershell. No estoy al 100%, detendrá el servicio sin el mismo problema que el servicio de detención de red, pero he tenido más suerte con powershell y no creo que el alias de obtener / detener el servicio para detener la red
Abraxas
1

Descubrí que el siguiente procedimiento funciona bien; no elimina ni deshabilita Windows Defender, pero deshabilita el SERVICIO de Windows Defender, detiene todo el inicio y el análisis en tiempo real, y evita que el Análisis en tiempo real de Windows Defender se vuelva a activar. (Deja Windows Defender en su lugar, por lo que puede usarlo para realizar análisis bajo demanda de archivos sospechosos).

PROCEDIMIENTO:

  1. Encuentre, descargue e instale el conjunto de programas "SysInternals".
  2. Ejecute el programa "AutoRuns".
  3. Encuentra "Servicio de Windows Defender".
  4. Desmarca la casilla.
  5. Reinicia tu computadora.

Después de hacer eso, mi tiempo de inicio disminuyó de 20 minutos a 5 minutos, y el uso de memoria después del inicio (antes de iniciar cualquier aplicación) disminuyó de 2.1 GB a 1.2 GB. Y cuando busqué en "Servicios", encontré que "Servicio de Windows Defender", mientras estaba allí, ahora está marcado como "NO en ejecución, deshabilitado".

Robbie Hatley
fuente
Da "acceso denegado", incluso ejecutándose como Administrador
pgr
1

No es tan fácil deshabilitar de forma confiable y total el Windows Defender. Existe un script de PowerShell que desinstala Windows Defender, pero es posible que no pueda volver a instalarlo más tarde. Este script requiere dos reinicios.

Simplemente descargue el Debloat-Windows-10 y siga estos pasos, proporcionados por el autor:

  1. Descomprima el archivo;
  2. Habilite la ejecución de scripts de PowerShell:

    PS> Set-ExecutionPolicy sin restricciones

  3. Desbloquee los scripts y módulos de PowerShell dentro de este directorio:

    PS> ls -Recurse * .ps1 | Desbloquear-Archivo PS> ls -Recurse * .psm1 | Desbloquear archivo

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

  5. Reinicie la computadora (ya sea de forma habitual o mediante PS > Restart-Computer)
  6. Corre scripts\disable-windows-defender.ps1una vez más.
  7. Reinicie la computadora nuevamente.

Esta no es la forma más fácil, pero es muy confiable y resistente.

También hay scripts para eliminar programas innecesarios como BingFinance, Skype, OneDrive, etc., si no los necesita.

El archivo también contiene muchos scripts que pueden resultarle útiles.

Tenga en cuenta que estos scripts eliminan archivos irreversibles y pueden eliminar funciones vitales de Windows. Por ejemplo, ¡pueden deshabilitar totalmente el menú Inicio!

No se ejecute disable-ShellExperienceHost.batdesde este paquete, de lo contrario, el menú Inicio dejará de abrirse.

Maxim Masiutin
fuente
0

Logré deshabilitarlo usando Autoruns; debajo de la pestaña de servicios hay una entrada WinDefend, desmarca la casilla y reinicia.

FreddyFlares
fuente
Da "acceso denegado", incluso ejecutándose como Administrador
pgr
0

La forma más fácil que he encontrado es abrir un símbolo del sistema del administrador y ejecutar:

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

Luego reiniciar. No he podido encontrar el lugar para cerrar el servicio una vez que se inicia sin reiniciar.

jcoffland
fuente
0

En mi experiencia, la configuración de la directiva de grupo es la forma más confiable de detener Windows Defender y su Antimalware Service Executable. Sin embargo, recientemente me encontré con una situación en la que establecer una directiva de grupo no tenía ningún efecto, y el ejecutable de Antimalware seguía ejecutándose y consumiendo mi CPU.

Terminé escribiendo un pequeño script para tomar posesión del ejecutable y negarle los derechos de acceso de lectura y ejecución. Esto resolvió el problema. El guión está abajo.

@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
fuente
Esto funcionó para mí en Windows 10 Pro [Versión 10.0.18362.476], y sobrevivió a un reinicio. Pero mi camino erac:\Program Files\Windows Defender\MsMpEng.exe
pgr