From 3ddeb651c3cfd1b79d457e0239389774d4ae1d04 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 29 Dec 2024 12:38:24 +0800 Subject: [PATCH] :art: Support one-click addition of Microsoft Defender exclusions https://github.com/siyuan-note/siyuan/issues/13650 --- kernel/model/elevator_windows.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/kernel/model/elevator_windows.go b/kernel/model/elevator_windows.go index a954b4674..f131d8ff2 100644 --- a/kernel/model/elevator_windows.go +++ b/kernel/model/elevator_windows.go @@ -62,11 +62,12 @@ func AddMicrosoftDefenderExclusion() (err error) { return } } else { - logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) - elevator := filepath.Join(util.WorkingDir, "kernel", "elevator.exe") - if "dev" == util.Mode || !gulu.File.IsExist(elevator) { - elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") + elevator := getElevatorBin() + if !gulu.File.IsExist(elevator) { + logging.LogWarnf("not found elevator [%s]", elevator) + return } + logging.LogInfof("current user is not admin, use elevator to add Windows Defender exclusion path [%s, %s]", installPath, util.WorkspaceDir) if !gulu.File.IsExist(elevator) { msg := fmt.Sprintf("not found elevator [%s]", elevator) @@ -106,11 +107,7 @@ func checkMicrosoftDefender() { return } - elevator := filepath.Join(util.WorkingDir, "elevator.exe") - if "dev" == util.Mode || !gulu.File.IsExist(elevator) { - elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") - } - + elevator := getElevatorBin() if !gulu.File.IsExist(elevator) { logging.LogWarnf("not found elevator [%s]", elevator) return @@ -137,3 +134,11 @@ func isAdmin() bool { _, err := os.Open("\\\\.\\PHYSICALDRIVE0") return err == nil } + +func getElevatorBin() string { + elevator := filepath.Join(util.WorkingDir, "kernel", "elevator.exe") + if "dev" == util.Mode || !gulu.File.IsExist(elevator) { + elevator = filepath.Join(util.WorkingDir, "elevator", "elevator-"+runtime.GOARCH+".exe") + } + return elevator +}