もうちょい頑張る技術メモシリーズ。
SSOユーザーの情報は cat /etc/passwdにいないから、シェルで入って chage -l usernameしても意味ないし…とゆーことで、登場するのがPowerCLI。
たーだーし、通常のPowerCLI単体ではSSOユーザー(vsphere.local)の情報取得や操作ができないから、追加モジュールが必要だったりする…
#なんでこう面倒くさい仕様にしてんのか
はい、ということで、以下SSO情報を取ったり操作するためのまとめ。
PowerCLIはインストール済みという前提。
■参考リンク
- 【PowerCLI】SSOユーザーとグループの操作|Tのジレンマ
- New Open Source PowerCLI Module for managing vCenter Single Sign-On (SSO)|VMware PowerCLI Blog
1. モジュールの追加
1-1.オンラインの場合
- Powershellを管理者として実行する
Install-Module VMware.vSphere.SsoAdminを実行し、モジュールをインストールするGet-Module VMware* -ListAvailableを実行し、インストールされたことを確認する
1-2.オフラインの場合
- powershellgalleryのVMware.vSphere.SsoAdminのManual Downloadからモジュールのパッケージをダウンロードする
- Microsoftの「NuGet パッケージから PowerShell モジュールをインストールする 」を参照して、VMware.vSphere.SsoAdminをインストールする
Get-Module VMware* -ListAvailableを実行し、インストールされたことを確認する
2.SSOユーザーの操作
2-1.SSOサーバへのログイン
Connect-SsoAdminServer -Server [vCenterのIPもしくはFQDN] -User Administrator@vsphere.local -SkipCertificateCheckを実行する- Administrator@vsphere.localのパスワードを入力してログインする ※接続先がSSOサーバなので、接続コマンドが
Connect-VIServerでは無い ことに注意!
2-2.情報表示系コマンド
- vsphere.localの全ユーザーを取得する:
Get-SsoPersonUser -Domain vsphere.local - vsphere.localの特定のユーザーを取得する:
Get-SsoPersonUser -Domain vsphere.local -Name [対象のユーザー名] - vsphere.localの全グループを取得する:
Get-SsoGroup -Domain - vsphere.localの特定グループを取得する:
Get-SsoGroup -Domain vsphere.local -Name [対象のグループ名] - グループ内のメンバーを取得する:
Get-SsoGroup -Domain vsphere.local -Name [対象のグループ名] | Get-SsoPersonUser - グループ内のグループを取得する:`Get-SsoGroup -Domain vsphere.local -Name [対象のグループ名] | Get-Ssogroup
2-3.操作系コマンド
- SSOドメインのユーザーを作成する:
New-SsoPersonUser -UserName [ユーザー名] -Password [パスワード] - SSOドメインのユーザーPWを変更する
- 変数をセットする:
$[変数名]=Get-SsoPersonUser -Name [ユーザー名] -Domain [ドメイン名] - パスワードを変更する:
Set-SsoPersonUser -User $[変数名] -NewPassword [パスワード] - SSOドメインのユーザーを削除する
- 変数をセットする:
$<変数名>=Get-SsoPersonUser -Name [ユーザー名] -Domain [ドメイン名] - ユーザーを削除する:
Remove-SsoPersonUser -User $[変数名] - SSOドメインのグループを作成する:
New-SsoGroup -Name [ユーザー名] - SSOドメインのグループの説明を変更する:
- 変数をセットする:
$[変数名]=Get-SsoGroup -Name [グループ名] -Domain [ドメイン名] - 説明変更する:
Set-SsoGroup -Group $[変数名] -Description [説明] - SSOドメインのグループを削除する
- 変数をセットする:
$<変数名>=Get-SsoPersonUser -Name [ユーザー名] -Domain [ドメイン名] - グループを削除する:
Remove-SsoPersonUser -User $[変数名] - SSOドメインのグループにメンバーを追加する
- 変数をセットする:
$<変数名>=Get-SsoGroup -Name [グループ名] -Domain [ドメイン名] - メンバーを追加する:
Get-SsoPersonUser -Name [ユーザー名] -Domain [ドメイン名] | Add-UserToSsoGroup -TargetGroup $[変数] - SSOドメインのグループからメンバーを削除する:
- 変数をセットする:
$<変数名>=Get-SsoGroup -Name [グループ名] -Domain [ドメイン名] - メンバーを削除する:
Get-SsoPersonUser -Name [ユーザー名] -Domain [ドメイン名] | Remove-UserFromSsoGroup -TargetGroup $[変数] - SSOドメインのグループにグループを追加する:
- 変数をセットする:
$<変数名>=Get-SsoGroup -Name [グループ名] -Domain [ドメイン名] - グループを追加する:
Get-SsoGroup -Name [グループ名] -Domain [ドメイン名] | Add-GroupToSsoGroup -TargetGroup $<変数名> - SSOドメインのグループからグループを削除する:
- 変数をセットする:`$<変数名>=Get-SsoGroup -Name [グループ名] -Domain [ドメイン名]“
- グループを削除する:
Get-SsoGroup -Name [グループ名] -Domain [ドメイン名] | Remove-GroupToSsoGroup -TargetGroup $<変数名>
2-4 SSOサーバからログアウト
Disconnect-SsoAdminServer
これら以外のコマンドを確認したい場合
Get-Command -Module VMware.vSphere.SsoAdmin
ちな、何でSSOユーザーの情報がほしいかというと、PW切れをやらかした奴がおったので。
もうこれは一括で情報取って、有効期限管理するしかないなーと…
しょっちゅう入る人間ならログイン時に「あと○日で切れます」な警告が出るけど、たまにしか入らん奴は、切れてから「切れて入れねぇ!リセットヨロ!」的話になるのでね…┐(´д`)┌ヤレヤレ
それにしても、vSphere Clientってブラウザ版、特にHTML5になってから何かこう中途半端な気がする…
#昔のネイティブクライアントとFLASHクライアントってもう少し色々できたような…
まあ、ネイティブクライアントはネイティブクライアントで、インストールするために客の承認が必要だとか、vSphereのバージョンによって使えるバージョン違ったりしで面倒だったし、FLASHは死亡((-ノ-)/Ωチーン)なので、仕方ないんだけど…