Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Em Configuration Manager, você redefine o cache de inventário de hardware conectando-se ao namespace do agente de inventário e excluindo a instância de status de ação de inventário para inventário de hardware.
Para redefinir o cache de inventário de hardware
Conecte-se ao namespace do agente de inventário (root\ccm\invagt).
Exclua a instância de status de ação de inventário para inventário de hardware ({00000000-0000-0000-0000-000000000001}).
Exemplo
O método de exemplo a seguir mostra como redefinir o cache de inventário de hardware conectando-se ao namespace do agente de inventário e excluindo a instância de status de ação de inventário para inventário de hardware.
Para obter informações sobre como chamar o código de exemplo, consulte Como chamar um método de classe de objeto Configuration Manager usando o 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;
}
}
Compilando o código
Este exemplo de C# requer:
Namespaces
System.Management
Programação robusta
Para obter mais informações sobre o tratamento de erros, consulte Sobre erros de Configuration Manager.
Segurança do .NET Framework
Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.
Confira também
Configuration Manager Kit de Desenvolvimento de Software
Sobre Configuration Manager Inventário