17867
Goto Top

AD Script zum ändern des Logon Scripts

hallöchen,

ich wollte in der AD für alle User das Logon Skript ändern. Da es sehr viele User sind wollte ich das per skript machen. Hat einer vielleicht nen hinweis für mich?

Zu ändern ist für jeden User im Reiter PROFILE das Logo Skript.
Bisher: logon_user.vbs
Aktuell: global_logon.vbs

Und zwar für alle User deren Username mit "tga" beginnt und in der DEST Domäne sind.

Hat einer ne Idee wie ich das mache? Danke euch im vorraus!
Kommentar vom Moderator 22010 am 02.06.2009 um 17:14:34 Uhr
In "Windows Server" verschoben...

Content-Key: 117279

Url: https://administrator.de/contentid/117279

Ausgedruckt am: 28.03.2024 um 15:03 Uhr

Mitglied: jhinrichs
jhinrichs 02.06.2009 um 13:23:12 Uhr
Goto Top
Hallo,

ich habe glaube ich noch nicht verstanden, was Du mit Logon Skript meinst. Wenn es das ist, was man üblicherweise unter Logon Skript versteht:

In einer AD-Umgebung wäre die korrekte Vorgehensweise, alle User, deren Username mit "tga" beginnt, in eine OU zu packen (das Präfix "tga" hat ja bestimmt organisatorische Gründe), und diesen Usern dann per GPO ein Logon Skript zuzuweisen.
DIe Sache mit der Domäne ist im AD dann sowieso klar.
Mitglied: bastla
bastla 02.06.2009 um 13:26:49 Uhr
Goto Top
... bzw, wenn sich die User nicht in der selben OU befinden, im Script den Benutzernamen abfragen und dann den passenden Teil des Scripts aufrufen, etwa:
Set WshNetwork = WScript.CreateObject("WScript.Network")  
User = WshNetwork.Username
Select Case LCase(Left(User, 3))
Case "tga"  
    'hier das Script für die "tga"-User  
Case Else
    'hier das Script für die übrigen User  
End Select
Grüße
bastla
Mitglied: bastla
bastla 02.06.2009 um 15:08:56 Uhr
Goto Top
... als Nachtrag: Um aber auch auf die ursprüngliche Frage zu antworten, ein Ansatz als VB-Script (zumindest, um bei dieser Gelegenheit gleich alle Script-Pfade aus den User-Konten zu löschen - siehe dazu durch "###" eingegrenzten Teil):
Const ADS_SCOPE_SUBTREE = 2
Const ADS_PROPERTY_CLEAR = 1

strAdsPath = "dc=fabrikam,dc=com"  
strScriptPath = "global_logon.vbs"  

Set objConnection = CreateObject("ADODB.Connection")  
Set objCommand =   CreateObject("ADODB.Command")  
objConnection.Provider = "ADsDSOObject"  
objConnection.Open "Active Directory Provider"  
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000  
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  

objCommand.CommandText = _
"SELECT AdsPath, sAMAccountName FROM 'LDAP://" & strAdsPath & "' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
    strUserName = objRecordSet.Fields("sAMAccountName").Value  
    If LCase(Left(strUserName, 3)) = "tga" Then  
        Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value)  
        'Neuen Pfad eintragen  
        objUser.Put "scriptPath", strScriptPath  
        '#################################################  
        'Alternative: Pfad löschen          
        'objUser.PutEx ADS_PROPERTY_CLEAR, "scriptPath", 0  
        '#################################################  
        objUser.SetInfo
    End If
    objRecordSet.MoveNext
Loop
Anzupassen sind in Zeile 4 die Angaben zur Domäne ...

Grüße
bastla
Mitglied: dog
dog 02.06.2009 um 16:33:48 Uhr
Goto Top
Oder mit Klickibunti: ADModify.Net http://www.codeplex.com/admodify - das hat sogar eine "Rückgänig"-Funktion.

Grüße

Max