如何从批处理脚本testing用户的有效权限?

我需要从批处理脚本中testing特定用户 (即不一定是当前用户)的有效权限,并根据这个权限采取行动(提供警告)。 我想有一个子程序,我可以调用来检查指定的文件或目录的权限,所以我可以testing一些只有pipe理员应该能够访问(并因此警告,太高的权限被授予),并检查数据我的应用程序path中的目录可以被访问(否则权限太低)。 我希望这个工作在XP,2008和win7。

顺便说一下,我已经想出了如何parsing“networking本地组pipe理员”,但我不认为这是满足我的需求。

@Jared

为了您的需要,我想用一个简单的副本%errorlevel%你可以有你想要的。

copy %tempFile% %yourProtectedDir% if %errorlevel% == 1 goto sorryYouFail if %errorlevel% == 0 goto youAreIn ... del %tempFile% /Q 

或者,检查任何用户,做同样的,但与Windows保护的文件夹…

 copy %tempFile% %windir%\system32 if %errorlevel% == 1 goto youDontHaveAdminPrivileges if %errorlevel% == 0 goto howdyThereAdmin ... del %tempFile% /Q 

如果你需要测试其他用户尝试使用runas选项…

@Lizz

这个脚本检查windows版本,并提升一个临时文件来运行具有ADMIN权限的特定文件。

 @echo off title Detect and run file with Admin privileges set yourFile=yourFileNameAsAdmin.bat set privileges=no VER | FINDSTR /IL "6.2." > NUL IF %ERRORLEVEL% EQU 0 ( SET winVersion=8 SET privileges=yes ) VER | FINDSTR /IL "6.1." > NUL IF %ERRORLEVEL% EQU 0 ( SET winVersion=7 SET privileges=yes ) VER | FINDSTR /IL "6.0." > NUL IF %ERRORLEVEL% EQU 0 ( SET winVersion=Vista SET privileges=yes ) if "%privileges%"=="no" goto SkipElevation If "%privileges%"=="yes" goto Elevation :SkipElevation call %CD%\%yourFile% goto End :Elevation PushD "%~dp0" If Exist "%~0.ELEVATED" Del /f "%~0.ELEVATED" Set CMD_Args=%0 %* Set CMD_Args=%CMD_Args:"=\"% Set ELEVATED_CMD=PowerShell -Command (New-Object -com 'Shell.Application').ShellExecute('%yourFile%', '/%cd:~0,1% %CMD_Args%', '', 'runas') Echo %ELEVATED_CMD% >> "%~0.ELEVATED" call %ELEVATED_CMD% Del /f "%~0.ELEVATED" goto End :End Echo ------------------------------- Echo All done! Pause goto EOF 

注意 :如果yourFileNameAsAdmin.bat使用文件的RELATIVE路径,请记住在文件开始处启用扩展和本地目录:

 @echo off @setlocal enableextensions @cd /d "%~dp0" ::...your code here 

希望有帮助!…


作为adition相关信息…

通过命令网络,您可以获得大量有关用户和角色的信息,还可以与他们合作。

例如

NET USER

  • 网络用户列出所有用户。
  • net users [name]关于特定用户的详细信息, 包括他所属的所有组
  • 净帮助用户更多…

NET LOCALGROUP

  • net localgroup列出所有组。
  • net localgroup [groupName]有关特定组的详细信息, 包括属于该grup的所有用户
  • 净帮助localgroup更多…