-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTest-DbConnection.ps1
More file actions
53 lines (43 loc) · 1.58 KB
/
Copy pathTest-DbConnection.ps1
File metadata and controls
53 lines (43 loc) · 1.58 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
function Test-OleDbConnection {
<#
.SYNOPSIS
Prüft eine OLE DB Datenbankverbindung mit interaktiver Passwortabfrage.
#>
param (
[Parameter(Mandatory)]
[string]$BaseConnectionString
)
$securePass = Read-Host 'Passwort aus KeePass eingeben' -AsSecureString
$plainPass = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePass)
)
$connectionString = "$BaseConnectionString;Password=$plainPass"
$result = [PSCustomObject]@{
Success = $false
Message = $null
}
try {
$conn = New-Object System.Data.OleDb.OleDbConnection $connectionString
$conn.Open()
$conn.Close()
$result.Success = $true
$result.Message = 'Verbindung erfolgreich.'
}
catch {
$result.Message = $_.Exception.Message
}
finally {
if ($conn) {
$conn.Dispose()
}
$plainPass = $null
}
return $result
}
# Basis-Connectionstring OHNE Passwort
$baseConnectionString = 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=MDM_DB;Data Source=MYSERVER\MYINSTANCE'
Test-OleDbConnection -BaseConnectionString $baseConnectionString
# Alternativ könnte man den Basis-Connectionstring auch in einer INI-Datei / UDL Datei oder einem anderen Konfigurationsformat speichern, hier als udl z.B.:
# [oledb]
# ; Everything after this line is an OLE DB initstring
# Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=MDM_DB;Data Source=MYSERVER\MYINSTANCE