Desativar o Windows Defender no Windows 10

32

Não consigo encontrar informações sobre como desativar o Windows Defender no Windows 10. Há algumas informações sobre como fazê-lo nas visualizações, mas as páginas de configuração foram alteradas com a versão final.

Especificamente, quero parar e desabilitar o Serviço Windows Defender.

  • O uso net stop windefendde um prompt de comando elevado fornece "acesso negado"
  • O tipo de parada e inicialização fica acinzentado em sevices.msc, mesmo quando conectado como administrador
  • Não parece haver uma maneira da GUI de desativar o UAC no Windows 10

Alguém descobriu como desativar o Defender no Windows 10?

Todd Wilcox
fonte
3
Método mais simples. Basta instalar um pacote de segurança pago / gratuito e ele se desativará automaticamente. Fora disso, basta ir para `Atualização e segurança` e desativar a proteção em tempo real. Você não pode desabilitar o UAC no Windows 8 e acima na mesma proporção que no Windows 7. É claro que não tenho certeza do que o UAC tem a ver com o Windows Defender.
Ramhound 30/07/2015
Mencionei o UAC porque parecia possível que o UAC estivesse me impedindo de desativar o Defender. Ainda não implantei o Kaspersky mais recente que suporta o Windows 10 e, francamente, não tenho tanta certeza de que o Kaspersky seja instalado corretamente com o Defender em execução. Além disso, quero poder desativá-lo por princípio, caso precise ou queira por outros motivos.
Todd Wilcox
Abri Update & Securitye consigo desabilitar o Windows Defender. Pessoalmente, consegui desativar o serviço depois de fazer isso.
Ramhound 30/07/2015
O Windows Defender foi projetado para ser facilmente substituível, basta instalar outro AV e ele deve desligar automaticamente.
22715 Gronostaj
3
@gronostaj Se minha pergunta foi sobre como substituir o Windows Defender por outra solução A / V, sugiro que você publique seu comentário como resposta e eu o aceitaria, exceto que seu comentário é o mesmo que o de Ramhound, então eu realmente sugiro ele faz isso. Mas não é isso que estou tentando fazer.
Todd Wilcox

Respostas:

22

Você pode fazer isso usando uma Diretiva de Grupo .

abrir gpedit.msc

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

Turn off Windows Defender = Ativado

Se você tentar abrir o Windows Defender, verá o seguinte: insira a descrição da imagem aqui

E mesmo que em Configurações pareça estar ativado, o Serviço não está sendo executado:insira a descrição da imagem aqui

mais informações:

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

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

Aaron Hoffman
fonte
Não acredito que não encontrei isso sozinho. Obrigado!
Todd Wilcox
2
Isso também é para o Windows Home? Não consigo encontrargpedit.msc
Stijn de Witt
2
Não, ele não funciona para usuários domésticos. Somente Pro / Enterprise / Education
sloosecannon
2
Tentei isso ... no entanto, o serviço ainda está sendo executado no gerenciador de tarefas.
Brig
12

Encontrei outra maneira de usar o registro.

Usando este artigo , alterei o tipo de inicialização dos serviços e drivers do Defender (!!) no registro enquanto fazia logon como administrador. Aqui está um breve resumo:

  1. Navegue pelo registro para HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
  2. Procure serviços começando com "wd" que tenham "Windows Defender" no valor Descrição. Uma lista possivelmente incompleta é: wdboot, wdfilter, wdnisdrv, wdnissvc, windefend.
  3. Altere o Startvalor de cada serviço para 0x4(hex 4, decimal 4).
  4. Reinicie.
Todd Wilcox
fonte
4
Estou logado como administrador e ainda recebo o erro "Erro ao escrever iniciar. Erro ao escrever o novo conteúdo do valor".
Mark
1
Eu também com o mesmo erro "Error writing start. Error writing the value's new contents. Alguma solução para nós @Todd Wilcox?
Nam G VU
1
Você já tentou clicar com o botão direito do mouse em regedit e executar como administrador?
Todd Wilcox
2
infelizmente no Win10 Home Single Language, recebo o mesmo erro, mesmo que eu tenha iniciado o regedit como administrador, qualquer outra solução alternativa. Estou realmente começando a descrever o Windows 10 agora.
Gideon
Se estiver recebendo Error writing (...), feche novamente o regedit e reabra.
Marc.2377 12/01
11

Versão curta

  1. Baixar
  2. Extrair
  3. Duplo click DisableDefender.reg

Explicação

De longe, a maneira mais eficaz e limpa de desativar permanentemente o Windows Defender no Windows 10 é através da Política de Grupo, conforme descrito por Aaron Hoffman. Infelizmente, o Windows 10 Home não possui as ferramentas necessárias.

Aqui está um arquivo de registro que contém as alterações feitas pelo gpedit.msc em uma máquina Windows 10 Pro. Também foi testado no Windows 10 Home. Salve o arquivo como DisableDefender.regnas terminações de linha no estilo do Windows e clique duas vezes nele para importá-lo para o seu registro.

Windows Registry Editor Version 5.00

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

Se você quiser reativar o Defender, mude 00000001para 00000000nas duas linhas.

Você pode baixar os arquivos para desativar e reativar o defensor no Gist .

Zenexer
fonte
1
Você ganha a Internet hoje, senhor.
ivan_bilan
Eu reativei o WD regedit o valor para 00000000, resulta que a proteção em tempo real do WD está desativada porque você está usando outro AV. Na verdade, eu não tenho nenhum antivírus instalado. Como consertar isto? Obrigado
Santosa Sandy
@SantosaSandy Isso pode acontecer por vários motivos, incluindo malware. Você deve iniciar uma pergunta separada.
Zenexer
Obrigado Sr. PB. Em caso de emergência e falta de erro na investigação de pistas, atualizo o Windows e corro o limpador de registro (por exemplo, CCleaner). O Windows Defender está ativo novamente. Obrigado
Santosa Sandy
4

Para desativar completamente o Windows Defender (não apenas a proteção em tempo real), você pode:

  1. Instale outro conjunto de segurança (como o Ramhound mencionou).
  2. Se você estiver disposto a usar um aplicativo de terceiros, poderá usar o NoDefender: http://msft.gq/pub/apps/NoDefender.zip

Mais informações sobre o NoDefender podem ser encontradas aqui: http://winaero.com/blog/nodefender-disable-windows-defender-in-windows-10-with-few-clicks/

user5071535
fonte
Eu suspeito que o NoDefender possa ser apenas uma maneira automatizada de editar o registro, o que eu fiz manualmente.
Todd Wilcox
@ToddWilcox, seu método é melhor que o meu! Menos um aplicativo de terceiros para se preocupar.
user5071535
1
Ainda vejo o serviço antimalware em execução, que executa o Windows Defender. Eu tenho a edição gratuita avg instalada
shorif2000
2
Exatamente, @Sharif, gostaria de ver todas as confirmações de que o serviço antimalware também está desativado.
Mark
2

Eu escrevi o arquivo em lotes e os arquivos de registro que devem desativar completamente o Windows Defender no Windows 10.

  1. Salve os seguintes arquivos na mesma pasta.
  2. Execute Disable Windows Defender.batcomo administrador.
  3. Após a conclusão do arquivo em lotes, reinicie.
  4. Execute Disable Windows Defender.batnovamente como administrador.
  5. O Windows Defender deve estar completamente desabilitado agora.

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
fonte
Obrigado! BTW: Isso requer que a versão em inglês do Windows funcione corretamente #
M. Abdelhafid
2

Seria útil entender por que você não pode parar um serviço específico.

  • Eu sou o administrador; pior que falha não pode o administrador administrar ?!

É por causa das permissões de segurança no serviço WinDefend .

Nota : WinDefendé o nome real do "Serviço Antivírus do Windows Defender"

insira a descrição da imagem aqui

Permissões de visualização

Se você executar a partir de uma linha de comando:

>sc sdshow WinDefend

Onde

  • sdshowsignifica "Exibe o descritor de segurança de um serviço".

Você obterá o descritor de segurança :

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)

Esse é um blob muito feio e não é documentado pela Microsoft, mas vamos tentar decodificá-lo. Primeiro por quebra de linha:

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)

O D:meio é uma lista de controle de acesso discricionário . Uma lista de controle de acesso é composta por várias entradas de controle de acesso (ACE):

  • D: lista de controle de acesso discricionário
    • 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 é um conjunto de 5 configurações terminadas em ponto e vírgula, seguidas por quem se aplica.

Olhando primeiro para quem eles se aplicam, um artigo aleatório do blog decodifica alguns deles ( archive.is ) :

  • BU: Usuários internos
  • SY: Sistema local
  • BA: Administradores internos
  • UI: Usuário conectado interativamente
  • SU: Usuário de logon do serviço
  • S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464: Instalador confiável
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736:

Você pode obter o nome associado a um SID executando:

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

Cada ACE contém uma lista de permissões que o usuário está sendo permitido ou negado.

  • D: lista de controle de acesso discricionário
    • ACE 1: A;;CCLCSWRPLOCRRC;;; usuários internos
    • ACE 2: A;;CCLCSWRPLOCRRC;;; sistema local
    • ACE 3: A;;CCLCSWRPLOCRRC;;; administradores internos
    • ACE 4: A;;CCLCSWRPLOCRRC;;; usuário interativo
    • ACE 5: A;;CCLCSWRPLOCRRC;;; usuário de logon do serviço
    • ACE 6: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; instalador confiável
    • ACE 7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

Quebrando as seções separadas por ponto e vírgula restantes em uma ACE:

  • ÁS: A;;CCLCSWRPLOCRRC;;;
    • AceType: AACCESS_ALLOWED_ACE_TYPE
    • AceFlags: (nenhum)
    • 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: (nenhum)
    • InheritObjectGuid: (nenhum)

Os principais Ameios são Permitidos e as permissões são códigos de duas letras:

  • D: lista de controle de acesso discricionário
    • ACE 1 : Permitir, CC LC SW RP LO CR RCusuários internos
    • ACE 2 : Permitir, CC LC SW RP LO CR RCSistema local
    • ACE 3 : Permitir, CC LC SW RP LO CR RCAdministradores internos
    • ACE 4 : Permitir, CC LC SW RP LO CR RCUsuário interativo
    • ACE 5 : Permitir, CC LC SW RP LO CR RCusuário de logon do serviço
    • ACE 6 : Permitir, CC LC SW RP LO CR RC DC WP DT SD WD WOinstalador confiável
    • 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

E é aqui que vou ter que parar para salvar meu trabalho. Esse desvio de como parar o serviço Windows Defender é interessante e tudo mais: mas eu já o interrompi e meu PC ainda está se comportando mal.

Spoiler:

sc sdset WinDefend [newSDLString]

Leitura de bônus

Ian Boyd
fonte
1

O método fácil do PowerShell está aqui, a partir de uma resposta que eu postei em uma pergunta mais tarde marcada como duplicada para isso.

A maneira mais fácil de fazer isso seria usar o powershell para desativá-lo, o comando que você provavelmente deseja é este

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

Para obter um artigo sobre o uso do powershell para desativar / ativar o Windows Defender, verifique aqui: http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender-on-windows -10-usando-PowerShell

Aqui está o artigo do technet para uma visão mais detalhada dos cmdlets de defensor disponíveis: https://technet.microsoft.com/en-us/library/dn433280.aspx

Abraxas
fonte
Não acredito que isso pararia e desabilitaria o serviço em si. Desativa apenas os recursos em tempo real do Windows Defender, que podem ser feitos através de Configurações, sem a necessidade de um miniaplicativo do PowerShell.
Ramhound 14/01
@ Ramhound editado para serviço mgmt com PowerShell. Eu não estou 100% ele vai parar o serviço sem o mesmo problema que o serviço net stop, mas eu tive mais sorte com o PowerShell e não acredito get / apelido de serviço fim a net-stop
Abraxas
1

Eu descobri que o procedimento a seguir funciona bem; ele não remove ou desativa o Windows Defender, mas desabilita o Windows Defender SERVICE, interrompe toda a inicialização e a verificação em tempo real e impede que a verificação em tempo real do Windows Defender seja ativada novamente. (Ele deixa o Windows Defender no local, para que você possa usá-lo para executar a verificação sob demanda de arquivos suspeitos.)

PROCEDIMENTO:

  1. Encontre, baixe, instale o pacote de programas "SysInternals".
  2. Execute o programa "Execuções Automáticas".
  3. Encontre "Serviço Windows Defender".
  4. Desmarque a caixa.
  5. Reinicie o seu computador.

Depois disso, meu tempo de inicialização diminuiu de 20 minutos para 5 minutos e o uso de memória após a inicialização (antes de iniciar qualquer aplicativo) diminuiu de 2,1 GB para 1,2 GB. E quando procurei em "Serviços", descobri que o "Windows Defender Service", enquanto ainda estava lá, agora está marcado como "NÃO está sendo executado, Desativado".

Robbie Hatley
fonte
Dá "acesso negado", mesmo sendo executado como administrador
pgr 30/11
1

Não é tão fácil desabilitar de maneira confiável e totalmente o Windows Defender. Há um script do PowerShell que desinstala o Windows Defender, mas talvez você não possa instalá-lo posteriormente. Este script requer duas reinicializações.

Basta baixar o Debloat-Windows-10 e siga estas etapas, fornecidas pelo autor:

  1. Descompacte o arquivo;
  2. Habilite a execução de scripts do PowerShell:

    PS> Set-ExecutionPolicy irrestrito

  3. Desbloqueie scripts e módulos do PowerShell dentro deste diretório:

    PS> ls -Recurse * .ps1 | Desbloquear arquivo PS> ls -Recurse * .psm1 | Desbloquear arquivo

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

  5. Reinicie o computador (da maneira usual ou via PS > Restart-Computer)
  6. Corra scripts\disable-windows-defender.ps1mais uma vez.
  7. Reinicie o computador novamente.

Esta não é a maneira mais fácil, mas é muito confiável e resiliente.

Também existem scripts para remover programas desnecessários como BingFinance, Skype, OneDrive etc. - se você não precisar deles.

O arquivo também contém muitos scripts que você pode achar úteis.

Esteja ciente de que esses scripts excluem arquivos irreversivelmente e podem excluir funções vitais do Windows. Por exemplo, eles podem desativar totalmente o menu Iniciar!

Não execute a disable-ShellExperienceHost.batpartir deste pacote, caso contrário, o menu Iniciar irá parar de abrir.

Maxim Masiutin
fonte
0

Consegui desativá-lo usando Autoruns; Na guia Serviços, há uma entrada WinDefend, desmarque a caixa e reinicie.

FreddyFlares
fonte
Dá "acesso negado", mesmo sendo executado como administrador
pgr 30/11
0

A maneira mais fácil que encontrei é abrir um prompt de comando do administrador e executar:

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

Então reinicie. Não consegui encontrar um meio de desligar o serviço depois que ele foi iniciado com uma reinicialização.

jcoffland
fonte
0

Na minha experiência, definir a Diretiva de Grupo é a maneira mais confiável de interromper o Windows Defender e seu Serviço de Antimalware Executável. No entanto, recentemente encontrei uma situação em que a definição de uma Diretiva de Grupo não teve efeito, e o executável do Antimalware continuou sendo executado e consumindo minha CPU.

Acabei escrevendo um pequeno script para tomar posse do executável e negar direitos de acesso de leitura e execução. Isso resolveu o problema. O script está abaixo.

@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
fonte
Isso funcionou para mim no Windows 10 Pro [versão 10.0.18362.476] e sobreviveu a uma reinicialização. Mas meu caminho erac:\Program Files\Windows Defender\MsMpEng.exe
pgr 30/11