Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

AD UserScript

Frage Microsoft Windows Server

Mitglied: lafiney

lafiney (Level 1) - Jetzt verbinden

15.08.2011, aktualisiert 15:12 Uhr, 2696 Aufrufe, 5 Kommentare

Hallo Zusammen,

ich habe eine Script zum Auslesen der Userdaten (in der AD) in eine Exceltabelle geschrieben.
Ich habe mir das ganze Script ohne große Kenntnisse zu haben zusammengestellt und kommen
momentan nicht mehr weiter

Folgende Schritte werden im Script abgearbeitet:

1. Über einen ComboBox wird die netsprechende OU abgefragt, wo sich die User befinden.
2. Daraus ergibt sich der Pfad der OU.
3. Danach wird in der Exceltabelle überprüft, ob der User schon existiert (SamAccountName), wenn JA, dann wird dieser User übersprungen.
3.1 in Zukunft soll es eineAbfrage geben, ob die Daten aktualisiert werden sollen
4. Wenn die Userdaten noch nicht in der Tabelle existieren, werden diese wie folgt ausgelesen.

Die ist ein Ausschnitt aus dem Script mit den Variablen:

01.
 
02.
Sub UserGroup()   
03.
 
04.
Dim oDomain 
05.
Dim strDomain 
06.
Dim strUser 
07.
Dim intRow As Integer 
08.
Dim strOU 
09.
Dim rng As Range 
10.
 
11.
Const intStartRow = 5 
12.
intRow = intStartRow 
13.
 
14.
... 
15.
 
16.
 
17.
For Each strUser In oDomain 
18.
 
19.
 
20.
Set rng = ActiveSheet.Range("A1:A65000").Find(strUser.SamAccountName) 
21.
If rng Is Nothing Then 
22.
  GoTo run 
23.
  Else 
24.
  Cells(rng.Row, 1).Select 
25.
  MsgBox (strUser.SamAccountName & " existiert") 
26.
End If 
27.
 
28.
GoTo NextUser 
29.
 
30.
 
31.
run: 
32.
 
33.
  On Error GoTo Fehler 
34.
   
35.
  intRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 
36.
  intRow = intRow + 1 
37.
   
38.
  Cells(intRow, 1).Select 
39.
  Cells(intRow, 1).FormulaR1C1 = strUser.SamAccountName 
40.
 
41.
  Cells(intRow, 2).Select 
42.
  Cells(intRow, 2).FormulaR1C1 = strUser.GivenName 
43.
 
44.
  Cells(intRow, 3).Select 
45.
  Cells(intRow, 3).FormulaR1C1 = strUser.lastname 
46.
 
47.
  Cells(intRow, 4).Select 
48.
  Cells(intRow, 4).FormulaR1C1 = strUser.department 
49.
 
50.
  Cells(intRow, 5).Select 
51.
  Cells(intRow, 5).FormulaR1C1 = strUser.objectCategory 
52.
   
53.
  Cells(intRow, 6).Select 
54.
  Cells(intRow, 6).FormulaR1C1 = strUser.UserWorkstations 
55.
   
56.
  Cells(intRow, 7).Select 
57.
  Cells(intRow, 7).FormulaR1C1 = strUser.EmailAddress 
58.
 
Jetzt habe ich das Problem, dass ich bei einigen Usern die Anmeldung nur an bestimmten Computern erlaubt habe und andere User
sich an allen Computern anmelden dürfen.

Bsp.: Ein User kann sich an 3 Clients anmelden, aber nur der 1. wird in die Zelle geschrieben
Wie kann man alle Einträge aus der AD lesen?
Wie kann man die Eigenschaft auslesen, dass sich der User an Allen Computern anmelden kann?

Für Antworten und Vorschläge bedanke ich mich schon im Voraus!
Mitglied: Logan000
15.08.2011 um 13:40 Uhr
Moin Moin

1. Wenn du in Zukunft Code Postest sei doch bitte so gut und verwende die Code Tags aus der Formatierungshilfe.
Das erhöht die Übersichtlichkeit doch erheblich.

2. Ich bin nicht ganz sicher was "strUser" bei Dir für ein Objekt ist (den Teil hast du leider weggelassen), aber das Property das die Liste der erlaubten Workstations enthält heißt "UserWorkstations". und ist leer wenn der User sich an allen PCs anmelden darf bzw. enthält eine kommagetrennte Liste mit PC Namen.

Ich hoffe das hilft dir weiter.

Gruß L.
Bitte warten ..
Mitglied: bastla
15.08.2011 um 14:29 Uhr
... und ganz nebenbei: Die Zeilen der Art
Cells(intRow, 1).Select
sind unnötig und
Cells(intRow, 1).FormulaR1C1 = strUser.SamAccountName
lässt sich kürzer und lesbarer
Cells(intRow, "A").Value = strUser.SamAccountName
schreiben (und sogar ".Value" könntest Du, da Default, weglassen) ...

Grüße
bastla

P.S.: Logan meinte die "Code"-Formatierung ...
Bitte warten ..
Mitglied: lafiney
15.08.2011 um 14:44 Uhr
@Logan000 & @bastla,

vielen Dank für die schnellen Antworten.

Ich werde Eure Anmerkungen testen und ein Ergebnis posten.
Wie schon beschrieben steckt mein Wissen, was das Scripting betrifft, in den Kinderschuhen, eröffnet aber eine Menge Möglichkeiten.
Bitte warten ..
Mitglied: lafiney
15.08.2011 um 15:35 Uhr
Ich habe nun die Formatierung angepasst und den Code etwas ausführlicher hinzugefügt.

Die Property "UserWorkstations" war genau der richtige Hinweis.

Jetzt kann ich die Daten auswerten und in einer 2. Tabelle eine Matrix aufbauen.
Die Optimierung des Codes werde ich in Ruhe angehen.

Danke!!!
Grüße E.
Bitte warten ..
Mitglied: Logan000
16.08.2011 um 08:29 Uhr
Moin Moin

Freut mich, das wir dir helfen konnten.
Sei doch so gut und setzte den Beitrag auf erledigt.

Gruß L.
Bitte warten ..
Ähnliche Inhalte
Windows Server
AD Überwachung nach unterschiedlichen Ereignissen (3)

Frage von WinLiCLI zum Thema Windows Server ...

Windows Server
Fehler Vertrauensstellung im AD (17)

Frage von thomas-99 zum Thema Windows Server ...

Samba
Samba AD V 4.3.11-Ubuntu (Frage zu Best-Practice) (6)

Frage von Belephor zum Thema Samba ...

Microsoft
Server 2012 ad auf server 2012 r2 migrieren (10)

Frage von thomasreischer zum Thema Microsoft ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...