Werte aus der Registry auslesen in einem Netzwerk
Hallo Leute,
ich möchte aus einem Netzwerk mit ca. 70 Rechnern aus der Registry einen Wert auslesen und den danach in ein Textfile schreiben lassen.
Es geht darum, das ich den Teamviewer Host auf allen Clients ausrollen muss und dann mittels einer automatisierten Lösung die ID auslesen kann. Weil wenn
ich bei 70 Rechner durchrennen muss, wird das ziemlich öde
Folgendes hab ich bereits zusammengeschustert
@echo off
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "HKLM\Software\Teamviewer\Version4" /V
"ClientID"') do set /a "LAD=%%j"
echo %LAD% >> c:\test.txt
@echo off
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "HKLM\System\ControlSet001\Control\Computername\Computername" /V
"Computername"') do set "LAD=%%j"
echo %LAD% >> c:\test.txt
Wenn ich den Batch starte, schreibt er auch brav in das Textfile die ID und den PC Namen. Allerdings ist das immer nur local.
Ich hab mir gedacht, wenn ich das Text File auf einen Freigegeben Ordner lege,in den Batch Job dann den Pfad integriere und den Batchjob dann als Policy rausjage,
müßte er "normalerweiße" dann ja von allen Rechnern auf denen die Policy zieht, die ID auslesen und in das TextFile schreiben. Oder irre ich mich da ??
Ich wäre echt für ein bißchen Hilfe dankbar
ich möchte aus einem Netzwerk mit ca. 70 Rechnern aus der Registry einen Wert auslesen und den danach in ein Textfile schreiben lassen.
Es geht darum, das ich den Teamviewer Host auf allen Clients ausrollen muss und dann mittels einer automatisierten Lösung die ID auslesen kann. Weil wenn
ich bei 70 Rechner durchrennen muss, wird das ziemlich öde
Folgendes hab ich bereits zusammengeschustert
@echo off
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "HKLM\Software\Teamviewer\Version4" /V
"ClientID"') do set /a "LAD=%%j"
echo %LAD% >> c:\test.txt
@echo off
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "HKLM\System\ControlSet001\Control\Computername\Computername" /V
"Computername"') do set "LAD=%%j"
echo %LAD% >> c:\test.txt
Wenn ich den Batch starte, schreibt er auch brav in das Textfile die ID und den PC Namen. Allerdings ist das immer nur local.
Ich hab mir gedacht, wenn ich das Text File auf einen Freigegeben Ordner lege,in den Batch Job dann den Pfad integriere und den Batchjob dann als Policy rausjage,
müßte er "normalerweiße" dann ja von allen Rechnern auf denen die Policy zieht, die ID auslesen und in das TextFile schreiben. Oder irre ich mich da ??
Ich wäre echt für ein bißchen Hilfe dankbar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125566
Url: https://administrator.de/contentid/125566
Ausgedruckt am: 20.11.2024 um 00:11 Uhr
47 Kommentare
Neuester Kommentar
Moin
Die eine oder andere Anforderung in dieser Richtung hat wohl jeder (früher oder später).
Wir haben uns gleich für eine Inventarisierungssoftware entschieden. Scannt das netz nach laufenden PC und liest so das ganze geschleuder (IP, MAC, PC-name, OS Version Inst. Software, install. Updates usw. ) in eine DB.
Gruß L.
Die eine oder andere Anforderung in dieser Richtung hat wohl jeder (früher oder später).
Wir haben uns gleich für eine Inventarisierungssoftware entschieden. Scannt das netz nach laufenden PC und liest so das ganze geschleuder (IP, MAC, PC-name, OS Version Inst. Software, install. Updates usw. ) in eine DB.
Gruß L.
Hallo,
das ganze sollte funktioniren. Oder du machst es per psexec und srtatest den batch job so auf allen kisten automatisiert.
das ganze sollte funktioniren. Oder du machst es per psexec und srtatest den batch job so auf allen kisten automatisiert.
Hallo,
REG kennt einen Vorspann "\\Computername" zum jeweiligen Key, Hast du das damit schon mal probiert? Das setzt natürlich voraus, dass du die Namen der Rechner in deinem Netzwerk auch kennst.
(In der Hilfe zu Reg ist das nur mit einem "\" erläutert, benötigt werden aber 2. )
REG kennt einen Vorspann "\\Computername" zum jeweiligen Key, Hast du das damit schon mal probiert? Das setzt natürlich voraus, dass du die Namen der Rechner in deinem Netzwerk auch kennst.
(In der Hilfe zu Reg ist das nur mit einem "\" erläutert, benötigt werden aber 2. )
Hallo,
den Namen musst du schon eintragen, aber das kann man doch über eine for-Schleife und eine Liste mit den Computernamen lösen.
den Namen musst du schon eintragen, aber das kann man doch über eine for-Schleife und eine Liste mit den Computernamen lösen.
@Switch2411
Dann mach ich dir mal einen Vorschlag, mit dem du mal spielen kannst.
Dann mach ich dir mal einen Vorschlag, mit dem du mal spielen kannst.
del liste.txt 2>nul
for /L %%A in (1,1,20) do (
for /F "tokens=3 delims= " %%B in ('tracert -h 1 -w 100 192.168.1.%%A ^| find "Routenverfolgung"') do echo %%B >> Liste.txt
)
Du hast es erfasst. Einfach die Zeile
an den Anfang deiner For-Schleife hinzufügen und den Key um \\%%a\ ergänzen.
Das sollte funktionieren. Natürlich dürfen in der erzeugten Liste keine IP-Adressen, sondern nur Computernamen stehen.
Der Dienst Remote-Registrierung muss auf allen Clients, die du anfassen willst, gestartet sein.
Und es sei noch darauf hingewiesen, dass so ausschließlich die Hives HKEY_LOCAL_MACHINE und HKEY_USERS bearbeitet werden können.
For /f %%a in (liste.txt) do (
.... bisheriger Code
)
Das sollte funktionieren. Natürlich dürfen in der erzeugten Liste keine IP-Adressen, sondern nur Computernamen stehen.
Der Dienst Remote-Registrierung muss auf allen Clients, die du anfassen willst, gestartet sein.
Und es sei noch darauf hingewiesen, dass so ausschließlich die Hives HKEY_LOCAL_MACHINE und HKEY_USERS bearbeitet werden können.
Setze bitte deine Code in Tags, wie das beschrieben ist (Beitrag > bearbeiten)
In Zeile 4 solltest du die Ausgabe in eine "Liste.txt" oder einen anderen Dateinamen ausgeben, da du die Liste ja nochmal benötigst.
Vor Zeile 5 musst du den Code einsetzen, den ich in meinem Kommentar von 14:43 Uhr gepostet hatte und auch den Schnipsel \\%%a\ vor HKLM setzen.
Äquivalent musst du vor Zeile 15 verfahren und in beiden Fällen auch %%a zur Ausgabe in die Datei C:\test.txt mit berücksichtigen .
Wobei du den Code ab Zeile 15 imo garnicht benötigst, da du die Computernamen ja wohl bereits kennst. Oder übersehe ich da vielleicht etwas?
Vor Zeile 5 musst du den Code einsetzen, den ich in meinem Kommentar von 14:43 Uhr gepostet hatte und auch den Schnipsel \\%%a\ vor HKLM setzen.
Äquivalent musst du vor Zeile 15 verfahren und in beiden Fällen auch %%a zur Ausgabe in die Datei C:\test.txt mit berücksichtigen .
Wobei du den Code ab Zeile 15 imo garnicht benötigst, da du die Computernamen ja wohl bereits kennst. Oder übersehe ich da vielleicht etwas?
Wenn du kapiert hast, was da eigentlich passiert, ist es schon (verhältnismäßig) leicht. Deshalb lasse ich es dich ja auch selbst ausfummeln.
Was nutzt dir das, wenn du das bis ins Kleinste vorgekaut bekommst, da bleibt in der Regel nichts hängen. Wenn du selbst Hand anlegen musst, wirst du dir sicher auch einen großen Teil merken und der beabsichtigte Lerneffekt ist vorhanden.
Probiere den Befehl doch mal einzeln ohne Batch in der Konsole aus.
Du hast ja in deiner Batch-Datei auch nur echo stehen, damit wird dir der Status für ECHO angezeigt: EINgeschaltet oder AUSgeschaltet.
Deine Zeile 07 und 08 sowie 18 und 19 müssen jeweils in einer Zeile stehen, falls das nicht bereits der Fall ist.
13 - 16 brauchst du nicht, hast du schon (03-05)
17 bis 21 kannst du dir schenken, wenn du Zeile 07 so änderst:
Deine Zeile 07 und 08 sowie 18 und 19 müssen jeweils in einer Zeile stehen, falls das nicht bereits der Fall ist.
13 - 16 brauchst du nicht, hast du schon (03-05)
17 bis 21 kannst du dir schenken, wenn du Zeile 07 so änderst:
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "\\%%a\HKLM\Software\Teamviewer\Version4" /V ClientID"') do @echo %%a %%j >> C:\test.txt
Guten Morgen!
Der Fehler mit der Netzwerkadresse kommt, wenn man das nicht beachtet:
Der Fehler mit der Netzwerkadresse kommt, wenn man das nicht beachtet:
Zitat von @81825:
Der Dienst Remote-Registrierung muss auf allen Clients, die du anfassen willst, gestartet sein.
Der Dienst Remote-Registrierung muss auf allen Clients, die du anfassen willst, gestartet sein.
Rennt der Dienst, oder steht der im Status "Manuell" und ist nicht gestartet? Genau in dem Fall bekommst du nämlich diese Fehlermeldung.
allerdings schreibt er den Namen 2 mal und die ID 4 mal rein..
Dann lies nochmal langsam, was ich alles geschrieben habe und kontrolliere, ob du das auch so gemacht hast.
Klar, weil du nicht liest, was man dir schreibt.
Druck's dir aus und vergleiche, dann findest du auch deine Fehler. Ich habe keine Lust mehr.
Druck's dir aus und vergleiche, dann findest du auch deine Fehler. Ich habe keine Lust mehr.
Das lasse ich mal unkommentiert so stehen.
ungetestet. Ich habe den Teamviewer nicht installiert.
echo off
del C:\liste.txt 2>&1>nul
del C:\test.txt 2>&1>nul
for /L %%A in (78,1,82) do (
for /F "tokens=3 delims= " %%B in ('tracert -h 1 -w 100 192.168.1.%%A ^| find "Routenverfolgung"') do @echo %%B >> c:\liste.txt )
For /F %%a in (c:\liste.txt) do (
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "\\%%a\HKEY_LOCAL_MACHINE\Software\Teamviewer\Version4" /V "ClientID"') do @echo %%a %%j >> c:\test.txt
)
type C:\test.txt
pause
ungetestet. Ich habe den Teamviewer nicht installiert.
Wo darf ich das Bier hinschicken
Trink's mal auf mein Wohl. Aber besauf dich nicht sinnlos!
Dann ändere die Zeile 08 mal so:
Mist. Der Parser baut mal wieder Fehler in der Anzeige ein, der Quelltext ist korrekt.
hinter dem do muss stehen:
FOR /F "skip=2 tokens=2*" %%i IN ('reg query "\\%%a\HKEY_LOCAL_MACHINE\Software\Teamviewer\Version4" /V "ClientID"') do (set /a "LAD=%%j" & @echo %%a %LAD% >> c:\test.txt)
Mist. Der Parser baut mal wieder Fehler in der Anzeige ein, der Quelltext ist korrekt.
hinter dem do muss stehen:
(set /a "LAD=%%j" & @echo %%a %LAD% >> c:\test.txt)
Das habe ich hier nicht probiert.
Ändere mal die erste Zeile in deiner Batchdatei in
und den Rest hinter do in der zuletzt geposteten Version in
also bei dem 2. LAD die "%"-Zeichen gegen "!" tauschen.
Ändere mal die erste Zeile in deiner Batchdatei in
@echo off & setlocal enabledelayedexpansion
und den Rest hinter do in der zuletzt geposteten Version in
(set /a "LAD=%%j" & @echo %%a !LAD! >> c:\test.txt)
also bei dem 2. LAD die "%"-Zeichen gegen "!" tauschen.
Nö, bin ich nicht.
Dann markiere das Thema bitte noch als Wie kann ich einen Beitrag als gelöst markieren?
Dann markiere das Thema bitte noch als Wie kann ich einen Beitrag als gelöst markieren?