65 lines
1.7 KiB
PowerShell
65 lines
1.7 KiB
PowerShell
|
|
trap {
|
|
&$TrapHandler
|
|
}
|
|
|
|
|
|
|
|
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'
|
|
}
|
|
}
|