henkiebeej
Gebruiker
- Lid geworden
- 8 jul 2011
- Berichten
- 224
Goedemiddag,
Ik heb een vraag. Ik heb onderstaand script gevonden en aangepast.
Met onderstaand script wordt een export gemaakt van elke groep met de daar bijbehorende members binnen het domein.
Daar waar ik het domein in moet vullen geef ik het pad aan naar de OU die ik wil exporteren (OU=Distributiegroepen,OU=Groepen,OU=Locatie A,DC=DOMEIN,DC=LOCAL).
Ik weet nog niet goed hoe ik dit mooier/beter kan maken.
Ik maak er een CSV-bestand van. Zodra ik deze open of importeer binnen Excel krijg ik eerst de distributiegroepnaam te zien, gelijk daaraan vast de achternaam van de gebruiker. In een nieuwe kolom staat dan de voornaam. Dit wil ik graag goed gescheiden hebben. Éen kolom voor de distributiegroepnaam en één kolom voor de naam van de gebruiker.
Als ik er een .txt-bestand van maak zie ik het volgende: Distributiegroep Sales Broek\, Piet van den
In een CSV bestand ziet het er als volgt uit:
Het lijkt er dus op dat de comma (,) goed zijn werk doet en de tekst naar een volgende kolom brengt maar waar de slash (\) wegkomt?? En hoe ik dit aanpas???
Heeft iemand van jullie een idee hoe ik dit netjes kan scheiden?
Alvast heel erg bedankt voor het lezen. :thumb:
Ik heb een vraag. Ik heb onderstaand script gevonden en aangepast.
Met onderstaand script wordt een export gemaakt van elke groep met de daar bijbehorende members binnen het domein.
Daar waar ik het domein in moet vullen geef ik het pad aan naar de OU die ik wil exporteren (OU=Distributiegroepen,OU=Groepen,OU=Locatie A,DC=DOMEIN,DC=LOCAL).
Ik weet nog niet goed hoe ik dit mooier/beter kan maken.
Ik maak er een CSV-bestand van. Zodra ik deze open of importeer binnen Excel krijg ik eerst de distributiegroepnaam te zien, gelijk daaraan vast de achternaam van de gebruiker. In een nieuwe kolom staat dan de voornaam. Dit wil ik graag goed gescheiden hebben. Éen kolom voor de distributiegroepnaam en één kolom voor de naam van de gebruiker.
Als ik er een .txt-bestand van maak zie ik het volgende: Distributiegroep Sales Broek\, Piet van den
In een CSV bestand ziet het er als volgt uit:

Het lijkt er dus op dat de comma (,) goed zijn werk doet en de tekst naar een volgende kolom brengt maar waar de slash (\) wegkomt?? En hoe ik dit aanpas???
Heeft iemand van jullie een idee hoe ik dit netjes kan scheiden?
Code:
' *****************************************************************************
' * List All Groups in the Domain and
' * List All Members of each Group
' *
' * Output to a text file on the user's desktop in the format:
' * group name <tab> type <tab> member name <tab> type
' * Prompt for text file name.
' * Aangepast door Hendrik, november 2013
' *****************************************************************************
' *****************************************************************************
' Variables
' *****************************************************************************
Const MY_DOMAIN = "DC=DOMEIN,DC=LOCAL"
' *****************************************************************************
' Start Main
' *****************************************************************************
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Const ADS_GROUP_TYPE_GLOBAL_GROUP = &h2
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = &h8
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D
Const MYPROMPT = "Geef het exportbestand een naam (bijv. groep.txt of groep.csv):"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
' *****************************************************************************
' Setup the output file
' *****************************************************************************
If UCase( Right( WScript.FullName, 12 ) ) = "\CSCRIPT.EXE" Then
WScript.StdOut.Write MYPROMPT & " "
strMyFileName = WScript.StdIn.ReadLine
Else
strMyFileName = InputBox( MYPROMPT )
End If
if strMyFileName = "" then
wscript.quit
end if
Set WshShell = CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("PROCESS")
strMyFileName = WshSysEnv("USERPROFILE") & "\Desktop\" & strMyFileName
Set WshSysEnv = nothing
Set WshShell = nothing
if objFSO.FileExists(strMyFileName) then
'objFSO.DeleteFile(strMyFileName)
wscript.echo "Bestandsnaam bestaat al!"
wscript.quit
end if
' *****************************************************************************
' Get a recordset of groups in AD
' *****************************************************************************
Set objMyOutput = objFSO.OpenTextFile(strMyFileName, ForWriting, True)
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, Name FROM 'LDAP://" & MY_DOMAIN & "' WHERE objectCategory='group'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
' *****************************************************************************
' For each Group, Get group properties
' *****************************************************************************
Do Until objRecordSet.EOF
Set objGroup = GetObject(objRecordSet.Fields("ADsPath").Value)
strGroupName = objRecordSet.Fields("Name").Value
If objGroup.GroupType AND ADS_GROUP_TYPE_LOCAL_GROUP Then
strGroupDesc = "Domain local "
ElseIf objGroup.GroupType AND ADS_GROUP_TYPE_GLOBAL_GROUP Then
strGroupDesc = "Global "
ElseIf objGroup.GroupType AND ADS_GROUP_TYPE_UNIVERSAL_GROUP Then
strGroupDesc = "Universal "
Else
strGroupDesc = "Unknown "
End If
If objGroup.GroupType AND ADS_GROUP_TYPE_SECURITY_ENABLED Then
strGroupDesc = strGroupDesc & "Security group"
Else
strGroupDesc = strGroupDesc & "Distribution group"
End If
' *****************************************************************************
' Check if there are members
' *****************************************************************************
err.clear
arrMemberOf = objGroup.GetEx("Member")
If Err.Number = E_ADS_PROPERTY_NOT_FOUND then
' *****************************************************************************
' Write a line to the outputfile with group properties and no members
' *****************************************************************************
objMyOutput.WriteLine(strGroupName & "GÉÉN" & "GÉÉN")
Else
' *****************************************************************************
' For each group member, get member properties
' *****************************************************************************
For Each strMemberOf in arrMemberOf
Set objMember = GetObject("LDAP://" & strMemberOf)
strMemberName = right (objMember.name,len(objMember.Name)-3)
' *****************************************************************************
' Write a line to the outputfile with group and member properties
' *****************************************************************************
objMyOutput.WriteLine(strGroupName & vbtab & strMemberName)
set objMember = nothing
Next
End If
objRecordSet.MoveNext
Set objGroup = nothing
Loop
objMyOutput.close
wscript.echo "Klaar met exporteren!"
Alvast heel erg bedankt voor het lezen. :thumb: