如何在 powershell / Powercli 中列出 vCenter (VCSA) 服务
How to list vCenter (VCSA) services in powershell / Powercli
我需要在 powercli / powershell 脚本中列出基于 Linux 的 vCenter (VCSA) 服务。
我不知道将列出服务的任何 powercli cmdlet。
我想到了使用 vSphere 6.5
中新引入的 vSphere REST API
我尝试使用 postman / vSphere API explorer 的两个调用因无法授权而失败:
https://{server}/rest/vcenter/services
https://{server}/rest/appliance/services
我能够使用 administrator@corp.local 列出虚拟机并创建新虚拟机,所以我不确定发生了什么
在邮递员和 REST 资源管理器中使用 vSphere REST API 测试了列表服务
$url = "https://{server}/rest/vcenter/services"
Invoke-RestMethod -Method 'Get' -Uri $url -Credential $Cred
VMware HOL screenshot
我的问题:
1) 是否有 powercli 命令列出基于 linux 的 vCenter (VCSA) 中的服务
2) 知道如何使用 vSphere REST 完成此操作 API
以下有效。请在提示输入凭据时使用 SSO 帐户,并确认使用的帐户有权从 vSphere 客户端查看服务。
检查:https://communities.vmware.com/thread/618154
$vcenter = <vcsa-FQDN>
$BaseUri = "https://$vcenter/rest/"
$SessionUri = $BaseUri + "com/vmware/cis/session"
$Cred = Get-Credential
$auth = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($Cred.UserName + ':' + $Cred.GetNetworkCredential().Password))
$header = @{
'Authorization' = "Basic $auth"
}
$authResponse = (Invoke-RestMethod -Method Post -Headers $header -Uri $SessionUri).Value
$sessionHeader = @{"vmware-api-session-id" = $authResponse }
$result = Invoke-Restmethod -Method Get -Headers $sessionHeader -Uri ($BaseUri + "vcenter/services")
$result.value.value | select Name_Key, Health, State, Description_Key
我需要在 powercli / powershell 脚本中列出基于 Linux 的 vCenter (VCSA) 服务。 我不知道将列出服务的任何 powercli cmdlet。 我想到了使用 vSphere 6.5
中新引入的 vSphere REST API我尝试使用 postman / vSphere API explorer 的两个调用因无法授权而失败:
https://{server}/rest/vcenter/services
https://{server}/rest/appliance/services
我能够使用 administrator@corp.local 列出虚拟机并创建新虚拟机,所以我不确定发生了什么
在邮递员和 REST 资源管理器中使用 vSphere REST API 测试了列表服务
$url = "https://{server}/rest/vcenter/services"
Invoke-RestMethod -Method 'Get' -Uri $url -Credential $Cred
VMware HOL screenshot
我的问题: 1) 是否有 powercli 命令列出基于 linux 的 vCenter (VCSA) 中的服务 2) 知道如何使用 vSphere REST 完成此操作 API
以下有效。请在提示输入凭据时使用 SSO 帐户,并确认使用的帐户有权从 vSphere 客户端查看服务。
检查:https://communities.vmware.com/thread/618154
$vcenter = <vcsa-FQDN>
$BaseUri = "https://$vcenter/rest/"
$SessionUri = $BaseUri + "com/vmware/cis/session"
$Cred = Get-Credential
$auth = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($Cred.UserName + ':' + $Cred.GetNetworkCredential().Password))
$header = @{
'Authorization' = "Basic $auth"
}
$authResponse = (Invoke-RestMethod -Method Post -Headers $header -Uri $SessionUri).Value
$sessionHeader = @{"vmware-api-session-id" = $authResponse }
$result = Invoke-Restmethod -Method Get -Headers $sessionHeader -Uri ($BaseUri + "vcenter/services")
$result.value.value | select Name_Key, Health, State, Description_Key