CMD Batch - Wiederherstellungspunkt erstellen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Die 7 hat keinerlei Bedeutung und dient lediglich als Dummy für einen Restorepointtype der in keine der Vorgegebenen Kategorien passt.

MODIFY_SETTINGS 12 An application has had features added or removed.

Wirklich wichtig sind die Nummern nicht. Sie geben lediglich an, weshalb der Wiederherstellungspunkt erstellt wird/wurde.

Das cmd /k ist völliger Unsinn in einer Batch. Der Befehl lautet einfach.

wmic /namespace:\\root\default path SystemRestore call CreateRestorePoint "Mein RestorePunkName", 100, 12

...dazu ist zu beachten, dass das Kommandozeilentool WMIC.exe bereits aus einigen Windows 11 versionen entfernt wurde.

benutze besser Powershells Checkpoint-Computer :

Checkpoint-Computer -Description "Irgendein Name" -RestorePointType MODIFY_SETTINGS

Mehr zur Handhabung von Wiederherstellungspunkten in der Kommandozeile findest Du unter:

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
handicTRA 
Fragesteller
 15.02.2023, 17:01

Ich nutze noch Windows 10 auf meinem Main-PC und bin da gerade am Tqeaken mit services und registry. Kann ich den cmd-Scripteine line mit einbringen, wo ich vor jeder Ausführung zur Eingabe des Namens gefragt werde und falls ich keinen Namen eingebe, das dann ein von mir festgelegter Name automatisch eingegeben wird?

0
Erzesel  15.02.2023, 18:03
@handicTRA

Demo.cmd

@echo off

chcp 65001 >nul  &rem Unicodezeichen wie Umlaute) richtig darstellen


set "RPointName=My DefaultName"   &rem defaltinhalt der Variable festlegen, falls beim nachfolgenden Einlesen nur [Enter] gedrückt wird.
set /p "RPointName=Gib den Namen für den Wiederhedtellungspunkt ein :" 
wmic /namespace:\\root\default path SystemRestore call CreateRestorePoint "%RPointName%", 100, 12
 rem  oder  besser:
powerShell -ex by -c "& {start PowerShell -a ' -ex by -noe -c "Checkpoint-Computer \"\"\"%RPointName%\"\"\" MODIFY_SETTINGS " '  -verb RunAs}"
pause

Wenn Du statt wmic den powershell-Einzeiler in Deiner Batch verwendest, werden automatisch die nötigen Adminrechte angefordert. siehe nochmal https://www.gutefrage.net/frage/gibts-einen-befehl-um-einen-windows-wiederherstellungspunkt-zu-erstellen#answer-488894733

Abfrage oben schütz allerdings nicht vor unerwünschten Eingaben (wie nur Leerzeichen oder den Zeichen |$<>)

Hier noch eine Eingabe, welche auch mit giftigen Zeichen fertig wird:

demo2.cmd

@echo off
chcp 65001 >nul 

set /p "Var=Gib was ein :" 
 rem ersetze unerwünschte Zeichen durch NICHTS
set "Var=%Var:&=%"
set "Var=%Var:|=%"
set "Var=%Var:<=%"
set "Var=%Var:>=%"
 rem entferne zur Probe auch noch alle Leerzeichen 
set "Test=%Var: =%"
 rem wenn  %Test% nix mehr enthält , weise Var  einen festgelegten  Wert zu
if "%Test%"==""  set "Var=default text"
echo Hier würde  irgendein Befehl  aufgerufen ... mit "%Var%"
pause
1
handicTRA 
Fragesteller
 17.02.2023, 21:08
@Erzesel

Okay danke, kann ich die SequenceNumber (0, 1, 10, 12, 13) weglassen?

0
handicTRA 
Fragesteller
 20.02.2023, 09:02
@Erzesel

Und kann ich jede x-beliebige Zahl verwenden, da sie ka nur Spaceholder sind oder beschwert sich wmic da?

0