Kategorien
Windows Server

Erstellen von gespeicherten Abfragen

Hier einige Beispiele für gespeicherte Abfragen in „Active Directory Benutzer und Computer“

Finde alle Computer, die ein BDC unter NT 4.0 sind 

(&(objectCategory=computer)(operatingSystemVersion=4*)(userAccountControl:1.2.840.113556.1.4.803:=8192))

Finde alle Gruppen, die eine Beschreibung haben 

(objCategory=group)(description=*) 

Finde alle Computer, die keine Beschreibung haben 
(objectCategory=computer)(!description=*) 
Finde alle Gruppen, die mit ITE oder GEM beginnen 
(objectCategory=group)(|(cn=ITE*)(cn=GEM*)) 
Finde alle Objekte, bei denen „Verkauf“ als Abteilung, Beschreibung oder Firma ist 
(|(department=Sales)(company=Sales)(description=Verkauf))
 
Finde alle Benutzer, die nach dem 01.08.2004 erstellt wurden 

(objectCategory=user)(whenCreated>=20040801000000.0Z) 

Finde alle Benutzer ausser „Peter“ 

(objectCategory=user)(!cn=peter*)

Finde alle Benutzer, die „beinnahe“ gesperrt sind 

(objectCategory=user)(badPwdCount>=2) 

Finde alle Benutzer, die deaktiviert sind 

(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2)) 

Finde alle Benutzer, die in der Gruppe Helpdesk sind 

(objectCategory=user)(memberOf=CN=Helpdesk,OU=IT-Abteilung,DC=kloep,DC=IT) 

Finde alle Benutzer, die eine eMail Adresse haben (unabhängig von Exchange) 

(objectClass=user)(mail=*) 

Finde alle Benutzer, deren eMail Attribute gesetzt sind (email aktiviert) 

(objectClass=user)(email=*) 

Finde alle Benutzer, die ihr Passwort seit dem 05.02.2004 nicht mehr geändert haben 

(&(objectCategory=person)(objectClass=user)(pwdLastSet<=127204308000000000)) 

Finde alle Benutzer, die sich noch nie angemeldet haben 

(&(objectCategory=person)(objectClass=user))(|(lastLogon=0)(!(lastLogon=*))) 

Finde alle Benutzer, die bei der nächsten Anmeldung ihr Passwort ändern müssen 

(objectCategory=user)(msNPAllowDialin=TRUE) 

Finde alle Benutzer, deren Passwort niemals abläuft 
(objectcategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536) 
Finde alle Benutzer, die sich mit SmartCard anmelden müssen 

(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=262144)) 

Finde alle Benutzer, die eine permanente Mail-Weiterleitung im Active Directory aktiviert haben 

(objectCategory=person)(objectClass=user)(altRecipient=*) 

Finde alle Benutzer, die einen Aladding Key im TMS zugewiesen haben 

(objectCategory=person)(objectClass=user)(akstmstokens=*) 

Bemerkungen:

„&“ bedeutet UND
„|“ bedeutet ODER
„!“ bedeutet NICHT
„*“ bedeutet BELIEBIGE ZEICHEN
„>=“ bedeutet GRÖSSER ODER GLEICH ALS

Skript, um ein Datum in das entsprechende Format umzurechnen:

‚ DateToInteger8.vbs
‚ VBScript program demonstrating how to convert a datetime value to
‚ the corresponding Integer8 (64-bit) value. The Integer8 value is the
‚ number of 100-nanosecond intervals since 12:00 AM January 1, 1601,
‚ in Coordinated Universal Time (UTC). The conversion is only accurate
‚ to the nearest second, so the Integer8 value will always end in at
‚ least 7 zeros.

‚ ———————————————————————-
‚ Copyright (c) 2004 Richard L. Mueller
‚ Hilltop Lab web site – http://www.rlmueller.net
‚ Version 1.0 – June 11, 2004

‚ You have a royalty-free right to use, modify, reproduce, and
‚ distribute this script file in any way you find useful, provided that
‚ you agree that the copyright owner above has no warranty, obligations,
‚ or liability for such use.

Option Explicit

Dim dtmDateValue, dtmAdjusted, lngSeconds, str64Bit
Dim objShell, lngBiasKey, lngBias, k

If Wscript.Arguments.Count <> 1 Then
  Wscript.Echo „Required argument <DateTime> missing“
  Wscript.Echo „For example:“
  Wscript.Echo „“
  Wscript.Echo „cscript DateToInteger8.vbs „“2/5/2004 4:58:58 PM“““
  Wscript.Echo „“
  Wscript.Echo „If the date/time value has spaces, enclose in quotes“
  Wscript.Quit
End If

dtmDateValue = CDate(Wscript.Arguments(0))

‚ Obtain local Time Zone bias from machine registry.
Set objShell = CreateObject(„Wscript.Shell“)
lngBiasKey = objShell.RegRead(„HKLM\System\CurrentControlSet\Control\“ _
  & „TimeZoneInformation\ActiveTimeBias“)
If UCase(TypeName(lngBiasKey)) = „LONG“ Then
  lngBias = lngBiasKey
ElseIf UCase(TypeName(lngBiasKey)) = „VARIANT()“ Then
  lngBias = 0
  For k = 0 To UBound(lngBiasKey)
    lngBias = lngBias + (lngBiasKey(k) * 256^k)
  Next
End If

‚ Convert datetime value to UTC.
dtmAdjusted = DateAdd(„n“, lngBias, dtmDateValue)

‚ Find number of seconds since 1/1/1601.
lngSeconds = DateDiff(„s“, #1/1/1601#, dtmAdjusted)

‚ Convert the number of seconds to a string
‚ and convert to 100-nanosecond intervals.
str64Bit = CStr(lngSeconds) & „0000000“
Wscript.Echo „Integer8 value: “ & str64Bit