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-ID: 57126

Url: https://administrator.de/forum/hinterlegte-anmeldescripte-ausgeben-ad-57126.html

Ausgedruckt am: 13.04.2025 um 17:04 Uhr

Logan000
Logan000 20.04.2007 um 10:52:31 Uhr
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
Xaero1982
Xaero1982 20.04.2007 um 11:24:49 Uhr
Goto Top
Hum .. habe das Script nach 5 Minuten mal abgebrochen ... scheint nicht so recht zu gehen^^
Xaero1982
Xaero1982 20.04.2007 um 11:33:26 Uhr
Goto Top
Ok hab was:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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
SlainteMhath
SlainteMhath 20.04.2007 um 14:07:45 Uhr
Goto Top
oder:

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

wenn man's ein bischen einfacher mag face-smile
Xaero1982
Xaero1982 20.04.2007 um 14:20:04 Uhr
Goto Top
Und was soll das sein?

Was für Tools brauchste denn dafür?
SlainteMhath
SlainteMhath 20.04.2007 um 14:28:56 Uhr
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
Xaero1982
Xaero1982 20.04.2007 um 16:36:39 Uhr
Goto Top
Okay ...

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

Aber danke für den Tipp!