🎨 Support one-click addition of Microsoft Defender exclusions https://github.com/siyuan-note/siyuan/issues/13650

This commit is contained in:
Daniel 2024-12-29 10:18:08 +08:00
parent 892571175b
commit 133b0ff7da
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
13 changed files with 27 additions and 40 deletions

View file

@ -1578,6 +1578,7 @@
"248": "العنوان المستهدف يقع في كتلة الحاوية ولا يمكن استخدامه كنقطة إسقاط",
"249": "تعذر الوصول إلى البيانات بسبب خطأ في الإعدادات. الرجاء التحقق من الإعدادات وأذونات التخزين السحابية",
"250": "تم تحديد معدل الطلب بواسطة التخزين السحابي. الرجاء التحقق من الإعدادات وأذونات التخزين السحابية",
"251": "‫مجموع الأصول غير المستخدمة [%d]، [%d] فقط منها مدرج هنا‬"
"251": "‫مجموع الأصول غير المستخدمة [%d]، [%d] فقط منها مدرج هنا‬",
"252": "\uD83D\uDEA8 قد يقوم Microsoft Defender بحذف النواة عن طريق الخطأ، وحذف البيانات وتقليل الأداء بشكل كبير. يوصى بإضافة مسار التثبيت ومسار مساحة العمل الخاصة بـ SiYuan إلى قائمة الاستثناءات <button id=\"addMicrosoftDefenderExclusion\">إضافة</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "Die Zielfüberschrift befindet sich im Containerblock und kann nicht als Ablagepunkt verwendet werden.",
"249": "Aufgrund eines Konfigurationsfehlers kann nicht auf die Daten zugegriffen werden. Bitte überprüfen Sie die Einstellungen und die Berechtigungen für den Cloud-Speicher",
"250": "Die Anfrage wurde vom Cloud-Speicher begrenzt. Bitte überprüfen Sie die Einstellungen und die Berechtigungen für den Cloud-Speicher",
"251": "Insgesamt ungenutzte Assets [%d], hier nur [%d] aufgeführt"
"251": "Insgesamt ungenutzte Assets [%d], hier nur [%d] aufgeführt",
"252": "\uD83D\uDEA8 Microsoft Defender könnte fälschlicherweise den Kernel löschen, Daten löschen und die Leistung erheblich verringern. Es wird empfohlen, den Installationspfad und den Arbeitsbereich von SiYuan zur Ausschlussliste hinzuzufügen <button id=\"addMicrosoftDefenderExclusion\">Hinzufügen</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "The target heading is located in the container block and cannot be used as a drop point",
"249": "Unable to access data due to configuration error. Please check the settings and cloud storage permissions",
"250": "Request has been rate-limited by cloud storage. Please check the settings and cloud storage permissions",
"251": "Total unused assets [%d], only [%d] listed here"
"251": "Total unused assets [%d], only [%d] listed here",
"252": "\uD83D\uDEA8 Microsoft Defender may mistakenly delete the kernel, delete data, and significantly reduce performance. It is recommended to add the SiYuan installation path and workspace path to the exclusion list <button id=\"addMicrosoftDefenderExclusion\">Add</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "El rumbo de destino está ubicado en el bloque contenedor y no puede usarse como punto de entrega",
"249": "No se puede acceder a los datos debido a un error de configuración. Por favor, verifique las configuraciones y permisos de almacenamiento en la nube",
"250": "La solicitud ha sido limitada por el almacenamiento en la nube. Por favor, verifique las configuraciones y permisos de almacenamiento en la nube",
"251": "Total de activos no utilizados [%d], solo [%d] listados aquí"
"251": "Total de activos no utilizados [%d], solo [%d] listados aquí",
"252": "\uD83D\uDEA8 Microsoft Defender puede eliminar por error el núcleo, eliminar datos y reducir significativamente el rendimiento. Se recomienda agregar la ruta de instalación y el espacio de trabajo de SiYuan a la lista de exclusiones <button id=\"addMicrosoftDefenderExclusion\">Agregar</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "Le cap cible est situé dans le bloc conteneur et ne peut pas être utilisé comme point de dépôt",
"249": "Impossible d'accéder aux données en raison d'une erreur de configuration. Veuillez vérifier les paramètres et les autorisations de stockage cloud",
"250": "La demande a été limitée par le stockage cloud. Veuillez vérifier les paramètres et les autorisations de stockage cloud",
"251": "Total des actifs inutilisés [%d], seulement [%d] listés ici"
"251": "Total des actifs inutilisés [%d], seulement [%d] listés ici",
"252": "\uD83D\uDEA8 Microsoft Defender peut supprimer par erreur le noyau, supprimer des données et réduire considérablement les performances. Il est recommandé d'ajouter le chemin d'installation et l'espace de travail de SiYuan à la liste des exclusions <button id=\"addMicrosoftDefenderExclusion\">Ajouter</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "הכותרת היעד ממוקמת בבלוק המיכל ואינה יכולה לשמש כנקודת זרימה",
"249": "אין אפשרות לגשת לנתונים עקב שגיאת תצורה. אנא בדוק את ההגדרות והרשאות האחסון בענן",
"250": "הבקשה הוגבלה על ידי אחסון הענן. אנא בדוק את ההגדרות והרשאות האחסון בענן",
"251": "סך כל הנכסים שלא נעשה בהם שימוש [%d], רק [%d] מופיעים כאן"
"251": "סך כל הנכסים שלא נעשה בהם שימוש [%d], רק [%d] מופיעים כאן",
"252": "\uD83D\uDEA8 Microsoft Defender עלול למחוק בטעות את הליבה, למחוק נתונים ולהפחית משמעותית את הביצועים. מומלץ להוסיף את נתיב ההתקנה ונתיב סביבת העבודה של SiYuan לרשימת החריגים <button id=\"addMicrosoftDefenderExclusion\">הוסף</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "L'intestazione di destinazione si trova nel blocco contenitore e non può essere utilizzata come punto di rilascio",
"249": "Impossibile accedere ai dati a causa di un errore di configurazione. Si prega di controllare attentamente le impostazioni e le autorizzazioni di archiviazione cloud",
"250": "La richiesta è stata limitata dall'archiviazione cloud. Si prega di controllare attentamente le impostazioni e le autorizzazioni di archiviazione cloud",
"251": "Totale risorse inutilizzate [%d], qui elencate solo [%d]"
"251": "Totale risorse inutilizzate [%d], qui elencate solo [%d]",
"252": "\uD83D\uDEA8 Microsoft Defender potrebbe eliminare erroneamente il kernel, eliminare i dati e ridurre significativamente le prestazioni. Si consiglia di aggiungere il percorso di installazione e lo spazio di lavoro di SiYuan all'elenco delle esclusioni <button id=\"addMicrosoftDefenderExclusion\">Aggiungi</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "目標の見出しがコンテナブロック内にあるためドロップできません",
"249": "設定エラーのためデータにアクセスできません。設定を一つずつ確認し、クラウドストレージの権限を確認してください",
"250": "リクエストがクラウドストレージによって制限されました。設定を一つずつ確認し、クラウドストレージの権限を確認してください",
"251": "未使用のアセットの合計 [%d]、ここにリストされているのは [%d] のみ"
"251": "未使用のアセットの合計 [%d]、ここにリストされているのは [%d] のみ",
"252": "\uD83D\uDEA8 Microsoft Defender はカーネルを誤って削除したり、データを削除したり、パフォーマンスを大幅に低下させ<E38195><E3819B>可能性があります。SiYuan のインストールパスとワークスペースパスを除外リストに追加することをお勧めします <button id=\"addMicrosoftDefenderExclusion\">追加</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "Docelowy nagłówek znajduje się w bloku kontenera i nie może być użyty jako punkt upuszczenia",
"249": "Z powodu błędu konfiguracji nie można uzyskać dostępu do danych. Proszę dokładnie sprawdzić ustawienia i uprawnienia do przechowywania w chmurze",
"250": "Żądanie zostało ograniczone przez przechowywanie w chmurze. Proszę dokładnie sprawdzić ustawienia i uprawnienia do przechowywania w chmurze",
"251": "Łączna liczba nieużywanych zasobów [%d], tutaj wymieniono tylko [%d]"
"251": "Łączna liczba nieużywanych zasobów [%d], tutaj wymieniono tylko [%d]",
"252": "\uD83D\uDEA8 Microsoft Defender może błędnie usunąć jądro, usunąć dane i znacznie obniżyć wydajność, zaleca się dodanie ścieżki instalacji i przestrzeni roboczej SiYuan do listy wykluczeń <button id=\"addMicrosoftDefenderExclusion\">Dodaj</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "Целевой заголовок находится в контейнерном блоке и не может использоваться как пункт сброса",
"249": "Из-за ошибки конфигурации невозможно получить доступ к данным. Пожалуйста, проверьте настройки и права доступа к облачному хранилищу",
"250": "Запрос был ограничен облачным хранилищем. Пожалуйста, проверьте настройки и права доступа к облачному хранилищу",
"251": "Всего неиспользованных активов [%d], здесь перечислены только [%d]"
"251": "Всего неиспользованных активов [%d], здесь перечислены только [%d]",
"252": "\uD83D\uDEA8 Microsoft Defender может ошибочно удалить ядро, удалить данные и значительно снизить производительность, рекомендуется добавить путь установки и рабочее пространство SiYuan в список исключений <button id=\"addMicrosoftDefenderExclusion\">Добавить</button>"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "目標標題位於容器塊中,無法作為放置點",
"249": "因配置錯誤導致無法存取數據,請仔細逐個核對配置項,並檢查雲端存儲相關權限配置",
"250": "請求已被雲端存儲限流,請仔細逐個核對配置項,並檢查雲端存儲相關權限配置",
"251": "未引用資源一共 ${x} 個,這裡僅列出 ${y} 個"
"251": "未引用資源一共 ${x} 個,這裡僅列出 ${y} 個",
"252": "\uD83D\uDEA8 Microsoft Defender 可能會誤殺內核、誤刪數據和嚴重降低運行性能,建議將思源安裝路徑和工作空間路徑<button id=\"addMicrosoftDefenderExclusion\">添加</button>到排除列表"
}
}

View file

@ -1578,6 +1578,7 @@
"248": "目标标题位于容器块中,无法作为放置点",
"249": "因配置错误导致无法存取数据,请仔细逐个核对配置项,并检查云端存储相关权限配置",
"250": "请求已被云端存储限流,请仔细逐个核对配置项,并检查云端存储相关权限配置",
"251": "未引用资源一共 [%d] 个,这里仅列出 [%d] 个"
"251": "未引用资源一共 [%d] 个,这里仅列出 [%d] 个",
"252": "\uD83D\uDEA8 Microsoft Defender 可能会误杀内核、误删数据和严重降低运行性能,建议将思源安装路径和工作空间路径<button id=\"addMicrosoftDefenderExclusion\">添加</button>到排除列表"
}
}

View file

@ -84,10 +84,10 @@ func AddMicrosoftDefenderExclusion() (err error) {
}
func AutoProcessMicrosoftDefender() {
processMicrosoftDefender()
checkMicrosoftDefender()
}
func processMicrosoftDefender() {
func checkMicrosoftDefender() {
if !gulu.OS.IsWindows() || Conf.System.MicrosoftDefenderExcluded {
return
}
@ -106,32 +106,7 @@ func processMicrosoftDefender() {
return
}
installPath := filepath.Dir(util.WorkingDir)
psArgs := []string{"-Command", "Add-MpPreference", "-ExclusionPath", installPath, ",", util.WorkspaceDir}
if isAdmin() {
cmd := exec.Command("powershell", psArgs...)
gulu.CmdAttr(cmd)
output, err := cmd.CombinedOutput()
if nil != err {
logging.LogErrorf("add Windows Defender exclusion path [%s] failed: %s, %s", installPath, err, string(output))
return
}
} else {
ps := []string{"powershell"}
ps = append(ps, psArgs...)
verbPtr, _ := syscall.UTF16PtrFromString("runas")
exePtr, _ := syscall.UTF16PtrFromString(elevator)
cwdPtr, _ := syscall.UTF16PtrFromString(util.WorkingDir)
argPtr, _ := syscall.UTF16PtrFromString(strings.Join(ps, " "))
err := windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, 1)
if err != nil {
logging.LogErrorf("add Windows Defender exclusion path [%s] failed: %s", installPath, err)
return
}
}
// TODO Conf.System.MicrosoftDefenderExcluded = true
//Conf.Save()
util.PushMsg(Conf.language(252), 0)
}
func isUsingMicrosoftDefender() bool {