Functions/Connect-PartnerCenterAdminAccount.ps1
<#
.SYNOPSIS This function connects to Partner Center using admin account credentials or a MSPComplete Endpoint. .DESCRIPTION This function connects to Partner Center using admin account credentials or a MSPComplete Endpoint. It returns whether the connection and logon was successful. .EXAMPLE Connect-PartnerCenterAdminAccount -Endpoint $Endpoint .EXAMPLE $Endpoint | Connect-PartnerCenterAdminAccount .EXAMPLE Connect-PartnerCenterAdminAccount -Username $username -Password $password -ApplicationId $applicationId #> function Connect-PartnerCenterAdminAccount { [CmdletBinding(PositionalBinding=$false)] [OutputType([Bool])] param ( # The username of the Partner Center admin account. [Parameter(Mandatory=$true, ParameterSetName="credential")] [String]$username, # The password of the Partner Center admin account. [Parameter(Mandatory=$true, ParameterSetName="credential")] [SecureString]$password, # The Partner Center Native App Application Id [Parameter(Mandatory=$true, ParameterSetName="credential")] [GUID]$applicationId, # The MSPComplete Endpoint for the Partner Center admin credentials. [Parameter(Mandatory=$true, ParameterSetName="endpoint", ValueFromPipeline=$true)] $endpoint ) # If given endpoint, retrieve credential directly if ($PSCmdlet.ParameterSetName -eq "endpoint") { $partnerCenterCredential = $endpoint | Get-CredentialFromMSPCompleteEndpoint $username = $partnerCenterCredential.Username # Check if endpoint has application ID extended property if (!($endpoint.ExtendedProperties) -or !(Search-HashTable -HashTable $endpoint.ExtendedProperties -Key "ApplicationId")) { Write-Error "Endpoint provided does not have an 'ApplicationId' extended property." return $false } $applicationId = $endpoint.ExtendedProperties.ApplicationId } # Create the Partner Center credential from the given username and password else { $partnerCenterCredential = [PSCredential]::new($username, $password) } # Logon to Partner Center try { Connect-PartnerCenter -ApplicationId $applicationId -Credential $partnerCenterCredential -ErrorAction Stop # Logon was successful Write-Information "Connection and logon to Partner Center successful with username '$($username)'." return $true } # Error while attempting to logon catch { Write-Error "Exception while attempting to logon to Partner Center account with username '$($username)'.`r`n$($_.Exception.Message)" return $false } } |