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

If-Bedingung wenn Vergleich stimmt erfüllen

Frage Entwicklung VB for Applications

Mitglied: JoshuaTree

JoshuaTree (Level 1) - Jetzt verbinden

24.09.2008, aktualisiert 29.09.2008, 4558 Aufrufe, 8 Kommentare

Hallo,
brauche mal ein tritt, habe mir folgendes Script zusammengebastelt.
Ich möchte jeden User aus dem AD rausfiltern in OUs und UnterOUs der das useraccountflag 66050 also disabled hat.
Dazu habe ich eine IF-Schleife mit eingebunden die soll nochmal jedes Userobjekt auf dieses Flag hin prüfen und anschließend mir in ein csv schreiben.
Es passiert aber nichts ausser das der Rechner zu 100% ausgelastet ist und die WScript.exe mit dem Taskmanager abgeschossen werden muss..
Nehme ich diese If-Schleife raus funktioniert es einwandfrei.

Was mache ich falsch?






Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set OutPutFile = FileSystem.CreateTextFile(".\logged-user.csv", True)

OutPutFile.WriteLine "Name;DN;SamAccountName;Disabled"



Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"

Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection

objCommand.CommandText = "<LDAP://ou=blabla,dc=testdomain,dc=de>;(objectCategory=user);distinguishedName,name,samaccountname,userAccountControl;subtree"

Set objRecordSet = objCommand.Execute




While Not objRecordSet.EOF

If (objRecordSet.Fields("userAccountControl") = "66050") then

outputFile.WriteLine objRecordSet.Fields("Name") & ";" & "[" & objRecordSet.Fields("distinguishedName") & "]" & ";" &_
objRecordSet.Fields("Samaccountname") & ";" & objRecordSet.Fields("userAccountControl")
objRecordSet.MoveNext
end if
Wend

Mitglied: Iwan
24.09.2008 um 14:57 Uhr
hallo,

ich empfehle dir, das Adminpack zu installieren und dann die Abfrage über DSQUERY zu machen oder soll es unbedingt VBS sein?
Bitte warten ..
Mitglied: Logan000
24.09.2008 um 15:00 Uhr
Moin Moin

So Wie ich das sehe liegt der Fehler hier:
01.
If (objRecordSet.Fields("userAccountControl") = "66050") then 
02.
   outputFile.WriteLine objRecordSet.Fields("Name") & ";" & "[" & objRecordSet.Field("distinguishedName") & "]" & ";" & objRecordSet.Fields("Samaccountname") & ";" &  objRecordSet.Fields("userAccountControl")  
03.
   objRecordSet.MoveNext 
04.
end if
Dein Recordet "moved" nur weiter wenn die If bedingung erfüllt ist. Ist diese aber nicht erfüllt bleibt dein Skript immer auf dem gleichen Datensatz stehen und deine While Bedingung wird nie erfüllt.

Gruß L.
Bitte warten ..
Mitglied: JoshuaTree
24.09.2008 um 16:32 Uhr
@Logan

hast du ne Idee wie ich das Besser machen kann?
Bitte warten ..
Mitglied: Biber
24.09.2008 um 17:08 Uhr
Moin JoshuaTree,

Du solltest das Ende des Schnipsels so abändern.
01.
.... 
02.
While Not objRecordSet.EOF 
03.
             If (objRecordSet.Fields("userAccountControl") = "66050") then 
04.
                 ... 
05.
                      outputFile.WriteLine ..... 
06.
                       EXIT ' wenn es nur um diesen einen Satz "66050" geht.... 
07.
             end if 
08.
            objRecordSet.MoveNext 
09.
Wend
Das "exit" muss nicht sein... aber das .MoveNext muss definitiv aus der if..end if-Bedingung raus.

Grüße
Biber
Bitte warten ..
Mitglied: JoshuaTree
26.09.2008 um 16:56 Uhr
Wie kann ich aus dem Script raus das Ergebnis direkt mit UNC-Pfad wegschreiben.
Also nach \\server\Freigabe\logs am besten noch mit Datum als dateinamen. Geht so einfach nicht habe ich gerade fest gestellt.
Bitte warten ..
Mitglied: bastla
27.09.2008 um 11:27 Uhr
Hallo JoshuaTree!

Geht so einfach nicht habe ich gerade fest gestellt.
Wo liegt das Problem? Den Dateinamen kannst Du etwa so erzeugen:
01.
Datei = Right(Date,4) & "-" & Mid(Date,4,2) & "-" & Left(Date,2)
oder, etwas unabhängiger von den Systemeinstellungen:
01.
Datei = CStr(Year(Date)) & "-" & Right("0" & CStr(Month(Date)), 2) & "-" & Right("0" & CStr(Day(Date)), 2)
Grüße
bastla
Bitte warten ..
Mitglied: JoshuaTree
29.09.2008 um 09:32 Uhr
Hallo,

vielen Dank, das hat direkt geklappt.

Was nicht funktioniert hat ist das gleich im richtign UNC-Pfad zu speichern.

Ich habe es so versucht

Set OutPutFile = FileSystem.CreateTextFile("\\Netzwerk-UNC-pfad\ & Datei", True)
Das ist wohl falsch !?
Bitte warten ..
Mitglied: bastla
29.09.2008 um 09:47 Uhr
Hallo JoshuaTree!

Eher so:
01.
Set OutPutFile = FileSystem.CreateTextFile("\\Netzwerk-UNC-pfad\" & Datei, True)
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell - if Bedingung
gelöst Frage von pps4535Batch & Shell4 Kommentare

Moin, moin, ich dachte ich mal einen neuen Thread auf, damit es geordnet abläuft :-) Hier habe ich schon ...

C und C++
C if bedingung
gelöst Frage von MarabuntaC und C++1 Kommentar

Hallo, ich kann zwar kein C, habe aber trotzdem eine Frage: Was wird in der "if bedingung" alles geprüft ...

Microsoft Office
EXCEL IF Bedingung in VBA erstellen
Frage von user2k14Microsoft Office8 Kommentare

Hallo Zusammen, Wie kann ich mehrere If Bedingungen in VBA abbilden und diese dann durch einen Button in Excel ...

Microsoft Office
IF Bedingungen in EXCEL (VBA) erstellen
gelöst Frage von user2k14Microsoft Office9 Kommentare

Hallo Leute, ich möchte gerne in einer Spalte alle Zellen überprüfen, ob ein bestimmter Text dort enthalten ist, wenn ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 17 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 19 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...