satori
Goto Top

Umgebungsvariable via Batch setzen

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ß

Content-ID: 126518

Url: https://administrator.de/forum/umgebungsvariable-via-batch-setzen-126518.html

Ausgedruckt am: 24.12.2024 um 18:12 Uhr

60730
60730 06.10.2009 um 10:20:20 Uhr
Goto Top
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.

echo Programm zum Station ID wechseln - Stratasoft
if not "%staid%"== "" echo Variable ist auf %staid% gesetzt.  

set /p stationid="Bitte Station ID eingeben:"  
if  "%stationid%"== "" echo keine eingabe, also richtiger Wert.  

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

Gruß
satori
satori 06.10.2009 um 10:31:19 Uhr
Goto Top
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.

> echo Programm zum Station ID wechseln - Stratasoft
> if not "%staid%"== "" echo Variable ist auf  
> %staid% gesetzt.
> 
> set /p stationid="Bitte Station ID eingeben:"  
> if  "%stationid%"== "" echo keine eingabe, also  
> richtiger Wert.
> 
> if not "%stationid%"== "" REG ADD  
> "HKLM\SYSTEM\Currentcontrolset\control\session  
> manager\environment" /f /v "station" /t REG_SZ /d  
> %stationid%
> 

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?
60730
60730 06.10.2009 um 11:01:30 Uhr
Goto Top
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"

echo Programm zum Station ID wechseln - Stratasoft
@if not "%station%"== "" echo Variable Station ist auf %station% gesetzt.  

@set /p stationid="Bitte Station ID eingeben:"  
@if  "%stationid%"== "" echo keine eingabe, also richtiger Wert.  

@if not "%stationid%"== "" REG ADD "HKLM\SYSTEM\Currentcontrolset\control\session manager\environment" /f /v "station" /t REG_SZ /d %stationid%  
@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.  

Pause

Nur - das ist alles HKLM - ein Benutzer darf da nix ändern!

Zum weiteren Lernen - mal reg /? durchlesen face-wink


Gruß
satori
satori 06.10.2009 um 15:41:05 Uhr
Goto Top
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?
60730
60730 06.10.2009 um 16:30:23 Uhr
Goto Top
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ß
satori
satori 07.10.2009 um 13:09:01 Uhr
Goto Top
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%



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.
60730
60730 07.10.2009 um 13:20:35 Uhr
Goto Top
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ß
satori
satori 07.10.2009 um 13:28:02 Uhr
Goto Top
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...!
satori
satori 07.10.2009 um 13:36:52 Uhr
Goto Top
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:

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.   

\\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  
pause
echo @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

Vielleicht hilft das ja!
60730
60730 07.10.2009 um 13:50:36 Uhr
Goto Top
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ß
satori
satori 07.10.2009 um 13:57:16 Uhr
Goto Top
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ß
60730
60730 07.10.2009 um 14:03:14 Uhr
Goto Top
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....
satori
satori 07.10.2009 um 14:20:17 Uhr
Goto Top
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!?
60730
60730 07.10.2009 um 14:41:20 Uhr
Goto Top
Zitat von @satori:
Hmmnn ich glaube ich kann dir an dieser stelle nicht ganz folgen?

dann sind wir schon zu zweit face-wink

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!?

back-to-topPsexec suchen - gerne hier im Forum.

satori
satori 07.10.2009 um 14:56:48 Uhr
Goto Top
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.