Sessionname Probleme

64 views
Skip to first unread message

Volker Hess

unread,
Apr 22, 2010, 2:41:04 AM4/22/10
to
Hallo NG,

ich hoffe ihr könnt mir bei folgendem Problem helfen. Bislang wird über GPO
das folgende VBscript per User ausgeführt:

On Error Resume Next
Set WshNetwork = CreateObject("WScript.Network")
Set WshShell = WScript.CreateObject("WScript.Shell")
'Umgebungsvariablen abfragen
Set objEnv = WshShell.Environment("Process")
windir = objEnv("WINDIR")
SessionName = objEnv("SESSIONNAME")
'Prüfen ob Console oder Terminal Session
If Left(SessionName, 3) = "ICA" OR Left(SessionName, 3) = "RDP" then
'Da in der Terminal Session keine Laufwerke gemountet werden sollen Script
beenden
WScript.Quit
Else
'Console Session
'XML File lesen
Set Logon = CreateObject("Microsoft.XMLDOM")
Logon.load "shares.xml"
Set shares = Logon.getElementsByTagName("Share")
Set printers = Logon.getElementsByTagName("Printer")
'Shares verbinden
For Each share in shares
WshNetwork.MapNetworkDrive share.getAttribute("device"),
share.getAttribute("Path"),False
Next
'Drucker verbinden
For Each Printer in Printers
rc =
WshNetwork.AddWindowsPrinterConnection(Printer.getAttribute("Netpath"))

Next
End If

Im Moment laufen bei uns Windows 2003 mit PS 4.0. Wir wollen nun auf XenApp
5.0 und Server 2008 aufrüsten. Ich musste feststellen, dass der Server 2008
TS das Script nicht richtig verarbeitet und die User ihre Laufwerke und
Drucker in der TS-Sitzung gemappt bekommen!

Ist Euch bekannt, ob ein TS unter 2008 und XenApp 5 die Sessionname-Variable
ignoriert? Hab schon alles mögliche versucht komme aber nicht zu den
notwendigen
Erkenntnissen :-(


Schon mal danke im voraus...

Volker Hess

Pegasus [MVP]

unread,
Apr 22, 2010, 4:27:28 AM4/22/10
to

"Volker Hess" <vo....@web.de> wrote in message
news:OBilJbe4...@TK2MSFTNGP02.phx.gbl...
> Hallo NG,
>
> ich hoffe ihr k�nnt mir bei folgendem Problem helfen. Bislang wird �ber
> GPO
> das folgende VBscript per User ausgef�hrt:


>
> On Error Resume Next
> Set WshNetwork = CreateObject("WScript.Network")
> Set WshShell = WScript.CreateObject("WScript.Shell")
> 'Umgebungsvariablen abfragen
> Set objEnv = WshShell.Environment("Process")
> windir = objEnv("WINDIR")
> SessionName = objEnv("SESSIONNAME")

> 'Pr�fen ob Console oder Terminal Session


> If Left(SessionName, 3) = "ICA" OR Left(SessionName, 3) = "RDP" then
> 'Da in der Terminal Session keine Laufwerke gemountet werden sollen Script
> beenden
> WScript.Quit
> Else
> 'Console Session
> 'XML File lesen
> Set Logon = CreateObject("Microsoft.XMLDOM")
> Logon.load "shares.xml"
> Set shares = Logon.getElementsByTagName("Share")
> Set printers = Logon.getElementsByTagName("Printer")
> 'Shares verbinden
> For Each share in shares
> WshNetwork.MapNetworkDrive share.getAttribute("device"),
> share.getAttribute("Path"),False
> Next
> 'Drucker verbinden
> For Each Printer in Printers
> rc =
> WshNetwork.AddWindowsPrinterConnection(Printer.getAttribute("Netpath"))
>
> Next
> End If
>
> Im Moment laufen bei uns Windows 2003 mit PS 4.0. Wir wollen nun auf
> XenApp

> 5.0 und Server 2008 aufr�sten. Ich musste feststellen, dass der Server

> 2008
> TS das Script nicht richtig verarbeitet und die User ihre Laufwerke und
> Drucker in der TS-Sitzung gemappt bekommen!
>
> Ist Euch bekannt, ob ein TS unter 2008 und XenApp 5 die
> Sessionname-Variable

> ignoriert? Hab schon alles m�gliche versucht komme aber nicht zu den


> notwendigen
> Erkenntnissen :-(
>
>
> Schon mal danke im voraus...
>
> Volker Hess

Ich habe im Moment keinen Zugang zu einem 2008 Server, aber ich w�rde mir
einfach mal die Umgebungsvariablen anschauen, die auf einem 2008 Server in
einer RDP-Sitzung existieren. Der Befehl "set" gibt dir s�mtliche Variablen
an. Anschliessend kannst du dein Script entsprechend anpassen. Wenn dies
nichts einbringt, dann w�rde ich mal in einer Server Newsgruppe anfragen,
denn es ist doch eher eine Serverfrage und nicht ein Scriptproblem.

Winfried Sonntag [MVP]

unread,
Apr 22, 2010, 5:31:12 AM4/22/10
to
Volker Hess schrieb:

> ich hoffe ihr könnt mir bei folgendem Problem helfen. Bislang wird über GPO
> das folgende VBscript per User ausgeführt:
>
> On Error Resume Next
> Set WshNetwork = CreateObject("WScript.Network")
> Set WshShell = WScript.CreateObject("WScript.Shell")
> 'Umgebungsvariablen abfragen
> Set objEnv = WshShell.Environment("Process")
> windir = objEnv("WINDIR")
> SessionName = objEnv("SESSIONNAME")
> 'Prüfen ob Console oder Terminal Session
> If Left(SessionName, 3) = "ICA" OR Left(SessionName, 3) = "RDP" then
> 'Da in der Terminal Session keine Laufwerke gemountet werden sollen Script
> beenden

Hier wird auch beschrieben, wie man rauskriegt ob man in einer
TS-Session ist
http://habibs-solomon-blog.blogspot.com/2006/03/terminal-server-client-id.html

Alternativ solltest Du dich mit den GPOs befassen:
http://www.gruppenrichtlinien.de/HowTo/Terminal_Server.htm

Servus
Winfried
--
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
GPO's: http://www.gruppenrichtlinien.de
Gruppenrichtlinien Mailingliste "gpupdate":
http://frickelsoft.net/cms/index.php?page=mailingliste

Reply all
Reply to author
Forward
0 new messages