Belirli Bir Ölçütle Eşleşen Güncelleştirmeler Numaralandırma
Bu konu, bir sorgu oluşturup sorguyu çalıştırmak için sınıfının yöntemini kullanarak ExecuteQuery
Configuration Manager'daki belirli ölçütlere uyan yazılım güncelleştirmelerinin QueryProcessor
nasıl numaralandırıldığını açıklar.
Belirli bir ölçütle eşleşen güncelleştirmeleri listelemek için
SMS Sağlayıcısı ile bağlantı kurun.
Bir değişkene belirli bir sorgu atayın.
değişkeni yöntemine
ExecuteQuery
geçirin.
Örnek
Aşağıdaki örnek yöntem, yöntemine bir sorgu ExecuteQuery
geçirerek belirli ölçütlerle eşleşen güncelleştirmeleri numaralandırır.
Aşağıda dört örnek sorgu gösterilmiştir:
Önceden indirilmiş yazılım güncelleştirmelerini görüntüleyen bir sorgu.
Zaten dağıtılmış yazılım güncelleştirmelerini görüntüleyen bir sorgu.
Belirli bir önem derecesi değerine sahip yazılım güncelleştirmelerini görüntüleyen sorgu.
Belirli bir bilgi bankası makalesiyle ilişkili yazılım güncelleştirme CI_IDs görüntüleyen sorgu.
Yazılım güncelleştirmesi ile ilişkili özellikler hakkında ayrıntılı bilgi SMS_SoftwareUpdate sınıfı başvuru malzemesindedir.
Örnek kodu çağırma hakkında bilgi için bkz. Configuration Manager Kod Parçacıklarını Çağırma.
Sub EnumerateUpdatesMatchingCriteria(connection)
' This query displays all updates that have already been downloaded.
Query1 = "Select * from SMS_SoftwareUpdate where IsContentProvisioned=1"
' Run query.
Set ListOfResources1 = connection.ExecQuery(Query1, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Update Content Is Downloaded."
Wscript.Echo "Query: " & Query1
Wscript.Echo "--------------------------------------------------------"
For Each Resource1 In ListOfResources1
Wscript.Echo "Name: " & Resource1.LocalizedDisplayName
Wscript.Echo "ArticleID: " & Resource1.ArticleID
Wscript.Echo "CI_ID: " & Resource1.CI_ID
Wscript.Echo "Severity: " & Resource1.SeverityName
Next
' This query displays the updates that have already been deployed.
Query2 = "Select * from SMS_SoftwareUpdate where IsDeployed=1"
' Run query.
Set ListOfResources2 = connection.ExecQuery(Query2, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Updates Have Already Been Deployed."
Wscript.Echo "Query: " & Query2
Wscript.Echo "--------------------------------------------------------"
For Each Resource2 In ListOfResources2
Wscript.Echo "Name: " & Resource2.LocalizedDisplayName
Wscript.Echo "ArticleID: " & Resource2.ArticleID
Wscript.Echo "CI_ID: " & Resource2.CI_ID
Wscript.Echo "Severity: " & Resource2.SeverityName
Next
' This query displays the updates that have a particular severity value.
Query3 = "Select * from SMS_SoftwareUpdate where SeverityName='Critical'"
' Run query.
Set ListOfResources3 = connection.ExecQuery(Query3, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Updates That Have A Particular Severity Title."
Wscript.Echo "Query: " & Query3
Wscript.Echo "--------------------------------------------------------"
For Each Resource3 In ListOfResources3
Wscript.Echo "Name: " & Resource3.LocalizedDisplayName
Wscript.Echo "ArticleID: " & Resource3.ArticleID
Wscript.Echo "CI_ID: " & Resource3.CI_ID
Wscript.Echo "Severity: " & Resource3.SeverityName
Next
' This query displays software updates associated with a specific knowledge base artile.
Query4 = "SELECT * FROM SMS_SoftwareUpdate WHERE ArticleID='832880'"
' Run query.
Set ListOfResources4 = connection.ExecQuery(Query4, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)
' The query returns a collection that needs to be enumerated.
Wscript.Echo " "
Wscript.Echo "Updates For A Specific KB Article."
Wscript.Echo "Query: " & Query4
Wscript.Echo "--------------------------------------------------------"
For Each Resource4 In ListOfResources4
Wscript.Echo "Name: " & Resource4.LocalizedDisplayName
Wscript.Echo "ArticleID: " & Resource4.ArticleID
Wscript.Echo "CI_ID: " & Resource4.CI_ID
Wscript.Echo "Severity: " & Resource4.SeverityName
Next
End Sub
public void EnumerateUpdatesMatchingCriteria(WqlConnectionManager connection)
{
// Note: Query strings or variables could easily be passed in to complete the strings, but the query string
// must be contructed and variables resolved prior to passing the string to the ExecuteQuery method.
try
{
// This query displays all updates that have already been downloaded.
string query1 = "Select * from SMS_SoftwareUpdate where IsContentProvisioned=1";
// Run query.
IResultObject listOfResources1 = connection.QueryProcessor.ExecuteQuery(query1);
// The query returns a collection that needs to be enumerated.
Console.WriteLine(" ");
Console.WriteLine("Update Content Is Downloaded.");
Console.WriteLine("Query: " + query1);
Console.WriteLine("--------------------------------------------------------");
foreach (IResultObject resource1 in listOfResources1)
{
Console.WriteLine();
Console.WriteLine("Name: " + resource1["LocalizedDisplayName"].StringValue);
Console.WriteLine("Article ID: " + resource1["ArticleID"].StringValue);
Console.WriteLine("CI_ID: " + resource1["CI_ID"].IntegerValue);
Console.WriteLine("Severity " + resource1["SeverityName"].StringValue);
}
// This query displays the updates that have already been deployed.
string query2 = "Select * from SMS_SoftwareUpdate where IsDeployed=1";
// Run query.
IResultObject listOfResources2 = connection.QueryProcessor.ExecuteQuery(query2);
// The query returns a collection that needs to be enumerated.
Console.WriteLine(" ");
Console.WriteLine("Updates Have Already Been Deployed.");
Console.WriteLine("Assignments Query: " + query2);
Console.WriteLine("--------------------------------------------------------");
foreach (IResultObject resource2 in listOfResources2)
{
Console.WriteLine();
Console.WriteLine("Name: " + resource2["LocalizedDisplayName"].StringValue);
Console.WriteLine("Article ID: " + resource2["ArticleID"].StringValue);
Console.WriteLine("CI_ID: " + resource2["CI_ID"].IntegerValue);
Console.WriteLine("Severity: " + resource2["SeverityName"].StringValue);
}
// This query displays the updates that have a particular severity value.
string query3 = "Select * from SMS_SoftwareUpdate where SeverityName='Critical'";
// Run query.
IResultObject listOfResources3 = connection.QueryProcessor.ExecuteQuery(query3);
// The query returns a collection that needs to be enumerated.
Console.WriteLine(" ");
Console.WriteLine("Updates That Have A Particular Severity Title.");
Console.WriteLine("Query: " + query3);
Console.WriteLine("--------------------------------------------------------");
foreach (IResultObject resource3 in listOfResources3)
{
Console.WriteLine();
Console.WriteLine("Name: " + resource3["LocalizedDisplayName"].StringValue);
Console.WriteLine("Article ID: " + resource3["ArticleID"].StringValue);
Console.WriteLine("CI_ID: " + resource3["CI_ID"].IntegerValue);
Console.WriteLine("Severity: " + resource3["SeverityName"].StringValue);
}
// This query displays software updates associated with a specific KB.
string query4 = "SELECT * FROM SMS_SoftwareUpdate WHERE ArticleID='832880'";
// Run query.
IResultObject listOfResources4 = connection.QueryProcessor.ExecuteQuery(query4);
// The query returns a collection that needs to be enumerated.
Console.WriteLine(" ");
Console.WriteLine("Updates For A Specific KB Article.");
Console.WriteLine("Query: " + query4);
Console.WriteLine("--------------------------------------------------------");
foreach (IResultObject resource4 in listOfResources4)
{
Console.WriteLine();
Console.WriteLine("Name: " + resource4["LocalizedDisplayName"].StringValue);
Console.WriteLine("Article ID: " + resource4["ArticleID"].StringValue);
Console.WriteLine("CI_ID: " + resource4["CI_ID"].IntegerValue);
Console.WriteLine("Severity: " + resource4["SeverityName"].StringValue);
}
}
catch (SmsException ex)
{
Console.WriteLine("Failed to run queries. Error: " + ex.Message);
throw;
}
}
Örnek yöntem aşağıdaki parametrelere sahiptir:
Parametre | Tür | Açıklama |
---|---|---|
connection |
-Yönetilen: WqlConnectionManager - VBScript: SWbemServices |
SMS Sağlayıcısına geçerli bir bağlantı. |
Kodu Derleme
Bu C# örneği şunları gerektirir:
Ad alanları
Sistem
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Derleme
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
Sağlam Programlama
Hata işleme hakkında daha fazla bilgi için bkz. Configuration Manager Hataları Hakkında.
.NET Framework Güvenliği
Configuration Manager uygulamalarının güvenliğini sağlama hakkında daha fazla bilgi için bkz. rol tabanlı yönetim Configuration Manager.