Install-Adfs Farm

Creates the first node of a new federation server farm.

Syntax

Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -ServiceAccountCredential <PSCredential>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -DecryptionCertificateThumbprint <String>
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -ServiceAccountCredential <PSCredential>
       -SigningCertificateThumbprint <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -DecryptionCertificateThumbprint <String>
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -ServiceAccountCredential <PSCredential>
       -SigningCertificateThumbprint <String>
       -SQLConnectionString <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -DecryptionCertificateThumbprint <String>
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -GroupServiceAccountIdentifier <String>
       -SigningCertificateThumbprint <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -DecryptionCertificateThumbprint <String>
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -GroupServiceAccountIdentifier <String>
       -SigningCertificateThumbprint <String>
       -SQLConnectionString <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -ServiceAccountCredential <PSCredential>
       -SQLConnectionString <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -GroupServiceAccountIdentifier <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Install-AdfsFarm
       [-CertificateThumbprint <String>]
       [-Credential <PSCredential>]
       -FederationServiceName <String>
       [-FederationServiceDisplayName <String>]
       -GroupServiceAccountIdentifier <String>
       -SQLConnectionString <String>
       [-OverwriteConfiguration]
       [-SSLPort <Int32>]
       [-TlsClientPort <Int32>]
       [-AdminConfiguration <Hashtable>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

The Install-AdfsFarm cmdlet creates the first node of a new federation server farm.

Examples

Example 1: Create the first node in a federation server farm using WID on the local server

PS C:\> $fscredential = Get-Credential
PS C:\> Install-AdfsFarm -CertificateThumbprint 8169c52b4ec6e77eb2ae17f028fe5da4e35c0bed -FederationServiceName fs.corp.contoso.com -ServiceAccountCredential $fscredential

Creates the first node in a federation server farm that uses the Windows Internal Database (WID) on the local server computer.

In this example, a certificate thumbprint value is supplied for the CertificateThumbprint parameter. This certificate will be used as the SSL certificate and the service communications certificate. Automatically generated, self-signed certificates will be used for the token signing and token decryption certificates.

To specify certificates for token signing and token decryption, specify thumbprint values for the SigningCertificateThumbprint and DecryptionCertificateThumbprint parameters.

Example 2: Create the first node in a federation server farm using a group Managed Services Account

PS C:\> Install-AdfsFarm -CertificateThumbprint 8169c52b4ec6e77eb2ae17f028fe5da4e35c0bed -FederationServiceName fs.corp.contoso.com -GroupServiceAccountIdentifier CONTOSO\GroupAccount01

This example creates the first node in a federation server farm that uses a group Managed Service Account as the service account. In this example, a certificate thumbprint value is supplied for the CertificateThumbprint parameter. This certificate will be used as the SSL certificate and the service communications certificate. Automatically generated, self-signed certificates will be used for the token signing and token decryption certificates. To specify certificates for token signing and token decryption, specify thumbprint values for the SigningCertificateThumbprint and DecryptionCertificateThumbprint parameters.

Lists thumbprint values of currently installed certificates.

Example 3: Create the first node in a federation server farm that uses SQL Server on a remote computer

PS C:\> $fscredential = Get-Credential
PS C:\> Install-AdfsFarm -CertificateThumbprint 8169c52b4ec6e77eb2ae17f028fe5da4e35c0bed -FederationServiceName fs.corp.contoso.com -ServiceAccountCredential $fscredential -SQLConnectionString "Data Source=SQLHost;Integrated Security=True"

Creates the first node in a federation server farm that uses a Microsoft SQL Server database on a remote computer named SQLHost.

In this example, a certificate thumbprint value is supplied for the CertificateThumbprint parameter. This certificate will be used as the SSL certificate and the service communications certificate. Automatically generated, self-signed certificates will be used for the token signing and token decryption certificates.

To specify certificates for token signing and token decryption, specify thumbprint values for the SigningCertificateThumbprint and DecryptionCertificateThumbprint parameters.

Example 4: Overwrite an AD FS configuration and create the first node in a federation server farm

PS C:\> $fscredential = Get-Credential
PS C:\> Install-AdfsFarm -CertificateThumbprint 8169c52b4ec6e77eb2ae17f028fe5da4e35c0bed -FederationServiceName fs.corp.contoso.com -ServiceAccountCredential $fscredential -SQLConnectionString "Data Source=SQLHost;Integrated Security=True" -OverwriteConfiguration -SigningCertificateThumbprint 8169c52b4ec6e77eb2ae17f028fe5da4e35c0bed -DecryptionCertificateThumbprint cf2e5064c521d625c8d53536bc98aa8e08f5f2ad

Overwrites an existing AD FS configuration database and creates the first node in a federation server farm that uses a Microsoft SQL server database on a remote computer named SQLHost.

In this example, certificate thumbprint values are specified for the token signing certificate and for the token encryption certificate using the SigningCertificateThumbprint and DecryptionCertificateThumbprint parameters respectively.

Example 5: Install AD FS without DA permission

PS C:\> Install-AdfsFarm -CertificateThumbprint <thumbprint> -FederationServiceName "fs.contoso.com" ServiceAccountCredential $svcCred -Credential $localAdminCred [-OverwriteConfiguration] -AdminConfiguration $adminConfig

In this example, the CertificateThumbprint parameter specifies the thumbprint of the SSL certificate in the local machine My store that is used for AD FS and the Web Application Proxy.

The FederationServiceName parameter specifies the DNS name of the federation service.

The ServiceAccountCredential parameter specifies the credentials of the login account for AD FS.

The Credential parameter specifies the credentials for the local administrator (a non-domain administrator) account used install AD FS.

The AdminConfiguration parameter specifies the object returned from the CreateNonDADkmContainer.ps1 script, which represents the location and name of the DKM container created by the script. The script and additional guidance can be found here .

For example, .\CreateNonDADkmContainer.ps1 -AcctToAclDkmContainer "contoso\FsSvcAcct" .

Example 6: Install AD FS without DA permission using gMSA as an AD FS account

PS C:\> Set-ADServiceAccount -Identity fsgmsaacct -PrincipalsAllowedToDelegateToAccount "<localadmin>"
PS C:\> Install-AdfsFarm -CertificateThumbprint <thumbprint> -FederationServiceName "fs.contoso.com" -Credential $localAdminCred -GroupServiceAccountIdentifier "contoso\gmsaacct$" [-OverwriteConfiguration] -AdminConfiguration $adminConfig

In the first command, the PrincipalsAllowedToDelegateToAccount parameter specifies the name of the non-domain administrator account used to install AD FS.

In the second command, the CertificateThumbprint parameter specifies the thumbprint of the SSL certificate in the local machine My store that is used for AD FS and the Web Application Proxy.

The FederationServiceName parameter specifies the DNS name of the federation service.

The Credential parameter specifies the credentials for the local administrator (a non-domain administrator) account used install AD FS.

The GroupServiceAccountIdentifier parameter specifies the name of the gMSA logon account for AD FS. The identifier must be terminated by a dollar sign ($).

The AdminConfiguration parameter specifies the object returned from the CreateNonDADkmContainer.ps1 script, which represents the location and name of the DKM container created by the script. The script and additional guidance can be found here .

For example, .\CreateNonDADkmContainer.ps1 -AcctToAclDkmContainer "contoso\FsGmsaAcct$" .

Required Parameters

-DecryptionCertificateThumbprint

Specifies the value of the certificate thumbprint of the certificate that should be used for token decryption. If this parameter is used, the automatic certificate rollover feature will be disabled, and a token signing certificate must also be specified using the SigningCertificateThumbprint parameter. This value should match the thumbprint of a valid certificate in the Local Computer certificate store.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-FederationServiceName

Specifies a Federation Service name.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-GroupServiceAccountIdentifier

Specifies the firstref_adds Group Managed Service Account under which the Active Directory Federation Services (AD FS) service runs.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SQLConnectionString

Specifies the SQL Server database that will store the AD FS configuration settings. If not specified, the AD FS installer uses the Windows Internal Database to store configuration settings.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ServiceAccountCredential

Specifies the Active Directory account under which the AD FS service runs.

Type: PSCredential
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SigningCertificateThumbprint

Specifies the value of the certificate thumbprint of the certificate that should be used for token signing. If this parameter is used, the automatic certificate rollover feature will be disabled, and a token decryption certificate must also be specified using the DecryptionCertificateThumbprint parameter. This value should match the thumbprint of a valid certificate in the Local Computer certificate store.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Optional Parameters

-AdminConfiguration
Type: Hashtable
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-CertificateThumbprint

Specifies the certificate thumbprint of a digital public key X.509 certificate of a user account that has permission to perform this action.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Confirm

Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Aliases: cf
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Credential

Specfies a PSCredential object.

Type: PSCredential
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-FederationServiceDisplayName

Specifies a display name.

Type: String
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-OverwriteConfiguration

Overwrites an existing AD FS configuration database with a new database.

Type: SwitchParameter
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SSLPort

Specifies an SSL port.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TlsClientPort

Specfies a TLS client port.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Aliases: wi
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False