Festlegen der Sicherheit des Clientanwendungsprozesses

Clientanwendungen, die WMI-Schnittstellen aufrufen, können die Sicherheitsstufen 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 festzulegen. Anwendungen, die asynchrone Aufrufe an WMI durchführen, und Anwendungen, die sich als Ereignisconsumer registrieren, legen Sicherheitsstufen für den Aufruf von WMI fest.

Wenn CoInitializeSecurity nicht explizit aufgerufen wird, ruft COM die Funktion implizit mit Werten aus der Registrierung auf. Die Registrierungswerte haben jedoch möglicherweise niedrigere Einstellungen für Identitätswechsel und Authentifizierung, die nicht die für WMI erforderliche Sicherheit bieten. Weitere Informationen finden Sie unter Festlegen der Sicherheitsstufe für Standardprozesse mit C++.

Der asynchrone Zugriff auf WMI wird nicht empfohlen. Ein asynchroner Rückruf ermöglicht es einem nicht authentifizierten Benutzer, Daten für die Senke bereitzustellen. Dies stellt Sicherheitsrisiken für Ihre Skripts und Anwendungen dar. Um die Risiken zu vermeiden, verwenden Sie semisynchrone oder synchrone Kommunikation, oder führen Sie ordnungsgemäße Zugriffsprüfungen in Ihrer Clientanwendung durch. Weitere Informationen finden Sie unter Aufrufen einer Methode.

Aufrufe von WMI-Proxys (IWbemServices, IEnumWbemClassObject,IWbemCallResult oder IWbemRefresher) verwenden einen Out-of-Process-Zeiger. Weitere Informationen zu den Standardwerten und Empfehlungen finden Sie unter 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 für Ihren Anwendungsprozess festzulegen.

So legen Sie die Sicherheit für WMI für Ihren Anwendungsprozess fest

  1. Bestimmen Sie die Sicherheitsstufen, die für die Windows-Betriebssysteme erforderlich sind, auf denen Ihre Clientanwendung ausgeführt wird.
  2. Rufen Sie die COM-Funktion CoInitializeSecurity auf, um die Standardsicherheit für den Prozess festzulegen, in dem die Clientanwendung ausgeführt wird. Dadurch wird deklariert, wie viel Sicherheit andere Anwendungen benötigen, um auf den Prozess zuzugreifen, in dem Ihre Anwendung ausgeführt wird.
  3. Wenn Sie die Sicherheit für einen einzelnen Proxy ändern müssen, z. B. bei einem anderen Aufruf von IWbemServices, rufen Sie CoSetProxyBlanket auf.
  4. 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 nur Berechtigung aktivieren können, die dem Prozess bereits zugewiesen wurden. Weitere Informationen finden Sie unter Überprüfen des Zugriffs auf private Objekte.

Weitere Informationen zum Festlegen der Sicherheitsstufe für Standardprozesse finden Sie unter Festlegen der Sicherheitsstufe für Standardprozesse mit C++ und Festlegen der Sicherheitsstufe für Standardprozesse mit VBScript.