Reinhard77
Lieutenant
- Registriert
- Feb. 2019
- Beiträge
- 999
Hallo,
es gibt ja in den Windows 11 Einstellungen den Schalter "Bitte nicht stören" unter Einstellungen -> System - Benachrichtigungen:
Diesen Schalter will ich per Skript ausschalten.
Dazu hatte ich ursprünglich folgendes Skript entwickelt:
Dieser Schritt funktioniert auch, aber leider nicht immer. Und da ich nicht weiß, was sich Microsoft bei diesen binären Werten für dieses Menü gedacht hat, komme ich da nicht weiter. Dazu müsste ich wiesen, welcher der ganzen Werte genau für den Schalter zuständig ist und das weiß ich nicht. Wo in der Registry sich diese Werte verstecken, hatte ich mit Sysinternals Process Monitor herausgefunden.
Dann lag die noch einzig mögliche Lösung daran, ein VBS Skript zu erstellen, welches in PowerShell eingebettet wird. D.h. ich packe das VBS Skript in eine Variable, gebe es als Datei aus und starte die Datei an der richtigen Stelle. Dazu habe ich folgendes PowerShell Skript erstellt, welches auch einwandfrei funktioniert:
Das Problem, was ich nun habe, ist, es ist nicht immer eindeutig, wie die ursprüngliche Position des Schalters "Bitte nicht stören" ist. D.h. es kann sein, das, wenn der Schalter schon aus ist, dieses VBS Skript den Schalter wieder einschaltet, was nicht gewünscht ist. Mit den binären Werten in der ersten Version komme ich auch nicht wirklich weiter, da ich nicht weiß, welcher Wert für den Schalter zuständig ist. Es werden auch immer gleich vier binäre Werte gleichzeitig geändert, wenn der Schalter betätigt wird.
Soweit ich weiß, gibt es auch keine GPO bzw. einen Registry Key, der explizit für diesen Schalter zuständig ist?!
Hat jemand eine Lösung für dieses Problem? Wenn ja, schon mal vielen Dank!
es gibt ja in den Windows 11 Einstellungen den Schalter "Bitte nicht stören" unter Einstellungen -> System - Benachrichtigungen:
Diesen Schalter will ich per Skript ausschalten.
Dazu hatte ich ursprünglich folgendes Skript entwickelt:
PowerShell:
# "Bitte nicht stören" deaktivieren
if (!(Test-Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.notifications.quiethourssettings\Current')) {
New-Item -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.notifications.quiethourssettings' -Name "Current" | Out-Null
New-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.notifications.quiethourssettings\Current' -Name "Data" -Value (&{'02,00,00,00,69,78,60,36,2d,9f,db,01,00,00,00,00,43,42,01,00,d2,14,28,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,51,00,75,00,69,00,65,00,74,00,48,00,6f,00,75,00,72,00,73,00,50,00,72,00,6f,00,66,00,69,00,6c,00,65,00,2e,00,55,00,6e,00,72,00,65,00,73,00,74,00,72,00,69,00,63,00,74,00,65,00,64,00,ca,28,00,00'.split(",") | %{"0x"+$_}}) -Type BINARY | Out-Null
Write-Host "Bitte nicht stoeren deaktiviert."
}
else
{
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.notifications.quiethourssettings\Current' -Name "Data" -Value (&{'02,00,00,00,69,78,60,36,2d,9f,db,01,00,00,00,00,43,42,01,00,d2,14,28,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,51,00,75,00,69,00,65,00,74,00,48,00,6f,00,75,00,72,00,73,00,50,00,72,00,6f,00,66,00,69,00,6c,00,65,00,2e,00,55,00,6e,00,72,00,65,00,73,00,74,00,72,00,69,00,63,00,74,00,65,00,64,00,ca,28,00,00'.split(",") | %{"0x"+$_}}) -Type BINARY | Out-Null
Write-Host "Bitte nicht stoeren deaktiviert"
}
Dieser Schritt funktioniert auch, aber leider nicht immer. Und da ich nicht weiß, was sich Microsoft bei diesen binären Werten für dieses Menü gedacht hat, komme ich da nicht weiter. Dazu müsste ich wiesen, welcher der ganzen Werte genau für den Schalter zuständig ist und das weiß ich nicht. Wo in der Registry sich diese Werte verstecken, hatte ich mit Sysinternals Process Monitor herausgefunden.
Dann lag die noch einzig mögliche Lösung daran, ein VBS Skript zu erstellen, welches in PowerShell eingebettet wird. D.h. ich packe das VBS Skript in eine Variable, gebe es als Datei aus und starte die Datei an der richtigen Stelle. Dazu habe ich folgendes PowerShell Skript erstellt, welches auch einwandfrei funktioniert:
PowerShell:
#########################temp VBS Script fuer die Installation####################
$vbsScriptBNS = 'set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 2000
WshShell.SendKeys "{TAB}"
WScript.Sleep 400
WshShell.SendKeys "{TAB}"
WScript.Sleep 400
WshShell.SendKeys " "
WScript.Sleep 400
'
#########################Bitte nicht stoeren deaktivieren#############################
Write-Host "-----------------------------------------------------"
Write-Host -ForegroundColor Yellow "Bitte nicht stoeren wird deaktiviert!...Bitte warten.";
Write-Host "-----------------------------------------------------"
# Menü "Einstellung" -> "Benachrichtigungen" aufrufen
Start-Process ms-settings:notifications
# VBS Skript als Datei ablegen
$vbsScriptBNS | Out-File -FilePath "C:\vbsScriptBNS.vbs"
# VBS Skript ausfuehren
Start-Process -wait "C:\vbsScriptBNS.vbs" | Out-Null
Write-Host -ForegroundColor Green "Bitte nicht stoeren wurde installiert."
Write-Host "-----------------------------------------------------"
# VBS Skript wieder loeschen
Remove-Item "C:\vbsScriptBNS.vbs"
Start-Sleep -Seconds 2
Das Problem, was ich nun habe, ist, es ist nicht immer eindeutig, wie die ursprüngliche Position des Schalters "Bitte nicht stören" ist. D.h. es kann sein, das, wenn der Schalter schon aus ist, dieses VBS Skript den Schalter wieder einschaltet, was nicht gewünscht ist. Mit den binären Werten in der ersten Version komme ich auch nicht wirklich weiter, da ich nicht weiß, welcher Wert für den Schalter zuständig ist. Es werden auch immer gleich vier binäre Werte gleichzeitig geändert, wenn der Schalter betätigt wird.
Soweit ich weiß, gibt es auch keine GPO bzw. einen Registry Key, der explizit für diesen Schalter zuständig ist?!
Hat jemand eine Lösung für dieses Problem? Wenn ja, schon mal vielen Dank!
Zuletzt bearbeitet: