管理包问题

 

发布时间: 2016年3月

适用对象:System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

本主题描述特定于管理包和模块的问题。

ExecuteCommand 不支持管道运算符或别名

将别名或管道运算符与 ExecuteCommand 参数配合使用时,命令将失败。ExecuteCommand 参数不支持管道运算符、别名和特定于外壳的语法。

在旨在管理 UNIX 与 Linux 计算机的 System Center Operations Manager 管理包中,ExecuteCommand 参数不支持外壳进程,从而会使自定义操作失败。

对于以下每种自定义操作类型,你将使用 ExecuteCommand 参数或 ExecuteShellCommand 参数指定命令参数的调用方式。

  • Microsoft.Unix.WSMan.Invoke.ProbeAction

  • Microsoft.Unix.WSMan.Invoke.WriteAction

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

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

ExecuteCommand 参数在不启动外壳进程的情况下将命令行参数传送至控制台。

ExecuteShellCommand 参数使用用户的默认外壳将命令参数传送至外壳进程,此外壳支持管道、别名和特定于外壳的语法。

System_CAPS_note注意

ExecuteShellCommand 参数使用正在运行命令的用户的默认外壳。 如果需要特定外壳,请使用 ExecuteCommand 参数,并在命令参数前面添加所需的外壳。

下面的示例演示如何使用 ExecuteCommandExecuteShellCommand 参数:

  • 在不启动外壳进程的情况下将命令行参数传送至控制台:

    <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>

  • 将命令行参数传送至引用显式外壳的外壳进程:

    <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>

  • 将命令参数传送至使用用户默认外壳的外壳进程:

    <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>