[CmdletBinding()] param( [Parameter(Mandatory=$true)] [string]$DomainNetBIOSName, [Parameter(Mandatory=$true)] [string]$WSFCNodePrivateIP2, [Parameter(Mandatory=$true)] [string]$ClusterName, [Parameter(Mandatory=$true)] [string]$AdminSecret ) # Getting the DSC Cert Encryption Thumbprint to Secure the MOF File $DscCertThumbprint = (get-childitem -path cert:\LocalMachine\My | where { $_.subject -eq "CN=AWSQSDscEncryptCert" }).Thumbprint # Getting Password from Secrets Manager for AD Admin User $AdminUser = ConvertFrom-Json -InputObject (Get-SECSecretValue -SecretId $AdminSecret).SecretString $ClusterAdminUser = $DomainNetBIOSName + '\' + $AdminUser.UserName # Creating Credential Object for Administrator $Credentials = (New-Object PSCredential($ClusterAdminUser,(ConvertTo-SecureString $AdminUser.Password -AsPlainText -Force))) $ConfigurationData = @{ AllNodes = @( @{ NodeName="*" CertificateFile = "C:\AWSQuickstart\publickeys\AWSQSDscPublicKey.cer" Thumbprint = $DscCertThumbprint PSDscAllowDomainUser = $true }, @{ NodeName = 'localhost' } ) } Configuration AdditionalWSFCNode { param( [PSCredential] $Credentials ) Import-Module -Name xFailOverCluster Import-Module -Name PSDscResources Import-DscResource -ModuleName xFailOverCluster Import-DscResource -ModuleName PSDscResources Node 'localhost'{ WindowsFeature AddFailoverFeature { Ensure = 'Present' Name = 'Failover-clustering' } WindowsFeature AddRemoteServerAdministrationToolsClusteringFeature { Ensure = 'Present' Name = 'RSAT-Clustering-Mgmt' DependsOn = '[WindowsFeature]AddFailoverFeature' } WindowsFeature AddRemoteServerAdministrationToolsClusteringPowerShellFeature { Ensure = 'Present' Name = 'RSAT-Clustering-PowerShell' DependsOn = '[WindowsFeature]AddRemoteServerAdministrationToolsClusteringFeature' } WindowsFeature AddRemoteServerAdministrationToolsClusteringCmdInterfaceFeature { Ensure = 'Present' Name = 'RSAT-Clustering-CmdInterface' DependsOn = '[WindowsFeature]AddRemoteServerAdministrationToolsClusteringPowerShellFeature' } xWaitForCluster WaitForCluster { Name = $ClusterName RetryIntervalSec = 10 RetryCount = 60 DependsOn = '[WindowsFeature]AddRemoteServerAdministrationToolsClusteringCmdInterfaceFeature' } xCluster JoinNodeToCluster { Name = $ClusterName StaticIPAddress = $WSFCNodePrivateIP2 DomainAdministratorCredential = $Credentials DependsOn = '[xWaitForCluster]WaitForCluster' } } } AdditionalWSFCNode -OutputPath 'C:\AWSQuickstart\AdditionalWSFCNode' -ConfigurationData $ConfigurationData -Credentials $Credentials