none
Name des Sitzungshostservers am RD mit VBS ermitteln RRS feed

  • Frage

  • Hallo Gemeinde,

    wie kann ich den Namen des Sitzungshostservers, mit dem ich per Remotedesktop verbunden bin auslesen?

    Bye,
    Mario
    Montag, 6. Mai 2013 09:35

Antworten

  • Hi Mario,

    Auf dem TS_Host den Client mittels der Umgebungsavariable %CLIENTNAME%

    Auf dem Client nur mittels netstat z.B. netstat | find "3389" | find "HERGSESTELLT"

    Viele Grüße,


    Philipp Halbedel

    MCP 2003,MCITP EA Server 2008,MCITP EA Windows 7,MCSA2008,MCSA2012 

    Meine Antwort war hilfreich? ich freu mich über eine Bewertung. If my answer was helpful, I'm glad about a rating! 

    I do not represent the organisation I work for, all the opinions expressed here are my own.

    Montag, 6. Mai 2013 10:39
  • Am 06.05.2013 12:39, schrieb Philipp Halbedel:
    > Auf dem TS_Host den Client mittels der Umgebungsavariable %CLIENTNAME%
     
    Und da aber auch noch abhängig davon, wann Dein Skript gestartet wird.
    Als Logonskript über Winlogon\AppSetup oder als Task beim
    Wiederverbinden existiert die Umgebungsvariable noch nicht, dann wird's
    mit VBS "ein klein wenig" aufwändiger...
     
    SessionID = GetSessionID( Username )
    Sessionname = oWsh.RegRead( "HKCU\Volatile Environment\" & SessionID &
    "\Sessionname" )
    Clientname = oWSH.RegRead( "HKCU\Volatile Environment\" & SessionID &
    "\Clientname" )
     
    Function GetSessionID( strUsername )
        Dim myQuery, myCol, myObj, myRC, myUser
        If strUsername = "" Then strUsername = CreateObject(
    "WScript.Shell" ).Environment( "PROCESS" ).Item( "USERNAME" )
        myQuery = "Select * from Win32_Process where executablepath=""" &
    Replace( WScript.Fullname, "\", "\\" ) & """"
        Set myCol = oWMI.ExecQuery( myQuery )
        For Each myObj In myCol
            myRC = myObj.GetOwner( myUser )
            If myRC = 0 Then
                If StrComp( myUser, strUsername, vbTextCompare ) = 0 Then
    GetSessionID = myObj.SessionID
            End If
        Next
    End Function
     
     

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    Wenn meine Antwort hilfreich war, freue ich mich über eine Bewertung! If my answer was helpful, I'm glad about a rating!
    Montag, 6. Mai 2013 15:20

Alle Antworten

  • Hi Mario,

    Auf dem TS_Host den Client mittels der Umgebungsavariable %CLIENTNAME%

    Auf dem Client nur mittels netstat z.B. netstat | find "3389" | find "HERGSESTELLT"

    Viele Grüße,


    Philipp Halbedel

    MCP 2003,MCITP EA Server 2008,MCITP EA Windows 7,MCSA2008,MCSA2012 

    Meine Antwort war hilfreich? ich freu mich über eine Bewertung. If my answer was helpful, I'm glad about a rating! 

    I do not represent the organisation I work for, all the opinions expressed here are my own.

    Montag, 6. Mai 2013 10:39
  • Am 06.05.2013 12:39, schrieb Philipp Halbedel:
    > Auf dem TS_Host den Client mittels der Umgebungsavariable %CLIENTNAME%
     
    Und da aber auch noch abhängig davon, wann Dein Skript gestartet wird.
    Als Logonskript über Winlogon\AppSetup oder als Task beim
    Wiederverbinden existiert die Umgebungsvariable noch nicht, dann wird's
    mit VBS "ein klein wenig" aufwändiger...
     
    SessionID = GetSessionID( Username )
    Sessionname = oWsh.RegRead( "HKCU\Volatile Environment\" & SessionID &
    "\Sessionname" )
    Clientname = oWSH.RegRead( "HKCU\Volatile Environment\" & SessionID &
    "\Clientname" )
     
    Function GetSessionID( strUsername )
        Dim myQuery, myCol, myObj, myRC, myUser
        If strUsername = "" Then strUsername = CreateObject(
    "WScript.Shell" ).Environment( "PROCESS" ).Item( "USERNAME" )
        myQuery = "Select * from Win32_Process where executablepath=""" &
    Replace( WScript.Fullname, "\", "\\" ) & """"
        Set myCol = oWMI.ExecQuery( myQuery )
        For Each myObj In myCol
            myRC = myObj.GetOwner( myUser )
            If myRC = 0 Then
                If StrComp( myUser, strUsername, vbTextCompare ) = 0 Then
    GetSessionID = myObj.SessionID
            End If
        Next
    End Function
     
     

    NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
    Wenn meine Antwort hilfreich war, freue ich mich über eine Bewertung! If my answer was helpful, I'm glad about a rating!
    Montag, 6. Mai 2013 15:20