Scripts/public/Connect-SL1.ps1
function Connect-SL1 { <# .Synopsis Connect-SL1 prepares a connection to ScienceLogic's SL1 environment. .Description Use this function to prepare your powershell session to connect to ScienceLogic's SL1. This only needs to be called once every session. .Parameter URI Enter the base url of the SL1 environment .Parameter Credential A username and password required to connect to SL1. .Parameter Passthru Returns a connection status result by performing a test call. .Example $SL1Credential = Get-Credential Connect-SL1 -URI 'https://support.sciencelogic.com' -Credential $SL1Credential The first command registers a credential. The second command creates a connection to ScienceLogic and saves it in memory for subsequent calls to the environment. #> [CmdletBinding()] Param( [Parameter(Mandatory, Position=0, ValueFromPipeline)] [String]$Uri, [Parameter(Mandatory, Position=1)] [PSCredential]$Credential, [Parameter(Position=2)] [Switch]$Passthru ) Process { if ($Script:SL1Defaults.APIRoot -ne $uri -or $Script:SL1Defaults.Credential -ne $Credential ) { $Script:SL1Defaults.APIRoot = $Uri $Script:SL1Defaults.Credential = $Credential $Result = Invoke-SL1Request Get "$($Script:SL1Defaults.APIRoot)/api/account/_self" if ($Result.StatusCode -ne 200) { $Script:SL1Defaults.Isconnected = $false throw "Unsuccessful logon!" } else { $Script:SL1Defaults.IsConnected = $true } } else { $Result = Invoke-SL1Request Get "$($Script:SL1Defaults.APIRoot)/api/account/_self" if ($Result.StatusCode -ne 200) { $Script:SL1Defaults.Isconnected = $false throw "Unsuccessful logon!" } else { $Script:SL1Defaults.IsConnected = $true } } if ($Passthru) { [pscustomobject]@{ 'IsConnected'=$Script:SL1Defaults.IsConnected } } } } |