retrieve password if user exists
This commit is contained in:
Родитель
e85be185cc
Коммит
83ad9092a7
|
@ -1,3 +1,4 @@
|
||||||
|
:on error exit
|
||||||
--
|
--
|
||||||
-- remove old $(username) user and login from master
|
-- remove old $(username) user and login from master
|
||||||
--
|
--
|
||||||
|
|
|
@ -20,6 +20,7 @@ $dbpassword = ""
|
||||||
$dbusername = "rdemo"
|
$dbusername = "rdemo"
|
||||||
$passwordFile = "ExportedSqlPassword.txt"
|
$passwordFile = "ExportedSqlPassword.txt"
|
||||||
|
|
||||||
|
|
||||||
if ($dbuser)
|
if ($dbuser)
|
||||||
{
|
{
|
||||||
$dbusername = $dbuser
|
$dbusername = $dbuser
|
||||||
|
@ -64,7 +65,8 @@ else
|
||||||
[Environment]::SetEnvironmentVariable($var.Name, $var.Value)
|
[Environment]::SetEnvironmentVariable($var.Name, $var.Value)
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
sqlcmd -S $env:COMPUTERNAME -v username="$dbusername" -v password="$dbpassword" -i .\createuser.sql
|
#sqlcmd -S $env:COMPUTERNAME -b -i .\createuser.sql
|
||||||
|
Invoke-Sqlcmd -ServerInstance $env:COMPUTERNAME -InputFile .\createuser.sql
|
||||||
# save password securely for later retrieval
|
# save password securely for later retrieval
|
||||||
$securePassword = $dbpassword | ConvertTo-SecureString -AsPlainText -Force
|
$securePassword = $dbpassword | ConvertTo-SecureString -AsPlainText -Force
|
||||||
$secureTxt = $securePassword | ConvertFrom-SecureString
|
$secureTxt = $securePassword | ConvertFrom-SecureString
|
||||||
|
@ -72,6 +74,21 @@ else
|
||||||
} catch {
|
} catch {
|
||||||
Write-Host -ForegroundColor 'Red' "Error creating database user, see error message output"
|
Write-Host -ForegroundColor 'Red' "Error creating database user, see error message output"
|
||||||
Write-Host -ForegroundColor 'Red' $Error[0].Exception
|
Write-Host -ForegroundColor 'Red' $Error[0].Exception
|
||||||
|
#Try to read password from stored file
|
||||||
|
if (Test-Path $passwordFile)
|
||||||
|
{
|
||||||
|
Write-Host -ForegroundColor 'DarkYellow' "Retrieving password from stored file."
|
||||||
|
$secureTxtFromFile = Get-Content $passwordFile
|
||||||
|
$securePasswordObj = $secureTxtFromFile | ConvertTo-SecureString
|
||||||
|
#get back the original unencrypted password
|
||||||
|
$PasswordBSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePasswordObj)
|
||||||
|
$dbpassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($PasswordBSTR)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Host -ForegroundColor DarkYellow "Either ExportedSqlPassword.txt must exist with encrypted database password or must provide password using dbpass parameter."
|
||||||
|
throw
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
# Restore Environment
|
# Restore Environment
|
||||||
foreach ($var in $old_env.GetEnumerator()) {
|
foreach ($var in $old_env.GetEnumerator()) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче