it-swarm.com.de

Den Bildschirmschoner unter Windows automatisch über die Befehlszeile einstellen?

Ich weiß das, wenn du rennst:

rundll32.exe desk.cpl,InstallScreenSaver toasters.scr

sie können den Bildschirmschoner auf toasters.scr einstellen, er öffnet jedoch auch den Bildschirmschonerkonfigurationsdialog. Gibt es eine Möglichkeit, den Bildschirmschoner unter Windows einzustellen, ohne einen Dialog durch Ausführen eines Befehls zu öffnen?

5
pupeno

Ich habe zwei Wege gefunden, dies zu tun:

1) Fügen Sie die Registrierung hinzu, stellen Sie sicher, dass "Aktiv" und "SetTimeOut" (nur Minuten) ist

CMD

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d C:\Windows\System32\Mystify.scr /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 1 /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 60 /f

Java

setScreenSaver(true, 1, "C:\\Windows\\System32\\Mystify.scr");

/**
 * set screen saver active, timeout and scr, only works in Windows
 * @param isActive
 * @param timeOutMin only minutes
 * @param pathToScr path to scr
 * @throws IOException
 */
public static void setScreenSaver(boolean isActive, int timeOutMin, String pathToScr) throws IOException{
    String _isActive = isActive ? "1" : "0";
    //only works with minutes, min. 1 min
    String _timeOut = timeOutMin > 1 ? timeOutMin*60+"" : "60";
    Runtime.getRuntime().exec(new String[] { "reg", "add", "HKEY_CURRENT_USER\\Control Panel\\Desktop", "/v", "SCRNSAVE.EXE", "/t", "REG_SZ", "/d", pathToScr,"/f" });
    Runtime.getRuntime().exec(new String[] { "reg", "add", "HKEY_CURRENT_USER\\Control Panel\\Desktop", "/v", "ScreenSaveActive", "/t", "REG_SZ", "/d", _isActive,"/f" });
    Runtime.getRuntime().exec(new String[] { "reg", "add", "HKEY_CURRENT_USER\\Control Panel\\Desktop", "/v", "ScreenSaveTimeOut", "/t", "REG_SZ", "/d", _timeOut,"/f" });
}

2) Holen Sie sich den Pfad aus der Registry und schreiben Sie die scr-Datei neu, aber wenn auf null gesetzt ist, können Sie dies nicht tun.

5

Der moderne Weg mit Powershell

Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name ScreenSaveActive -Value 1
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name ScreenSaveTimeOut -Value 60
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name scrnsave.exe -Value "c:\windows\system32\mystify.scr"

Sie können diese in ein ScrnInstaller.ps1-Skript einfügen, das Sie mit dem Befehl ausführen:

$ powershell -WindowStyle hidden -f "ScrnInstaller.ps1"

NB: Diese Parameter werden durch Gruppenrichtlinienparameter ersetzt (z. B. um einen Bildschirmschoner für Benutzer in einem Unternehmen zu erzwingen). Sie haben mehrere Möglichkeiten, dies zu erzwingen hier .

Mit Benutzer-/Domänen-/Site-Bewusstsein: Gruppenrichtlinie

Mithilfe von Powershell- und Gruppenrichtlinien können Sie verwalten, für welche Organisationseinheit/Domäne/Site Sie sich auf die Änderung auswirken, und dass dies Vorrang vor den Benutzereinstellungen hat.

Ändern der Gruppenrichtlinie für das Timeout des Bildschirmschoners:

Get-Command -Module GroupPolicy
New-GPO -Name "ScreenSaverTimeOut" -Comment "Sets the time to 900 seconds"
Set-GPRegistryValue -Name "ScreenSaverTimeOut" -Key "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 900
New-GPLink -Name "ScreenSaverTimeOut" -Target "ou=MyOU,dc=myenterprise,dc=com"
gpupdate /force /target:computer

für myenterprise.com. Für New-GPLink-Parameter: Msdn-Referenz

Dann können Sie Ihren Hausarzt überprüfen:

Get-GPO -Name "ScreenSaverTimeOut" | Get-GPOReport -ReportType HTML -Path $Home\report.html
Invoke-Item $Home\report.html
3
Soleil

Statt diesen Befehl auszuführen, sollten Sie den Befehl einfach ausführen

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d C:\Windows\system32\toasters.scr /f

Dadurch wird der Bildschirmschoner aktualisiert

1
Tarun Lalwani