Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Configuration Manager setzen Sie den Hardwareinventurcache zurück, indem Sie eine Verbindung mit dem Bestands-Agent-Namespace herstellen und die Bestandsaktionsstatusinstanz für die Hardwareinventur löschen.
So setzen Sie den Hardwareinventurcache zurück
Stellen Sie eine Verbindung mit dem Bestands-Agent-Namespace (root\ccm\invagt) her.
Löschen Sie die Bestandsaktionsstatusinstanz für die Hardwareinventur ({00000000-0000-0000-0000-000000000001}).
Beispiel
Die folgende Beispielmethode zeigt, wie Sie den Hardwareinventurcache zurücksetzen, indem Sie eine Verbindung mit dem Bestands-Agent-Namespace herstellen und die Bestandsaktionsstatusinstanz für die Hardwareinventur löschen.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen einer Configuration Manager-Objektklassenmethode mithilfe von WMI.
Sub ResetHardwareInventoryCache()
' Get a connection to the "root\ccm\invagt" namespace.
Dim locator
Set locator = CreateObject("WbemScripting.SWbemLocator")
Dim services
Set services = locator.ConnectServer( , "root\ccm\invagt")
' Delete the specified InventoryActionStatus instance.
services.Delete "InventoryActionStatus.InventoryActionID='{00000000-0000-0000-0000-000000000001}'"
' Display message.
wscript.echo "Reset Hardware Inventory cache."
End Sub
// How to Reset the Hardware Inventory Cache
public void ResetHardwareInventoryCache()
{
try
{
// Define the scope (namespace).
ManagementScope inventoryAgentScope = new ManagementScope(@"root\ccm\invagt");
// Load the class that you want to work with.
ManagementClass inventoryClass = new ManagementClass(inventoryAgentScope.Path.Path, "InventoryActionStatus", null);
// Query the class for the InventoryActionID object (create query, create searcher object, execute query).
ObjectQuery query = new ObjectQuery("SELECT * FROM InventoryActionStatus WHERE InventoryActionID = '{00000000-0000-0000-0000-000000000001}'");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(inventoryAgentScope, query);
ManagementObjectCollection queryResults = searcher.Get();
// Enumerate the collection to get to the result (there should only be one item returned from the query).
foreach (ManagementObject result in queryResults)
{
// Display message and delete the object.
Console.WriteLine("Resetting Hardware Inventory cache.");
result.Delete();
}
}
catch (System.Management.ManagementException ex)
{
Console.WriteLine("Failed to run action. Error: " + ex.Message);
throw;
}
}
Kompilieren des Codes
Für dieses C#-Beispiel ist Folgendes erforderlich:
Namespaces
System.Management
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
Configuration Manager Software Development Kit
Informationen zu Configuration Manager Inventory