Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Configuration Manager kunt u door de gebruiker gedefinieerde statusberichten op de siteserver lezen door een query uit te voeren op de SMS-provider.
Door de gebruiker gedefinieerde statusberichten lezen
Een verbinding met de SMS-provider instellen. Zie Basisprincipes van SMS-provider voor meer informatie.
Voer een query uit op de provider voor de sms-exemplaren
_StatusMessagedie u wilt gebruiken. Haal als onderdeel van de query de invoegtekenreekswaarden op uitSMS_SMS_StatMsgInStringsen de kenmerkwaarde vanSMS_StatMsgAttributes.
Voorbeeld
In het volgende voorbeeld worden statusberichten voor foutberichten gelezen voor het voorbeeld dat is gemaakt in How to Report User-Defined Status Messages Using WMI (Statusberichten rapporteren met behulp van WMI). Zorg ervoor dat de MyPackageID waarden en MyApplication in de query in beide voorbeelden overeenkomen.
Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.
Sub ReadErrorStatusMesage(connection)
Dim queryWQL
Dim message
Dim messageSet
Dim statusMessage
Dim insertionString
Dim attributes
queryWQL = "SELECT b.Component, b.MachineName, b.MessageType, b.MessageID, " & _
" c.InsStrValue, d.AttributeValue " & _
"FROM SMS_StatusMessage b " & _
" JOIN SMS_StatMsgInsStrings c ON b.RecordID = c.RecordID " & _
" JOIN SMS_StatMsgAttributes d ON c.RecordID = d.RecordID " & _
"WHERE b.Component = 'MyApplication' " & _
"AND d.AttributeID = 400 " & _
"AND d.AttributeValue = 'MyPackageID' "
Set messageSet = connection.ExecQuery(queryWQL)
For Each message in messageSet
' Get the message objects.
statusMessage = message.Properties_.Item("b")
insertionString = message.Properties_.Item("c")
attributes = message.Properties_.Item("d")
' Display the message details.
WScript.Echo "Message: " + insertionString.Properties_.Item("insstrvalue")
WScript.Echo "Component: " + statusMessage.Properties_.Item("Component")
WScript.Echo "Computer: " + statusMessage.Properties_.Item("MachineName")
WScript.Echo "MessageID: " + Cstr(statusMessage.Properties_.Item("MessageID"))
WScript.Echo attributes.Properties_.Item("attributevalue")
WScript.Echo
Next
End Sub
public void ReadErrorStatusMessage(WqlConnectionManager connection)
{
try
{
string queryWQL = "SELECT b.Component, b.MachineName, " +
" b.MessageType, b.MessageID, " +
" c.insstrvalue, d.attributevalue " +
"FROM SMS_StatusMessage b " +
" JOIN SMS_StatMsgInsStrings c ON b.RecordID = c.RecordID " +
" JOIN SMS_StatMsgAttributes d ON c.RecordID = d.RecordID " +
"WHERE b.Component = \"MyApplication\" " +
"AND d.AttributeID = 400 " +
"AND d.AttributeValue = \"MyPackageID\" ";
IResultObject query = connection.QueryProcessor.ExecuteQuery(queryWQL);
foreach (IResultObject o in query)
{
ManagementBaseObject statusMessage = (ManagementBaseObject)o["b"].ObjectValue;
ManagementBaseObject insertionString = (ManagementBaseObject)o["c"].ObjectValue;
ManagementBaseObject attributes = (ManagementBaseObject)o["d"].ObjectValue;
Console.WriteLine("Message: " + insertionString["insstrvalue"]);
Console.WriteLine("Component: " + statusMessage["Component"]);
Console.WriteLine("Computer: " + statusMessage["MachineName"]);
Console.WriteLine("MessageID: " + statusMessage["MessageID"]);
Console.WriteLine(attributes["attributevalue"]);
Console.WriteLine();
}
}
catch (SmsException ex)
{
Console.WriteLine("Failed to read status message: ", ex.Message);
throw;
}
}
De voorbeeldmethode heeft de volgende parameters:
| Parameter | Type | Beschrijving |
|---|---|---|
connection |
- Beheerd: WqlConnectionManager - VBScript: SWbemServices |
Een geldige verbinding met de SMS-provider. Zie Basisprincipes van SMS-provider voor meer informatie. |
De code compileren
Voor dit C#-voorbeeld is het volgende vereist:
Naamruimten
Systeem
System.Collections.Generic
System.Text
System.Management
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Vergadering
adminui.wqlqueryengine
microsoft.configurationmanagement.managementprovider
System.Management
Robuust programmeren
Zie Over Configuration Manager fouten voor meer informatie over foutafhandeling.
.NET Framework Beveiliging
Zie Configuration Manager op rollen gebaseerd beheer voor meer informatie over het beveiligen van Configuration Manager toepassingen.
Zie ook
Over Configuration Manager statusberichten StatusberichtenRapporteren User-Defined statusberichtenSMS_StatusMessage server WMI-klasseStatusberichten verwijderen