【问题标题】:.bat script copy into System32 gives Access Denied.bat 脚本复制到 System32 会导致拒绝访问
【发布时间】:2011-04-20 02:48:21
【问题描述】:

我正在编写一个 .bat 脚本,我需要将文件复制到 System32。 我更改为文件夹,然后尝试将文件从存储文件夹复制到 System32 文件夹。

cd C:\Windows\System32
copy %~dp0file.txt file.txt

我收到一个错误Access Denied, 0 files copied

我明白为什么会出现这个问题,因为如果我尝试使用非编程 GUI 界面将文件复制到 System32,我会收到一个提示,要求我确认。那么使用脚本,我该如何绕过这个 Windows 权限或正确设置它,或其他一些解决方案。

编辑:我从下面的答案中得到的提示是,可以触发 Windows 显示其 GUI 提示以供用户授予权限。这个想法会做。希望有人确切地知道如何做到这一点。

【问题讨论】:

    标签: windows permissions batch-file copy


    【解决方案1】:

    我在所有批处理文件中都使用它来检查批处理文件开头的管理员权限?

    @echo off
    goto permissionCheck
    
    :permissionCheck
        echo Checking permissions...
    
        SET adminRights=0
        FOR /F %%i IN ('WHOAMI /PRIV /NH') DO (
            IF "%%i"=="SeTakeOwnershipPrivilege" SET adminRights=1
        )
    
        IF %adminRights% == 1 (
            echo Elevated permissions confirmed.
    
            pause >nul
        ) ELSE (
            echo Elevated permissions absent.
            echo.
            echo This file needs to be run as an Administrator.
            echo.
            echo Close this window, right-click on the file and click "Run as Administrator".
            echo   OR
            echo Log on to an Administrator account and run this file normally.
    
            pause >nul
        )
    

    我知道此解决方案无法让您在没有管理员权限的情况下复制到 system32,但鉴于您需要管理员权限并且没有办法,我认为我会提供此解决方案。

    【讨论】:

      【解决方案2】:

      您可以使用RunAs 命令以本地管理员身份复制文件。 http://ss64.com/nt/runas.html

      【讨论】:

        【解决方案3】:

        属于超级用户(投票支持)。

        答案是:使用提升的命令提示符(或者如果您从快捷方式启动批处理文件,请在快捷方式属性中选择“以管理员身份运行”)

        编辑:既然您解释说您正在寻找一种编程方式来触发提升,您应该看看this other question(不一定是公认的答案,而是所有其他答案)。我仍然会投票关闭,但作为一个骗子而不是转向超级用户。从批处理中您可能想查看“runas”命令,但仍需要用户确认。

        【讨论】:

        • 这个答案对我不起作用。我正在寻找一种通过代码管理权限的编程方式。
        • 除非您以完全(提升的)管理员权限运行,否则您无法以编程方式取消保护需要管理员权限的内容,这样做是一个非常糟糕的主意,会使计算机容易受到各种恶作剧的影响.您最好的选择是触发提升提示,而不是简单地失败。
        • 好的,提示 +1。我猜您链接到的线程的本质是触发 Windows 显示其 GUI 提示。这个想法会做。希望有人确切地知道如何做到这一点。
        猜你喜欢
        • 2017-03-25
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 2017-06-24
        • 2017-06-16
        • 2012-05-12
        • 2012-07-10
        • 2012-08-31
        相关资源
        最近更新 更多