-
Notifications
You must be signed in to change notification settings - Fork 1
/
Import-SQLPS.ps1
40 lines (37 loc) · 1.25 KB
/
Import-SQLPS.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FUNCTION Import-SQLPS {
<#
.SYNOPSIS
Imports the SQLPS module with error checking
.DESCRIPTION
Imports the SQLPS module if it is not already loaded, with a basic try-catch-throw to avoid executing the rest of a script as well as avoiding changing the path to SQLSERVER:\
.EXAMPLE
PS C:\> Import-SQLPS
.NOTES
Author : Ryan DeVries
Last Updated: 2015/06/18
Version : 1
.INPUTS
[string]
#>
[CmdletBinding()]
Param()
begin {
Write-Verbose "Detected parameter set $($PSCmdlet.ParameterSetName)"
$scriptstring = "Starting $($MyInvocation.MyCommand)"
foreach ($param in $PSBoundParameters.GetEnumerator()){ $scriptstring += " -$($param.key) $($param.value)"}
Write-Verbose $scriptstring
}
process {
if (!(Get-Module -Name sqlps)){
try {
Write-Verbose "Trying to import SQLPS module"
Push-Location
Import-Module -Name sqlps -DisableNameChecking -ErrorAction Stop
Pop-Location
}
catch { throw $_.Exception.GetBaseException().Message }
}
else { Write-Verbose "SQLPS module already loaded" }
}
end { Write-Verbose "Ending $($MyInvocation.Mycommand)" }
}