SAP MMC是一个图形用户界面,设计用于在Windows上对SAP实例执行管理操作。
它基于Microsoft管理控制台,不允许任何脚本操作。
如果您要为在SAP MMC中执行的操作编写脚本,则必须选择其他工具。
我今天将向您展示如何编写脚本获取SAP实例的进程列表和状态。
我将使用PowerShell向您展示如何执行此任务,淘客吧,并向您展示两种方法。第一种方法也可以在计算机中执行命令行(批处理文件),第二种方法是使用SOAP请求。
方法1–使用sapcontrol.exe
sapcontrol.exe是SAP服务可执行文件的标准命令行接口sapstartsrv.exe文件. 以前的命令行工具如startsap、stopsap已被弃用,不再受支持。下面的所有代码示例都必须作为Powershell窗口中的adm用户执行。
要获得sapcontrol功能的概述,只需键入sapcontrol.exe进入PowerShell并点击return
屏幕截图没有显示完整的输出。sapcontrol(7.21)目前支持90个与之交互的函数sapstartsrv.exe文件. 另请注意有关退出代码和安全性的信息。
如果我们现在要检索实例的进程列表(请参阅上面的sapmcc),我们只需调用:
sapcontrol.exe-prot PIPE-nr 01-function GetProcessList
现有代码sapcontrol.exe通过查看变量$lastexitcode的值检索。根据sapcontrol的文档,这意味着
3 GetProcessList succeeded,所有进程都正确运行
如果需要检查is系统是否启动并运行,物联网管理平台,只需调用:
sapcontrol.exe-prot PIPE-nr 01-function GetProcessList
if($lastexitcode-eq 3)
{
"井,这里一切都很好"
}
否则
{
"如果你想让系统运行-你最好启动它:-)"
}
就是这样。
我们使用了-prot管道参数,云教云,它允许我们连接到sapstartsrv.exe文件使用我们当前的Windows凭据。这种类型的连接不需要指定用户名或密码。
此命令的输出是文本。如果您只想访问流程信息,您可以这样做:
我们需要去掉输出中的标题和常规信息(前五行)
$result=sapcontrol.exe-prot PIPE-nr 01-function GetProcessList | Select Object-skip 5
然后您可以访问有关此进程中进程数的信息实例:
$结果.长度
关于第一个进程的详细信息:
$result[0]
第一个进程的状态文本(逗号分隔列表中的第四个值)
$result[0]。split(',')[3]
您可以使用sapcontrol的-host参数查询在远程主机上运行的实例
在下一个示例中,我们首先检索系统实例列表,然后检索单个实例上当前正在运行的进程列表(这是一个命令):
此命令的输出:
方法2使用服务的SOAP接口:
如果您想访问服务提供的详细信息,此方法更有趣。PowerShell中SOAP的好处是,您不需要为单个信息解析文本行,但通常可以更轻松地访问信息:
首先,我们需要定义一些对象来准备SOAP连接:
变量$NR包含您要连接的实例的系统号。它需要显式地定义为一个字符串,否则,个人云服务器家用搭建,PowerShell将"00"更改为0,这将导致端口号5013而不是50013
$NR=[string]"00〃
需要系统号来指定要连接到的正确tcp/ip端口。
如果要检索远程主机的信息,请用主机名替换localhost
$URL="http://localhost:5$($NR)13/?wsdl"
下一行将询问您需要为连接指定的用户名/密码组合sapstartsrv.exe文件.
在我们的示例中,我们使用的是域帐户nt5\xxladm。点击return后,您将获得一个指定密码的弹出窗口。
$Credentials=Get Credential nt5\xxladm
现在我们将创建一个Webservice代理对象,允许我们访问的soap接口sapstartsrv.exe文件:
$proxy=New WebServiceProxy-Uri$url-Credential$Credential
创建代理后您可以成功地开始使用它–下面屏幕截图中的示例确实查询系统实例列表:
使用此PowerShell代理对象时,物联网企业,探索soap接口的功能要容易得多。
您可以轻松地访问单个信息:
或执行更复杂的查询:
或只探索soap对象:
我没有在这里粘贴行的输出(375行)
在PowerShell中使用soap代理接口也更容易,因为您可以使用tab键来安全地键入字母。
只需尝试:
$代理。获取
使用SOAP接口sapstartsrv.exe文件将允许您访问几乎所有sapmcc中提供的用于脚本编写的信息。
现在–编写PowerShell脚本很有趣!
链接:如何使用SAPControl Web服务接口(SOAP方法说明)