Geek
         
PowerCLIはまずvCenterサーバへログインすることから始まる。
そのためか、例えば、(というかまさに)ログインしているvCenterにPowerCLIで権限を付与をしたい時、
何をどうやれば良いのかわからなかったので、気合入れてOnxyたんに調べてもらった。

Onyx
https://labs.vmware.com/flings/onyx

簡単に言うとvSphere Client と端末との間にProxyサーバとして稼働して、
vSphere Clientで操作している内容のAPIをゴリゴリ吐き出してくれるNICE GUY。

で、vCenterに対する権限付与がまさに以下。


# ------- RetrieveEntityPermissions -------

$entity = New-Object VMware.Vim.ManagedObjectReference
$entity.type = "Folder"
$entity.Value = "group-d1"

$_this = Get-View -Id 'AuthorizationManager-AuthorizationManager'
$_this.RetrieveEntityPermissions($entity, $true)


何やねんFolderって( ゚д゚)ッ!
Get-VIServerなどというそれらしいコマンドレットのリファレンスをすごい悩みながら読んでいたが、
(実際は複数のvCenterを操作するためのコマンドレット?)
vCenterはFolderとして扱われているらしい。

んで、以下が、Get-Folderコマンドで取得した時。
Get-Folder  -Id *group-d1

ParentId :
Parent :
IsChildTypeVm : False
IsChildTypeComputeResource : False
IsChildTypeDatacenter : True
IsChildTypeDatastore : False
Type : Datacenter
Name : データセンター
CustomFields : {}
ExtensionData : VMware.Vim.Folder
Id : Folder-group-d1
Uid : /VIServer=<ユーザ名>@:443/Folder=Folder-group-d1/
Client : VMware.VimAutomation.ViCore.Impl.V1.VimClient

....紛れも無いFolderだ・・・。
いくつかのvCenterに入ってみたがどれも全て データセンターという名前で設定されている様子。

というわけで、vCenterに権限を付ける場合は、

$vCenterServer = Get-Folder データセンター
New-VIPermission -Entity $vCenterServer -Role <ロール名> -Principal <ユーザ名> -Propagate $falese(or $true)
スポンサーサイト
 
 

トラックバック用URL ;http://gatolynx.blog100.fc2.com/tb.php/267-1e8e41ac

コメントの投稿

非公開コメント