Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateieditierung per Batchdatei (machine.config)

Frage Entwicklung Batch & Shell

Mitglied: hanswd

hanswd (Level 1) - Jetzt verbinden

24.01.2006, aktualisiert 30.01.2006, 9372 Aufrufe, 10 Kommentare

Hallo, ich hab erst nach anderen Möglichkeiten gesucht, aber Batch-Dateien erscheinen mir jetzt als sehr leistungsfähig und vielleicht weiss jemand, wie man folgendes Problem löst:


Unter C:\WINDOWS\Microsoft.NET\Framework\
gibt es einen der Version des verwendeten Framework entsprechden Unterordner, z.B.
v1.1.4322\CONFIG
und dort liegt die Datei: "machine.config"

In der Datei gibt es das Tag: processModel und dort muss das Attribut userName='machine' mit userName='SYSTEM' ausgetauscht werden.
Kann man das per Batch-Datei machen? Wie würde sowas aussehen?
Erstmal muss er ja die richtige machine.config finden (kann auch in v1.0.3705\CONFIG liegen...)

Danke schonmal

H.
Mitglied: Biber
24.01.2006 um 21:46 Uhr
Moin hanswd,

lässt sich machen, aber es gibt drei (mögliche) Schwierigkeiten dabei:

a) Es wäre zu prüfen, ob M$ so dämlich war, einem x-beliebigen dahergelaufenen Batch die Änderung der machine.config zu erlauben. Immerhin stehen da zum Beispiel im Abschnitt &ltprocessModel&gt auch solche Sachen wie Username und Passwort drin. Andererseits... wie ich M$ einschätze, ist das kein Problem...

b) Wie Du auch angesprochen hast - irgendwie muss vorher der gültige (Versions-) Pfad ermittelt werden.
Ich weiß nicht, ob/wo der in der Registry steht oder sonst aus dem aufrufenden Kontext ermittelt werden kann - das müsstest Du klären. Oder es muss fest in den Batch verdrahtet ("hart codiert") werden, was ich auch ungern mache.

c) Da die machine.config ja eine XML-Datei ist, sind im Batch ein paar Maskierungen (für die Größer/Kleiner-Zeichen, die ja auch im Batch Steuerzeichen sind) nötig. Da so etwas aber öfters mal hier nachgefragt wird, fände ich das einen schönen Anlass für einen Beispiel-Batch und helfe gerne mit.

Kannst Du zu Punkt a) und b) etwas recherchieren bitte?

Grüße Biber
Bitte warten ..
Mitglied: hanswd
25.01.2006 um 01:02 Uhr
Hi Biber, klingt gut, hier schon mal was zu Deinen Punkten:

Zu a)

Die Datei ist jedenfalls nicht extra geschützt wie es scheint, ich denke mal,das wird kein Problem sein sicherheitstechnisch...Hab ansonsten aber keine Quellen gefunden, die da schonmal per Batchdatei geändert haben

Zu b)

Es gibt sogar mehrere Stellen in der Registry in denen der Pfad zur machine.config steht:
1.
01.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\4AA80E9DBDA37C74BBB132651E9BBF8A] 
02.
"DDE7F2BCF1D91C3409CFF425AE1E271A"="C?\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config"
oder
2.
01.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls] 
02.
... 
03.
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config"=dword:00000001 
04.
...
Kompletter 2.ter Key: [Edit Biber: wieder ein bisschen gekürzt.... so genau brauchen wir es doch nicht.. [/Edit]
</code>
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]
"C:\\Programme\\Gemeinsame Dateien\\Microsoft Shared\\Triedit\\dhtmled.ocx"=dword:00002710
[...........]
"C:\\WINDOWS\\system32\\rired32e.dll"=dword:00000001
"C:\\WINDOWS\\system32\\SUPPORT.INI"=dword:00000001
......
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.0.3705\\installutil.exe.config"=dword:00000002
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config"=dword:00000001
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\mscorcfg.msc"=dword:00000001
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\mscoree.tlb"=dword:00001000
.......
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\IEExecRemote.dll"=dword:00000001
</code>
Bitte warten ..
Mitglied: Biber
25.01.2006 um 08:14 Uhr
Moin hanswd,

danke schon mal für die Recherche.
Der zweite RegKey sieht vertrauenserweckender aus - der lässt sich ja auch auf verschiedenen Rechnern wiederfinden.
Allerdings muss der Batch (bzw. der Batch-aufrufende-User) die Rechte zum Lesen des HKLM-Zweiges haben. Sollten wir schon mal im Hinterkopf behalten als Restriktion.
Dazu bitte noch mal den SubKey unter [..SharedDLLs] posten (bzw. Editieren in Deiner Antwort.)

Wenn Du dann noch schreibst, was Du (ggf. abhängig von...bla..) ändern willst, dann können wir heute abend loslegen.
Vorher hab ich wenig Luft.

Grüße Biber
Bitte warten ..
Mitglied: hanswd
25.01.2006 um 12:41 Uhr
So, hab mal den kompletten Key in die Antwort davor gepackt, und in der Frage steht jetzt auch drin, was er machen soll:
=> username='machine' in username='system'

Das wurde in dem Beitrag wohl ausgeblendet, da vor processModel ein Kleinerzeichen stand!!

Gruß
H.
Bitte warten ..
Mitglied: Biber
29.01.2006 um 13:11 Uhr
So, hanswd,

heute nachmittag könnten wir ein wenig weiterbasteln.
Den ersten Teil, die Ermittlung des Pfades zur "aktiven" Datei machine.config kann ich Dir schon posten.
Zum Bearbeiten dieser XML-Datei hätte ich gern noch ein bisschen Input. Ich schick Dir mal eine PN mit meiner Mailadresse und bitte um eine realistische machine.config mit den Angaben, was geändert werden soll.

01.
::--snipp ErmittleMachineConfigPath.bat 
02.
@echo off & setlocal 
03.
Set "OutOfTheReg=%temp%\MySharedDLLs.reg" 
04.
Set "NeededRegKey=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDlls" 
05.
regedit /e %OutOfTheReg% %NeededRegKey% 
06.
goto skipProsa 
07.
~~~~~~~~~~~ 
08.
:: In der %OutOfTheReg%-Datei steht jetzt die oben abgedruckte meterlange Liste 
09.
:: Von der brauchen wir eine Zeile: die Zeile mit "machine.config" 
10.
:: Die holen wir mit dem FIND-Befehl 
11.
:: Ein CMD-Prompt-Befehl "find /i "machine.config" %OutOfTheReg%" 
12.
:: würde als Output sinngemäß liefern: 
13.
 
14.
---------- Z:\TEMP\MYSHAREDDLLS.REG 
15.
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config"=dword:00000001</i> 
16.
:: Die ersten beiden Outputzeilen entsorgen wir mit "skip=2" in der nächsten Anweisung, 
17.
:: ebenfalls alles nach dem "="-Zeichen inclusive mit "delims==" 
18.
:skipProsa 
19.
for /F "skip=2 delims==" %%i in ('find /i "machine.config" %OutofTheReg%') do Set "MCFile=%%i" 
20.
:: In MCFile steht jetzt folgendes: 
21.
:: "C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config" 
22.
::da ersetzen wir die doppelten Backslashes durch einfache. 
23.
Set MCFile=%MCFile:\\=\% 
24.
::Ergebnis MCFile="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config" 
25.
::--snapp ErmittleMachineConfigPath.bat
Jetzt könnten wir anfangen....

Gruß Biber
Bitte warten ..
Mitglied: Biber
29.01.2006 um 17:01 Uhr
Jo, dann lass uns mal loslegen....
Ich hätte folgende Alternativstrategien für diesen Zweck:

a) Die "saubere"
Wir parsen die machine.config-XML-Datei, das heißt hangeln uns von Node zu Node, um sicherzustellen, dass auch der richtige XML-Tag in dem richtigen Node geändert wird.
Was dagegen spricht, ist meine Abneigung gegen das 12000ste Neu-Erfinden von solchen Rädern.. XML-Parser gibt es schon reichlich - zwar eher als ASP.net oder Java-Code, aber ..was soll's.
Einen kleinen SAX-Parser oder ähnliches hat bestimmt ziemlich jeder Java-Noob schon mal zusammengeschrotet. Das reizt mich also wenig.

b) Denn wenn es hier mit der konkreten machine.config einfacher geht, sehe ich es pragmatisch.
Ansatz:
- Prüfen, ob die machine.config GENAU eine Zeile mit [Username="machine"] enthält.
- wenn ja (ist in unserem Fall gegeben)
- Sicherungskopie anlegen
b1) mit einem Freeware-Konsolen-Utility "StringReplace.exe" den Text [Username="machine"] durch den Text [Username="system"]
ersetzen. Solche Utilities gibt es, ich habe grad keins zur Hand.
b2) eine StringReplace-Funktion in VBS/JS zusammenbraten oder anpassen. Da hat gemini einige hier im Forum gepostet, die relativ universell sind.
b3) die reine Batch-Lösung.
- Zu ändernde Zeilennummer ermitteln.
- Alle Zeilen DAVOR lesen und eins zu eins wieder schreiben.
- die Zeile selbst neu schreiben
- Alle Zeilen DANACH lesen und eins zu eins wieder schreiben.
Lumpig bei dieser Lösung ist das Maskieren der naturgemäß vielen Größer- und Kleinerzeichen beim Lesen und Schreiben dieser XML-Datei.
Kleiner- und Größerzeichen sind ja Steuerzeichen im Batch und werden deshalb nicht als zum Text zugehörig interpretiert.
Zum Thema Maskierung: siehe in meinen Batch-Tutorials in Batch & Shell.

b4) Da ich wie alle Biber stinkefaul bin, spar ich mir die Maskiererei - ich ersetze vorher alle Kleinerzeichen durch ein Paragrafzeichen, alle Größerzeichen durch ein "deutsches SZ" und später wieder zurück.
Für diesen Zweck habe ich nämlich ein Freeware-Utility namems Change.exe irgendwo mal runtergeladen.
Link trag ich nach, falls/sobald ich ihn finde.
[Edit]hanswd hat den Link auf die change-x.zip gefunden:
http://www.daikatana.org/TecSoft/index.php?os=win&produkte=Dateien
[/Edit]

Funktioniert jedenfalls für einzelne Zeichen sauber:
01.
$cmd$change 
02.
CHANGE Version 1.1 
03.
Programmiert von: tec@Onlinehome.de 
04.
 
05.
Dieses Programm sucht in einer Textdatei nach einem bestimmten 
06.
Buchstaben und ersetzt es durch einen anderen. 
07.
 
08.
Das Programm wird folgendermassen aufgerufen: 
09.
CHANGE.EXE <Datei> <Char1> <Char2> <x> <y> 
10.
 
11.
<Datei> = Pfad + Dateiname der zu durchforstenden Datei 
12.
<Char1> = Nach diesem Buchstabe wird gesucht 
13.
<Char2> = Buchstabe wird ersetzt durch diesen Buchstaben 
14.
<x>     = wenn x = 1 dann: wird jede Zeile am Bildschirm angezeigt 
15.
<x>     = wenn x = 2 dann: wird keine Zeile am Bildschirm angezeigt 
16.
<y>     = wenn y = 1 dann: statt <Char1> wird das Pipezeichen "|" genommen 
17.
<y>     = wenn y = 2 dann: statt <Char2> wird das Pipezeichen "|" genommen 
18.
          Die Eingabe von <y> ist optional - muss also nicht unbedingt sein! 
19.
          <Char1> oder <Char2> werden dann je nachdem ignoriert. Wurde deshalb 
20.
          eingebaut da DOS kein "|" als Parameter erlaubt! 
21.
 
22.
Beispiel: CHANGE.EXE D:\BEISPIEL.TXT T Z 
23.
Es werden in der Datei D:\BEISPIEL.TXT alle Buchstaben T durch Z ersetzt.
Ich verfolge jetzt nur noch Strategie b4) weiter,

Okay, der Batchschnipsel oben hörte auf mit der Ermittling des Pfades der Machine.config.
Nächstes Teilproblem: Gibt es genau EINE Zeile mit [Username="machine"]?
Löse ich mit folgender Zeile:
for /f "skip=1 tokens=3" %%i in ('find /i /c "username=""machine" machine.config') do @set "AnzZeilen=%%i"
... in der Variablen %AnzZeile% sollte jetzt eine "1" stehen, wenn ich sinnvoll weitermachen kann.
Steht eine "0" drin, wurde keine Zeile gefunden (nothing to do).
Werden 2 oder mehr Zeilen gefunden... tja, dann muss mir einer sagen, was ich tun soll. Alle ersetzen? Nur das erste?

Okay, der Rest sollte im weitergeführten Batch nachvollziehbar sein.
01.
::--snipp SetUserToSystemInMachineConfig.bat 
02.
@echo off & setlocal 
03.
Set "OutOfTheReg=%temp%\MySharedDLLs.reg" 
04.
Set "NeededRegKey=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDlls" 
05.
regedit /e %OutOfTheReg% %NeededRegKey% 
06.
goto skipProsa 
07.
~~~~~~~~~~~ 
08.
:: In der %OutOfTheReg%-Datei steht jetzt die oben abgedruckte meterlange Liste 
09.
:: Von der brauchen wir eine Zeile: die Zeile mit "machine.config" 
10.
:: Die holen wir mit fem FIND-Befehl 
11.
:: Ein CMD-Prompt-Befehl <i>$cmd$find /i "machine.config" %OutOfTheReg%</i> 
12.
:: würde als Output sinngemäß liefern: 
13.
<i>  
14.
---------- Z:\TEMP\MYSHAREDDLLS.REG 
15.
"C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config"=dword:00000001</i> 
16.
:: Die ersten beiden Outputzeilen entsorgen wir mit "skip=2" in der nächsten Anweisung 
17.
:: ebenfalls alles nach dem "="-Zeichen inclusive mit "delims==" 
18.
:skipProsa 
19.
for /F "skip=2 delims==" %%i in ('find /i "machine.config" %OutofTheReg%') do Set "MCFile=%%i" 
20.
:: In MCFile steht jetzt folgendes: 
21.
:: "C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config" 
22.
::da ersetzen wir die doppelten Backslashes durch einfache. 
23.
Set MCFile=%MCFile:\\=\% 
24.
::Ergebnis MCFile="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config" 
25.
:: Die Überprüfung IF exist %MCFILE% sollte schon rein... 
26.
IF NOT exist %MCFILE% exit /b 3 
27.
:: Also raus mit ERRORLEVEL 3 
28.
for /f "skip=1 tokens=3" %%i in ('find /i /c "username=""machine" %MCFile%') do @set "AnzZeilen=%%i" 
29.
IF NOT [%AnzZeilen%]==[1] exit /b 2 
30.
:: wenn nicht genau EINE Zeile mit [username="machine"]...ist Ende hier. 
31.
Set "MCKopie=%temp%\MCTemp.txt" 
32.
Copy /y %MCFile% %MCKopie% >nul 
33.
:: Arbeitskopie der machine.config anlegen. 
34.
:: Alle Kleinerzeichen ersetzen durch §, alle Größerzeichen durch "ß" 
35.
change %MCKopie% ^< § 2 >nul 
36.
change %MCKopie% ^> ß 2 >nul 
37.
:: Die Zeilennummer ermitteln mit dem Text [username="machine"] 
38.
FOR /F "skip=2 tokens=1" %%i IN ('find /i /n "username=""machine" %MCKopie%') DO set "ReplLine=%%i" 
39.
::bei der konkreten Datei machine.config, mit der ich teste,  
40.
:: steht jetzt bei %ReplLine% der Wert [452] für die gefundene Zeile 
41.
::noch eben die eckigen Klammern wech... 
42.
::[Edit] -------Set ReplLine=%ReplLine:[=% 
43.
::[Edit] -------Set ReplLine=%ReplLine:]=% 
44.
::[Edit] Hier war ein M$-Bug, den ich übersehen habe.  
45.
::[Edit]   %ReplLine% wurde falsch gesetzt auf "[452]username=""machine" 
46.
::[Edit] **Drex-M$-Stümper *grmpffffffff* 
47.
::[Edit] Workaround nächste Zeile: [/Edit] 
48.
For /F "delims=[]" %%i in ("%ReplLine%") do set "ReplLine=%%i" 
49.
:: So, jetzt machine.config lesen und neue schreiben: 
50.
Set /a "AktuelleZeile=1" 
51.
Set "MCNew=%temp%\MCNew.txt" 
52.
If exist %MCNew% del %MCNew% 
53.
FOR /f "delims=" %%i IN (%MCTemp%) DO call :ReadAndWrite %%i 
54.
change %MCNew% § ^< 2 >nul 
55.
change %MCNew% ß ^> 2 >nul 
56.
If Exist %MCFile% copy %MCFile% %MCfile%.old >nul 
57.
IF EXIST %MCNew% COPY /y %MCNew% %MCFile% >nul 
58.
goto :eof 
59.
 
60.
:ReadAndWrite Parameter %1 ist die alte Zeile 
61.
IF [%AktuelleZeile%]==[%ReplLine%] echo username="system">>%MCNew% 
62.
IF Not [%AktuelleZeile%]==[%ReplLine%] echo %* >>%MCNew% 
63.
Set /A "AktuelleZeile+=1" 
64.
goto :eof 
65.
::--snapp SetUserToSystemInMachineConfig.bat
Hope it Helps
Biber

P.S. Ich verkürze mal in Deinem Kommentar oben diese meterlange Liste aus der Registry ein bisschen.
P.P.S. GETESTETE *.bat per Mail an hanswd... warte auf sein Ergebnis.
Bitte warten ..
Mitglied: Biber
30.01.2006 um 11:00 Uhr
Nachtrag:
hanswd und ich haben den Batch getestet..der tut auch, was er soll.
Aber: Durch das zeilenweise Lesen und Schreiben mit der FOR..IN..DO-Anweisung werden
a) alle LeerZEILEN aus der machine.config-XML-Datei entfernt
b) auch alle führenden LeerZEICHEN (also die Einrück-Formatierungen) entfernt.
Macht dem Rechner nichts aus - die XML-Datei ist natürlich gültig und interpretierbar.
Für Menschen ist es allerdings schlechter lesbar.
Deshalb nochmal der Hinweis: Einfacher wäre es mit einen von der Konsole verwendbaren Utility, das die Zeile 'username="machine"' durch 'username="system"' ersetzen kann.
Falls jemand einen Link posten könnte, wäre ich dankbar.
Der eigentliche Lösungsweg bleibt trotzdem bestehen.

Grüße biber
Bitte warten ..
Mitglied: hanswd
30.01.2006 um 16:46 Uhr
Ich glaub ich hab da ein passendes Freewaretool gefunden:
String Replace v1.1 - Remove/replace strings from text files
(strep11.zip)

Nr. 1093 auf dieser Liste:
http://www.sac.sk/files.php?d=19&l=

Mfg
Hans
Bitte warten ..
Mitglied: Biber
30.01.2006 um 17:22 Uhr
Jepp, hanswd,
das passt besser. Wie das halt so ist mit geschenkten Gäulen hat dieses Tool zwar auch ein paar Eigenheiten, aber unterm Strich ist es natürlich viel einfacher.

Ich habe es eben mal kurz angetestet:
Das STREP-Utility erwartet im Verzeichnis, aus dem es aufgerufen wird (also nicht in dem Verzeichnis, in dem es die STREP.exe ist) eine Datei namens REPLACE.TXT mit dem Inhalt abwechselnd Suchstring und Ersatztext:
-------snipp REPLACE.Txt
userName="machine"
userName="system"
-------snapp REPLACE.Txt

Mit den Anführungszeichen kommt STREP.exe klar; die beiden Zeilen/die REPLACE.TXT lassen sich auch dem Batch per ECHO anlegen.
Auch diese ganze Einzelzeichen-Ersetzungsmimik mit CHANGE.exe im obigen Batch wird hinfällig.
Zu beachten ist nur, dass STREP.exe nicht mit Extensions größer 3 Zeichen klarkommt; Inputdatei muss eine Extension <=3 Zeichen haben; Outputdateiname wird mit Extensionlänge = 3 angelegt.
Ich denke, von obigen Batch bleibt nur die Anfangsmimik übrig (Ermitteln des machine.config-Pfades via Registry; Überprüfung auf genau ein Vorkommen von SUCHTEXT), danach diese Zeile ersetzen mit STREP und gut ist.

Hätten wir also etwas kürzer haben können. *gg

Grüße und vielen Dank für den Link
Biber
Bitte warten ..
Mitglied: hanswd
30.01.2006 um 18:33 Uhr
Hier mal der Code für die Batch mit Strep 1.1:

01.
@echo off & setlocal 
02.
Set "OutOfTheReg=%temp%\MySharedDLLs.reg" 
03.
Set "NeededRegKey=HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDlls" 
04.
regedit /e %OutOfTheReg% %NeededRegKey% 
05.
 
06.
for /F "skip=2 delims==" %%i in ('find /i "machine.config" %OutofTheReg%') do Set "MCFile=%%i" 
07.
:: In MCFile steht jetzt folgendes: 
08.
:: "C:\\WINDOWS\\Microsoft.NET\\Framework\\v1.1.4322\\CONFIG\\machine.config" 
09.
::da ersetzen wir die doppelten Backslashes durch einfache. 
10.
Set MCFile=%MCFile:\\=\% 
11.
::Ergebnis MCFile="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config" 
12.
:: Die Ueberpruefung IF exist %MCFILE% sollte schon rein... 
13.
IF NOT exist %MCFILE% exit /b 3 
14.
:: Also raus mit ERRORLEVEL 3 
15.
for /f "skip=1 tokens=3" %%i in ('find /i /c "username=""machine" %MCFile%') do @set "AnzZeilen=%%i" 
16.
IF NOT [%AnzZeilen%]==[1] exit /b 2 
17.
:: wenn nicht genau EINE Zeile mit [username="machine"]...Ende hier. 
18.
 
19.
Set "MCResult=%temp%\MCResult.txt" 
20.
Set "MCKopie=%temp%\MCNew.txt" 
21.
Copy /y %MCFile% %MCKopie% >nul 
22.
STREP %temp%\MCNew.txt %temp%\MCResult.txt 
23.
 
24.
If exist %MCKopie% copy /y %MCResult% %MCFile% >nul 
25.
goto :eof
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Abfrage in einer Batchdatei ?
gelöst Frage von Emily33Batch & Shell3 Kommentare

Hallo alle, ich habe mir eine Diskpart Batchdatei erstellt um öfters USB-Sticks bootfähig zu machen. An einem Punkt komme ...

Batch & Shell
Robocopy in einer Batchdatei
gelöst Frage von CinebatBatch & Shell7 Kommentare

Hallo ich möchte ein einfache Batchdatei erstellen. Ich möchte sämtliche Dateien und Ordner von meiner Festplatte D: auf ein ...

Windows Tools
Aktuelles Verzeichnis in Batchdatei
gelöst Frage von SnuffchenWindows Tools7 Kommentare

Hallo zusammen, ich habe das Problem das ich innerhalb einer Batch-Datei das aktuelle Verzeichnis der Batch-Datei ermitteln muss. Führe ...

Batch & Shell
Mit Batchdatei eine .ini erstellen
gelöst Frage von miichiii9Batch & Shell7 Kommentare

Hallo miteinander und guten Morgen Ich möchte eine kleine Abfrage starten via Batch und diese anschliessend in eine ini ...

Neue Wissensbeiträge
Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 StundeHumor (lol)2 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 17 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 17 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 20 StundenAdministrator.de Feedback10 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...