# encoding: ascii
# api: powershell
# title: Step04-Copy_VLAN_clust
# description: Script to copy standard vSwitch config across all host within the cluster
# version: 0.1
# type: script
# author: Leon Scheltema
# license: CC0
# x-poshcode-id: 5705
# x-archived: 2015-01-25T23:11:53
# x-published: 2015-01-23T12:59:00
#
#
# Script to copy standard vSwitch config across all host within the cluster
# Modified by Leon Scheltema AVANCE ICT Groep Nederland
# Begin variables
$sourceVI = "New vCenter"
$BASEHost = "Base host"
# End variables
# Connect to vCenter server
Connect-VIServer "$sourceVI"
$NEWHost = Get-Cluster "Base host Cluster" | Get-VMhost
Foreach ($hosts in $NEWHost) {
Get-VMHost -Name $BASEHost |Get-VirtualSwitch |Foreach {
If ((Get-VMHost -Name $hosts |Get-VirtualSwitch -Name $_.Name-ErrorAction SilentlyContinue)-eq $null){
Write-Host "Creating Virtual Switch $($_.Name)"
$NewSwitch = Get-VMHost -Name $hosts |New-VirtualSwitch -Name $_.Name-NumPorts $_.NumPorts-Mtu $_.Mtu
$vSwitch = $_
}
$_ |Get-VirtualPortGroup |Foreach {
If ((Get-VMHost -Name $hosts |Get-VirtualPortGroup -Name $_.Name-ErrorAction SilentlyContinue)-eq $null){
Write-Host "Creating Portgroup $($_.Name)"
$NewPortGroup = Get-VMHost -Name $hosts |Get-VirtualSwitch -Name $vSwitch |New-VirtualPortGroup -Name $_.Name-VLanId $_.VLanID
}
}
}
}
# Disconnect from vCenter server
Disconnect-VIServer -server "$sourceVI" -Force -Confirm:$false