Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Systemvariabeln eines Remotesystems auslesen

Frage Entwicklung Batch & Shell

Mitglied: Heinz15

Heinz15 (Level 1) - Jetzt verbinden

03.10.2007, aktualisiert 04.10.2007, 8071 Aufrufe, 8 Kommentare

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
Mitglied: Dani
03.10.2007 um 17:03 Uhr
Hallo Heinz,
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!

Sprich du kannst die Standardvariablen problemlos benutzen:
01.
C:\Dokumente und Einstellungen\%username%>set 
02.
ALLUSERSPROFILE=C:\Dokumente und Einstellungen\All Users 
03.
APPDATA=C:\Dokumente und Einstellungen\%username%\Anwendungsdaten 
04.
CommonProgramFiles=C:\Programme\Gemeinsame Dateien 
05.
COMPUTERNAME=test 
06.
ComSpec=C:\WINDOWS\system32\cmd.exe 
07.
FP_NO_HOST_CHECK=NO 
08.
HOMEDRIVE=C: 
09.
HOMEPATH=\Dokumente und Einstellungen\%username% 
10.
LOGONSERVER=\\S-HW01 
11.
NUMBER_OF_PROCESSORS=2 
12.
OS=Windows_NT 
13.
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem 
14.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH 
15.
PROCESSOR_ARCHITECTURE=x86 
16.
PROCESSOR_IDENTIFIER=x86 Family 6 Model 14 Stepping 8, GenuineIntel 
17.
PROCESSOR_LEVEL=6 
18.
PROCESSOR_REVISION=0e08 
19.
ProgramFiles=C:\Programme 
20.
PROMPT=$P$G 
21.
SESSIONNAME=Console 
22.
SystemDrive=C: 
23.
SystemRoot=C:\WINDOWS 
24.
TEMP=C:\Temp 
25.
TMP=C:\Temp 
26.
ULTRAMON_LANGDIR=C:\Programme\UltraMon\Resources\de 
27.
USERDNSDOMAIN=yyyyy 
28.
USERDOMAIN=yyyyy 
29.
USERNAME=%username% 
30.
USERPROFILE=C:\Dokumente und Einstellungen\%username% 
31.
windir=C:\WINDOWS
Grüße
Dani
Bitte warten ..
Mitglied: Heinz15
03.10.2007 um 19:37 Uhr
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.
Bitte warten ..
Mitglied: TuXHunt3R
03.10.2007 um 20:08 Uhr
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!
Bitte warten ..
Mitglied: TuXHunt3R
03.10.2007 um 20:16 Uhr
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):

01.
xcmd \\<Remotesystem oder mit dem Batch mitgegebene Variable> "echo %ProgramFiles%" | find /i "Programme" >nul 
02.
if errorlevel 1 ( 
03.
goto Deutsch 
04.
) else ( 
05.
goto Englisch 
06.
)
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".
Bitte warten ..
Mitglied: Dani
03.10.2007 um 21:13 Uhr
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.


Grüße
Dani
Bitte warten ..
Mitglied: Heinz15
04.10.2007 um 08:58 Uhr
Hallo Dani,

erstmal danke für deine Hilfe. Dass Problem was ich damit habe ist das die Systemvariablen ja lokal aufgelöst werden (das Script soll ja auf zB. meinem Rechner ausgeführt werden und dann die Daten auf die Systeme im Netzwerk verteilen.) Oder habe ich was falsch verstanden und es funktioniert eh ganz einfach?

LG.Heinz
Bitte warten ..
Mitglied: Logan000
04.10.2007 um 09:13 Uhr
Lass das Skript doch lokal laufen. z.B. im Loginskript des Users.
Bau eine Prüfung ein Änderungsdatum Quelldatei > ZielDatei und lass den Client sich holen was er brauch.
Bitte warten ..
Mitglied: Heinz15
04.10.2007 um 12:13 Uhr
Danke,

mit xcmd funktioniert es perfekt - ist ein wirklich ein super tool! Danke!

LG. Heinz
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

JavaScript
gelöst Dropdownfeld auslesen und mit AJAX und JS an PHP senden (7)

Frage von ITFlori zum Thema JavaScript ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (10)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...