kaspersky
Goto Top

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)
chcp 1252
start /w reg export "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles" C:\start\profilestemp  
type C:\Start\profilestemp >c:\start\profiles
--> 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)
@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.

Content-Key: 197794

Url: https://administrator.de/contentid/197794

Printed on: April 19, 2024 at 19:04 o'clock

Member: lenny4me
lenny4me Jan 28, 2013 at 15:27:00 (UTC)
Goto Top
Hallo,

warum setzt du die Keys nicht einmal exportierst das bei einem Client als Regfile und Verteilst das dann wieder an Deine Cleints?
Muss das so kpmplizierzt sein? oder sehe ich den tieferen Sinn nicht?

Grüße
Member: kaspersky
kaspersky Jan 29, 2013 at 07:03:54 (UTC)
Goto Top
Hallo Lenny4me,
es handelt sich bei dieser Maschine um eine Vorlage am ESX Host (vSphere), welche in verschiedene Sub - Netze geklont wird. Und geau das ist der springende Punkt. Server 2008R2 legt für jedes Netz einen neuen Unterschlüssel im Schlüssel Profiles an und diese Schlüsselnamen werden zufällig generiert und heissen in jedem Netz anders. Habe mehrmals ins gleiche Netz Klonversuche unternommen und die erzeugten Schlüssel wurden immer anders benannt. Deshalb der umständige Weg. Ein Reg Key wäre sehr leichtt zu erstellen und auch zu importieren, allerdings...verwendet wird er dann leider doch nicht. Es handelt sich dabei eigentlich nur um einen kleinen Teil einer Patchdatei welche Namen, Netzwerkeinstellungen, Administratorenzugriffkeys... einrichtet. Das ist der letzte Teil dieser Automatisierung und wird nach dem Neustart des Rechners durchgeführt. Dieser Start ist nötig, um den Schlüssel Profiles zu löschen und durch den Start neu zu generieren, um zu gewährleisten, dass im Server keine Schlüsselsammlung von Netzwerkeinstellungen vorhanden ist.