2017-12-12 19 views
0

에 대한 코드의 특정 라인을 실행스크립트에 대한 윈도우 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 사용자에게 관리자 권한을 사용하여 부여합니다. 그러나 이것은 % computerername % 컴퓨터에서 (user)라는 한 명의 사용자 만 볼 수 있습니다.

Subinacl로 시작하는 2 줄을 로컬 컴퓨터의 모든 사용자가 실행할 수 있는지 궁금합니다.

감사

답변

0

당신은 각각의 반복하는 FOR을 사용하고 컴퓨터에 정의 된 사용자 이름의 목록을 얻을 수 WMIC를 사용하고 있습니다. 아래의 코드 샘플을 시작해야합니다.

아래 내용은 기본 제공 또는 다른 "특별"계정을 필터링하지 않습니다. 또한 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 
+0

나는 이것을 최대한 빨리 시험해 보겠다. 답장을 보내 주셔서 감사합니다! – Raoul

+0

안녕하세요. 이것은 내가 시각화 한 것처럼 작동했습니다. – Raoul