SCCM DB’sini Kullanarak Envanter Bilgisine Nasıl Ulaşabilirim?
Kurumunuzun envanter bilgisine SCCM üzerinde bulunan veritabanı yardımıyla ulaşabilirsiniz.
İçindekiler
Windows PowerShell ile SCCM makinesi üzerindeki veritabanına sorgu atabiliriz. Hangi bilgisayarlarda hangi uygulamalar yüklü ise bu bilgilere buradan ulaşmamız mümkün.
Veritabanına ulaşıldıktan sonra bir veritabancı bunu uygulama ile daha güzel hale getirebilir.
SCCM DB Bağlantısı İçin 3 Temel Hazırlık
Sorguları çalıştırmadan önce SCCM Database’inde yapılması gerekenler aşağıda belirtilmiştir.
- sorgu adında kullanıcı hesabı oluşturulur.
- SCCM Database’inde bu kullanıcıya public ve datareader yetkisi verilir.
- Kullanıcının başka bir makineden SCCM database’inde sorgu çalıştırabilmesi için SQL1 makinesine 1433 portu ile erişebilmesi gerekir. Bunun için network izinlerinin ayarlanması gerekir.
SCCM DB’si Kullanarak Yazılım Envanteri Sorgulama
Fikir olması açısından kodlar aşağıdaki gibi olmalıdır. Bu kodlarla bilgisayarlardaki yazılım envanterlerine ulaşabiliriz
$SQLServer = “SQL1” # SQLServer veya sql instances adı yazılır
$SQLDBName = “SCCMDB” #SQLServerda bulunan SCCM Database’inin adı yazılır
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = “Server = $SQLServer; Database = $SQLDBName; User ID= sorgu; Password= sorgu kullanıcısının şifresi”
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = “SELECT FCM.Name As ‘Computer Name’, ARP.displayname0 As ‘Product Name’, Version0 As ‘Product Version’
FROM v_Add_Remove_Programs As ARP
JOIN v_FullCollectionMembership As FCM on ARP.ResourceID=FCM.ResourceID
WHERE FCM.CollectionID = ‘SMS00001′”
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$Dbınventory=$dataset.Tables[0]
$Dbınventory


SCCM DB’si Kullanarak Bilgisayar Envanteri Sorgulama
Aşağıdaki sorgu ile de bilgisayarların model envanterine ulaşabiliriz.
“SELECT
SYS.Name0 AS Name,
OS.Caption0 AS OS,
CS.Manufacturer0 AS Manufacturer,
CS.Model0 AS Model,
CPU.Name0 AS CPUName
FROM
v_R_System AS SYS
JOIN v_GS_OPERATING_SYSTEM OS ON OS.ResourceID = SYS.ResourceID
JOIN v_GS_COMPUTER_SYSTEM CS ON CS.ResourceID = SYS.ResourceID
JOIN v_GS_PROCESSOR CPU ON CPU.ResourceID = SYS.ResourceID”