Logon script exlude computer

  • #1
R

Rabadag

Guest
Hallo Forum.

Hallo Forum
Ich kampfe hier mit einem Logonscript und komme einfach nicht ans ziel.

Ziel ist es den Terminal Server (lensv01) zu exluden so das die mappings nicht ausgefürt werden.
respective ein seperaten vb-script ausgeführt wird.
Leider will das nicht so.
Hat jemand ne ide?

Code:
Dim WSHNetwork
Dim WshShell
Dim UserObj
Dim objTimer
Dim strUserID
Dim strDomain


Set WSHNetwork = WScript.CreateObject(WScript.Network)
Set WshShell = WScript.CreateObject(WScript.Shell)
Set FileSysObj = CreateObject(Scripting.FileSystemObject)

strDomain = intra.dom.ch

Do
strUserID = WSHNetwork.UserName

Loop Until strUserID <> 

Set UserObj = GetObject(WinNT:// & strDomain & / & strUserID)

'***Initialise Groups
Dim UserGroups
Dim GroupObj
UserGroups=
For Each GroupObj In UserObj.Groups
UserGroups=UserGroups & [ & GroupObj.Name & ]
Next



'############################################################################ 
'# Icon Arbeitsplatz mit Computername anschreiben
'############################################################################

MCPath = HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
WSHShell.RegWrite MCPath & \, strComputer, REG_SZ


'############################################################################ 
'# Zeit Mit Domäne Syncronisieren
'############################################################################

wshshell.run net time /domain /set /y

'############################################################################ 
'# Numlock Einschalten
'############################################################################

'WshShell.SendKeys {NUMLOCK} 


'############################################################################ 
'# Alle Netzlaufwerke Trennen 
'############################################################################

'F=102 Z=122
Dim DelNetDrive
Set WshNet = CreateObject(WScript.network)
For DriveAsc = 104 To 122
On Error Resume Next
DelNetDrive = Chr(DriveAsc) & :
WshNet.RemoveNetworkDrive DelNetDrive, True, True
Next


'############################################################################ 
'# Therminal Server Excluden und Script beenden
'############################################################################


Dim net
Set net = CreateObject(WScript.Network)
Set WshNetwork = WScript.CreateObject(WScript.Network)

If WshNetwork.ComputerName = (lensv01) Then
WScript.Quit


'############################################################################ 
'# Home Netzlaufwerk Einbinden
'############################################################################

WSHNetwork.MapNetworkDrive H:, \\lensv01\daten\homes\ & WSHNetwork.UserName


'############################################################################ 
'# Gruppen Spezifische Netzlaufwerk einbinden
'############################################################################

'-------------------------------------------------------------------------
'              Gruppen Daten Casual
'------------------------------------------------------------------------- 

If InGroup(Grpd_Casual_Admin) Then
'KillDrive(O:)
MapDrive O:,\\lensv01\daten\Firmen-Daten\Casual
End If





on error resume next

Set objTimer = CreateObject(TimeObject.Time)
objTimer.Timer (5)->Wait 5 seconds


'-------------------------------------------------------------------------
'-------------------------------Sub-Procedures---------------------------

'-------------------------------------------------------------------------
' Sub: Disconnects Network Drives
'-------------------------------------------------------------------------
Sub KillDrive(strdrive)

On Error Resume Next
If FileSysObj.DriveExists(strDrive) = true then
WshNetwork.RemoveNetworkDrive strDrive
End If

End Sub
'-------------------------------------------------------------------------
' Sub: Drive Mapping Routine
'-------------------------------------------------------------------------
Sub MapDrive( strDrive, strShare )

Dim Path
If InStr(strShare,\) then
Path=strShare
Else
Path=\\ & Authsvr & \ & strShare
End If

' Map drive
On Error Resume Next
WSHNetwork.MapNetworkDrive strDrive, Path

' End Sub result
If Err.Number <> 0 Then WriteErr( strUserID & : Mapping  & strDrive &  to  & Path &   & Err.Description &   & Now() )
End Sub
'-------------------------------------------------------------------------
' Function: InGroup
'-------------------------------------------------------------------------
Function InGroup(strGroup)
InGroup=False
If InStr(UserGroups,[ & strGroup & ]) Then
InGroup=True
End If
End Function
 
  • #2
Hallo,

was funktioniert denn konkret nicht?

Ist es diese Anweisung:
Code:
If WshNetwork.ComputerName = (lensv01) Then
 WScript.Quit
Wenn ja, solltest du diese Anweisung wie folgt formulieren:
Code:
If LCase(WshNetwork.ComputerName) = (lensv01) Then
 WScript.Quit
Ansonsten läufst du Gefahr, das der Vergleich wg. Gross-/Kleinschreibung scheitert!

Gruss

Reiner
 
  • #3
Ja genau diese..

Code:
If WshNetwork.ComputerName = (lensv01) Then
WScript.Quit
Wenn ja, solltest du diese Anweisung wie folgt formulieren:
-----------------------------------------------------------------------------
If LCase(WshNetwork.ComputerName) = (lensv01) Then
WScript.Quit
Ansonsten läufst du Gefahr, das der Vergleich wg. Gross-/Kleinschreibung scheitert!

Der Fehler ist das das script dennoch durchläuft und alles mapt.
Ich versuchs gleich mal mit deinem Vorschlag.
 
  • #4
funktioniert..

Besten dank.

Hast du eventuel noch ne idee was hir falsch sein könnte...

Code:
Dim WSHNetwork
Dim WshShell
Dim UserObj
Dim objTimer
Dim strUserID
Dim strDomain
Dim net

Set WSHNetwork = WScript.CreateObject(WScript.Network)
Set WshShell = WScript.CreateObject(WScript.Shell)
Set FileSysObj = CreateObject(Scripting.FileSystemObject)
Set net = CreateObject(WScript.Network) 

strDomain = intra.dom.ch

Do
strUserID = WSHNetwork.UserName

Loop Until strUserID <> 

Set UserObj = GetObject(WinNT:// & strDomain & / & strUserID)

'***Initialise Groups
Dim UserGroups
Dim GroupObj
UserGroups=
For Each GroupObj In UserObj.Groups
UserGroups=UserGroups & [ & GroupObj.Name & ]
Next

If InGroup(Grpp_Allgemein) Then
net.AddWindowsPrinterConnection \\lensv01\HP4100
net.SetDefaultPrinter \\lensv01\HP4100       
End If

Ich erhalte hier immer fehler,
für die Zeile
net.AddWindowsPrinterConnection \\Lensv01\HP4100
Fehler: Die Syntax für den Dateinamen, Verzeichnisnamen oder Datenträgerbezeichnung ist falsch.
Code 8007007B
 
  • #5
Hallo,

hab dir im Code ein paar Anmerkungen geschrieben, vielleicht hilfst was.

Code:
Set WSHNetwork = WScript.CreateObject(WScript.Network)
Set WshShell = WScript.CreateObject(WScript.Shell)
Set FileSysObj = CreateObject(Scripting.FileSystemObject)
rem Ueberfluessig --> Set net = CreateObject(WScript.Network) 
rem WScript.Network wurde schon Variable WSHNetwork zugewiesen.

strDomain = intra.dom.ch

rem Warum der Loop hier?
rem Sehr ueberfluessig!
Do
strUserID = WSHNetwork.UserName

Loop Until strUserID <>

Gruss

Reiner
 
  • #6
Besten Dank für deine Info das war der fehler.

Nun Funktioniert das Logon script wunderbar.
 
Thema:

Logon script exlude computer

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben