Jump to content
Sign in to follow this  
ice.tigers

Skript zum ermitteln von XP SP1 Rechnern in Domäne

Recommended Posts

Hallo, ich möchte wissen, welche Rechner sich noch in meiner Domäne mit SP1 befinden. Ich habe mir schon eine dsquery Abfrage gebaut und eine Liste bekommen.

dsquery * domainroot -filter (objectCategory=Computer) -attr distinguishedName location operatingSystem operatingSystemVersion operatingSystemServicePack -limit 0 > C:dsquery.log

Leider sind da auch sehr viele Leichen drin, von Rechnern, die es schon gar nicht mehr gibt. Gibt es einen Parameter, der die letzte Änderung/logon berücksichtigt oder eine andere Abfrage/Skript?

Share this post


Link to post

Hallo ice.tigers,

 

leider kenne ich mich im Script nicht so gut aus. Aber vielleicht hilft dir das als Idee weiter: in der Ereignisanzeige - System wird das Starten des Eventlogs mit Datum und Zeit protokolliert. Ev. kannst du das abfragen.

Share this post


Link to post

hi,

Idee: du kannst dir in vbs eine kleine Funktion schreiben, die mit der Classe win32_pingstatus die Erreichbarkeit des Clients prüft. Jenachdem gibt die Funktion dann einen errorlevel 0 oder 1 an die Batch zurück. Anhand dessen kann man dann beliebig auswerten

Wenn das Thema bis dahin noch offen ist, schau ich's mir heute abend mal an. Es gibt aber sicher noch andere Lösungswege

 

cu

blub

Share this post


Link to post

Hallo blub,

ich habe meinen Befehl um das Attribut lastlogon ergäntzt. Man bekommt zwar einen Wert, der erst zum Datum umgerechnet werden muss, So habe ich mir im Moment beholfen.

Danke für deine Mühe!

Share this post


Link to post

hier mal eine etwas ausgearbeitetere Version, die sich per wmi under win32_operatingsystemclasse die Daten holt

---

On Error Resume Next

Set objDictionary = CreateObject("Scripting.Dictionary")

i = 0

Set objOU = GetObject("LDAP://ou=domain controllers, DC=test,dc=de")

objOU.Filter = Array("Computer")

For Each objComputer in objOU

objDictionary.Add i, objComputer.CN

i = i + 1

Next

output "Name","OSType","Version","Major","Minor"

 

For Each objItem in objDictionary

StrComputer = objDictionary.Item(objItem)

Set objWMIService = GetObject("winmgmts:" _

& "{impersonationLevel=impersonate}!\\" & strComputer& "\root\cimv2")

Set colProperties = objWMIService.ExecQuery _

("SELECT OSType, Version,ServicePackMajorVersion,ServicePackMajorVersion FROM Win32_operatingsystem")

for each strProperty in colproperties

output strComputer,strproperty.ostype,strproperty.version, _

strProperty.ServicePackMajorVersion,strProperty.ServicePackMajorVersion

next

Next

 

sub output(para1, para2, para3,para4,para5)

intPadding = 17 - Len(para1)

intPadding2 = 8 - Len(para2)

intPadding3=15 - Len(para3)

intPadding4=8 - Len(para4)

para1 = para1 & Space(intPadding)

para2 = para2 & Space(intPadding2)

para3= para3 & Space(intPadding3)

para4= para4 & Space(intPadding4)

Wscript.Echo para1 & para2 & para3 & para4 & para5

end Sub

--

was genau "Name","OSType","Version","Major","Minor" bedeuten, kann man hier nachlesen

Win32_OperatingSystem

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...