Toolkit/Public/Get-RscAccount.ps1
#Requires -Version 3 function Get-RscAccount { <# .SYNOPSIS Retrieve info about the current RSC account in use .DESCRIPTION Combines the output of 2 queries: - New-RscQueryAccount -Op Id : to retrieve the account id - New-RscQueryAccount -Op Owners : to retrieve the account owner Not all account owner fields are returned. .LINK Schema reference: https://rubrikinc.github.io/rubrik-api-documentation/schema/reference The User type (returned by New-RscQueryAccount -Op Owner) https://rubrikinc.github.io/rubrik-api-documentation/schema/reference/user.doc.html #> [CmdletBinding( )] Param( ) Process { $outputObj = @{} # Add Account Id: $outputObj["AccountId"] = (New-RscQueryAccount -Op Id).Invoke() $owner = (New-RscQueryAccount -Op Owners -FieldProfile FULL -RemoveField AllOrgs.AllClusterCapacityQuotas).Invoke() $owner | Get-Member -MemberType Properties | ForEach-Object { $propName = $_.Name $propValue = $owner.$propName if ($propName -eq "PasskeyMetadata") { $outputObj["AccountOwnerIsPasskeyEnabled"] = $propValue.IsPasskeyEnabled } elseif ( $propName -eq "LockoutState") { $outputObj["AccountOwnerIsLocked"] = $propValue.IsLocked } # We do not go down into the composite types; # composite types renders their ToString() method to # their type name, like "RubrikSecurityCloud.Types.TotpStatus" # so we skip them. elseif ( $null -ne $propValue -and -not $propValue.ToString().StartsWith("RubrikSecurityCloud.Types")) { $outputObj["AccountOwner$propName"] = $propValue } } # Convert the hashtable to PSCustomObject and return [PSCustomObject]$outputObj } } |