Freigeben über


Management Pack-Probleme

 

Veröffentlicht: März 2016

Betrifft: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

In diesem Thema werden die Probleme beschrieben, die sich auf Management Packs und Module beziehen.

„ExecuteCommand“ unterstützt keine Pipeline-Operatoren oder Aliase

Wenn Sie für den Parameter ExecuteCommand einen Alias oder Pipeline-Operator verwenden, schlägt der Befehl fehl. Der Parameter ExecuteCommand unterstützt den Pipeline-Operator, Aliase und shellspezifische Syntax nicht.

In Management Packs von System Center Operations Manager, die für die Verwaltung von UNIX- und Linux-Computern vorgesehen sind, startet der Parameter ExecuteCommand keinen Shellprozess, sodass die benutzerdefinierte Aktion fehlschlägt.

Für jeden der folgenden benutzerdefinierten Aktionstypen geben Sie mit dem Parameter ExecuteCommand oder dem Parameter ExecuteShellCommand an, wie die Befehlsargumente aufgerufen werden:

  • Microsoft.Unix.WSMan.Invoke.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.WriteAction

  • Microsoft.Unix.WSMan.Invoke.Privileged.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.Privileged.WriteAction

Der Parameter ExecuteCommand übergibt die Befehlszeilenargumente an die Konsole, ohne einen Shellprozess zu starten.

Der Parameter ExecuteShellCommand übergibt die Befehlsargumente mit der Standardshell des Benutzers, die die Pipeline, Aliase und shellspezifische Syntax unterstützt, an einen Shellprozess.

System_CAPS_noteHinweis

Für den Parameter ExecuteShellCommand wird die Standardshell des Benutzers verwendet, der den Befehl ausführt. Wenn eine bestimmte Shell verwendet werden soll, stellen Sie dem Parameter ExecuteCommand die Befehlsargumente mit der erforderlichen Shell voran.

Das folgende Beispiel veranschaulicht die Verwendung der Parameter ExecuteCommand und ExecuteShellCommand:

  • Mit folgendem Befehl übergeben Sie die Befehlszeilenargumente an die Konsole, ohne einen Shellprozess zu starten:

    <p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> service syslog status </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>

  • Mit folgendem Befehl übergeben Sie die Befehlszeilenargumente an einen Shellprozess, der eine bestimmte Shell referenziert:

    <p:ExecuteCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> /bin/sh ps -ef syslog | grep -v grep </p:Command> <p:timeout>10</p:timeout> </p:ExecuteCommand_INPUT>

  • Mit folgendem Befehl übergeben Sie die Befehlsargumente an einen Shellprozess, der die Standardshell des Benutzers verwendet:

    <p:ExecuteShellCommand_INPUT xmlns:p="https://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/SCX_OperatingSystem"> <p:Command> uptime |  awk '{print $10}' |awk -F"," '{print $1}' </p:Command> <p:timeout>10</p:timeout> </p:ExecuteShellCommand_INPUT>