Windows 10でWindows Defenderを無効にする


32

Windows 10でWindows Defenderを無効にする方法についての情報が見つかりません。プレビューでそれを行う方法に関する情報がありますが、構成ページは最終リリースで変更されました。

具体的には、Windows Defenderサービスを停止して無効にします。

  • 管理者net stop windefend特権のコマンドプロンプトから使用すると、「アクセスが拒否されました」と表示されます
  • 管理者としてログオンした場合でも、sevices.mscで停止およびスタートアップの種類がグレー表示されます
  • Windows 10でUACを無効にするGUIの方法はないようです

誰かがWindows 10でDefenderを無効にする方法を考え出しましたか?


3
最も簡単な方法。有料/無料のセキュリティスイートをインストールするだけで、自動的に無効になります。それ以外の場合は、「更新とセキュリティ」に移動して、リアルタイム保護を無効にします。Windows 8以上では、Windows 7と同じ程度にUACを無効にすることはできません。もちろん、UACがWindows Defenderとどう関係するかはわかりません。
ラムハウンド

UACがDefenderの無効化を妨げている可能性があるため、UACに言及しました。Windows 10をサポートする最新のKasperskyをまだ展開していませんが、率直に言って、KasperskyがDefenderを実行した状態でうまくインストールできるとは確信がありません。さらに、他の理由で必要な場合や必要に応じて、原則として無効にすることができます。
トッドウィルコックス

開いてUpdate & Security、Windows Defenderを無効にすることができます。個人的には、それを行った後でもサービスを無効にすることができました。
ラムハウンド

Windows Defenderは簡単に交換できるように設計されており、別のAVをインストールするだけで自動的にオフになります。
グロノスタジュ

3
@gronostaj Windows Defenderを別のA / Vソリューションに置き換える方法が私の質問である場合は、コメントを回答として投稿することをお勧めします。コメントはRamhoundのコメントと同じであるため、受け入れることをお勧めします。彼はそれをします。しかし、それは私がやろうとしていることではありません。
トッドウィルコックス

回答:


22

グループポリシーを使用してこれを行うことができます。

開いた gpedit.msc

案内する Computer Configuration > Administrative Templates > Windows Components > Windows Defender

Turn off Windows Defender =有効

その後、Windows Defenderを開こうとすると、次のように表示されます。 ここに画像の説明を入力してください

また、設定ではオンになっているように見えても、サービスは実行されていません。ここに画像の説明を入力してください

詳細:

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

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


自分でこれを見つけられなかったとは信じられません。ありがとう!
トッドウィルコックス

2
これはWindows Homeでも同様ですか?私は見つけることができませんgpedit.msc
Stijn・デ・ウィット

2
いいえ、ホームユーザーには機能しません。プロ/エンタープライズ/教育のみ
sloosecannon

2
これを試してみました...しかし、サービスはまだタスクマネージャーで実行されています。
ブリーク

12

レジストリを使用する別の方法を見つけました。

この記事を使用して、管理者としてログオンしている間にレジストリ内のDefenderサービスとドライバーのスタートアップの種類(!!)を変更しました。以下に簡単な要約を示します。

  1. レジストリを参照してくださいHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
  2. Description値に「Windows Defender」がある「wd」で始まるサービスを探します。おそらく不完全なリストは、wdboot、wdfilter、wdnisdrv、wdnissvc、windefendです。
  3. Start各サービスの値を0x4(16進数4、10進数4)に変更します。
  4. リブート。

4
管理者としてログインしているにもかかわらず、「エラーの書き込み開始。値の新しいコンテンツの書き込みエラー」というエラーが表示されます。
マーク

1
私も同じエラーで"Error writing start. Error writing the value's new contents。@Todd Wilcoxの回避策はありますか?
ナムG VU

1
regeditを右クリックして管理者として実行しようとしましたか?
トッドウィルコックス

2
残念ながら、Win10 Home Single Languageでは、管理者としてregeditを起動した場合でも、他の回避策を実行しても同じエラーが発生します。私は今、本当に窓10を軽んじ始めています。
ギデオン

取得する場合はError writing (...)、regeditを閉じてから再度開きます。
Marc.2377

11

短縮版

  1. ダウンロード
  2. エキス
  3. ダブルクリック DisableDefender.reg

説明

Aaron Hoffmanによると、Windows 10でWindows Defenderを永続的に無効にする最も効果的でクリーンな方法は、グループポリシーを使用することです。残念ながら、Windows 10 Homeには必要なツールがありません。

Windows 10 Proマシンでgpedit.mscによって行われた変更を含むレジストリファイルを次に示します。Windows 10 Homeでも同様にテストされています。DisableDefender.regWindowsスタイルの行末と同様にファイルを保存し、ダブルクリックしてレジストリにインポートします。

Windows Registry Editor Version 5.00

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

Defenderを再度有効にする場合は、両方の行0000000100000000に変更します。

ファイルをダウンロードして、Gistからディフェンダーを無効にしてから再度有効にすることができます。


1
今日、あなたはインターネットに勝ちました。
ivan_bilan

別のAVを使用しているため、値を00000000に再編集することでWDを再度有効にしました。結果WDリアルタイム保護はオフになっています。実際、アンチウイルスはインストールされていません。これを修正する方法は?ありがとう
サントササンディ

@SantosaSandyこれは、マルウェアなど、さまざまな理由で発生する可能性があります。別の質問を開始する必要があります。
ゼネクサー

PB氏に感謝します。緊急事態と手がかりを調査するエラーがない場合は、ウィンドウを更新し、レジストリクリーナー(CCleanerなど)を実行するだけです。Windows Defenderが再びアクティブになります。ありがとう
サントササンディ

4

(リアルタイム保護だけでなく)Windows Defenderを完全に無効にするには:

  1. 別のセキュリティスイートをインストールします(ラムハウンドが述べたように)。
  2. サードパーティのアプリケーションを使用する場合は、NoDefenderを使用できます:http ://msft.gq/pub/apps/NoDefender.zip

NoDefenderの詳細については、http://winaero.com/blog/nodefender-disable-windows-defender-in-windows-10-with-few-clicks/をご覧ください。


NoDefenderはレジストリを編集するための自動化された方法にすぎないのではないかと疑っています。
トッドウィルコックス

@ToddWilcox、あなたの方法は私よりも優れています!心配する必要のあるサードパーティ製アプリケーションが1つ減りました。
user5071535

1
Windows Defenderを実行するマルウェア対策サービスが実行されています。avg無料版をインストールしています
shorif2000

2
まさに、@ Sharifマルウェア対策サービスも無効になっていることを確認したいのですが。
マーク

2

Windows 10でWindows Defenderを完全に無効にするバッチファイルとレジストリファイルを作成しました。

  1. 次のファイルを同じフォルダーに保存します。
  2. Disable Windows Defender.bat管理者として実行します。
  3. バッチファイルが完了したら、再起動します。
  4. Disable Windows Defender.bat管理者として再度実行します。
  5. これで、Windows Defenderは完全に無効になります。

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

ありがとう!ところで:これは正しく動作する窓の英語版が必要です
M. Abdelhafid

2

特定のサービスを停止できない理由を理解しておくと役立ちます。

  • 私は管理者です。失敗よりも悪いのは、管理者が管理できないことですか?!

これは、WinDefendサービスのセキュリティ許可が原因です。

「Windows Defender Antivirus Service」WinDefendの実際の名前です

ここに画像の説明を入力してください

アクセス許可の表示

コマンドラインから実行する場合:

>sc sdshow WinDefend

どこで

  • sdshow「サービスのセキュリティ記述子を表示するという意味です。

セキュリティ記述子を取得します:

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)

これは非常に見苦しいブロブであり、Microsoftによって完全に文書化されていませんが、デコードする際に突き刺します。最初にワードラッピングによって:

D:
   (A;;CCLCSWRPLOCRRC;;;BU)
   (A;;CCLCSWRPLOCRRC;;;SY)
   (A;;CCLCSWRPLOCRRC;;;BA)
   (A;;CCLCSWRPLOCRRC;;;IU)
   (A;;CCLCSWRPLOCRRC;;;SU)
   (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)
   (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736)

D:これはある意味随意アクセス制御リスト。アクセス制御リストは、いくつかのアクセス制御エントリ(ACE)で構成されています。

  • D: 任意アクセス制御リスト
    • 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

各ACEは、セミコロンで終了する5つの設定のセットであり、その後にが適用されるかが続きます。

最初に彼らが誰に応募するかを見ると、ランダムなブログ記事がそれらのいくつかを解読します archive.is

  • BU:組み込みユーザー
  • SY:ローカルシステム
  • BA:組み込みの管理者
  • UI:対話的にログオンしたユーザー
  • SU:サービスログオンユーザー
  • S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464:信頼できるインストーラー
  • S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

次を実行して、SIDに関連付けられた名前を取得できます。

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

各ACEには、ユーザーが許可または拒否されている許可のリストが含まれています。

  • D: 任意アクセス制御リスト
    • ACE 1: A;;CCLCSWRPLOCRRC;;; 組み込みユーザー
    • ACE 2: A;;CCLCSWRPLOCRRC;;;ローカルシステム
    • ACE 3: A;;CCLCSWRPLOCRRC;;; 組み込みの管理者
    • ACE 4: A;;CCLCSWRPLOCRRC;;; インタラクティブユーザー
    • ACE 5: A;;CCLCSWRPLOCRRC;;; サービスログオンユーザー
    • ACE 6: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; 信頼できるインストーラー
    • ACE 7: A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;; S-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

ACEの残りのセミコロンで区切られたセクションを分類する:

  • エース: A;;CCLCSWRPLOCRRC;;;
    • AceType:AACCESS_ALLOWED_ACE_TYPE
    • AceFlags:(なし)
    • 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:( なし)
    • InheritObjectGuid:( なし)

先頭AAllowedを意味し、パーミッションは2文字のコードです:

  • D: 任意アクセス制御リスト
    • ACE 1:許可、、CC LC SW RP LO CR RC組み込みユーザー
    • ACE 2:許可CC LC SW RP LO CR RC、ローカルシステム
    • ACE 3:許可、、CC LC SW RP LO CR RC組み込みの管理者
    • ACE 4:許可、、CC LC SW RP LO CR RC対話ユーザー
    • ACE 5:許可、CC LC SW RP LO CR RCサービスログオンユーザー
    • ACE 6:許可CC LC SW RP LO CR RC DC WP DT SD WD WO、信頼できるインストーラー
    • ACE 7:許可、CC LC SW RP LO CR RC DC WP DT SD WD WOS-1-5-80-1913148863-3492339771-4165695881-2087618961-4109116736

そして、ここで作業を保存するために停止する必要があります。Windows Defenderサービスを停止する方法へのこの迂回は興味深く、すべてです。

スポイラー:

sc sdset WinDefend [newSDLString]

ボーナスリーディング


1

簡単なpowershellメソッドは、後で重複とマークされた質問に投稿した回答からのものです。

これを行う最も簡単な方法は、powershellを使用して無効にすることです。おそらく必要なコマンドはこれです

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

PowerShellを使用したWindows Defenderチェックの無効化/有効化に関する記事については、http://wmug.co.uk/wmug/b/pwin/archive/2015/05/12/quickly-disable-windows-defender-on-windowsをご覧ください。 -10-使用-powershell

利用可能なディフェンダーコマンドレットの詳細については、technetの記事をご覧ください。https://technet.microsoft.com/en-us/library/dn433280.aspx


これによりサービス自体が停止して無効になるとは思わない。PowerShellアプレットを必要としない設定で簡単に実行できるWindows Defenderのリアルタイム機能を無効にします。
ラムハウンド

@Ramhoundは、powershellを使用してサービス管理用に編集しました。私は100%ではないよ、それはネットストップサービスと同じ問題なくサービスを停止しますが、私はPowerShellを使用し、より運を持っていたし、ネットストップを取得/ストップ・サービス別名を信じていない
アブラクサス

1

次の手順がうまくいくことがわかりました。Windows Defenderを削除または無効にすることはありませんが、Windows Defender SERVICEを無効にし、すべての起動とリアルタイムスキャンを停止し、Windows Defenderリアルタイムスキャンが再びオンになるのを防ぎます。(Windows Defenderはそのまま残されるため、不審なファイルのオンデマンドスキャンを実行するために使用できます。)

手順:

  1. 「SysInternals」プログラムスイートを検索、ダウンロード、インストールします。
  2. プログラム「AutoRuns」を実行します。
  3. 「Windows Defender Service」を見つけます。
  4. チェックボックスをオフにします。
  5. コンピュータを再起動してください。

その後、起動時間が20分から5分に短縮され、起動後(アプリを起動する前)のメモリ使用量が2.1 GBから1.2 GBに減少しました。「サービス」を見ると、「Windows Defenderサービス」がまだ存在している間に、「実行されていません、無効」とマークされていることがわかりました。


でも、管理者として実行し、「アクセスが拒否されました」を与える
PGR

1

Windows Defenderを確実かつ完全に無効にすることはそれほど簡単ではありません。Windows DefenderをアンインストールするPowerShellスクリプトがありますが、後でインストールし直すことができない場合があります。このスクリプトは2回再起動する必要があります。

Debloat-Windows-10をダウンロードして、著者が提供する次の手順に従ってください。

  1. アーカイブを解凍します。
  2. PowerShellスクリプトの実行を有効にします。

    PS> Set-ExecutionPolicy Unrestricted

  3. このディレクトリ内のPowerShellスクリプトとモジュールのブロックを解除します。

    PS> ls-再帰* .ps1 | ブロック解除ファイルPS> ls -Recurse * .psm1 | ブロック解除ファイル

  4. 走る scripts\disable-windows-defender.ps1

  5. コンピューターを再起動します(通常の方法またはを介してPS > Restart-Computer
  6. scripts\disable-windows-defender.ps1もう一度実行します。
  7. コンピューターを再起動します。

これは最も簡単な方法ではありませんが、非常に信頼性が高く回復力があります。

また、BingFinance、Skype、OneDriveなどの不要なプログラムを削除するスクリプトもあります(必要ない場合)。

アーカイブには、役立つと思われる多くのスクリプトも含まれています。

これらのスクリプトは元に戻せないファイルを削除し、Windowsの重要な機能を削除する可能性があることに注意してください。たとえば、彼らはスタートメニューを完全に無効にするかもしれません!

disable-ShellExperienceHost.batこのパッケージから実行しないでください。実行すると、スタートメニューが開かなくなります。


0

Autorunsを使用して無効にすることができました。サービスタブの下にエントリWinDefendがあり、ボックスのチェックを外して再起動します。


でも、管理者として実行し、「アクセスが拒否されました」を与える
PGR

0

私が見つけた最も簡単な方法は、管理者のコマンドプロンプトを開いて実行することです。

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

次に再起動します。再起動せずにサービスを開始すると、サービスをシャットダウンする場所を見つけることができませんでした。


0

私の経験では、グループポリシーはWindows Defenderとそのマルウェア対策サービス実行可能ファイルを停止する最も信頼できる方法です。ただし、最近、グループポリシーを設定しても効果がなく、マルウェア対策実行可能ファイルが実行され、CPUに食い込んでいる状況に遭遇しました。

実行可能ファイルの所有権を取得し、読み取りと実行のアクセス権を拒否する小さなスクリプトを書くことになりました。これで問題は解決しました。スクリプトは次のとおりです。

@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

これはWindows 10 Pro [バージョン10.0.18362.476]で機能し、再起動後も生き残りました。しかし、私の道でしたc:\Program Files\Windows Defender\MsMpEng.exe
PGR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.