Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Script für Exchange damit User nicht im Adressbuch erscheinen

Mitglied: 14634

14634 (Level 1)

24.09.2013 um 10:19 Uhr, 1759 Aufrufe, 21 Kommentare, 1 Danke

Hallo,

ich will am Exchange (2003) bei einigen Usern das Häkchen "nicht in Exchange Adresslisten anzeigen" setzten. Ich würde das gerne über ein Script machen da ich es bei ca. 80 Usern machen muss.

Hat hier evtl. jemand ein fertig Script zur Hand?

Vielen Dank für euer hilfe
Mitglied: colinardo
24.09.2013, aktualisiert um 11:10 Uhr
Hallo GI05e,
für den Server 2003 sollte folgendes VBS-Script funktionieren: (in Zeile 1 noch den Namen des Containers (DN) angeben indem sich die User befinden)

01.
StartNode = "OU=SBSUsers,OU=Users,ou=MyBusiness,dc=domain,dc=local"
02.

03.
Set objCommand = CreateObject("ADODB.Command")
04.
Set objConnection = CreateObject("ADODB.Connection")
05.
objConnection.Provider = "ADsDSOObject"
06.
objConnection.Open "Active Directory Provider"
07.
objCommand.ActiveConnection = objConnection
08.
SearchScope = "subtree"
09.

10.
FilterString = "(&(objectCategory=person)(objectClass=user)" _
11.
        & "(proxyAddresses=*)" _
12.
        & "(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"
13.

14.
Attributes = "adspath"
15.
LDAPQuery = "<LDAP://" & StartNode & ">;" & FilterString & ";" _
16.
        & Attributes & ";" & SearchScope
17.

18.
objCommand.CommandText = LDAPQuery
19.
objCommand.Properties("Page Size") = 1000
20.
objCommand.Properties("Timeout") = 30
21.
objCommand.Properties("Cache Results") = False
22.

23.
Set objRecordSet = objCommand.Execute
24.

25.
If not objRecordSet.eof then 
26.
   objRecordSet.MoveFirst
27.

28.
   Do Until objRecordSet.EOF
29.
      strUserPath = objRecordSet.Fields("ADsPath").Value
30.
      Set objUser = GetObject(strUserPath)
31.
      objUser.MSExchHideFromAddressLists = True
32.
      objUser.SetInfo
33.
      objRecordSet.MoveNext
34.
   Loop
35.
End If
36.

37.
objRecordset.Close
38.
objConnection.Close
39.
wscript.echo "Fertig"
Grüße Uwe
Bitte warten ..
Mitglied: 14634
27.09.2013 um 10:57 Uhr
Hallo,


wow danke, hier werden nur die User angefasst die deaktiviert sind oder?
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 11:02 Uhr
Zitat von 14634:
wow danke, hier werden nur die User angefasst die deaktiviert sind oder?
egal ob das Häkchen drin ist oder nicht es wird bei allen Usern die du angibst nochmals gesetzt. Wenn du das nicht willst kann man es leicht erweitern das es abfragt ob das Häkchen schon gesetzt ist(Zeile 31-35 if-Abfrage):
01.
StartNode = "OU=SBSUsers,OU=Users,ou=MyBusiness,dc=domain,dc=local"
02.

03.
Set objCommand = CreateObject("ADODB.Command")
04.
Set objConnection = CreateObject("ADODB.Connection")
05.
objConnection.Provider = "ADsDSOObject"
06.
objConnection.Open "Active Directory Provider"
07.
objCommand.ActiveConnection = objConnection
08.
SearchScope = "subtree"
09.

10.
FilterString = "(&(objectCategory=person)(objectClass=user)" _
11.
        & "(proxyAddresses=*)" _
12.
        & "(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"
13.

14.
Attributes = "adspath"
15.
LDAPQuery = "<LDAP://" & StartNode & ">;" & FilterString & ";" _
16.
        & Attributes & ";" & SearchScope
17.

18.
objCommand.CommandText = LDAPQuery
19.
objCommand.Properties("Page Size") = 1000
20.
objCommand.Properties("Timeout") = 30
21.
objCommand.Properties("Cache Results") = False
22.

23.
Set objRecordSet = objCommand.Execute
24.

25.
If not objRecordSet.eof then 
26.
   objRecordSet.MoveFirst
27.

28.
   Do Until objRecordSet.EOF
29.
      strUserPath = objRecordSet.Fields("ADsPath").Value
30.
      Set objUser = GetObject(strUserPath)
31.
      If objUser.MSExchHideFromAddressLists = False then
32.
         objUser.MSExchHideFromAddressLists = True
33.
         objUser.SetInfo
34.
         objRecordSet.MoveNext
35.
      End if
36.
   Loop
37.
End If
38.

39.
objRecordset.Close
40.
objConnection.Close
41.
wscript.echo "Fertig"
Grüße Uwe
Bitte warten ..
Mitglied: 14634
27.09.2013 um 11:50 Uhr
hey, das ist mein problem, wir haben aktive und deaktiviere User in der gleichen OU drin, über das Script soll aber nur bei den deaktivierten Usern der
Haken gesetzt werden.
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 11:59 Uhr
Ach so, da hatten wir uns missverstanden. Das ist kein Problem. Dafür musst du nur die Zeile 12 des Codes so ändern:
01.
& "(userAccountControl:1.2.840.113556.1.4.803:=2))" 
quasi nur das Ausrufezeichen(negation) und zwei Klammern weg machen.

Grüße Uwe
Bitte warten ..
Mitglied: 14634
27.09.2013 um 12:03 Uhr
VIelen DAnk, werde es gleich ausprobieren
Bitte warten ..
Mitglied: 14634
27.09.2013 um 12:08 Uhr
hi, Hi, bei mir kommt leider folgende fehlermeldung:

Zeile 23
Zeichen 1
Der übermittelte Verzeichnispfad ist ungültig
Code 80040E37
Quelle: Acrive Directory
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 12:12 Uhr
Dann hast du nicht wie erwähnt in Zeile 1 des Scripts den Distinguished Name worin deine User liegen an deine Umgebung korrekt angepasst ...
Bitte warten ..
Mitglied: 14634
27.09.2013, aktualisiert um 12:36 Uhr
HI, habe es so geändert:

StartNode = "ou=Migration_Appsense_XP,ou="Benutzer und Computer (Win7)",dc=xxxx,dc=org"

alles was unter Migration_Appsense_XP ist, will ich nehmen, muss ich da noch cn=*.* hinterlegen?
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 12:37 Uhr
Zitat von 14634:
StartNode = ",ou=Migration_Appsense_XP,ou="Benutzer und Computer (Win7)",dc=xxxx,dc=org"
alles was unter Migration_Appsense_XP ist, will ich nehmen, muss ich da noch cn=*.* hinterlegen?
war fast richtig, (das Komma am Anfang, und die Anführungszeichen um die eine OU müssen noch weg.)
So sollte es gehen
StartNode = "ou=Migration_Appsense_XP,ou=Benutzer und Computer (Win7),dc=xxxx,dc=org"
Er nimmt dann alle Objekte innerhalb der OU Migration_Appsense_XP
Bitte warten ..
Mitglied: 14634
27.09.2013, aktualisiert um 12:40 Uhr
hi,

hmmm dann kommt folgender Fehler:

Zeile: 23
Fehler: Die Tabelle ist nicht vorhanden
Code: 80040e37


spielt es ne rolle das der Exchange ein 2003 ist und die Domäne eine 2008 R2?
Bitte warten ..
Mitglied: colinardo
27.09.2013 um 12:43 Uhr
Zitat von 14634:
spielt es ne rolle das der Exchange ein 2003 ist und die Domäne eine 2008 R2?
Und ob das eine Rolle spielt !!!!!!!!!!!!!!!!!!!!!!
Das Script ist wie gesagt nur auf einem Server 2003 lauffähig ...
Krame gerade noch ein anderes raus...please wait
Bitte warten ..
Mitglied: 14634
27.09.2013 um 12:44 Uhr
ich glaube ich habe den Fehler gefunden habe eine ou zu viel.

man man
Bitte warten ..
Mitglied: 14634
27.09.2013, aktualisiert um 12:46 Uhr
also das Script sagt mir "Fertig, wenn ich aber auf den deaktivierten User schaue, dann ist leider kein Haken drin.

edit: das Script führe ich ja auf dem 2003 Exchange Server aus.
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 13:20 Uhr
Was für Betriebssystemversion hast du denn jetzt endgültig ?? Exchange Server 2003 ist nicht das Betriebssystem des Servers !!!
Wenn es ein Server 2008 R2 ist dann habe ich noch ein Powershell-Script für einen EX2003:
(hier auch in Zeile ein dein DN deiner User angeben)
01.
$OU = "cn=Users,dc=domain,dc=local"
02.
$objSearch = New-Object System.DirectoryServices.DirectorySearcher 
03.
$objSearch.PageSize = 15000 
04.
$objSearch.Filter = "(&(objectCategory=User)(objectCategory=Person)(userAccountControl:1.2.840.113556.1.4.803:=2))"
05.
$objSearch.SearchRoot = "LDAP://$OU" 
06.
$allUsers = $objSearch.FindAll() 
07.
foreach ($user in $allUsers) { 
08.
	$o = $user.GetDirectoryEntry()
09.
	$o.MSExchHideFromAddressLists = $true
10.
	$o.CommitChanges()
11.
}
Richtig angewendet funktionieren beide Scripte, ansonsten machst du grundlegend was falsch...

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 13:21 Uhr
WICHTIG, nachdem du die Scripte ausgeführt hast musst du die Anzeige in der MMC aktualisieren bzw. die Objekte neu laden, sonst haben diese noch die alten Infos in den Eigenschaften !!
Bitte warten ..
Mitglied: 14634
27.09.2013 um 14:08 Uhr
Hi, es ist ein MS 2003 R2 Server.
Bitte warten ..
Mitglied: colinardo
27.09.2013, aktualisiert um 14:20 Uhr
Dann lösch mal die Zeilen 31 und 35 des Codes
also anstatt
01.
 If objUser.MSExchHideFromAddressLists = False then
02.
         objUser.MSExchHideFromAddressLists = True
03.
         objUser.SetInfo
04.
         objRecordSet.MoveNext
05.
End if
sollte es danach so aussehen:
01.
         objUser.MSExchHideFromAddressLists = True
02.
         objUser.SetInfo
03.
         objRecordSet.MoveNext
könnte sein das das Attribut der User noch nicht im AD gesetzt sind.
und danach bitte ein Refresh deiner MMC
Bitte warten ..
Mitglied: 14634
30.09.2013, aktualisiert um 16:31 Uhr
hi, vielen Dank für deine Hilfe,

das Script schaut jetzt wie folgt aus:

StartNode = "ou=Migration_Appsense_XP,dc=xxxx,dc=org"

Set objCommand = CreateObject("ADODB.Command")
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
objCommand.ActiveConnection = objConnection
SearchScope = "subtree"

FilterString = "(&(objectCategory=person)(objectClass=user)" _
& "(proxyAddresses=*)" _
& "(userAccountControl:1.2.840.113556.1.4.803:=2))"

Attributes = "adspath"
LDAPQuery = "<LDAP://" & StartNode & ">;" & FilterString & ";" _
& Attributes & ";" & SearchScope

objCommand.CommandText = LDAPQuery
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Timeout") = 30
objCommand.Properties("Cache Results") = False

Set objRecordSet = objCommand.Execute

If not objRecordSet.eof then
objRecordSet.MoveFirst

Do Until objRecordSet.EOF
strUserPath = objRecordSet.Fields("ADsPath").Value
Set objUser = GetObject(strUserPath)
objUser.MSExchHideFromAddressLists = True
objUser.SetInfo
objRecordSet.MoveNext
Loop
End If

objRecordset.Close
objConnection.Close
wscript.echo "Fertig"


er läuft ohne Fehler durch, leider erstellt er den Haken nicht
Refresh der MMChabe ich gemacht
Bitte warten ..
Mitglied: colinardo
30.09.2013 um 17:59 Uhr
hier läuft das alles problemlos... was du noch probieren könntest wäre diese Zeile
FilterString = "(&(objectCategory=person)(objectClass=user)" _
& "(proxyAddresses=*)" _
& "(userAccountControl:1.2.840.113556.1.4.803:=2))" 
durch diese zu ersetzen
FilterString = "(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))"
und führe das Script mal direkt auf dem DC aus, wie gesagt hier geht es auf einem Server 2003 R2 und auf einem Server 2008 R2 ohne Probleme, es muss also bei Dir etwas nicht stimmen...

Grüße Uwe
Bitte warten ..
Mitglied: 14634
01.10.2013 um 09:32 Uhr
Hi,

super, vielen Dank es hat geklappt
Bitte warten ..
Ähnliche Inhalte
MikroTik RouterOS
Script - exportieren Hotspot user
gelöst Frage von sebasschaMikroTik RouterOS4 Kommentare

Guten Morgen, ich würde mir gerne ein Script basteln, dass die aktuellen User in eine Textdatei schreibt und intern ...

Batch & Shell

PowerShell Script CITRIX disabled User Accounts

Frage von TheOnlyOneBatch & Shell7 Kommentare

Hallo zusammen, ich habe mir eine Augabe erstellt die meine aktuellen Fähigkeiten von Powershell übersteigt :) Wir verwenden CITRIX ...

Google Android

Adressbuch fürs Handy

Frage von gardenzwergGoogle Android5 Kommentare

Hallo Forum Wir möchten ein Adressbuch für alle Handy Benutzer in der Firma zurzeit nutzen wir einen Google Account ...

VB for Applications

Vorgesetzter aus Adressbuch

gelöst Frage von 94451VB for Applications17 Kommentare

Hallo ihr pros ;) ich habe ein kleines VBA, mit dem ich auf das Adressbuch zugreife um dort von ...

Neue Wissensbeiträge
Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 16 StundenViren und Trojaner2 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Windows 7
Win7 Update scheitert KB4512506
Information von infowars vor 1 TagWindows 7

Falls jemand auch das Problem hat mit dem: Monatliches Sicherheitsqualitätsrollup für Windows 7 für x64-basierte-Systeme (KB4512506) Das scheint mit ...

Humor (lol)
Wenn hacken nach hinten los geht
Information von em-pie vor 2 TagenHumor (lol)4 Kommentare

Moin, weil heute Freitag ist, nachfolgender kurzer Artikel zum schmunzeln:) l+f: NULL ist ein notorischer Falschparker

Windows Update
Windows: August 2019 Patchday-Probleme
Information von kgborn vor 2 TagenWindows Update3 Kommentare

Ich kippe mal einige kurze Informationen hier rein - vielleicht hilft es Betroffenen. Die August 2019-Updates für Windows haben ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
Leiser stromsparender Debian EXT4 NAS-Heimserver: ECC-RAM wie betreiben?
Frage von Laser12SAN, NAS, DAS26 Kommentare

Moin, aktuell stelle ich einen Rechner zusammen, den mein Computerhändler bauen wird. Nach Jahrzehnten mit Desktops und zwei Notebooks ...

Windows Server
Läuft Microsoft Server SQL2008R2 unter W2016, obwohl nicht supportet?
Frage von LochkartenstanzerWindows Server13 Kommentare

Moin Kollegen, Kurze Frage: Läuft Microsoft Server SQL2008R2 unter W2016, obwohl nicht supportet? Da ich i.d.R. nicht für die ...

Netzwerkgrundlagen
Proxmox auf dedicated Root Server mit nur einer IP nutzen
gelöst Frage von ndreier933Netzwerkgrundlagen12 Kommentare

Hallo Community, ich bin neu hier im Forum und weiß nicht ob ich das Thema richtg zugeordnet habe?Zusätzlich habe ...

Windows Server
Name einer neuen AD Gesamtstruktur ? immer .local?
gelöst Frage von Motte990Windows Server11 Kommentare

Hallo ihr Lieben Ich bin gerade dabei auf einem Windows Server 2019 Core oder Desktop eine neu Active Directory ...