Nu er jeg da kommet et skridt i den rigtige retning igen... ;) nu har jeg fået den til at skrive brugernavn og Display name ind i en txt fil... nu er mit problem så at den smider KUN den sidste bruger derind....
Option explicit
dim strTitel, strDomain, strGroup, strList, objFSO, objTextFile, objUser, Network, shell, _
strL, GroupObj, UserObj, objFolder, strUsername, strDN
const ForAppending = 8
Set Network = Wscript.CreateObject("Wscript.Network")
Set Shell = Wscript.CreateObject("Wscript.Shell")
StrL = Vbcrlf
StrDomain = Network.UserDomain
StrGroup = InputBox("Skriv en Gruppe:","En bruger","ggmag4azks")
If StrGroup = "" Then
Wscript.Echo "Der er ikke tastet noget ind !"
Else
Set GroupObj = GetObject("
WinNT://" & StrDomain & "/" & StrGroup)
For Each UserObj In GroupObj.Members
StrList = UserObj.Name
strDN = GetUserDN(strList)
set ObjUser = Getobject("
LDAP://" & strDN)
strUsername = objUser.Get("displayName")
next
Set objFSO = CreateObject("Scripting.FileSystemObject")
if objFSO.FolderExists("c:\scripts") = true then
If objFSO.FileExists("C:\scripts\medlemskaber.txt") Then
Set objFolder = objFSO.GetFile("C:\scripts\medlemskaber.txt")
Set objTextFile = objFSO.OpenTextFile("c:\scripts\medlemskaber.txt", ForAppending, True)
call txtfilen()
else
Set objTextFile = objFSO.CreateTextFile("c:\scripts\medlemskaber.txt", True)
Set objFolder = objFSO.GetFile("C:\scripts\medlemskaber.txt")
call txtfilen()
End If
else
objFSO.CreateFolder("c:\scripts")
If objFSO.FileExists("C:\scripts\users.txt") Then
Set objFolder = objFSO.GetFile("C:\scripts\users.txt")
Set objTextFile = objFSO.OpenTextFile("c:\scripts\medlemskaber.txt", ForAppending, True)
call txtfilen()
Else
Set objTextFile = objFSO.CreateTextFile("c:\scripts\medlemskaber.txt", True)
Set objFolder = objFSO.GetFile("C:\scripts\medlemskaber.txt")
call txtfilen()
End If
end if
End If
Function txtfilen()
objTextFile.WriteLine("Følgende brugere er medlem af " & StrGroup & ":" & StrL & strL)
objTextFile.WriteLine(StrList & vbTab & strUsername & vbCRLF)
objTextFile.WriteLine"-----------"
objTextFile.WriteLine()
objTextFile.Close
end Function
' ---
' Converts a NT username in the current NetBIOS domains to the corresponding distinguished name
Function GetUserDN(strUserNTName)
' Declare variables
Dim objRootDSE, strDNSDomain, objTrans, strNetBIOSDomain, strUserDN
' Create objects
Set objTrans = CreateObject("NameTranslate")
Set objRootDSE = GetObject("
LDAP://RootDSE")
' Retrieve DNS domain name
strDNSDomain = objRootDSE.Get("defaultNamingContext")
' Convert DNS domain name to NetBIOS domain name
objTrans.Init 3, strDNSDomain
objTrans.Set 1, strDNSDomain
strNetBIOSDomain = objTrans.Get(3)
' Remove trailing backslash
If Right(strNetBIOSDomain, 1) = "\" Then strNetBIOSDomain = Left(strNetBIOSDomain, Len(strNetBIOSDomain) - 1)
' Enable internal errorhandling and clear errorlog
On Error Resume Next
Err.Clear
' Convert NT username to Distinguished Name
objTrans.Init 1, strNetBIOSDomain
objTrans.Set 3, strNetBIOSDomain & "\" & strUserNTName
' Check for error
If Err.Number <> 0 Then
GetUserDN = ""
End If
' Clear errorlog and disable internal errorhandling
Err.Clear
On Error GoTo 0
strUserDN = objTrans.Get(1)
' If the returned distinguished name doesn't contain a common name (CN), then the user doesn't exist
If InStr(strUserDN, "CN") > 0 Then
' Return distinguished name of the user
GetUserDN = strUserDN
Else
' Return empty string
GetUserDN = ""
End If
End Function