Import_GPO.wsf (In the book)

Download file: import_gpo.wsf (3 Kb)

<job>
<comment>
Script : Import_GPO.wsf
From the book "Group Policy" by Jeremy Moskowitz

The contents of this script are provided "as is".
No warranty of any kind, either express or implied, is made in relation
to the availability, accuracy, reliability or content of this script.
ALWAYS test scripts before using in your production network!
</comment>
<runtime>
<description>Restore backed up GPOs.</description>
<named name="Folder"
helpstring="Folder containing the backed up GPOs"
type="string" required="true" />
<named name="List"
helpstring="List the GPOs in the backup folder."
type="simple" required="false" />
<named name="GPO"
helpstring="Name of GPO to import."
type="string" required="true" />
<named name="OU"
helpstring="Path to OU linking to new GPO."
type="string" required="true" />
</runtime>
<script language="VBScript" src="/GPMgmt.vbs" />
<script>
CheckCScript
CreateGPMObjects

If WSH.Arguments.Count > 0 Then
If WSH.Arguments.Named.Exists("Folder") Then
BackupFolder = WSH.Arguments.Named("Folder")
If Not(Right(ReportFolder,1) = "\") Then
BackupFolder = BackupFolder & "\"
End If
Else
ShowUsage
End If
If WSH.Arguments.Named.Exists("LIST") Then
ListGPOs
WScript.Quit
End If
If WSH.Arguments.Named.Exists("OU") Then
OUName = WSH.Arguments.Named("OU")
Else
ShowUsage
End If
If WSH.Arguments.Named.Exists("GPO") Then
GPOName = WSH.Arguments.Named("GPO")
Else
ShowUsage
End If
If WSH.Arguments.Named.Exists("TOP") Then
LinkPrecedence = 1
Else
LinkPrecedence = -1
End If
End If

If Not(FolderExists(BackupFolder)) Then
WScript.Echo BackupFolder & " does not exist."
WScript.Quit
End If

Set OU = GetOU(OUName)
If OU Is Nothing Then
WScript.Echo "Unable to bind to OU " & OUName
WScript.Quit
End If

Set NewGPO = gpmDomain.CreateGPO()
NewGPO.DisplayName = GPOName
Set SOM = gpmDomain.GetSOM(OU.distinguishedName)

On Error Resume Next
Set SOM_Link = SOM.CreateGPOLink(LinkPrecedence, NewGPO)
If Err.Number = 0 Then
WScript.Echo "Successfully linked " & NewGPO.DisplayName & " to " & SOM.Name & "."
Else
WScript.Echo "An error occurred while linking to OU."
End If

Set gpmBackupDir = gpm.GetBackupDir(BackupFolder)
Set gpmBackup_List = GetGPOBackups(BackupFolder)
For i=1 To gpmBackup_List.Count
If gpmBackup_List.Item(i).GPODisplayName = GPOName Then
GPO_ID = gpmBackup_List.item(i).ID
Set GPOToImport = gpmBackupDir.GetBackup(GPO_ID)
Exit For
End If
Next

WScript.StdOut.Write "Are you sure you want to import this GPO? (y or n) "
rs = WScript.StdIn.ReadLine
WScript.Echo VbCrLf

If StrComp(rs,"y",vbTextCompare) = 0 Then
WScript.Echo "Importing selected GPO..."
Set gpmResult = NewGPO.Import(0,GPOToImport)
Set gpmResult_Status = gpmResult.Status
If gpmResult_Status.count <> 0 Then
For i=1 to gpmResult_Status.Count
WScript.Echo gpmResult_Status.Item(i).Message
Next
gpmResult.OverallStatus()
Else
WScript.Echo "The GPO was successfully imported."
End If
Else
WScript.Echo "Operation aborted. No GPOs imported."
End If

Sub ListGPOs
Set gpmBackup_List = GetGPOBackups(BackupFolder)
WScript.Echo "Here is a list of the most current GPO backups:"
For i=1 To gpmBackup_List.Count
With gpmBackup_List.Item(i)
WScript.Echo .GPODisplayName & ": " _
& "Backed up On " & .Timestamp _
& " (" & .Comment & ")"
End With
Next
End Sub

Sub ShowUsage
WScript.Echo "Usage:"
WScript.Echo "CSCRIPT.EXE //nologo /Folder:path /GPO:Name /OU:OU_Name [/TOP]"
WScript.Quit
End Sub
</script>
</job>
 

Be a hero! Report a problem with this web page here

Event Calendar

Find out where and when Jeremy will be speaking next.

November 2008
SMTWTFS
1
2345678
9101112131415
16171819202122
23242526272829
30
Mon, Nov 10 - Thu, Nov 13
Windows Connections -- Vegas
It's WinConnections time! All sorts of great speeches this time. GP Troubleshooting, My Pre-Con, App-V 101. Will you be there?
www.winconnections.com
Mon, Nov 17 - Tue, Nov 18
Two-Day Intensive Group Policy Essentials Workshop (taught by Jeremy Moskowitz (Lead Instructor) - GPanswers.com / Moskowitz, Inc. )
 Final class of 2008.
This is a Two-Day Intensive Group Policy Essentials Workshop in Atlanta, GA !
Wed, Nov 19 - Thu, Nov 20
Two-Day "Group Policy 2.0" Catch-Up Workshop (taught by Jeremy Moskowitz (Lead Instructor) - GPanswers.com / Moskowitz, Inc. )
 Final class of 2008.
This is a Two-Day "Group Policy 2.0" Catch-Up Workshop in Atlanta, GA !
Fri, Nov 21 - Fri, Nov 21
One-Day Advanced Group Policy Workshop (XP/Vista Focused) (taught by Jeremy Moskowitz (Lead Instructor) - GPanswers.com / Moskowitz, Inc. )
 Final class of 2008.
This is a One-Day Advanced Group Policy Workshop (XP/Vista Focused) in Atlanta, GA !