Windows subinacl获得完整输出

Windows subinacl获得完整输出,windows,shell,windows-console,Windows,Shell,Windows Console,我们正在使用windows控制台程序subinacl.exe授予用户停止和启动服务的权利。因此,我们使用以下命令: subinacl.exe /service %SERVICE_NAME% /grant=%PC_NAME%\%USER_NAME%=PTO 在哪里 %SERVICE\u NAME%=服务的名称 %PC\u NAME%=计算机的名称 %USER\u NAME%=应该成为启动和停止服务权限的用户的名称 PTO=启动和停止服务的权利(R仅为读数) 在windows server 2

我们正在使用windows控制台程序subinacl.exe授予用户停止和启动服务的权利。因此,我们使用以下命令:

subinacl.exe /service %SERVICE_NAME% /grant=%PC_NAME%\%USER_NAME%=PTO
在哪里

  • %SERVICE\u NAME%
    =服务的名称
  • %PC\u NAME%
    =计算机的名称
  • %USER\u NAME%
    =应该成为启动和停止服务权限的用户的名称
  • PTO=启动和停止服务的权利(R仅为读数)
在windows server 2012上的默认windows命令行(具有管理员权限)中键入命令时,结果是:

ELITE_INETRSVSERVER : delete Perm. ACE 4 test-pc\test
ELITE_INETRSVSERVER : new ace for test-pc\test
ELITE_INETRSVSERVER : 2 change(s)


Elapsed Time: 00 00:00:00
Done:        1, Modified        1, Failed        0, Syntax errors        0
Last Done  : ELITE_INETRSVSERVER
现在,我们希望将文本保存到一个文件中或将其放入一个程序中(通过重定向输出:)。我们需要在结果中找到Done和Failed的整数值

问题是,我们不能抓住空行之后的最后三行

使用控制台重定向时,前三行可以在文件
result.txt
中找到。但最后三个显示在控制台中

subinacl.exe /service %SERVICE_NAME% /grant=%PC_NAME%\%USER_NAME%=PTO > result.txt 1<&2

subinacl.exe/service%service\u NAME%/grant=%PC\u NAME%\%USER\u NAME%=PTO>result.txt 1选项/errorlog有助于解决问题:

subinacl /outputlog=c:\NONERRORS.TXT /errorlog=C:\ERRORLOG.TXT /file C:\TEST.TXT /display

如果C:\ERRORLOG.TXT文件为空,则表示该命令已成功执行。

对于希望执行相同操作的人:有一个由Helge Klein编程的dll用于执行此操作。也许这是一个选项,而不是解析subinacl.exe的输出。尽管如此,获得如何处理subinacl.exe输出的提示会很好吗