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.
WMI kan worden gebruikt voor het beheren en openen van WMI-gegevens op externe computers. Externe verbindingen in WMI worden beïnvloed door de Windows Firewall-- en DCOM-instellingen. Gebruikersaccountbeheer (UAC) kan ook wijzigingen in bepaalde instellingen vereisen. Zodra uw instellingen juist zijn, is de aanroep naar een extern systeem echter vergelijkbaar met een lokale WMI-aanroep. U kunt er echter voor kiezen om het complexer te maken door verschillende referenties, alternatieve verificatieprotocollen en andere beveiligingsfuncties te gebruiken.
Een computer configureren voor een externe verbinding
Voordat u toegang hebt tot een extern systeem met WMI, moet u mogelijk enkele beveiligingsinstellingen controleren om te bevestigen dat u toegang hebt. Specifiek:
Windows bevat een aantal beveiligingsfuncties die de toegang tot scripts op externe systemen kunnen blokkeren. Daarom moet u mogelijk de Active Directory- en Windows Firewall-instellingen van uw systeem wijzigen voordat u een WMI-aanroep doet. Zie Een externe WMI-verbinding instellen en Problemen met een externe WMI-verbinding oplossenvoor meer informatie.
De juiste DCOM-instellingen moeten zijn ingeschakeld voor een externe verbinding om te kunnen werken. Als u DCOM-instellingen wijzigt, kunnen gebruikers met lage rechten toegang krijgen tot een computer voor een externe verbinding. Zie Een externe WMI-verbinding beveiligenvoor meer informatie.
Daarnaast kan het zijn dat er bepaalde omstandigheden zijn waarin u WMI wilt uitvoeren via een vaste poort. Hiervoor moet u ook uw instellingen wijzigen. Zie Een vaste poort instellen voor WMI-voor meer informatie.
Verbinding maken met een externe computer
Het hart van het verbinden met een extern systeem met WMI bestaat uit het controleren of u over de juiste machtigingen beschikt om toegang te krijgen tot het systeem en dat uw verbinding correct is geconfigureerd. Zodra u deze twee elementen hebt, is de verbinding zelf relatief eenvoudig. Als u bijvoorbeeld uw standaardbeveiligingsreferenties gebruikt, hebt u toegang tot WMI op een extern systeem met behulp van de volgende code:
-
Gebruik de parameter -ComputerName die gebruikelijk zijn voor de meeste WMI-cmdlets, zoals Get-WmiObject.
$strComputer = "Computer_B" $colSettings = Get-WmiObject Win32_OperatingSystem -ComputerName $strComputer -
Gebruik een moniker die de naam van het externe systeem in de aanroep bevat voor GetObject.
strComputer = "Computer_B" Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSettings = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") -
Gebruik voor de huidige versie van de beheerde WMI-interface (Microsoft.Management.Infrastructure) het CimSession--object om een verbinding met een externe host weer te geven.
using Microsoft.Management.Infrastructure; ... string Namespace = @"root\cimv2"; string OSQuery = "SELECT * FROM Win32_OperatingSystem"; CimSession mySession = CimSession.Create("Computer_B"); IEnumerable<CimInstance> queryInstance = mySession.QueryInstances(Namespace, "WQL", OSQuery); -
Gebruik voor de v1-versie van de beheerde WMI-interface (System.Management) het ManagementScope-object om een verbinding met een externe host aan te geven.
using System.Management; ... ManagementScope scope = new ManagementScope("\\\\Computer_B\\root\\cimv2"); scope.Connect(); ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); -
voorbeeld: WMI-gegevens ophalen van een externe computer (C++)
-
Gebruik de methode IWbemLocator::ConnectServer om de naam van de externe computer op te geven in de parameter strNetworkResourceResource.
hres = pLoc->ConnectServer( _bstr_t(L"\\\\COMPUTER_B\\root\\cimv2"), _bstr_t(useToken?NULL:pszName), // User name _bstr_t(useToken?NULL:pszPwd), // User password NULL, // Locale NULL, // Security flags _bstr_t(useNTLM?NULL:pszAuthority),// Authority NULL, // Context object &pSvc // IWbemServices proxy );
De vorige codevoorbeelden zijn waarschijnlijk de meest eenvoudige externe verbinding die u met WMI kunt uitvoeren. In de voorbeelden wordt uitgegaan van het volgende:
- U bent een beheerder op de externe computer. Vanwege gebruikersaccountbeheer, moet het account op het externe systeem een domeinaccount in de groep Administrators zijn. Zie Gebruikersaccountbeheer en WMI voor meer informatie.
- Het wachtwoord op uw huidige lokale computer is niet leeg. Dit is in feite een Windows-beveiligingsvereiste die u met een wachtwoord op uw systeem moet hebben aangemeld.
- Zowel uw lokale als externe computers bevinden zich binnen hetzelfde domein. Als u domeingrenzen moet overschrijden, moet u aanvullende informatie opgeven of een iets ander programmeermodel gebruiken.
- U gebruikt uw eigen account voor toegang tot de externe computer. Als u toegang probeert te krijgen tot een ander account, moet u aanvullende referenties opgeven. (Houd er rekening mee dat het lokaal proberen om toegang te krijgen tot WMI met andere referenties dan uw huidige account niet is toegestaan.)
- Op beide computers wordt IPv6 uitgevoerd. WMI ondersteunt verbindingen met computers met IPv6. Zowel uw lokale computer als Computer_B moeten echter IPv6 uitvoeren. Op beide computers kan ook IPv4 worden uitgevoerd. Zie IPv6- en IPv4-ondersteuning in WMIvoor meer informatie.
- Uw script hoeft niet te delegeren; met andere woorden, het hoeft geen toegang tot extra externe computers via de doelcomputer te krijgen. Zie Delegeren met WMI-voor meer informatie.
- U probeert een specifieke aanroep te maken in plaats van een extern proces te maken. Zie Processen op afstand maken met WMI-voor meer informatie.
Met deze beperkingen in gedachten, is een externe WMI-aanroep vergelijkbaar met een lokale WMI-aanroep. Het enige verschil is dat u de naam van het externe systeem moet opgeven. U kunt er echter voor kiezen om veel van deze functies te wijzigen: het gebruik van verschillende referenties of het routeren van uw oproep via een computer van derden of het openen van een ander domein.