Systemvariabeln eines Remotesystems auslesen
Hallo,
ich habe folgendes Problem: Ich möchte über ein Script ein paar Dateien auf Computer im Netzwerk verteilen, dazu möchte ich die Systemvariablen (z.B: %ProgramFiles%, %Temp% usw.) des jeweiligen Rechners auslesen.
Gibt es dafür vielleicht ein command line tool, oder geht es auch mit Windows – Bordmitteln?
LG. & Danke Heinz
ich habe folgendes Problem: Ich möchte über ein Script ein paar Dateien auf Computer im Netzwerk verteilen, dazu möchte ich die Systemvariablen (z.B: %ProgramFiles%, %Temp% usw.) des jeweiligen Rechners auslesen.
Gibt es dafür vielleicht ein command line tool, oder geht es auch mit Windows – Bordmitteln?
LG. & Danke Heinz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 70065
Url: https://administrator.de/forum/systemvariabeln-eines-remotesystems-auslesen-70065.html
Ausgedruckt am: 21.04.2025 um 19:04 Uhr
8 Kommentare
Neuester Kommentar
Hallo Heinz,
Sprich du kannst die Standardvariablen problemlos benutzen:
Grüße
Dani
paar Dateien auf Computer im Netzwerk verteilen, dazu möchte ich die Systemvariablen (z.B:
%ProgramFiles%, %Temp% usw.) des jeweiligen Rechners auslesen.
Na gut aber warum musst du dann die Variablen auslesen. Die Standardvariablen gibt es auf jedem Windowssystem. Somit brauchst du nichts auslesen. Du startest das Skript auf einem Server oder Remote. Das sollte kein Unterschied machen!%ProgramFiles%, %Temp% usw.) des jeweiligen Rechners auslesen.
Sprich du kannst die Standardvariablen problemlos benutzen:
C:\Dokumente und Einstellungen\%username%>set
ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users
APPDATA=C:\Dokumente und Einstellungen\%username%\Anwendungsdaten
CommonProgramFiles=C:\Programme\Gemeinsame Dateien
COMPUTERNAME=test
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Dokumente und Einstellungen\%username%
LOGONSERVER=\\S-HW01
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 14 Stepping 8, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0e08
ProgramFiles=C:\Programme
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\Temp
TMP=C:\Temp
ULTRAMON_LANGDIR=C:\Programme\UltraMon\Resources\de
USERDNSDOMAIN=yyyyy
USERDOMAIN=yyyyy
USERNAME=%username%
USERPROFILE=C:\Dokumente und Einstellungen\%username%
windir=C:\WINDOWS
Grüße
Dani
Das ist dann aber eher ein Problem mit den Leerzeichen. Dies kannst du umgehen, indem die Pfadangaben jeweils in zwei Anführungszeichen " packst.
Noch eine Empfehlung:
Mit dem Tool xcmd.exe kannst du remote Kommandos ausführen, d.h. innerhalb des Netzwerks. Über das Internet gehts Gott Sei Dank nicht. Du kannst auch remote eine Konsolensitzung starten, ähnlich wie mit SSH unter Linux, nur eben unverschlüsselt.
Ich weiss nicht, ob man das noch irgendwo downloaden kann. Als ich bei Google mal XCMD eingegeben habe, bin ich gerade mal auf 3 Ergebnisse gekommen. 2 davon hatten nichts mit dem Tool zu tun und beim dritten gab es keinen Downloadlink. Ich habe es aus der Firma abgezügelt, ich könnte es dir schicken, wenn du mir deine Mailadresse gibst (selbstverständlich virenfrei). Aber Vorsicht, einige Virenscanner schlagen darauf an, weil es halt eine Gefahr darstellt, dass du einfach so vom Benutzer unbemerkt auf dessen CMD-Konsole zugreifen kannst.
Edit: Adminrechte auf dem Remotesystem sind Voraussetzung, damit XCMD läuft!
Noch eine Empfehlung:
Mit dem Tool xcmd.exe kannst du remote Kommandos ausführen, d.h. innerhalb des Netzwerks. Über das Internet gehts Gott Sei Dank nicht. Du kannst auch remote eine Konsolensitzung starten, ähnlich wie mit SSH unter Linux, nur eben unverschlüsselt.
Ich weiss nicht, ob man das noch irgendwo downloaden kann. Als ich bei Google mal XCMD eingegeben habe, bin ich gerade mal auf 3 Ergebnisse gekommen. 2 davon hatten nichts mit dem Tool zu tun und beim dritten gab es keinen Downloadlink. Ich habe es aus der Firma abgezügelt, ich könnte es dir schicken, wenn du mir deine Mailadresse gibst (selbstverständlich virenfrei). Aber Vorsicht, einige Virenscanner schlagen darauf an, weil es halt eine Gefahr darstellt, dass du einfach so vom Benutzer unbemerkt auf dessen CMD-Konsole zugreifen kannst.
Edit: Adminrechte auf dem Remotesystem sind Voraussetzung, damit XCMD läuft!
Noch was:
Du kannst in deinem Batch pro Sprache eine Sprungmarke setzen. Am Anfang des Batchs überprüfst du dann mit den folgenden Befehlszeilen die Sprache des Remote-Systems (das Tool xcmd vorausgesetzt):
Hier ist es einfach eine Unterscheidung zwischen Deutsch und Englisch.
Wenns mit der Zeile "if errorlevel 1" nicht klappt, versuchst mit "if not errorlevel 0".
Du kannst in deinem Batch pro Sprache eine Sprungmarke setzen. Am Anfang des Batchs überprüfst du dann mit den folgenden Befehlszeilen die Sprache des Remote-Systems (das Tool xcmd vorausgesetzt):
xcmd \\<Remotesystem oder mit dem Batch mitgegebene Variable> "echo %ProgramFiles%" | find /i "Programme" >nul
if errorlevel 1 (
goto Deutsch
) else (
goto Englisch
)
Hier ist es einfach eine Unterscheidung zwischen Deutsch und Englisch.
Wenns mit der Zeile "if errorlevel 1" nicht klappt, versuchst mit "if not errorlevel 0".
Ja schon, aber dabei habe ich das Problem wenn es sich z.B. um ein englisches System
handelt der Pfad für die Programme C:\Program Files ist und nicht C:\Programme.
Das spielt doch keine Rolle. Im englischen heißen die Variablen gleich. Sprich in %programfiles% steht halt dann C:\Program Files drin statt C:\Programme.handelt der Pfad für die Programme C:\Program Files ist und nicht C:\Programme.
Grüße
Dani