Board logo

标题: [系统相关] 如何以管理员身份运行批处理文件执行添加共享打印机 [打印本页]

作者: 王小锤    时间: 2016-8-16 22:43     标题: 如何以管理员身份运行批处理文件执行添加共享打印机

在域中,普通用户没有管理员权限,在添加其他电脑的“共享打印机”时,出现“拒绝访问”,
切到管理员的桌面上,添加共享机却可以成功添加。
[求助]如何在CMD中使用runas命令,切换到管理员的CMD添加共享打印机?
作者: Batcher    时间: 2016-8-17 08:11

  1. runas /user:administrator "%systemroot%\System32\cmd.exe"
复制代码

作者: citygun    时间: 2016-8-17 15:30

本帖最后由 citygun 于 2016-8-17 15:33 编辑

我刚好也写了个安装打印机的批处理,在win10环境下安装批处理要提权后才可以,可以参考软媒魔方的代码进行提权操作。域环境没有测试,你可以试试。
  1. ::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. ::      软媒魔方自动添加批处理文件管理员权限::
  3. ::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. @echo off
  5. CLS
  6. ECHO.
  7. ECHO ================================
  8. ECHO 软媒魔方获取批处理文件管理员权限
  9. ECHO ================================
  10. CLS & COLOR 4F
  11. :init
  12. setlocal DisableDelayedExpansion
  13. set "batchPath=%~0"
  14. for %%k in (%0) do set batchName=%%~nk
  15. set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
  16. setlocal EnableDelayedExpansion
  17. :checkPrivileges
  18. NET FILE 1>NUL 2>NUL
  19. if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
  20. :getPrivileges
  21. if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
  22. ECHO.
  23. ECHO ********************************
  24. ECHO 请求 UAC 权限批准……
  25. ECHO ********************************
  26. ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
  27. ECHO args = "ELEV " >> "%vbsGetPrivileges%"
  28. ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
  29. ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
  30. ECHO Next >> "%vbsGetPrivileges%"
  31. ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
  32. "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
  33. exit /B
  34. :gotPrivileges
  35. setlocal & pushd .
  36. cd /d %~dp0
  37. if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)
复制代码
提权后下面就可以写自己的代码了。
作者: 王小锤    时间: 2016-8-17 21:29

回复 2# Batcher


    首先,谢谢您回复我,
    我的问题是:要在“普通用户”中桌面上,切到管理员的cmd,再用cmd命令安装共享打印机,
作者: 王小锤    时间: 2016-8-17 21:31

回复 3# citygun


    谢谢大神,看不懂这个bat,
    到时候我试下行不行。
作者: GNU    时间: 2016-8-17 22:10

把你安装共享打印机的命令发出来看看
作者: yu2n    时间: 2016-8-17 22:19

推荐 pstools 中的 psexec.exe
作者: 王小锤    时间: 2016-8-18 09:22

回复 6# GNU


    我没有找到相关的命令。
作者: 王小锤    时间: 2016-8-18 09:24     标题: runas问题

如何把runas的错误信息指定将find
作者: GNU    时间: 2016-8-18 10:37

回复 8# 王小锤


http://bbs.bathome.net/thread-29876-1-1.html#pid147514
http://bbs.bathome.net/thread-22205-1-1.html

先用管理员用户试试这两个方法能否成功。
没问题的话,再用runas命令执行脚本。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2