最近需要使用到VirtualBox,安装最新版本至D盘时出现Invalid installation directory报错
查阅后发现7.0版本以后,官方规定系统盘(C盘)以外的安装路径不合法,根据官方文档提供的方法,安装到其他盘,需要修改文件夹权限。
具体操作如下:
步骤一
创建一个空文件夹
注意:安装路径要直接在盘符下面,不要有中文
这里我将演示安装在D:\VirtualBox的场景。
步骤二
打开powershell输入以下指令
icacls "D:\VirtualBox" /reset /t /c
icacls "D:\VirtualBox" /inheritance:d /t /c
icacls "D:\VirtualBox" /grant *S-1-5-32-545:"(OI)(CI)(RX)" /t /c
icacls "D:\VirtualBox" /deny *S-1-5-32-545:"(DE,WD,AD,WEA,WA)" /t /c
icacls "D:\VirtualBox" /grant *S-1-5-11:"(OI)(CI)(RX)" /t /c
icacls "D:\VirtualBox" /deny *S-1-5-11:"(DE,WD,AD,WEA,WA)" /t /c
这几行 icacls
命令用于修改 D:\VirtualBox
目录的访问权限,主要是针对两个用户组进行 授予(grant) 和 拒绝(deny) 权限操作。
具体分析:
-
重置权限
icacls "D:\VirtualBox" /reset /t /c
-
reset
:重置D:\VirtualBox
及其所有子目录和文件的权限为默认权限。 -
/t
:递归应用到所有子文件夹和文件。 -
/c
:忽略错误并继续执行。
-
-
禁用继承
icacls "D:\VirtualBox" /inheritance:d /t /c
-
inheritance:d
:禁用继承并复制当前权限。 -
这样可以确保权限不会受到上级目录的影响。
-
-
授予“Users”组读取权限
icacls "D:\VirtualBox" /grant *S-1-5-32-545:"(OI)(CI)(RX)" /t /c
-
*S-1-5-32-545
:这是 本地 Users 组(即普通用户)。 -
(OI)(CI)(RX)
:-
OI
(对象继承):适用于文件。 -
CI
(容器继承):适用于文件夹。 -
RX
(读取和执行)。
-
-
-
拒绝“Users”组的写入、删除和修改权限
icacls "D:\VirtualBox" /deny *S-1-5-32-545:"(DE,WD,AD,WEA,WA)" /t /c
-
DE
(删除)。 -
WD
(写入数据)。 -
AD
(追加数据)。 -
WEA
(写入扩展属性)。 -
WA
(写入属性)。 -
这样 Users 组只能 读取 文件,无法修改或删除。
-
-
授予“Authenticated Users”组读取权限
icacls "D:\VirtualBox" /grant *S-1-5-11:"(OI)(CI)(RX)" /t /c
-
*S-1-5-11
:Authenticated Users 组(所有已登录的用户)。 -
(OI)(CI)(RX)
:允许读取和执行,但不能修改。
-
-
拒绝“Authenticated Users”组的写入、删除和修改权限
同样,这会阻止 Authenticated Users 组对该目录的修改权限。icacls "D:\VirtualBox" /deny *S-1-5-11:"(DE,WD,AD,WEA,WA)" /t /c
总结:
这些命令的作用是:
-
Users 组和 Authenticated Users 组 只能 读取
D:\VirtualBox
目录及其内容,而 无法修改或删除 其中的文件或文件夹。 -
禁用了继承,确保权限不会被上级目录影响。
-
适用于 Windows 服务器或安全管理环境,用于防止普通用户修改
D:\VirtualBox
目录的内容。
运行结果:
执行完成后再次尝试安装:
已经不再出现Invalid installation directory报错,可以继续安装。