per VBScript MailAttribute aus den UserAccounts entfernen


sehr verwirrender ArtikelNaja, ganz OKbrauchbar für Checker...guter Artikelsehr guter Artikel - Danke

Es war einmal ein Exchange – der dann abgedreht wurde – und die User wurden dann auf Gmail umgesiedelt.

Das lief prima – bis die User auf den Hosted Exchange von OFFICE365 migriert werden sollten… (und es ja onPrime keinen Exchange mehr gab)…

Das folgende Script hat diese Einträge für alle User einer bestimmten OU entfernt – seither klappts mit der Migration wie am Schnürchen…
Als ExchangeAttributeDelete.vbs speichern und direkt am Domänencontroller starten (nach Anpassung an die eigene Domain!)

On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2

Const ADS_PROPERTY_APPEND = 3
Const ADS_PROPERTY_DELETE = 4
Const ADS_PROPERTY_CLEAR = 1 

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 legacyExchangeDN, name, distinguishedName, sAmAccountname, proxyaddresses FROM 'LDAP://OU=lehrer,OU=Benutzer,DC=gymnasium,DC=at' WHERE objectCategory='user'"

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

Do Until objRecordSet.EOF

    'Wscript.Echo objRecordSet.Fields("distinguishedName").Value
	if len(objRecordSet.Fields("legacyExchangeDN").Value)>= 1  THEN
	Wscript.Echo objRecordSet.Fields("sAmAccountname").Value & " -- " & objRecordSet.Fields("Name").Value

	'# falls man das Script nur für einen User testen möchte:  (ACHTUNG: zweites END IF unten einkommentieren)
	'if objRecordSet.Fields("name").Value = "WUT" then
	'Wscript.Echo objRecordSet.Fields("name").Value

	Set objUser = GetObject("LDAP://" & objRecordSet.Fields("distinguishedName").Value)

	Wscript.Echo objRecordSet.Fields("legacyExchangeDN").Value
	wscript.echo len(objRecordSet.Fields("legacyExchangeDN").Value)

			objUser.PutEx ADS_PROPERTY_CLEAR, "msExchHomeServerName", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "legacyExchangeDN", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "homeMDB", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "homeMTA", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "mDBUseDefaults", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "msExchALObjectVersion", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "msExchMailboxGuid", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "msExchMailboxSecurityDescriptor", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "msExchPoliciesIncluded", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "msExchUserAccountControl", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "msNPAllowDialin", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "ShowInAddressBook", 0
			objUser.SetInfo

			objUser.PutEx ADS_PROPERTY_CLEAR, "textEncodedORAddress", 0
			objUser.SetInfo

			wscript.Echo "erfolgreiche geloescht!" & vbcrlf

	'end if
	end if

    objRecordSet.MoveNext

Loop

This entry was posted in Active Directory, Azure, Exchange, Office 365, Scripts, VBScript. Bookmark the permalink.

Hinterlasse eine Antwort