Werte in Registrykey ändern
Möchte die Registrywerte für das Netzwerkprofil beiWin Server 2008 R2 mittels Batcha automatisieren.
Schritt 1, Registrykey wird exportiert ( Start.cmd)
--> Registrykey wird in den Ordner c:\windows\start exportiert (profiles) wird erstellt aus einer tmp datei (profilestemp) wegen der Speicherung nur Text.
--> erstellte Textdatei wird bearbeitet, Werte werden ersetzt. (replace.cmd)
--> das funktioniert eigentlich sehr gut, allerdings werden die Werte nicht richtig in der Ausgabe import.txt übernommen.
--> die Ausgabe sollte eigentlich wie folgt aussehen:
Ich weiss nicht mehr weiter, bitte um Hilfe.
Schritt 1, Registrykey wird exportiert ( Start.cmd)
chcp 1252
start /w reg export "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" C:\start\profilestemp
type C:\Start\profilestemp >c:\start\profiles
--> erstellte Textdatei wird bearbeitet, Werte werden ersetzt. (replace.cmd)
@echo off
SETLOCAL enabledelayedexpansion
REM
REM Suchen und Ersetzen in einer Textdatei
REM
SET "quell_datei=C:\Start\profiles"
SET "ziel_datei=C:\Start\import.txt"
SET "suchen_nach1="ProfileName"="Network""
SET "ersetzen_durch1="ProfileName"="BOKU""
SET "suchen_nach2="Description"="Network""
SET "ersetzen_durch2=""Description"="BOKU""
SET "suchen_nach3="Category"=dword:00000000"
SET "ersetzen_durch2="Category"=dword:00000002"
REM Ausgabe einer Fehlermeldung und Programmabbruch
REM falls die Variable "suchen_nach*" nicht definiert ist
IF NOT DEFINED suchen_nach1 (ECHO Fehler: Die Variable suchen_nach1 nicht definiert^^!&GOTO :eof)
IF NOT DEFINED suchen_nach2 (ECHO Fehler: Die Variable suchen_nach2 nicht definiert^^!&GOTO :eof)
IF NOT DEFINED suchen_nach3 (ECHO Fehler: Die Variable suchen_nach3 nicht definiert^^!&GOTO :eof)
REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST %ziel_datei% (DEL /f %ziel_datei% 1>NUL 2>NUL 3>NUL)
REM Quell-Datei zeilenweise auslesen
REM und in Variable "zeile" schreiben
FOR /f "delims=" %%i IN ('FINDSTR . "%quell_datei%"') DO (
SET zeile=%%i& CALL :ersetzen !zeile!
)
GOTO :weiter
:ersetzen
REM innerhalb der Variable "zeile"
REM den Inhalt der Variable "suchen_nach1" suchen
REM und diese durch den Inhalt der Variable "ersetzen_durch" ersetzen
SET zeile=!zeile:%suchen_nach1%=%ersetzen_durch1%!
SET zeile=!zeile:%suchen_nach2%=%ersetzen_durch2%!
SET zeile=!zeile:%suchen_nach3%=%ersetzen_durch3%!
REM Inhalt der Variable "zeile" in die Ausgabedatei schreiben
IF [!zeile!] EQU (ECHO.>>%ziel_datei%) ELSE (ECHO !zeile!>>%ziel_datei%)
GOTO :eof
:weiter
REM weitere Verarbeitung
ECHO Fertig^^
--> das funktioniert eigentlich sehr gut, allerdings werden die Werte nicht richtig in der Ausgabe import.txt übernommen.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{8BA5AFB1-A776-4B5B-A235-24281AE097FB}]
"Network"="ProfileName"="BOKU"="Network"
"Network"=dword:00000000==dword:00000002="Network"
"Managed"=dword:00000000
dword:00000000==dword:00000000
"DateCreated"=hex:dd,07,01,00,05,00,19,00,09,00,17,00,34,00,16,03
"NameType"=dword:00000006
"DateLastConnected"=hex:dd,07,01,00,05,00,19,00,09,00,17,00,34,00,16,03
--> die Ausgabe sollte eigentlich wie folgt aussehen:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{8BA5AFB1-A776-4B5B-A235-24281AE097FB}]
"ProfileName"="BOKU"
"Description"="BOKU"
"Managed"=dword:00000000
"Category"=dword:00000002
"DateCreated"=hex:dd,07,01,00,05,00,19,00,09,00,17,00,34,00,16,03
"NameType"=dword:00000006
"DateLastConnected"=hex:dd,07,01,00,05,00,19,00,09,00,17,00,34,00,16,03
Ich weiss nicht mehr weiter, bitte um Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197794
Url: https://administrator.de/contentid/197794
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
2 Kommentare
Neuester Kommentar