В сегодняшней короткой заметке, хочу показать пару примеров управления пользователями Esxi при помощи PowerShell, через PowerCli и подключаемый через него EsxCli.
Connect-VIServer -Server vcenter.some.domain
#например, хотим выполнить действия на всех хостах кластера
$hosts=Get-Cluster ClusterName | Get-VMHost
foreach ($vmhost in $hosts){
$esxcli = Get-EsxCli -VMHost $vmhost.name -V2
$esxcli.system.account.list.invoke()
#в цикл можно добавить примеры ниже
}
#добавление пользователя
$esxcli = Get-EsxCli -VMHost $vmhost.name -V2
$sAccount = $esxcli.system.account.add.CreateArgs()
$sAccount.Item('description') = 'Test account'
$sAccount.Item('password') = 'verysecretp@ss!@#A'
$sAccount.Item('passwordconfirmation') = 'verysecretp@ss!@#A'
$sAccount.Item('id') = 'test_user'
$esxcli.system.account.add.Invoke($sAccount)
#задание роли
$sRole = $esxcli.system.permission.set.CreateArgs()
$sRole.id = 'test_user'
$sRole.role = 'Admin'
$esxcli.system.permission.set.Invoke($sRole)
#обновление пароля
$sAccount = $esxcli.system.account.set.CreateArgs()
$sAccount.id = "test_user"
$sAccount.password = "verysecretp@ss!@#A"
$sAccount.passwordconfirmation = "verysecretp@ss!@#A"
$esxcli.system.account.set.Invoke($sAccount)
#удаление пользователя
$sAccount = $esxcli.system.account.remove.CreateArgs()
$sAccount.id = "test_user"
$esxcli.system.account.remove.Invoke($sAccount)
