Umgebungsvariable USERNAME auslesen

  • VBScript

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Umgebungsvariable USERNAME auslesen

    Hallöchen an Euch,

    ich versuche die Umgebungsvariable USERNAME erfolgreich auszulesen, nur leider klappt das nicht.

    Das ist mein Code:

    Visual Basic-Quellcode

    1. Dim ShellApp, UserName
    2. Set ShellApp = CreateObject("WScript.Shell")
    3. Set UserName = ShellApp.ExpandEnvironmentStrings("%UserName%")
    4. MsgBox UserName


    Und da bringt er mir, dass da ein Objekt erforderlich ist (string: "mustermann")

    Egal was ich unter Google suchen und bei meinem Script testen lasse, es kommt immer dieses "Objekt erforderlich: string ...".

    Auch dieser Versuch brachte das Selbe:

    Visual Basic-Quellcode

    1. Dim ShellApp, UserName
    2. Set ShellApp = CreateObject("WScript.Shell")
    3. Set UserName = ShellApp.Environment("%UserName%")
    4. MsgBox UserName


    Wie ist also die richtige Definierung?

    Muss dazu sagen, ich melde mich in ein Netzwerk an aber auch da, mit:

    Visual Basic-Quellcode

    1. Dim ShellApp, UserName
    2. Set ShellApp = CreateObject("WScript.Network").UserName
    3. MsgBox ShellApp


    klappt es nicht.

    LG Romero

    LÖSUNG GEFUNDEN:
    Ich muss das "Set" vor dem Definieren der UserName-Variable weglassen. Dann klappt das auch.
    Vor lauter Bäume den Wald nicht gesehen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Romero“ ()

    Das ganze Option Strict Off Zeugs kannste gleich in Tonne kippen.

    Visual Basic-Quellcode

    1. System.Security.Principal.WindowsIdentity.GetCurrent().Name

    Accountname unter dem das Programm läuft.

    Visual Basic-Quellcode

    1. Environment.UserName

    Zurzeit angemeldete Benutzer.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Environment.UserName bringt mir eine Fehlermeldung das da ein Objekt erforderlich ist.

    Wie sieht da die exakte Deklaration aus?
    So das ich dann meine Variable "Username" verwenden kann?

    Das wäre mein Standpunkt der klappt:

    Visual Basic-Quellcode

    1. Dim WSShell, WSShellProcess, UserName
    2. Set WSShell = CreateObject("WScript.Shell")
    3. Set WSShellProcess = WSShell.Environment("PROCESS")
    4. UserName = WSShellProcess("USERNAME")


    LG Romero
    Oh Entschuldigung vielmals. Hab nicht gesehen, dass es VBS ist Oo. Bin etwas übermüdet ;). Tschuldigung vergiss das oben.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Noch zwei Varianten:

    Visual Basic-Quellcode

    1. Set WshNetwork = CreateObject("WScript.Network")
    2. Username = WshNetwork.UserName


    Visual Basic-Quellcode

    1. Set WshShell = WScript.CreateObject("WScript.Shell")
    2. Username = WshShell.ExpandEnvironmentStrings("%USERNAME%")
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --