Festlegen der Sicherheit des Clientanwendungsprozesses
Clientanwendungen, die WMI-Schnittstellen aufrufen, können die Sicherheitsebenen ihrer Prozesse steuern. Alle WMI-Anwendungen greifen über COM auf WMI zu, und Sie können die COM-Funktion CoInitializeSecurity aufrufen, um die Sicherheit für Ihre Prozesse zu erhöhen. Anwendungen, die asynchrone Aufrufe an WMI ausführen, und Anwendungen, die sich als Ereignisverbraucher registrieren, legen Sicherheitsebenen für den Aufruf von WMI fest.
Wenn Sie CoInitializeSecuritynicht explizit aufrufen, ruft COM dies implizit mit Werten aus der Registrierung auf. Allerdings verfügen die Registrierungswerte möglicherweise über niedrigere Einstellungen für Identitätswechsel und Authentifizierung, die nicht die für WMI erforderliche Sicherheit bieten. Weitere Informationen finden Sie unter Festlegen der Standardprozesssicherheitsebene mithilfe von C++.
Asynchroner Zugriff auf WMI wird nicht empfohlen. Ein asynchroner Rückruf ermöglicht es einem nicht authentifizierten Benutzer, Daten für die Senke zur Verfügung zu stellen. Dies birgt Sicherheitsrisiken für Ihre Skripts und Anwendungen. Um die Risiken zu vermeiden, verwenden Sie die semisynchrone oder synchrone Kommunikation, oder führen Sie ordnungsgemäße Zugriffsüberprüfungen in Ihrer Clientanwendung durch. Weitere Informationen finden Sie unter Aufrufen einer Methode.
Aufrufe von WMI-Proxys (IWbemServices, IEnumWbemClassObject,IWbemCallResultoder IWbemRefresher)verwenden einen Out-of-Process-Zeiger. Weitere Informationen zu den Standardwerten und Empfehlungen finden Sie unter Setting the Security on IWbemServices and Other Proxys (Festlegen der Sicherheit für IWbemServices und andere Proxys).
Im folgenden Verfahren werden die Schritte beschrieben, die Sie ausführen müssen, um die Sicherheit für WMI in Ihrem Anwendungsprozess zu erhöhen.
So legen Sie die Sicherheit für WMI für Ihren Anwendungsprozess fest
- Bestimmen Sie die Sicherheitsstufen, die für die Windows Betriebssystemen erforderlich sind, auf denen Ihre Clientanwendung ausgeführt wird.
- Rufen Sie die COM CoInitializeSecurity-Funktion auf, um die Standardsicherheit für den Prozess, in dem die Clientanwendung ausgeführt wird, zu festlegen. Dadurch wird deklariert, wie viel Sicherheit andere Anwendungen für den Zugriff auf den Prozess benötigen, in dem Ihre Anwendung ausgeführt wird.
- Wenn Sie die Sicherheit für einen einzelnen Proxy ändern müssen, z. B. bei einem anderen Aufruf von IWbemServices,rufen Sie CoSetProxyBlanket auf.
- Wenn Sie Remotehardware oder ein Systemobjekt steuern müssen, das mehr Berechtigungen erfordert, verwenden Sie die Funktion AdjustTokenPrivileges, um die erforderlichen Berechtigungen zu aktivieren. Beachten Sie, dass Sie keine Berechtigung aktivieren können, die dem Prozess noch nicht zugewiesen wurde. Weitere Informationen finden Sie unter Überprüfen des Zugriffs auf private Objekte.
Weitere Informationen zum Festlegen der Standardprozesssicherheitsebene finden Sie unter Festlegen der Standardprozesssicherheitsebene mit C++ und Festlegen der Standardprozesssicherheitsebene mit VBScript.