Import-GPO
Imports the Group Policy settings from a backed-up GPO into a specified GPO.
Syntax
Import-GPO
-BackupId <Guid>
-Path <String>
[-TargetGuid <Guid>]
[-TargetName <String>]
[-MigrationTable <String>]
[-CreateIfNeeded]
[-Domain <String>]
[-Server <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Import-GPO
-BackupGpoName <String>
-Path <String>
[-TargetGuid <Guid>]
[-TargetName <String>]
[-MigrationTable <String>]
[-CreateIfNeeded]
[-Domain <String>]
[-Server <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
The Import-GPO
cmdlet imports the settings from a Group Policy Object (GPO) backup into a
specified target GPO. The target GPO can be in a different domain or forest than the backup that was
made and it does not have to exist prior to the operation.
Use the Path parameter to specify the location of the backup and then use the BackupGpoName parameter to specify the GPO name of the backup to use, or the BackupId parameter to specify the backup ID (GUID) of the backup to use.
If you specify a GPO name, the cmdlet imports the most recent backup. To import an earlier version of a GPO backup, you must use the BackupID parameter to specify the unique backup ID for the particular version. This is the GUID that uniquely identifies the backup within its backup directory.
Use the TargetName parameter or the TargetGuid parameter to specify the target GPO into which the settings should be imported. Use the optional MigrationTable parameter to map security principals and Universal Naming Convention (UNC) paths across domains. Use the CreateIfNeeded parameter to create a new GPO if the specified target GPO does not exist.
Examples
Example 1: Import the settings from the latest backup to another directory in the same domain
Import-GPO -BackupGpoName 'TestGPO' -TargetName 'TestGPO' -path 'C:\backups'
DisplayName : TestGPO
DomainName : contoso.com
Owner : CONTOSO\Domain Admins
Id : 87d38d82-cc2d-4bf7-ad9f-4083a60316eb
GpoStatus : AllSettingsEnabled
Description :
CreationTime : 3/3/2009 1:03:28 PM
ModificationTime : 3/6/2009 5:03:29 PM
UserVersion : AD Version: 9, SysVol Version: 9
ComputerVersion : AD Version: 5, SysVol Version: 5
WmiFilter :
This command imports the settings from the most recent backup of the GPO named TestGPO
in the
c:\backups
directory into a GPO of the same name in the current domain. If a GPO named TestGPO
does not exist in the current domain, the command fails because the CreateIfNeeded parameter is
not specified.
Example 2: Import the settings from specified backup in the same directory in the same domain
$params = @{
BackupId = 'A491D730-F3ED-464C-B8C9-F50562C536AA'
TargetName = 'TestGPO'
path = 'C:\Backups'
CreateIfNeeded = $true
}
Import-GPO @params
DisplayName : TestGPO
DomainName : contoso.com
Owner : CONTOSO\Domain Admins
Id : 87d38d82-cc2d-4bf7-ad9f-4083a60316eb
GpoStatus : AllSettingsEnabled
Description :
CreationTime : 3/3/2009 1:03:28 PM
ModificationTime : 3/6/2009 5:11:49 PM
UserVersion : AD Version: 10, SysVol Version: 10
ComputerVersion : AD Version: 6, SysVol Version: 6
WmiFilter :
This command imports the settings from the specified backup in the C:\Backups
directory into a GPO
that is named TestGPO
in the current domain. The BackupId parameter is used to specify the
GUID of the GPO backup to use. Because the CreateIfNeeded parameter is specified, if a GPO named
TestGPO
does not exist in the current domain, one is created before the settings are imported.
Example 3: Import the settings from the latest backup to another directory to the current domain
$params = @{
BackupGpoName = 'TestGPO'
Path = 'D:\Backups'
TargetName = 'NewTestGPO'
MigrationTable = 'D:\Tables\Migtable1.migtable'
CreateIfNeeded = $true
}
Import-GPO @params
DisplayName : NewTestGPO
DomainName : contoso.com
Owner : CONTOSO\Domain Admins
Id : 87d38d82-cc2d-4bf7-ad9f-4083a60316eb
GpoStatus : AllSettingsEnabled
Description :
CreationTime : 3/3/2009 1:03:28 PM
ModificationTime : 3/6/2009 5:11:49 PM
UserVersion : AD Version: 1, SysVol Version: 1
ComputerVersion : AD Version: 1, SysVol Version: 1
WmiFilter :
This command imports the settings from the most recent backup of the GPO named TestGPO
from the
D:\Backups
directory to a GPO named NewTestGPO
in the current domain. The specified migration
table is used to migrate security principals and UNC paths to the new GPO. Because the
CreateIfNeeded parameter is specified, the GPO is created if it does not already exist.
Parameters
-BackupGpoName
Specifies the display name of the backed-up GPO from which this cmdlet imports the settings. The most recent backup of the GPO is used. You can use the BackupID parameter to specify a particular version to use when multiple backups of the same GPO exist in the backup directory.
You can also refer to the BackupGpoName parameter by its built-in alias, DisplayName. For more information, see about_Aliases.
Type: | String |
Aliases: | DisplayName |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-BackupId
Specifies the backup ID of a GPO backup. The backup ID is a globally unique identifier (GUID) that uniquely identifies the backup. You can use this parameter to specify a particular version of a backed-up GPO in the backup directory.
The backup ID is different from the ID of the GPO that was backed up.
You can also refer to the BackupID parameter by its built-in alias, Id. For more information, see about_Aliases.
Type: | Guid |
Aliases: | Id |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-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 |
-CreateIfNeeded
Indicates that the cmdlet creates a GPO from the backup if the specified target GPO does not exist.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Domain
Specifies the domain for this cmdlet. You must specify the fully qualified domain name (FQDN) of the domain.
For the Import-GPO
cmdlet, this is the domain into which you want to import the GPO.
If you do not specify the Domain parameter, the domain of the user that is running the current session is used. If the cmdlet is being run from a computer startup or shutdown script, the domain of the computer is used. For more information, see the Notes section in the full Help.
If you specify a domain that is different from the domain of the user that is running the current session (or, for a startup or shutdown script, the computer), a trust must exist between that domain and the domain of the user, or the computer.
You can also refer to the Domain parameter by its built-in alias, DomainName. For more information, see about_Aliases.
Type: | String |
Aliases: | DomainName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-MigrationTable
Specifies the path to a migration table file. You can use a migration table to map security principals and UNC paths across domains.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Specifies the path to the backup directory.
You can also refer to the Path parameter by its built-in aliases: BackupLocation or BackupDirectory.
Type: | String |
Aliases: | BackupLocation, BackupDirectory |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Server
Specifies the name of the domain controller that this cmdlet contacts to complete the operation. You can specify either the fully qualified domain name (FQDN) or the host name
If you do not specify the name by using the Server parameter, the primary domain controller (PDC) emulator is contacted.
You can also refer to the Server parameter by its built-in alias, DC.
Type: | String |
Aliases: | DC |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetGuid
Specifies the GUID of the GPO into which this cmdlet imports the settings. Use the CreateIfNeeded parameter to force the GPO to be created if it does not already exist in the domain.
You must specify either the TargetGuid parameter or the TargetName parameter.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetName
Specifies the display name of the GPO into which the settings are to be imported. Use the CreateIfNeeded parameter to force the GPO to be created if it does not already exist in the domain.
You must specify either the TargetGuid parameter or the TargetName parameter.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
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 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Inputs
Microsoft.GroupPolicy.GpoBackup
You can pipe an object that represents a GPO backup on the file system to this cmdlet.
Outputs
Microsoft.GroupPolicy.Gpo
This cmdlet returns an object that represents the GPO after the settings have been imported.
Notes
You can use the
Import-GPO
to copy settings from a GPO backup in one domain to the same domain or another domain in the same or different forest.You can use the Domain parameter to explicitly specify the domain for this cmdlet.
If you do not explicitly specify the domain, the cmdlet uses a default domain. The default domain is the domain that is used to access network resources by the security context under which the current session is running. This domain is typically the domain of the user that is running the session for example, the domain of the user who started the session by opening Windows PowerShell or the domain of a user that is specified in a runas command. However, computer startup and shutdown scripts run under the context of the LocalSystem account. The LocalSystem account is a built-in local account, and it accesses network resources under the context of the computer account. Therefore, when this cmdlet is run from a startup or shutdown script, the default domain is the domain to which the computer is joined.