运行 windows pc/ 上每个用户的特定代码行

Run a certain line of code for each user on windows pc/

对于脚本:

@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 行。

谢谢

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

请注意,以下不会尝试过滤掉内置或其他 "special" 帐户。我也不确定适用于 SUBINACL 的引用语法。我建议您在删除 SUBINACL 调用前的 ECHO 行之前检查它的预期行为。

@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