0

对于脚本:

@echo off
title Applying Noah service rights, please wait...
cd c:/subinacl
subinacl /service NoahServer /grant=%Computername%\user=TOP
subinacl /service NoahClient /grant=%Computername%\user=TOP
pause

此脚本授予使用 Subinacl 用户对某些服务的管理权限。但是,正如您所看到的,这仅适用于计算机 %Computername% 上的一个名为(user) 的用户。

我想知道是否有可能为本地计算机上的所有用户运行以 Subinacl 开头的 2 行。

谢谢

4

1 回答 1

0

您可以使用WMIC获取计算机上定义的用户名列表,然后使用FOR迭代每个用户名。下面的代码示例应该可以帮助您入门。

请注意,以下内容不会尝试过滤掉内置或其他“特殊”帐户。我也不确定引用语法是否适用于SUBINACL. 我建议您在删除调用ECHO前面的行之前检查它是否有所需的行为。SUBINACL

@echo off
title Applying Noah service rights, please wait...
cd c:/subinacl
FOR /F "usebackq" %%a IN (`WMIC UserAccount GET Name`) DO CALL :process_account "%%a"
pause
REM exit batch script file
EXIT /B

:process_account
SETLOCAL
REM strip any quotes from argument
SET ACCT=%~1
REM skip blank names
IF "%ACCT%"=="" EXIT /B
REM skip "Name" header from WMIC
IF "%ACCT%"=="Name" EXIT /B
ECHO Processing account: %1
REM remove the ECHO in front of SUBINACL once tested
ECHO subinacl /service NoahServer /grant="%Computername%\%ACCT%"=TOP
ECHO subinacl /service NoahClient /grant="%Computername%\%ACCT%"=TOP
REM return to CALLer
EXIT /B
于 2017-12-13T17:47:26.557 回答