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

Umgebungsvariable via Batch setzen

Frage Entwicklung Batch & Shell

Mitglied: satori

satori (Level 1) - Jetzt verbinden

06.10.2009, aktualisiert 09:09 Uhr, 9747 Aufrufe, 15 Kommentare

Hallo zusammen,

ich möchte mit einer batch datei eine umgebungsvariable auslesen und ändern können.

Hallo also folgendes:

Ich möchte per Batch Datei folgendes erreichen:
Nach doppelklick auf die Batch-Datei soll der Wert von der variable "staid" unter "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" ausgelesen und angezeigt werden. Also Doppelklick - Aktuelle Station-ID Stratadial: xyz.

Nachdem nun die Station ID angezeigt wird soll eine Frage erfolgen ob ich die Station-ID ändern möchten: Möchten Sie die Station ID ändern? Ja / Nein
Wenn ich sie nun ändern möchte soll: Bitte neue Station ID eingeben: kommen.

Nach eintrag soll der Wert automatisch unter dem o.g Pfad gesetzt werden.

Sollte bereits ein Wert vorhanden sein soll er fragen ob er diesen ersetzen soll: Station ID xyz ist vorhanden diesen Wert ersetzen ja/nein

Ich hoffe es kann mir jemand dabei helfen, habe vom erstellen von batch dateien absolut keine Ahnung und habe mir bereits folgendes ergooglet:

echo Programm zum Station ID wechseln - Stratasoft

set /p %stationid%="Bitte Station ID eingeben:"



REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "station" /t REG_SZ /d %stationid%

pause

Wär klasse wenn ihr mir helfen könnt!

Gruß
Mitglied: 60730
06.10.2009 um 10:20 Uhr
Servus,

das ist keine Hexerei.

Die Werte - die "gesucht" werden - sind in dem Fall per

echo %staid%
zu erfahren
oder:
if not "%staid%"== "" echo Variable ist auf %staid% gesetzt.


Der Rest ist dann ja mit deinen bereits ergoogelten Zeilen einfach.

01.
echo Programm zum Station ID wechseln - Stratasoft 
02.
if not "%staid%"== "" echo Variable ist auf %staid% gesetzt. 
03.
 
04.
set /p stationid="Bitte Station ID eingeben:" 
05.
if  "%stationid%"== "" echo keine eingabe, also richtiger Wert. 
06.
 
07.
if not "%stationid%"== "" REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "station" /t REG_SZ /d %stationid%
Gruß
Bitte warten ..
Mitglied: satori
06.10.2009 um 10:31 Uhr
Zitat von 60730:
Servus,

das ist keine Hexerei.

Die Werte - die "gesucht" werden - sind in dem Fall per

> echo %staid%
zu erfahren
oder:
> if not "%staid%"== "" echo Variable ist auf
%staid% gesetzt.


Der Rest ist dann ja mit deinen bereits ergoogelten Zeilen einfach.

01.
> echo Programm zum Station ID wechseln - Stratasoft 
02.
> if not "%staid%"== "" echo Variable ist auf 
03.
> %staid% gesetzt. 
04.
>  
05.
> set /p stationid="Bitte Station ID eingeben:" 
06.
> if  "%stationid%"== "" echo keine eingabe, also 
07.
> richtiger Wert. 
08.
>  
09.
> if not "%stationid%"== "" REG ADD 
10.
> "HKLM\SYSTEM\Currentcontrolset\control\session 
11.
> manager\environment" /f /v "station" /t REG_SZ /d 
12.
> %stationid% 
13.
> 
Gruß

Hey Super Danke für deine Antwort.
Ich habe das ganze jetzt getestet, er trägt jetzt auf jeden Fall den Wert korrekt ein.

Nur leider ließt er den vorhanden Wert nicht aus und frägt bei bereits vorhandenem Wert nicht nach ob er den bereits vorhanden Wert ersetzen soll? Außerdem würde ich es gerne so haben dass der Benutzer später eine Taste zum beenden drücken muss und nicht so dass er automatisch das Fenster schließt!

Wie kann ich das realisieren?
Bitte warten ..
Mitglied: 60730
06.10.2009 um 11:01 Uhr
Servus,

Nur leider ließt er den vorhanden Wert nicht aus

wirklich?
Das macht Zeile 2 (nach einem Neustart - denn die Werte in dem Teil der Registry werden erst nach einem Neustart eingelesen)
frägt bei bereits vorhandenem Wert nicht nach ob er den bereits vorhanden Wert ersetzen soll?

Ich hab dir ein Gerüst gebaut - das nur dann wenn etwas eingetragen wird - ändert.

btw: irgendwo ist aber doch ein Bock drin.

Das Script ändert den Wert Station, ließt aber %staid% aus.
Also "richtiger wäre"

01.
echo Programm zum Station ID wechseln - Stratasoft 
02.
@if not "%station%"== "" echo Variable Station ist auf %station% gesetzt. 
03.
 
04.
@set /p stationid="Bitte Station ID eingeben:" 
05.
@if  "%stationid%"== "" echo keine eingabe, also richtiger Wert. 
06.
 
07.
@if not "%stationid%"== "" REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "station" /t REG_SZ /d %stationid% 
08.
@reg query "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment"  /v "station" |find "%station%" && echo Wert ist übernommen || echo Bitte Computer zum aktivieren der StationID neustarten. 
09.
 
10.
Pause
Nur - das ist alles HKLM - ein Benutzer darf da nix ändern!

Zum weiteren Lernen - mal reg /? durchlesen



Gruß
Bitte warten ..
Mitglied: satori
06.10.2009 um 15:41 Uhr
Okay...nochmals vielen Dank habe jetzt noch einige Anpassungen gemacht. Gibt es denn wirklich keine andere Möglichkeit den Neustart zu vermeiden. Er setzt den Wert staid sauber, nach einem Neustart zeigt er beim ausführen der batch diesen Wert auch an. Aber muss ich wirklich immer neustarten, geht das nicht ohne Neustart irgendwie?
Bitte warten ..
Mitglied: 60730
06.10.2009 um 16:30 Uhr
Servus,

"anpassungen" darfst du gerne hier dazuschreiben - evtl. hat später ein anderer was davon.

Ohne Neustart - nicht dass ich wüßte, außer der ganze Kladderadatsch läuft über die Gui - da wird jede Änderung sofort übernommen.

Gruß
Bitte warten ..
Mitglied: satori
07.10.2009 um 13:09 Uhr
So gelöst ist es wohl doch noch nicht. Jetzt habe ich zwar die Batch komplett so wie sie sein soll, nur funktioniert diese nur an Plätzen mit AdminRechten.

Ich poste hier mal die batch:
---
echo Programm zum Station ID wechseln - Stratasoft

@if not "%staid%"== "" echo Variable Station ist auf %staid% gesetzt.

@set /p staid="Bitte Station ID eingeben:"

@if "%staid%"== "" echo keine eingabe, also richtiger Wert.

@if not "%staid%"== "" REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "staid" /t REG_SZ /d %staid%

@reg query "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /v "staid" |find "%staid%" && echo Wert ist gespeichert || echo Bitte Computer zum aktivieren der StationID neustarten.


Pause
---

Was muss ich da jetzt reinsetzen dass die Batch auch an PCs ohne Adminrechte greift?
Da gabs doch CPAU.exe, die Frage ist jetzt nur wie ich die da rein bauen muss. Den Pfad kenne ich (von CPAU) aber leider nicht wie ich das jetzt hier einbauen kann.
Bitte warten ..
Mitglied: 60730
07.10.2009 um 13:20 Uhr
Servus,

füge die Batch doch bitte in <code > / < /code> Tags.

Wie ich dir schon geschrieben habe - das läuft immer nur mit Adminrechten.

Schau dir mal Psexec an.

Hast du eine Liste der Computer und deren gewünschte ID?


btw: ich dachte eigentlich du willst etwas lernen - aber das Ziel hab ich nicht so richtig erreicht?
Das war doch nur ein Gerüst zum spielen.

Keine Lust dich daran auszutoben?

sorry - wenn du wüßtest, was ich gerade in meiner Firma "so" nebenbei erledige - zwischen den ganzen Tipps hier....

Gruß
Bitte warten ..
Mitglied: satori
07.10.2009 um 13:28 Uhr
Hey nein ich verstehe dich da schon. Klar du hast noch andere Dinge zu erledigen. Ich sitze hier an meinem Schreibtisch unser IT-Leiter also mein Chef sitzt mir im Nacken und will ergebnisse klar würde ich das ganze selber irgendwie machen, doch dazu bräuchte ich etwas mehr Zeit und die gibts bei uns in der Firma net. Entweder du kannst es oder nicht - mehr zeit gibts nicht.

Und eine Liste brauche ich doch nicht oder, soll ja schließlich an allen Plätzen möglich sein.
Wir haben bei uns cpau.exe im Einsatz ich habe auch eine batch in der das wunderbar funktioniert doch da ich absoluter Neuling bin - habe ich keine Ahnung wie ich das in "meiner" hinkriege?

Danke trotzdem...!
Bitte warten ..
Mitglied: satori
07.10.2009 um 13:36 Uhr
Zitat von 60730:
Servus,

füge die Batch doch bitte in
Tags.

Wie ich dir schon geschrieben habe - das läuft immer nur mit
Adminrechten.

Schau dir mal Psexec an.

Hast du eine Liste der Computer und deren gewünschte ID?


btw: ich dachte eigentlich du willst etwas lernen - aber das Ziel hab
ich nicht so richtig erreicht?
Das war doch nur ein Gerüst zum spielen.

Keine Lust dich daran auszutoben?

sorry - wenn du wüßtest, was ich gerade in meiner Firma
"so" nebenbei erledige - zwischen den ganzen Tipps hier....

Gruß



Folgendes habe ich eingefügt:

01.
 
02.
echo Programm zum Station ID wechseln - Stratasoft  
03.
 
04.
@if not "%staid%"== "" echo Variable Station ist auf %staid% gesetzt.  
05.
 
06.
@set /p staid="Bitte Station ID eingeben:"  
07.
 
08.
@if  "%staid%"== "" echo keine eingabe, also richtiger Wert.  
09.
 
10.
\\ka-ads\netlogon\logon_batch\CPAU.exe -u sympatel\ka_router -p ka_router -ex "@REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "staid" /t REG_SZ /d %staid%" -lwp 
11.
pause 
12.
echo @REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "staid" /t REG_SZ /d %staid%  
13.
 
14.
@reg query "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment"  /v "staid" |find "%staid%" && echo Wert ist gespeichert || echo Bitte Computer zum aktivieren der StationID neustarten.  
15.
 
16.
 
17.
Pause 
18.
 
Vielleicht hilft das ja!
Bitte warten ..
Mitglied: 60730
07.10.2009 um 13:50 Uhr
Hello again..

also nochmal....

was soll dennn geändert werden?

Ja ich weiß die ID,

aber woher weiß derjenige welcher die Bätch bedienen soll, was er da einträgt?

Und mit den Code Tags, naja eigentlich dachte ich, du würdest deinen "original" Beitrag editieren, weil das wird sonst unübersichtlich.

Also letzter Ansatz, woher weiß derjenige welcher die Bätch bedienen soll, was er da einträgt?

Denn wenn es da eine "logik" / Liste gibt - kann man das wunderbar silent durchziehen - dann kommen aber die Pausen raus.

Gruß
Bitte warten ..
Mitglied: satori
07.10.2009 um 13:57 Uhr
Zitat von 60730:
Hello again..

also nochmal....

was soll dennn geändert werden?

Ja ich weiß die ID,

aber woher weiß derjenige welcher die Bätch bedienen soll,
was er da einträgt?

Und mit den Code Tags, naja eigentlich dachte ich, du würdest
deinen "original" Beitrag editieren, weil das wird sonst
unübersichtlich.

Also er wird wissen was er eintragen soll, wenn es ihm sein Vorgesetzter sagt.
Wir müssen die IDs zwischen den Abteilung beliebig hin und her schieben können.

Der Teamleiter sagt dem Mitarbeiter welche Station ID er eintragen soll.

Gruß

Also letzter Ansatz, woher weiß derjenige welcher die
Bätch bedienen soll, was er da einträgt?

Denn wenn es da eine "logik" / Liste gibt - kann man das
wunderbar silent durchziehen - dann kommen aber die Pausen raus.

Gruß
Bitte warten ..
Mitglied: 60730
07.10.2009 um 14:03 Uhr
sorry.

frage dem Temleider doch mal, aus welcher Kristallkugel er sein Wissen hat.

Ich "wollte" dir helfen, den ganzen Kladderadatsch anhand einer Liste ändern zu können, aber irgendwie scheint in eurer Firma alles per Buschfunk zu laufen....
Bitte warten ..
Mitglied: satori
07.10.2009 um 14:20 Uhr
Zitat von 60730:
sorry.

frage dem Temleider doch mal, aus welcher Kristallkugel er sein
Wissen hat.

Ich "wollte" dir helfen, den ganzen Kladderadatsch anhand
einer Liste ändern zu können, aber irgendwie scheint in
eurer Firma alles per Buschfunk zu laufen....


Hmmnn ich glaube ich kann dir an dieser stelle nicht ganz folgen? Auch deine Hilfe die du mir scheinbar anbietest sehe ich nicht. Willst du mir sagen, dass theoretisch der Teamleiter eine liste pflegen kann die durch das system automatisch abgerufen wird.

Sorry für meine komische Frage, aber ich blick grad echt nicht mehr durch, was du mir sagen bzw. wie du mir helfen möchtest!?
Bitte warten ..
Mitglied: 60730
07.10.2009 um 14:41 Uhr
Zitat von satori:
Hmmnn ich glaube ich kann dir an dieser stelle nicht ganz folgen?

dann sind wir schon zu zweit

Auch deine Hilfe die du mir scheinbar anbietest sehe ich nicht.

"scheinbar"? Mein Name ist nicht RickolaOla und ich habs auch nicht erfunden, aber wer der vielen, die mindestens genausoviel wissen wie ich und sich hier rumtreibt - hat sich bisher an dieser twomanshow beteiligt?

Und warum? Der 7.Sinn?....

Willst du mir sagen, dass theoretisch der Teamleiter eine liste pflegen kann die durch das system automatisch abgerufen wird.

Naa endlich fällt der Groschen... Cent....

Sorry für meine komische Frage, aber ich blick grad echt nicht mehr durch, was du mir sagen bzw. wie du mir helfen möchtest!?

Psexec suchen - gerne hier im Forum.

Bitte warten ..
Mitglied: satori
07.10.2009 um 14:56 Uhr
Das mit dem "scheinbar" hast du voll in den falschen Hals bekommen. Ich wollte damit deine Hilfestellung nicht in Frage stellen sondern dir damit sagen, dass ich zwar sehe dass du mir hilfst. Ich dem ganzen aber nicht wirklich folgen kann.

Ich bin dir da echt dankbar kannst mir glauben, bin ja schon viel weiter also gestern Morgen.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (9)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...