# addVmmNetworkSites.ps1
# version 0.01
# User Defined Variables
$networkSites=@(
@{
'newNetworkSitename'="test 1"
'vlanId'=100
'vlanCidr'='192.168.1.0/24'
'logicalNetworkName'='Trunk'
'logicalNetworkDescription'=''
'hostGroup'='All Hosts'
}
@{
'newNetworkSitename'="test 2"
'vlanId'=200
'vlanCidr'='192.168.2.0/24'
'logicalNetworkName'='Trunk'
'logicalNetworkDescription'=''
'hostGroup'='All Hosts'
}
)
function addVmmNetworkSite{
param(
$newNetworkSitename,
$vlanId,
$vlanCidr,
$logicalNetworkName='Trunk',
$logicalNetworkDescription='',
$hostGroup='All Hosts',
$runAsynchronously=$true
)
# Set the logical network with required features of network virtualization
$logicalNetwork = Get-SCLogicalNetwork -Name $logicalNetworkName
$setLogicalNetwork="Set-SCLogicalNetwork -Name '$logicalNetworkName' ``
-Description '$logicalNetworkDescription' ``
-LogicalNetwork `$logicalNetwork ``
-EnableNetworkVirtualization `$true ``
-UseGRE `$true ``
-LogicalNetworkDefinitionIsolation `$false ``
$(if($runAsynchronously){'-RunAsynchronously'})"
write-host $setLogicalNetwork
invoke-expression $setLogicalNetwork
# Add network site
$allHostGroups = @()
$allHostGroups += Get-SCVMHostGroup -Name $hostGroup
$allSubnetVlan = @()
$allSubnetVlan += New-SCSubnetVLan -Subnet $vlanCidr -VLanID $vlanId
$addNetworkSite="New-SCLogicalNetworkDefinition -Name '$newNetworkSitename' ``
-LogicalNetwork `$logicalNetwork ``
-VMHostGroup `$allHostGroups ``
-SubnetVLan `$allSubnetVlan ``
$(if($runAsynchronously){'-RunAsynchronously'})"
write-host $addNetworkSite
invoke-expression $addNetworkSite
}
foreach($networkSite in $networkSites){
$command="addVmmNetworkSite -newNetworkSitename '$($networkSite.newNetworkSitename)' ``
-vlanId '$($networkSite.vlanId)' ``
-vlanCidr '$($networkSite.vlanCidr)' ``
-logicalNetworkName '$($networkSite.logicalNetworkName)' ``
-logicalNetworkDescription '$($networkSite.logicalNetworkDescription)' ``
-hostGroup '$($networkSite.hostGroup)'"
write-host $command
#invoke-expression $command
}
Categories: