Monday, January 4, 2016

1E Nomad / Active Efficiency, Groups Subnets for Single Site Download

If you are using Nomad 5.x / 6.x and Active Efficiently then hopefully you are utilizing the Single Site Download (SSD) feature.  This allows all machines in a given site to share content more efficiently, thus improving the experience.


Example:
Machine (computer1) is in an AD boundary call BOSTON.  This machine is in Subnet A
Machine (computer2) is in an AD boundary call BOSTON.  This machine is in Subnet B
 
Without SSD one machine from each subnet would pull from the local DP/Secondary.  With SSD enabled a machine would have the ability to jump from Subnet A to Subnet B for files instead of reaching over to the DP. 


The default script create the groups via AD Sites and Services
What if you have several AD sites that should be grouped. 
Suppose you have an AD Site called "Boston-1st-Floor" and Boston-2nd-Floor" they are separate AD sites but they are still talking to the same DP.  Here is how you can force the group to create as the PowerShell script is running.


Note that I am ignoring the IPRange boundary types.  This is because for us the IPRanges are use via the VPN solution so we ignore them.


The IPSubnet display name for us is normally like 'XXXXXX - (127.0.0.0./30) ' So for us we simply read the name in SCCM and pull the IP address


'**************************************************************
##place this just after the wipe command to remove the current boundaries from AE.


$Boundaries = Get-WmiObject -Namespace "root\sms\site_AB1" -ComputerName "PrimaryServerName" -Query "SELECT * FROM SMS_Boundary WHERE BoundaryType ='0'"


foreach ($Boundary in $Boundaries)
{
  $SiteID = $Boundary.DisplayName.Substring(0,6)
  ###Make special Requests here  #####  
if ($SiteID -like 'Boston-1st-Floor' -or $SiteID -like 'Boston-2nd-Floor' )
 {
    $SiteID = "Full-Boston-Building"
  }
 
$IPSubnet = $Boundary.DisplayName.Substring( $Boundary.DisplayName.indexof("(")+1, $Boundary.DisplayName.indexof(")") - $Boundary.DisplayName.indexof("(")-1 )


#$IPSubnet = 127.12.12.1/24

   AddLocation $SiteID $IPSubnet


'**************************************************************