最近需要使用到VirtualBox,安装最新版本至D盘时出现Invalid installation directory报错

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

已经不再出现Invalid installation directory报错,可以继续安装。