Top-Themen

Aktuelle Themen (A bis Z)

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

Ausgabe eines VBScripts in Benutzervariable

Mitglied: Lamerking

Lamerking (Level 1) - Jetzt verbinden

23.01.2008, aktualisiert 29.01.2008, 5738 Aufrufe, 15 Kommentare

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:

01.
Const strLog = "D:\UserLog.txt" 
02.
 
03.
Set objNetwork = WScript.CreateObject("WScript.Network") 
04.
If strComp(objNetwork.UserDomain, objNetwork.ComputerName, vbTextCompare) <> 0 Then 'kein lokaler Account 
05.
	Set fso = CreateObject("Scripting.FileSystemObject") 
06.
	Set objUser = GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName) 
07.
	fso.OpenTextFile(strLog, 8, True).WriteLine objUser.sn & ", " & objUser.givenName 
08.
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
Mitglied: Logan000
23.01.2008 um 12:50 Uhr
Für Regeintrag einfach
01.
fso.OpenTextFile(strLog, 8, True).WriteLine objUser.sn & ", " & objUser.givenName
durch
01.
Dim WSHShell 
02.
Set WSHShell = CreateObject("WScript.Shell") 
03.
WSHShell.RegWrite "HKCU\Environment\postfachname", objUser.sn & ", " & objUser.givenName
ersetzen.
Bitte warten ..
Mitglied: Lamerking
23.01.2008 um 14:26 Uhr
Hi!!
Danke hat super funktioniert.

Hab jetzt allerdings ein Problem. Er zieht die Benutzervariable erst nach einem Neustart des Rechners.

Ich habe rausgefunden, dass man mit dem Kommandozeilenbefehl
01.
setx postfachname "Nachname, Vorname"
direkt eine Benutzervariable setzen kann.

Lässt sich dieser Kommandozeilenbefehl irgendwie einbauen?

Danke schon mal.

Gruß
Tobias
Bitte warten ..
Mitglied: Logan000
24.01.2008 um 09:19 Uhr
Schreib den Befehl in eine Bat datei (z.B. SetPostfachname.bat).
Diese kannst du dann mit
01.
Set ShellWSH = CreateObject("WScript.Shell") 
02.
ShellWSH.Run """SetPostfachname.bat""", 3, True
aufrufen.
Bitte warten ..
Mitglied: Lamerking
24.01.2008 um 14:26 Uhr
Super Danke!

Ich krieg allerdings solangsam die Krise. Mit setx hab ich genau das gleiche Problem. Ohne Neustart übernimmt er das Ganze nit.
Hock jetzt schon stundenlang rum und krieg es einfach nit hin

Einzige Möglichkeit ist wohl nur "Nachname, Vorname" direkt in die Datei zu schreiben.

Gibt es die Möglichkeit das in das VBScript einzubauen. Also alle Zeilen in der Datei "profile.prf" mit dem String

MailboxName=Benutzername

zu suchen und durch Nachname, Vorname zu ersetzen?

Insgesamt sind es 2 Zeilen die ersetzt werden müssen. Die Zeilennummer steht fest (14 + 18)

Danke schon mal im Voraus!!!
Bitte warten ..
Mitglied: Biber
24.01.2008 um 14:47 Uhr
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
Bitte warten ..
Mitglied: Lamerking
24.01.2008 um 14:50 Uhr
Hi!

Danke für die Antwort.

01.
und zwar außerhalb einer Setlocal/endlocal-Klammer, falls es dann laufenden Batch überleben soll
was meinst du konkret damit?

danke!
Bitte warten ..
Mitglied: Biber
24.01.2008 um 15:01 Uhr
@Setlocal/endlocal
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
Bitte warten ..
Mitglied: Lamerking
24.01.2008 um 15:11 Uhr
sorry, ich steh grad aufm schlauch.
das mit dem cmd aufruf für die eine sitzung hab ich auch bemerkt.

was sollte ich tun, um das problem zu lösen?

danke
Bitte warten ..
Mitglied: Biber
24.01.2008 um 15:57 Uhr
Moin Lamerking,

Siehe oben:
- 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.

Wo ist das Problem?

Grüße
Biber
Bitte warten ..
Mitglied: Lamerking
25.01.2008 um 14:01 Uhr
Das Problem ist, ich weiß nicht wie ich das Problem lösen soll ohne die Werte in die Datei wie oben beschrieben zu schreiben.
Nach deiner Ausführung geht es mit setx ja wohl auch nicht, oder verstehe ich das falsch?
Bitte warten ..
Mitglied: Biber
25.01.2008 um 14:22 Uhr
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
Bitte warten ..
Mitglied: Lamerking
25.01.2008 um 15:19 Uhr
Hi,

ja das dachte ich auch.

Dar Befehl SETX wird allerdings im Logonscript ausgeführt.
Wenn ich dann nach der Anmeldung eine CMD-Instanz aufmachen und mit dem Befehl set überprüfe ob die Variable eingetragen ist, zeigt er mir nix an.
Obwohl das ja nun eigentlich eine neue CMD-Instanz ist.
Wenn ich den Befehl SETX allerdings von Hand ausführe und nicht über das Logonscript, dann ist die Variable nach dem schließen und anschließenden Öffnen einer neuen CMD-Instanz da.

Was ich nicht verstehe, ist warum das Abarbeiten des Logonscriptes und das anschließende händische öffnen eines CMD-Fensters immer noch die gleiche Instanz sein soll?
Bitte warten ..
Mitglied: Biber
25.01.2008 um 19:33 Uhr
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
Bitte warten ..
Mitglied: Lamerking
29.01.2008 um 08:27 Uhr
Hi Biber!

hab das Script mal in den Autostart gelegt.
Jetzt funktioniert es. Im Anmeldeskript nicht.

Ganz komisch...
Bitte warten ..
Mitglied: Biber
29.01.2008 um 09:44 Uhr
Na also, Lamerking,

dann solltest Du als nächstes die Punkte a)-c) prüfen und ausschließen/bestätigen.
Bau in die Loginscript-Variante eine Anzeige/Logzeile ein, in der Du den aktuellen %username% und den (nochmal gelesenen) Registry-Wert bei Beendigung des Schnipsels protokollierst.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Wieso ist die Catch Ausgabe ohne ausgabe der Variable?

gelöst Frage von pixel0815Batch & Shell10 Kommentare

Hallo zusammen, weshalb wird nicht die Variable $_.Hostname mit dem betreffenden nicht vorhandenen Record angezeigt? Ich erhalte immer Kein ...

Microsoft

Ausgabe einer CMD-Ausgabe in Datei kopieren

Frage von zimbomanMicrosoft4 Kommentare

Hallo zusammen! Wir haben ein Batch-Skript mit mehrere Abfragen und Ablaufroutinen. Es ist unser Vorinstallationsskript das auf Nachfrage diverse ...

Datenbanken

MYSQL ausgabe

Frage von pcguyDatenbanken31 Kommentare

Hallo zusammen Ich versuche gerade einen DB inhalt gefiltert auszugeben. DB: id - parent_id - title - url - ...

VB for Applications

VBScript und OR

gelöst Frage von InvisanVB for Applications5 Kommentare

Hi zusammen, derzeit bastel ich ein bisschen in VBScript rum. Leider habe ich mit dem OR Operator einige Probleme. ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 2 TagenAusbildung35 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 4 TagenSpeicherkarten5 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 5 TagenHardware4 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
Frage von Looser27Windows Userverwaltung27 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

CMS
Seltsame Joomla-Meldung auf unserer WebSite
Frage von Winfried-HHCMS14 Kommentare

Hallo in die Runde! Kennt sich jemand mit Joomla aus? Im Backend unserer WebSite lesen wir seit einiger Zeit ...

Switche und Hubs
POE-Switche
gelöst Frage von MiStSwitche und Hubs13 Kommentare

Guten Morgen, ich überlege ob ich in unserem Netzwerk die aktuellen Switche (D-LINK DGS-1210-28) durch PoE-Switche ersetzen soll. Der ...