PowerCLI 分配权限是干什么的
PowerCLI 通过 New-VIPermission 分配角色与权限:先用 Connect-VIServer 连接 vCenter,用 Get-VIPrivilege 选出需要的权限项,用 New-VIRole 组合成自定义角色,再用 New-VIPermission 把主体与角色绑定到某个清单对象,-Propagate 决定是否继承到子对象。批量变更前先导出当前授权清单存档,便于回溯与审计。
基本信息
| 连接 | Connect-VIServer -Server <vcenter> |
|---|---|
| 取权限 | Get-VIPrivilege -Name <权限名> |
| 建角色 | New-VIRole -Name <角色名> -Privilege <权限集合> |
| 分配 | New-VIPermission -Entity <对象> -Principal <账号> -Role <角色> -Propagate |
| 回收 | Remove-VIPermission 移除授权 |
典型使用场景
- 为运维组批量授予虚机电源操作权限
- 为新团队在指定文件夹层级授权,避免全库放开
- 审计后统一收敛历史遗留的宽泛授权
- 按项目批量下发只读权限用于巡检
- 环境重建时用脚本一次性恢复既有授权结构
示例:给运维组授予电源操作角色
示例:给运维组授予电源操作角色
Connect-VIServer -Server vcenter.example.com
$privs = Get-VIPrivilege -Name 'VirtualMachine.Interact.PowerOn','VirtualMachine.Interact.PowerOff'
New-VIRole -Name 'VM PowerOPS' -Privilege $privs
New-VIPermission -Entity (Get-Folder 'prod-vms') -Principal 'CORP\opsgroup' \
-Role 'VM PowerOPS' -Propagate $true
Get-VIPermission -Entity (Get-Folder 'prod-vms') | Format-Table命令与注意
| 命令 | 作用 | 注意 |
|---|---|---|
| Get-VIPrivilege | 查询可用权限项 | 先查准确名称,避免拼错导致角色为空 |
| New-VIRole | 创建自定义角色 | 角色是权限集合,不含对象信息 |
| New-VIPermission | 把主体与角色绑定到对象 | -Propagate 决定是否继承到子对象 |
| Get-VIPermission | 查看现有授权 | 变更前后各导出一份做对比 |
| Remove-VIPermission | 回收授权 | 回收前确认没有其他依赖该授权的自动化 |
批量授权前先用 Get-VIPermission 导出当前清单存档,便于变更回溯;回收授权时同样先存档,避免误删后无法还原。
授权主体优先使用安全组而不是个人账号:人员变动时只需调整组成员,权限结构本身保持稳定,审计也更容易解释。
脚本化授权建议
- 把角色定义、授权对象与主体写成配置文件,环境重建时可一键恢复
- 每次变更前用 Get-VIPermission 导出快照,作为审计与回滚依据
- 按最小权限原则挑选权限项,避免直接套用管理员角色
- 在测试 vCenter 上先验证脚本,确认 -Propagate 行为符合预期
- 授权完成后让使用方实际登录验证,避免出现「有角色但点不动」
验证环节不要省:授权完成后用 Get-VIPermission 复核对象、主体与是否传播三项是否与设计一致,并让使用方实际登录执行一次目标操作。