Configuration Manager 2012 – Script import des boundaries automatique

Lors de la création de votre infrastructure Configuration Manager 2012, vous pouvez être amené à devoir importer un grand nombre de boundaries. De plus, pour pouvoir gérer vos clients dans ces boundaries, il vous faudra les ajouter à un/des boundary group.

Je vous propose un script Powershell qui vous permettra cela de façon automatique.

Le script récupère la liste des boundaries dans un fichier excel à quatre colonnes :

  • DisplayName
  • BoundaryType
  • Value
  • BdrGroup
  • ############################################################################################
    # Project: Add Boundaries and Boundary group
    # Date: 07-02-2014
    # By: Microsoft-desktop.com
    # Version: 1
    # Description : Script to add a list of boundaries based on an excel file
    # Usage : Run the script after modifying variables
    # Updates : 
    ############################################################################################
    
    [Threading.Thread]::CurrentThread.CurrentCulture = 'en-US'
    $XLSX = New-Object -ComObject "Excel.Application"
    
    $BoundariesXLSXFile = "C:\Temp\Boundaries.xlsx"
    $Path = (Resolve-Path $BoundariesXLSXFile).Path
    $SavePath = $Path -replace ".xl\w*$",".csv"
    
    $WorkBook = $XLSX.Workbooks.Open($Path)
    $WorkBook.SaveAs($SavePath,6)
    $WorkBook.Close($False)
    $XLSX.Quit()
    
    $Boundaries = Import-Csv $SavePath
    $SiteServer = "CM12Server.lab"
    $CM12SiteCode = "LAB"
    
    foreach($Item in $Boundaries)
    {
    	#---------------- Define Boundary Type -----------------#
        Switch($item.'BoundaryType')
        {
            
            "IP Subnet" {$Type = 0}
            "Active Directory Site" {$Type = 1}
            "IPv6" {$Type = 2}
            "Ip Address Range" {$Type = 3}
    
        }
        
    		#---------------- Create Boundary  -----------------#
    		$Arguments = @{DisplayName=$Item.'DisplayName'; BoundaryType = $Type; Value = $Item.'Value'}
    		Set-WmiInstance -Namespace "Root\SMS\Site_$($CM12SiteCode)" -Class SMS_Boundary -Arguments $Arguments -ComputerName $SiteServer
    		
    		#----------------You can copy this section if you have more than one boundary group -----------------#
    		#---------------- IF Boundary Group is not null -----------------#
    		if($Item.'BdrGroup' -notlike "")
    			{
    			#---------------- Get Boundary ID -----------------#
    				$myDisplayName=$Item.'DisplayName'
    				
    				$boundaryquery = Get-Wmiobject -Namespace "Root\SMS\Site_$($CM12SiteCode)" -Class SMS_Boundary -ComputerName $SiteServer -Filter "DisplayName = '$myDisplayName'"
    				
    				foreach($boundary in $boundaryquery)
    					{
    						$BID=$boundary.boundaryID
    					}
    				
    				#---------------- Get Boundary Group ID and Add boundary -----------------#
    				$myBoudaryGroup=$Item.'BdrGroup'
    				$BoundaryGroupQuery = Get-WmiObject -Namespace "Root\SMS\Site_$($CM12SiteCode)" -Class SMS_BoundaryGroup -ComputerName $SiteServer -Filter "Name = '$myBoudaryGroup'"
    				$BoundaryGroupQuery.AddBoundary($BID)			
    			}
    }
    

    Vous pouvez téléchargé le script ICI !!

    Please follow and like us:

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Social media & sharing icons powered by UltimatelySocial