murano-deployment/WindowsPowerShell/Functions/New-SqlServerSystemAccount.ps1

59 lines
1.7 KiB
PowerShell

function New-SqlServerSystemAccount {
param (
# (REQUIRED) Domain Name
[Parameter(Mandatory=$true)]
[String] $DomainName,
# (REQUIRED) User name who has permissions to create and modify userPassword
# Usually this is the domain administrator '$domainName\Administrator' account
[Parameter(Mandatory=$true)]
[String] $UserName,
# (REQUIRED) Password for that user
[Parameter(Mandatory=$true)]
[String] $UserPassword,
# (REQUIRED) User name for a new account that will be used to run SQL Server
[Parameter(Mandatory=$true)]
[String] $SQLServiceUserName,
# (REQUIRED) Password for that user
[Parameter(Mandatory=$true)]
[String] $SQLServiceUserPassword,
[String] $PrimaryNode = ' '
)
begin {
Show-InvocationInfo $MyInvocation
}
end {
Show-InvocationInfo $MyInvocation -End
}
process {
trap {
&$TrapHandler
}
if ($PrimaryNode.ToLower() -ne ($Env:ComputerName).ToLower()) {
Write-Log "THis function runs on AOAG primary node only."
Write-Log "Exiting."
return
}
Write-Log "Installing 'RSAT-AD-PowerShell' ... "
Add-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory
$Creds = New-Credential -UserName "$DomainName\$UserName" -Password "$UserPassword"
Write-Log "Adding new user ..."
$null = New-ADUser `
-Name $SQLServiceUserName `
-AccountPassword $(ConvertTo-SecureString -String $SQLServiceUserPassword -AsPlainText -Force) `
-Credential $Creds `
-ErrorAction 'Stop'
}
}