Oracle 21c安装报错“无法访问路径”主因是NTFS权限不匹配,必须为安装用户(如本地Administrator)对ORACLE_BASE、ORACLE_HOME、INVENTORY_LOCATION三个本地物理路径显式授予含子目录的“完全控制”权限,禁用符号链接与网络路径。
Oracle 21c安装报错“无法访问路径”:NTFS权限不匹配是主因
windows server 上安装 oracle 21c 时出现类似 ins-06006、prc-00001 或直接提示“无法访问路径”“access is denied”“the directory does not exist or is not accessible”,几乎全是 ntfs 权限问题——不是路径不存在,而是当前运行 setup.exe 的用户(即使以管理员身份)没有对目标目录的**完全控制(full control)**权限。
必须给安装用户授予目标路径的 Full Control 权限
Oracle 安装过程会频繁创建子目录、写入日志、生成响应文件、修改 registry 关联项。它不依赖组策略继承,而是硬性要求安装用户对 ORACLE_BASE、ORACLE_HOME、INVENTORY_LOCATION 三个路径拥有显式 Full Control 权限(含子目录与文件)。常见错误操作包括:
- 仅给了
Administrators组权限,但实际运行命令的是非管理员账户(如域用户) - 路径含空格(如
C:Program FilesOracle),而权限未正确应用到深层子目录 - 用资源管理器右键“属性→安全”添加权限后,没勾选“替换子容器和对象的所有者”和“替换所有子对象的权限项”
- 在 Windows Server 2019/2022 上启用了 UAC 严格模式,导致即使“以管理员身份运行”,进程仍运行在受限令牌下
实操建议:
- 统一使用本地 Administrator 账户执行安装(而非域账户或普通管理员组成员)
- 路径避开空格:
C:oracleproductc比C:Program FilesOracle更可靠 - 右键目标文件夹 → 属性 → 安全 → 编辑 → 添加 → 输入
Administrator→ 勾选“完全控制” → 点击“高级” → 勾选“替换所有子对象的权限项” → 应用 - 确认
oraInst.loc文件(通常位于C:Program FilesOracleInventoryoraInst.loc或你自定义的INVENTORY_LOCATION)本身也具备该权限;否则 setup.exe 读不到 inventory 配置,直接报路径错误
安装用户必须是本地 Administrators 组成员且显式授权
仅将用户加入 Administrators 组远远不够。Oracle 安装程序在静默模式下不会提升权限上下文,它只检查当前登录用户的 DACL(自主访问控制列表)。若你用域账户登录并加入了本地 Administrators 组,但该账户在目标路径上无显式权限,就会失败。
验证方式:
- 打开命令提示符(以该用户身份,非管理员模式),执行:
icacls "C:oracle",确认输出中包含BUILTINAdministrators:(F)或YOURDOMAINYourUser:(F) - 若显示
Denied或权限为(RX)(读取+执行),说明权限不足 - 不要依赖“获取所有权”按钮——它只改所有者,不自动加权限;必须手动添加 Full Control 条目
特别注意:setup.exe -silent 进程默认以当前用户上下文运行,不会触发 UAC 提权弹窗。所谓“以管理员身份运行”只是让 cmd 进程有高完整性级别,不代表它能绕过 NTFS ACL 限制。
ORA_INVENTORY 和 ORACLE_HOME 路径不能跨驱动器或符号链接
Oracle 21c 在 Windows 上明确不支持以下两种路径配置:
-
INVENTORY_LOCATION指向网络路径(如\servershareinventory)或映射网络驱动器(如Z:inventory) -
ORACLE_HOME使用 NTFS 符号链接(mklink /D)指向另一位置,例如把C:oraclehome指向D:oraclehome
这类配置会导致安装中途报“路径不可访问”或静默失败,日志里只有模糊的 java.io.IOException。根本原因是 Oracle 的 Java 启动器(launcher)和 native installer 组件不识别重解析点(reparse points),也无法处理 UNC 路径的 ACL 解析。
正确做法:
- 所有路径必须是本地物理路径,且盘符一致(例如
ORACLE_BASE=C:oracle,ORACLE_HOME=C:oracleproductc,INVENTORY_LOCATION=C:oracleinventory) - 避免使用 OneDrive、Google Drive 等同步客户端监控的目录——它们可能临时锁定文件,干扰 installer 写入
- 若磁盘空间紧张,优先清理
C:,而不是试图用链接“作弊”
最易被忽略的一点:即使你按文档填了所有响应文件参数,只要 INVENTORY_LOCATION 对应目录的 NTFS 权限没给足,setup.exe 就会在初始化 Inventory 阶段直接退出,连日志都来不及写全——此时看 C:Program FilesOracleInventorylogs 可能是空的,得回头检查权限本身。


















