Enable-SqlAlwaysOn
Enables the Always On Availability Groups feature.
Syntax
Enable-SqlAlwaysOn
[[-Path] <String>]
[-NoServiceRestart]
[-Force]
[-Credential <PSCredential>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Enable-SqlAlwaysOn
[-InputObject] <Server>
[-NoServiceRestart]
[-Force]
[-Credential <PSCredential>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Enable-SqlAlwaysOn
-ServerInstance <String>
[-NoServiceRestart]
[-Force]
[-Credential <PSCredential>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Enable-SqlAlwaysOn cmdlet enables Always On on an instance of SQL Server.
If the Always On Availability Groups feature is enabled while the SQL Server service is running, the database engine service must be restarted for the changes to complete.
Unless you specify the Force parameter, the cmdlet prompts you to restart the service.
If the Always On Availability Groups feature is already enabled, no action is performed.
This cmdlet can run against a remote service.
You must have Administrator permissions to execute this cmdlet.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Examples
Example 1: Enable Always On Availability Groups at the specified path
PS C:\> Enable-SqlAlwaysOn -Path "SQLSERVER:\Sql\Computer\Instance"
This command enables Always On Availability Groups on the instance of SQL Server located at the specified path. This change requires restarting the instance, and you will be prompted to confirm this restart.
Example 2: Enable Always On Availability Groups at the specified path and restart the server without confirmation
PS C:\> Enable-SqlAlwaysOn -Path "SQLSERVER:\Sql\Computer\Instance" -Force
This command enables Always On Availability Groups on the instance of SQL Server located at the specified path. The Force option causes the server instance to be restarted without prompting you for confirmation.
Example 3: Enable Always On Availability Groups for the specified server instance
PS C:\> Enable-SqlAlwaysOn -ServerInstance "Computer\Instance"
This command enables Always On Availability Groups on the instance of SQL Server named Computer\Instance. This change requires restarting the instance and you will be prompted to confirm this restart.
Example 4: Enable Always On Availability Groups for the specified server instance using Windows authentication
PS C:\> Enable-SqlAlwaysOn -ServerInstance "Computer\Instance" -Credential (Get-Credential "DOMAIN\Username")
This command enables Always On Availability Groups on the instance of SQL Server named 'Computer\Instance' using Windows authentication. You will be prompted to enter the password for the specified account. This change requires restarting the instance, and you will also be prompted to confirm this restart.
Example 5: Enable Always On Availability Groups at the specified path without restarting the server
PS C:\> Enable-SqlAlwaysOn -Path "SQLSERVER:\Sql\Computer\Instance" -NoServiceRestart
This command enables Always On Availability Groups on the SQL Server instance located at the specified path, but the command does not restart the instance. The change will not take effect until you manually restart this server instance.
Parameters
-Confirm
Prompts you for confirmation before running the cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifies the name of the SQL Server instance on which to enable the Always On Availability Groups feature. The format is MACHINENAME\INSTANCE. To enable this setting on a remote server, use this along with the Credential parameter.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Forces the command to run without asking for user confirmation. This parameter is provided to permit the construction of scripts.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifies the server object of the SQL Server instance.
Type: | Server |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoServiceRestart
Indicates that the user is not prompted to restart the SQL Server service. You must manually restart the SQL Server service for changes to take effect. When this parameter is set, Force is ignored.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Specifies the path to the SQL Server instance. This is an optional parameter. If not specified, the current working location is used.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProgressAction
Determines how PowerShell responds to progress updates generated by a script, cmdlet, or provider, such as the progress bars generated by the Write-Progress cmdlet. The Write-Progress cmdlet creates progress bars that show a command's status.
Type: | ActionPreference |
Aliases: | proga |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ServerInstance
Specifies the name of the SQL Server instance. The format is MACHINENAME\INSTANCE. To enable this setting on a remote server, use this along with the Credential parameter.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
Microsoft.SqlServer.Management.Smo.Server
System.String
Outputs
System.Object