Hier mal ein Beispiel dafür:
Dim OldComputers As New ComputerTargetCollection
Dim LastValidContactDate As DateTime
Dim iUpdateServer As IUpdateServer
Dim AdminProxy As AdminProxy
'connect to the local server
AdminProxy = New AdminProxy
iUpdateServer = AdminProxy.GetUpdateServer()
NotContactedDays = 180
'Das Letzt mögliche Kontaktdatum festlegen
LastValidContactDate = DateTime.Now.Subtract(New TimeSpan(NotContactedDays, 0, 0, 0))
Console.WriteLine("LastValidContactDate: " & LastValidContactDate)
For Each computer As IComputerTarget In iUpdateServer.GetComputerTargets()
If DateTime.Compare(LastValidContactDate, computer.LastSyncTime) > 0 And DateTime.Compare(LastValidContactDate, computer.LastReportedStatusTime) > 0 Then
OldComputers.Add(computer)
End If
Next
'Wenn es keine Rechner gibt, wird abgebrochen
If OldComputers.Count = 0 Then
Console.WriteLine("Keine Computer gefunden)
Exit Sub
End If
'Computer anzeigen
For Each computer As IComputerTarget In OldComputers
Console.WriteLine(" {0}", computer.FullDomainName)
Next
Das Skript muss so natürlich auf dem WSUS Server selber laufen.
Du kannst es aber auch Remote starten, allerdings muss du das Skript dann mit den Berechtigungen aufrufen die du auch auf dem Server hast und folgende Zeile im Skript anpassen:
iUpdateServer = AdminProxy.GetUpdateServer(FQDNVomWsusServer,SSL,Port)
FQDNVomWsusServer = Wie der name schon sagt, den FQDN von deinem WSUS Server
SSL = True oder False (halt ob dein WSUS Server SSL verwendet oder nicht)
Port = 80,443,8531 oder welchen Port du auch immer verwendest
z.B.
iUpdateServer = AdminProxy.GetUpdateServer(FQDNVomWsusServer,True,8531)
PS: Code ist übrigens Visual Basic