xaero1982
Goto Top

Hinterlegte Anmeldescripte ausgeben - AD

Hallo,

noch mal eine Frage zu den Anmeldescripten....

Leider stellt sich immer wieder heraus, dass in einigen Benutzerprofilen falsche (falscher Pfad) Anmeldescripte hinterlegt sind was die Ausführung des selbigen verhindert.

Gibt es eine Möglichkeit das Anmeldescript + Benutzernamen aus dem AD auszulesen und in einer Txt zu speichern nach dem Schema:

Benutzername - Anmeldescript

Wäre für Tipps dankbar

mfg

Content-Key: 57126

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

Printed on: April 26, 2024 at 21:04 o'clock

Member: Logan000
Logan000 Apr 20, 2007 at 08:52:31 (UTC)
Goto Top
Per vbs

On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2

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 Name FROM 'LDAP://dc=domain,dc=de' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields("Name").Value & " " & objRecordSet.Fields("ScriptPath").Value
objRecordSet.MoveNext
Loop
Member: Xaero1982
Xaero1982 Apr 20, 2007 at 09:24:49 (UTC)
Goto Top
Hum .. habe das Script nach 5 Minuten mal abgebrochen ... scheint nicht so recht zu gehen^^
Member: Xaero1982
Xaero1982 Apr 20, 2007 at 09:33:26 (UTC)
Goto Top
Ok hab was:

on error resume next

Pfad = "c:\aduser.txt"  
'Objekte erstellen  
set fso = CreateObject("Scripting.FileSystemObject")  
set fsoFile = fso.CreateTextFile(Pfad, true)
dim oCont, oGC
Set oCont = GetObject("GC:")  
For Each oGC In oCont
    strGCPath = oGC.ADsPath
Next

Set oConnection = CreateObject("ADODB.Connection")  
Set oRecordset = CreateObject("ADODB.Recordset")  
Set oCommand = CreateObject("ADODB.Command")  
oConnection.Provider = "ADsDSOObject"  'The ADSI OLE-DB provider  
oConnection.Open "ADs Provider"  
oCommand.ActiveConnection = oConnection
oCommand.Properties("Page Size") = 100  
oCommand.CommandText = "<" & strGCPath & ">;" & _  
	"(mailnickname=*);" & _  
	"distinguishedName,ObjectClass,displayName,mail" & _  
	";subtree"  
Set oRecordset = oCommand.Execute

do until oRecordset.EOF
	Set objUser = GetObject("LDAP:// " & oRecordset.Fields("distinguishedName"))  
	fsoFile.WriteLine(oRecordset.Fields("displayName") & " - " & objUser.scriptPath)  
	oRecordset.MoveNext
loop

wscript.echo done

fsoFile.close
set fsoFile = nothing
set fso = nothing
Member: SlainteMhath
SlainteMhath Apr 20, 2007 at 12:07:45 (UTC)
Goto Top
oder:

dsquery user -limit 0 -name * | dsget user -samid -loscr > blah.txt

wenn man's ein bischen einfacher mag face-smile
Member: Xaero1982
Xaero1982 Apr 20, 2007 at 12:20:04 (UTC)
Goto Top
Und was soll das sein?

Was für Tools brauchste denn dafür?
Member: SlainteMhath
SlainteMhath Apr 20, 2007 at 12:28:56 (UTC)
Goto Top
Und was soll das sein?

Was für Tools brauchste denn
dafür?

Du brauchst entweder eine Windows 2003 Server oder, falls Du's am Client ausführen willst, das installierte AdminPack.msi
Member: Xaero1982
Xaero1982 Apr 20, 2007 at 14:36:39 (UTC)
Goto Top
Okay ...

Naja sollte ja nicht aufm Server laufen, sondern auf einem beliebigen Client face-smile

Aber danke für den Tipp!