Public/Get-UnityDnsServer.ps1
Function Get-UnityDNSServer { <# .SYNOPSIS Information about DNS Servers. .DESCRIPTION Information about DNS Servers. You need to have an active session with the array. .NOTES Written by Erwan Quelin under MIT licence - https://github.com/equelin/Unity-Powershell/blob/master/LICENSE .LINK https://github.com/equelin/Unity-Powershell .PARAMETER Session Specifies an UnitySession Object. .EXAMPLE Get-UnitySystem Retrieve informations about all the arrays with an active session. .EXAMPLE Get-UnitySystem -Name 'UnityVSA' Retrieves informations about an array named 'UnityVSA' #> [CmdletBinding(DefaultParameterSetName="ByName")] Param ( [Parameter(Mandatory = $false,HelpMessage = 'EMC Unity Session')] $session = ($global:DefaultUnitySession | where-object {$_.IsConnected -eq $true}) ) Begin { Write-Verbose "Executing function: $($MyInvocation.MyCommand)" #Initialazing variables $ResultCollection = @() $URI = '/api/types/dnsServer/instances' #URI for the ressource (example: /api/types/lun/instances) $TypeName = 'UnityDnsServer' } Process { Foreach ($sess in $session) { Write-Verbose "Processing Session: $($sess.Server) with SessionId: $($sess.SessionId)" If ($Sess.TestConnection()) { #Building the URL from Object Type. $URL = Get-URLFromObjectType -Server $sess.Server -URI $URI -TypeName $TypeName -Compact Write-Verbose "URL: $URL" #Sending the request $request = Send-UnityRequest -uri $URL -Session $Sess -Method 'GET' #Formating the result. Converting it from JSON to a Powershell object $Results = ($request.content | ConvertFrom-Json).entries.content #Building the result collection (Add ressource type) If ($Results) { $ResultCollection = ConvertTo-Hashtable -Data $Results Foreach ($Result in $ResultCollection) { # Instantiate object $Object = [UnityDnsServer]$Result # Output results $Object } } } else { Write-Host "You are no longer connected to EMC Unity array: $($Sess.Server)" } } } } |