Private/VSphere.ps1
|
function Connect-VSphereServer { [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string]$Server, [Parameter(Mandatory = $true)] [string]$Target ) try { Write-CustomLog -Message "Retrieving credentials for: $Target" -Severity 'DEBUG' $credential = Get-SecureCredential -Target $Target Write-CustomLog -Message "Connecting to vSphere server: $Server" -Severity 'DEBUG' $connection = Connect-VIServer -Server $Server -Credential $credential -ErrorAction Stop Write-CustomLog -Message "Successfully connected to vSphere server: $Server" -Severity 'DEBUG' return $connection } catch { throw "Failed to connect to vSphere server '$Server': $_" } } function Disconnect-VSphereServer { [CmdletBinding()] param( [Parameter(Mandatory = $false)] [object]$Connection ) try { if ($null -ne $Connection) { Write-CustomLog -Message "Disconnecting from vSphere server: $($Connection.Name)" -Severity 'DEBUG' Disconnect-VIServer -Server $Connection -Confirm:$false -ErrorAction Stop Write-CustomLog -Message "Successfully disconnected from vSphere server" -Severity 'DEBUG' } else { Write-CustomLog -Message "Disconnecting all vSphere server connections" -Severity 'DEBUG' Disconnect-VIServer -Server * -Confirm:$false -ErrorAction SilentlyContinue } } catch { Write-Warning "Failed to disconnect from vSphere server: $_" } } |