As some of you know, I’ve been working on CM 2012 for a while now, and establishing a hierarchy. One of the unfortunate tasks with this job has been boundary creation. Finally after a longer period than it should have taken I went to build a tool to create site boundaries for me out of a csv, similar to tools with SCCM 2007.
I found the sms_boundary class hadn’t changed (outside of an obsolete boundaryflag property) so I decided to test it out with powershell as a one liner, and it worked great. I did a bit more research and stumbled across something already written by MVP Kaido Järvemets from Estonia, and enjoyed his minimalistic script for it so I followed his methodology (mostly) and ended up with this script that reads from a boundaries.csv file
$sitecode = "ABC" $siteserver = "mysiteserver" $boundarylist = Import-Csv '.\boundaries.csv' foreach($Item in $boundarylist) {Switch($item.'type') {"Subnet" {$Type = 0} "AD" {$Type = 1} "IPv6" {$Type = 2} "Range" {$Type = 3}} $arrValues = @{DisplayName = $Item.description; BoundaryType = $Type; ` Value = $Item.boundary} Set-WmiInstance -Namespace "Root\SMS\Site_$sitecode" -Class SMS_Boundary ` -Arguments $arrValues -ComputerName $siteserver}
Not to take credit for other peoples work, especially since this is a hacked up version of his original which can be found here.