albertminrich
Goto Top

Dsquery filtern nach Betriebssystem, nur aktive Konten, die in den letzten 90 Tagen aktiv waren?

Hallo,

ich will alle Windows 2003 Server, die nicht deaktiviert sind und die in den letzten 90 Tagen aktiv waren.

Das hab ich bis jetzt:
Alle Computerkonten, die länger als 90 Tage inaktive waren:
"dsquery computer -stalepwd 90 -name *"


Alle aktiven Windows 2003 Server.
dsquery * -filter "(&(objectClass=computer)(operatingSystemVersion=5.2*)(!userAccountControl:1.2.840.113556.1.4.803:=2))"


Kann man die kombinieren oder wie kann man das sonst lösen. Es dürfte auch eine Abfrage im dsa.msc sein.


Danke
Martin

Content-Key: 134511

Url: https://administrator.de/contentid/134511

Printed on: April 23, 2024 at 13:04 o'clock

Member: bastla
bastla Jan 27, 2010 at 15:46:45 (UTC)
Goto Top
Hallo AlbertMinrich!

Unter Verwendung von Temporärdateien ungetestet etwa so:
@echo off & setlocal
set "Active=D:\Active.txt"  

set "Inactive=%temp%Iinactive.txt"  
set "Servers=%temp%\Servers.txt"  

dsquery computer -stalepwd 90 -name *>"%Inactive%"  
dsquery * -filter "(&(objectClass=computer)(operatingSystemVersion=5.2*)(!userAccountControl:1.2.840.113556.1.4.803:=2))">"%Servers%"  
findstr /v /i /g:"%Inactive%" "%Servers%">"%Active%"  
Grüße
bastla
Member: Yusuf-Dikmenoglu
Yusuf-Dikmenoglu Jan 27, 2010 at 15:56:19 (UTC)
Goto Top
Servus,

versuche es mal mit diesem ungetesteten Befehl (alles in einer Zeile):

dsquery * -Filter "(&(&(objectCategory=Computer)(operatingSystem=Windows Server 2003)(!useraccountcontrol:1.2.840.113556.1.4.803:=2)(LastLogonTimeStamp<=129015642047040000)))"


Im Übrigen kannst du die Zeiten bzw. Large Integer Werte auf dieser Seite umrechnen lassen:

[Timestamp: Unix- und Microsoft Windows / Active Directory (LDAP)-Zeit umrechnen]
http://www.redhelp.de/de.php


Viele Grüße
/ > Yusuf Dikmenoglu
Member: AlbertMinrich
AlbertMinrich Jan 27, 2010 at 15:59:59 (UTC)
Goto Top
Danke, sowas in der Art hab ich auch grad gebastelt. Schöner wärs halt, man könnte das in den dsquery filter miteinbauen.

Über ein dsa.msc-Abfrage kann man die User ermitteln, deren Anmeldung länger als 90 Tage zuückliegt.
Leider wird dann im Feld Abfragezeichenfolge nur angezeigt:
"Die Abfrage ist gültig, wird aber hier nicht angezeigt, weil sie Werte enthält, die während ihrer Ausführung ausgerechnet werden müssen".

Wenn mann wüsste, wie diese Abfrage aussieht, könnte man sie evtl. in den dsquery-Filter miteinbauen und mit einem vorangestellten Ausrufezeichen (wie bei userAccountControl) "negieren", so dass halt Anmeldungen kürzer 90 Tage angezeigt werden.

Weiss da noch jemand was?

Gruß
Martin
Member: AlbertMinrich
AlbertMinrich Jan 27, 2010 at 16:04:59 (UTC)
Goto Top
Super, genau das hab ich gesucht.

Übrigens, wenn du dieser Yusuf bist
http://blog.dikmenoglu.de/
dann nochmal Danke für die Seite.

Da fällt mir noch was ein:
Gibt´s auch eine Möglichkeit, bei einer Abfrage auf Windows 2003 Server zu unterscheiden zwischen Standard und Enterprise?
Bei Windows 2000 zwischen Server und Professional.
Bei Windows NT (ja, immer noch) zwischen Server und Workstation.

Danke vielmals.
Martin
Member: Yusuf-Dikmenoglu
Yusuf-Dikmenoglu Jan 27, 2010 at 19:18:26 (UTC)
Goto Top
Zitat von @AlbertMinrich:
Übrigens, wenn du dieser Yusuf bist

Wie er leibt und lebt! face-wink

dann nochmal Danke für die Seite.

Freut mich zu hören. Zumindest weiß ich jetzt, dass mindestens einer (also du) die Seite kennt und liest. face-wink

Gibt´s auch eine Möglichkeit, bei einer Abfrage auf Windows 2003 Server zu unterscheiden zwischen Standard und Enterprise?

Zumindest nicht über eine "normale" AD-Abfrage wie z.B. mit dsquery. Denn unter Windows Server 2003 sind die Attribute:

- operatingSystem
- operatingSystemVersion

zwischen der Standard- und Enterprise-Version unter Windows Server 2003 identisch.


Bei Windows 2000 zwischen Server und Professional.

[LDAP:Yusufs.Directory.Blog/ - Den OS- und SP-Stand abfragen]
http://blog.dikmenoglu.de/Den+OS+Und+SPStand+Abfragen.aspx


Bei Windows NT (ja, immer noch) zwischen Server und Workstation.

Auhaa... doch noch NT. Das ist nun wirklich zu lange her. Aber das kannst du ganz einfach herausfinden.
Überprüfe in der MMC "AD-Benutzer und -Computer" in den Eigenschaften eines NT-Servers und einer NT-Workstation was im Reiter "Betriebssystem" in den Feldern
"Name" und "Version" steht. Hinter dem Feldnamen "Name" steckt das Attribut "operatingSystem" und hinter dem Feld
"Version" steckt das Attribut "operatingSystemVersion". Anschließend kannst du mit dem o.g. Link deinen Filter bauen.

[LDAP:
Yusufs.Directory.Blog/ - Die Active Directory-Attribute hinter den Feldnamen]
http://blog.dikmenoglu.de/Die+Active+DirectoryAttribute+Hinter+Den+Feld ...


Gruß, Yusuf
Member: AlbertMinrich
AlbertMinrich Jan 28, 2010 at 11:18:50 (UTC)
Goto Top
Bei NT ist alles NT "Windows NT" und 4.0.
Aber egal, da haben wir nur noch sehr wenige.

Danke nochmal und Gruß
Martin