You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本复制文件到C:\Windows权限被拒绝如何无需管理员提权?

权限报错原因

Copy-Item : Access to the path 'C:\Windows\Java Config Files' is denied.
该报错和你使用的Copy-Item cmdlet无关,本质是C:\Windows属于Windows系统核心目录,默认安全策略仅允许拥有管理员权限的进程对该目录执行写入、新增、修改类操作,普通权限运行的脚本没有对应操作权限。

无需管理员权限写入系统目录的方案不存在

Windows的系统目录权限控制是底层安全机制,没有任何PowerShell cmdlet、命令或者技巧可以绕过该限制,所有修改C:\Windows目录内容的操作必须获取管理员权限才能正常执行。

可行实现方案

方案1:脚本自动请求管理员权限(推荐)

不需要手动右键选择「以管理员身份运行」,只需在脚本开头添加以下提权代码,运行时会自动弹出UAC权限申请窗口,用户确认后即可自动以管理员身份执行后续复制逻辑:

# 校验当前运行身份是否为管理员
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    # 重新启动脚本并提权,携带原脚本路径参数
    Start-Process powershell "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
    exit
}

# 你的原复制逻辑,注意修正路径的斜杠避免匹配错误
Copy-Item -Path "C:\Java Config Files\*" -Destination "C:\Windows\" -Recurse

方案2:提前开放目标目录权限(不推荐)

如果要避免每次运行都提权,可以一次性以管理员身份执行以下命令,给普通用户开放对应目录的写入权限,该操作会降低系统安全性,仅测试环境可使用:

# 给所有用户开放目标子目录的完全控制权限
icacls "C:\Windows\Java Config Files" /grant Everyone:F /t

内容的提问来源于stack exchange,提问作者user14029480

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:51:03