Ausgabe eines VBScripts in Benutzervariable
Hallo zusammen,
mit der Unterstützung von bastla habe ich ein Script erhalten, dass eine Ausgabe nach dem Schema Nachname, Vorname in eine Textdatei erstellt. Funktioniert auch echt super.
Ich hätte allerdings gern die Möglichkeit die Ausgabe statt in eine Textdatei in eine Windows Benutzervariable zu schreiben. Also nicht in eine allgemeingültige Systemvariable, sondern in eine benutzerabhängige Benutzervariable.
Folgendes Script hat bastla erstellt:
Was mir grad noch einfällt. Sollte das in VBScript nicht ohne weiteres möglich sein, kann die Ausgabe auch direkt in der Registry erfolgen.
Wär dann im Prinzip einfach der Eintrag
[HKEY_CURRENT_USER\Environment]
"postfachname"="ausgabe_des_scriptes"
Kann mir jemand helfen?
Vielen Dank schon mal im Voraus.
Gruß
Tobias
mit der Unterstützung von bastla habe ich ein Script erhalten, dass eine Ausgabe nach dem Schema Nachname, Vorname in eine Textdatei erstellt. Funktioniert auch echt super.
Ich hätte allerdings gern die Möglichkeit die Ausgabe statt in eine Textdatei in eine Windows Benutzervariable zu schreiben. Also nicht in eine allgemeingültige Systemvariable, sondern in eine benutzerabhängige Benutzervariable.
Folgendes Script hat bastla erstellt:
Const strLog = "D:\UserLog.txt"
Set objNetwork = WScript.CreateObject("WScript.Network")
If strComp(objNetwork.UserDomain, objNetwork.ComputerName, vbTextCompare) <> 0 Then 'kein lokaler Account
Set fso = CreateObject("Scripting.FileSystemObject")
Set objUser = GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName)
fso.OpenTextFile(strLog, 8, True).WriteLine objUser.sn & ", " & objUser.givenName
End If
Was mir grad noch einfällt. Sollte das in VBScript nicht ohne weiteres möglich sein, kann die Ausgabe auch direkt in der Registry erfolgen.
Wär dann im Prinzip einfach der Eintrag
[HKEY_CURRENT_USER\Environment]
"postfachname"="ausgabe_des_scriptes"
Kann mir jemand helfen?
Vielen Dank schon mal im Voraus.
Gruß
Tobias
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 78881
Url: https://administrator.de/contentid/78881
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
15 Kommentare
Neuester Kommentar
Moin Lahmerking,
auch mit SetX.exe läuft es ähnlich wie beim Setzen der Registry-Werte.
Die "neue" Variable gilt erst beim nächten geöffneten CMD-Fenster/der nächsten CMD-Instanz.
Wenn es auch in der gerade aktiven Instanz gelten soll, dann musst Du zusätzlich dasselbe nochmal mit SET setzen (und zwar außerhalb einer Setlocal/endlocal-Klammer, falls es dann laufenden Batch überleben soll).
Grüße
Biber
auch mit SetX.exe läuft es ähnlich wie beim Setzen der Registry-Werte.
Die "neue" Variable gilt erst beim nächten geöffneten CMD-Fenster/der nächsten CMD-Instanz.
Wenn es auch in der gerade aktiven Instanz gelten soll, dann musst Du zusätzlich dasselbe nochmal mit SET setzen (und zwar außerhalb einer Setlocal/endlocal-Klammer, falls es dann laufenden Batch überleben soll).
Grüße
Biber
@setlocal/endlocal
Falls dein Hilfsbatch "CallTheSETX4me.bat" 8oder wie immer der bei Dir heißt, irgendwo wie alle Standard-Bätche so anfängt:
--> Und dann eine Zeile "Set neueVar=neuerwert" käme...
> dann wäre dieser neue Wert nicht länger als die Batch-Lebensdauer geSETzt.
Ist aber für Deinen Ablauf nicht relevant.
Du bekommst in Deinem VBS-Schnipsel die neu gesetzte Variable NIE zu sehen (kannst den Neuen wert NIE abfragen. Aber Du weißt ja im VBS-Programm, auf was der Wert steht.
Nachfolgend aus Deinem Prozess aufgerufene CMD-Instanzen werden den auch sehen können, weil die ja von Deinem Prozess und dessen Environment "abstammen".
Grüße
Biber
Falls dein Hilfsbatch "CallTheSETX4me.bat" 8oder wie immer der bei Dir heißt, irgendwo wie alle Standard-Bätche so anfängt:
@echo off & Setlocal
--> und dann "SetX.exe neueVar neuerWert" aufruft...--> Und dann eine Zeile "Set neueVar=neuerwert" käme...
> dann wäre dieser neue Wert nicht länger als die Batch-Lebensdauer geSETzt.
Ist aber für Deinen Ablauf nicht relevant.
Du bekommst in Deinem VBS-Schnipsel die neu gesetzte Variable NIE zu sehen (kannst den Neuen wert NIE abfragen. Aber Du weißt ja im VBS-Programm, auf was der Wert steht.
Nachfolgend aus Deinem Prozess aufgerufene CMD-Instanzen werden den auch sehen können, weil die ja von Deinem Prozess und dessen Environment "abstammen".
Grüße
Biber
Moin Lamerking,
nochmal: Schreiben kannst Du Werte mit SetX,über Registry-Manipulation oder wie auch immer von Deinem gestarteten Prozess aus.
So dass es für alle NACH Dir gestarteten Prozesse/Instanzen/CMD-Shells gilt.
Aber niemals nicht für VON Dir gestartete Prozesse oder für Deinen gerade laufenden Prozess selbst.
Den für Dich gilt das Environment, das gültig war, als Dein Batch/Skript/whatever gestartet wurde.
Ausgenommen sind nur eine Handvoll dynamische Variablen wie %date%, %time%, %cd%, die on-the-fly neu berechnet werden.
Das heißt, wenn Dein Skript beendet ist, Du davon unabhängig danach eine neue CMD-Instanz aufmachst, dann ist dort Deine Umgebungsvariable %postfachname% zu sehen.
Grüße
Biber
nochmal: Schreiben kannst Du Werte mit SetX,über Registry-Manipulation oder wie auch immer von Deinem gestarteten Prozess aus.
So dass es für alle NACH Dir gestarteten Prozesse/Instanzen/CMD-Shells gilt.
Aber niemals nicht für VON Dir gestartete Prozesse oder für Deinen gerade laufenden Prozess selbst.
Den für Dich gilt das Environment, das gültig war, als Dein Batch/Skript/whatever gestartet wurde.
Ausgenommen sind nur eine Handvoll dynamische Variablen wie %date%, %time%, %cd%, die on-the-fly neu berechnet werden.
Das heißt, wenn Dein Skript beendet ist, Du davon unabhängig danach eine neue CMD-Instanz aufmachst, dann ist dort Deine Umgebungsvariable %postfachname% zu sehen.
Grüße
Biber
Dann gibt es nur drei Erklärungen, die mir spontan einfallen.
a) das Loginscript wird nicht mit dem %username% ausgeführt m anderer Benutzername wird geändert
b) Rechte zum Ändern fehlen (unwahrscheinlich)
c) die Änderung aus dem Loginskript wird nochmals überschrieben (GPO?)
--> teste doch mal was passiert, wenn Du dieses Skript später ausführst.
Leg es mal in den Autostartordner des Benutzers und starte durch.
Dann sehen wir weiter.
Grüße
Biber
a) das Loginscript wird nicht mit dem %username% ausgeführt m anderer Benutzername wird geändert
b) Rechte zum Ändern fehlen (unwahrscheinlich)
c) die Änderung aus dem Loginskript wird nochmals überschrieben (GPO?)
--> teste doch mal was passiert, wenn Du dieses Skript später ausführst.
Leg es mal in den Autostartordner des Benutzers und starte durch.
Dann sehen wir weiter.
Grüße
Biber