none
如何限制win7管理员权限或者提升普通用户的权限? RRS feed

  • 问题

  • 问题的起因是Win7系统下AutoCAD2007或者是一些特定的专业软件必须在管理员权限下才能正常运行,在普通用户权限下运行没有反应或者报错。但是管理员权限如果给到用户,用户就可以随意安装其他软件,这是公司政策不允许的。

    不知道是否可以给普通用户赋予部分管理员权限,让用户可以管理员权限运行指定软件而又不能随意安装软件。或者给某个管理员限制部分特权?

    2012年12月28日 3:42

答案

  • 我以爲是用 runas 命令的 /savecred 參數存在一個潛在安全問題. 因爲需要管理員在那台電腦上執行 runas, 那麽只要誘使管理員去執行一個假的 runas 命令就可以獲取管理員的密碼. 因爲其可以是一個簡單的可執行文件, 所以容易帶進受限環境.

    還有在執行時, 如果直接調用一個 requestedExecutionLevel 為 highestAvailable 的程序會失敗, 系統提示:

    C:\>runas /user:ADMIN /savecred regedit
    试图将 regedit 作为用户 "PC\ADMIN" 启动...
    RUNAS 错误: 无法运行 - regedit
    740: 请求的操作需要提升。

    需要改成

    runas /user:ADMIN /savecred "cmd /c regedit"

    才行. 但是仍然會彈出 UAC 確認.

    另外如果管理員在安全策略中被配置為 "用户帐户控制: 在管理审批模式下管理员的提升提示行为" - 在安全桌面上提示凭据

    那麽 /savecred 參數就沒有意義.


    Folding@Home

    2012年12月29日 4:56

全部回复

  • 請檢查一下:

    1. 是否因禁用了 UAC 導致此問題, 因爲 UAC 通過提供對系統目錄或系統注冊表訪問重定向技術來解決某些軟件需要管理員權限的問題.

    2. 在安裝軟件時, 是否沒有選擇所有用戶皆可運行.

    3. 軟件版本是否過久?

    如果無效, 那麽對於這個問題, 建議聯係軟件廠商提供解決方案.

    如果上述方法都無效, 那麽除了更換為對標準用戶權限友好的軟件, 則沒有更好的方法了.


    Folding@Home

    2012年12月28日 12:55
  • 可以使用 RUNAS 命令以管理员权限运行程序,配合 /SAVECRED 参数记住第一次使用时的管理员登录凭据,可以不用每次都输入管理员密码。如果第一次输入密码不是由使用者输入的,他当然也不会知道管理员密码。
     
    --
    Alexis Zhang
     
    http://mvp.support.microsoft.com/profile/jie
    http://blogs.itecn.net/blogs/alexis
     
    推荐以 NNTP Bridge 桥接新闻组方式访问论坛以获取最佳用户体验。
     
    本帖是回复帖,原帖作者是楼上的 "王飞2012"
     
    问题的起因是Win7系统下AutoCAD2007或者是一些特定的专业软件必须在管理员?ㄏ尴虏拍苷T诵校谄胀ㄓ没ㄏ尴略诵忻挥蟹从蛘弑ù怼5枪芾碓比ㄏ奕绻接没В没Ь涂梢运嬉獍沧捌渌砑馐枪菊卟辉市淼摹?
     
     
    2012年12月28日 21:22
  • 我以爲通過 runas 命令啓用的方法不妥:

    1. runas 命令方式不能提權到完全管理員權限. 儅通過 runas 命令啓動一個管理員帳戶的進程, 因爲其默認權限是受限管理員權限, 所以這時還會彈出 UAC 確認對話框, 用戶還需要單擊確認按鈕完成提權. 但這無疑是在提醒用戶啓動的進程是管理員權限, 你可以做任何事.

    2. 如果用戶注意到了, 並且知曉如何去做, 那麽通常的方法就是通過 "打開/保存通用文件對話框“ 定位到 %windir%\system32 目錄, 然後通過鼠標右鍵的上下文菜單執行 cmd. 如果父進程本身具有直接執行任意程序的功能就更簡單了.

    3. 不要低估他人的能力, 即便他(她)不清楚, 但是難保其身邊的人不清楚.


    Folding@Home

    2012年12月29日 2:29
  • 我以爲是用 runas 命令的 /savecred 參數存在一個潛在安全問題. 因爲需要管理員在那台電腦上執行 runas, 那麽只要誘使管理員去執行一個假的 runas 命令就可以獲取管理員的密碼. 因爲其可以是一個簡單的可執行文件, 所以容易帶進受限環境.

    還有在執行時, 如果直接調用一個 requestedExecutionLevel 為 highestAvailable 的程序會失敗, 系統提示:

    C:\>runas /user:ADMIN /savecred regedit
    试图将 regedit 作为用户 "PC\ADMIN" 启动...
    RUNAS 错误: 无法运行 - regedit
    740: 请求的操作需要提升。

    需要改成

    runas /user:ADMIN /savecred "cmd /c regedit"

    才行. 但是仍然會彈出 UAC 確認.

    另外如果管理員在安全策略中被配置為 "用户帐户控制: 在管理审批模式下管理员的提升提示行为" - 在安全桌面上提示凭据

    那麽 /savecred 參數就沒有意義.


    Folding@Home

    2012年12月29日 4:56
  • 谢谢repl的详细分析和回答,我也觉得这条思路似乎行不通了。所以换了一种思路考虑,建立一个新的本地管理员账号给用户,然后通过软件限制策略或者APPlocker让该管理员只能运行少数需要权限的程序。该方法在以此本地管理员登录时确实受到了限制,只能运行指定的程序。但是其他用户通过run as administrator的方式使用该账号却反而可以不受限制了。

    2013年1月10日 8:30
  • 下面是兩個新的想法:

    1. 可能的話, 對於這些有特殊需求的電腦不要加域, 啓用本地管理員, 並其使用的網絡同其他内部網絡隔離開來, 防止嗅探器一類軟件的威脅.

    但是這種方式管理維護起來會麻煩, 而且仍然有可能繞過限制, 筆記本電腦的易於移動, 臺式機如果從其他地方接入網線, 或者自行安裝 wifi 網卡.

    2. 因爲第一個方法存在若干不足的地方, 如果改用 RODC 來管理這些有特殊需求的電腦, 我想或許能夠在相對程度上滿足你們的需求.


    Folding@Home

    2013年1月10日 12:38