SQL/SMS : Zusammenfassung von Softwareverteilungen ermitteln

Immer wieder möchte man mal eine kurze Übersicht über laufende Softwareverteilungen und deren Status haben. Wir arbeiten mit SMS, also ist das ja eigentlich kein Problem: In die SMS Datenbank eingeklinkt und beim Durchsehen der Tabellen und Views klappt man erstmal vom Stuhl. Wie soll man da was finden, wenn man nicht täglich damit zu tun hat?! Hier erstmal eine kurze Übersicht wo man die wichtigsten Sachen in den SMS Tabellen findet, diese Übersicht habe ich vor langer Zeit mal irgendwo im Netz gefunden und ein wenig erweitert:

Was Wo Spalte
Collection IDs dbo.v_FullCollectionMembership CollectionID
Computer Make dbo.v_GS_COMPUTER_SYSTEM Manufacturer0
Computer Make dbo.v_GS_COMPUTER_SYSTEM_PRODUCT Vendor0
Computer Make dbo.v_GS_BASEBOARD Manufacturer0
Computer Make dbo.v_GS_PC_BIOS Manufacturer0
Computer Model dbo.v_GS_COMPUTER_SYSTEM Model0
Computer Model dbo.v_GS_COMPUTER_SYSTEM_PRODUCT Name0
Computer Name dbo.v_R_System Netbios_Name0, Name0
Computer Name dbo.v_GS_COMPUTER_SYSTEM Name0
Computer Name dbo.v_RA_System_ResourceNames Resource_Name0
Computer Name dbo.v_GS_SYSTEM Name0
Computer Name dbo.v_GS_PROCESSOR SystemName0
Computer Name dbo.v_GS_MOTHERBOARD_DEVICE SystemName0
IP Addresses dbo.v_RA_System_IPAddresses IP_Addresses0
Last Bootup Time dbo.v_GS_OPERATING_SYSTEM LastBootupTime0
Last HW Inventory dbo.v_GS_WORKSTATION_STATUS LastHWScan
MAC Addresses dbo.v_RA_System_MACAddresses MAC_Addresses0
OS Install Date dbo.v_GS_OPERATING_SYSTEM InstallDate0
OS Name dbo.v_GS_OPERATING_SYSTEM Caption0
OS Name And Version dbo.v_R_System Operating_System_Name_and0
OS Version dbo.v_GS_OPERATING_SYSTEM Version0
OU dbo.v_RA_System_SystemOUName System_OU_Name0
Serial/Identifying Number dbo.v_GS_COMPUTER_SYSTEM_PRODUCT IdentifyingNumber0
Serial/Identifying Number dbo.v_GS_PC_BIOS SerialNumber0
Serial/Identifying Number dbo.v_GS_BASEBOARD SerialNumber0
Site Code dbo.v_RA_System_SMSAssignedSites SMS_Assigned_Sites0
User Name dbo.v_GS_COMPUTER_SYSTEM UserName0
User Name dbo.v_R_System User_Name0
User Name dbo.v_GS_SYSTEM_CONSOLE_USER SystemConsoleUser0
User Name dbo.v_GS_SYSTEM_CONSOLE_USAGE TopConsoleUser0
User Name dbo.v_LastLoggedOnUser USERID0

Zurück zur Aufgabe: Wie bekommen wir nun eine Zusammenfassung der Verteilungsstati? Nun, wir benötigen dazu drei Angaben: Die Advertisement ID, die ToDo Collection ID sowie die Installed Collection ID. Mitglieder der ToDo Collection sind alle Clients, die für die jeweilige Verteilung noch anstehen. In der Installed Collection stehen alle Rechner, bei denen die Verteilung schon durchgelaufen ist und SMS keinen Fehler festgestellt hat. Mit folgendem SQL Skript kann man dann die benötigten Zahlen ermitteln, als Collection IDs sollte man dann natürlich eigene angeben.

declare @AdvertisementId	varchar(8)
declare @TodoCollectionId	varchar(8)
declare @InstalledCollectionId	varchar(8) 

set @AdvertisementId		= ''
set @TodoCollectionId		= ''
set @InstalledCollectionId	= ''

select
	(select count(Name)
		from dbo.v_FullCollectionMembership
		where CollectionID = @InstalledCollectionId
	) 'Installed Clients',
	(select count(Name)
		from fthw9x8a.sms_rg1.dbo.v_FullCollectionMembership
		where CollectionID = @TodoCollectionId
	) 'ToDo Clients',
	(select count(Name)
		from dbo.v_fullcollectionmembership
		where collectionid in (@InstalledCollectionId,@TodoCollectionId)
	) 'Gesamtanzahl Clients',
	(select count(CAS.LastExecutionResult)
		from dbo.v_Advertisement ADV
			inner join dbo.v_ClientAdvertisementStatus CAS on ADV.AdvertisementID = CAS.AdvertisementID
		where CAS.LastExecutionResult is not null
			and collectionid in (@InstalledCollectionId,@TodoCollectionId)
	) 'Fehlerhafte Clients'

Und als Ergebnisse erhält man dann so etwas:

Installed Clients	ToDo Clients	Gesamtanzahl Clients	Fehlerhafte Clients
8783			29		8812			7

Damit kann man dann zum Beispiel weitere Berechnungen anstellen (z.B. Prozentwert der fehlerhaften Clients berechnen, oder auch ein Diagramm erstellen).

Kick it on dotnet-kicks.de

0 Response to “SQL/SMS : Zusammenfassung von Softwareverteilungen ermitteln”


  • No Comments

Leave a Reply