PowerShell script exchange
dcop
Service Provider
Posts: 4 Liked: never
Joined: May 06, 2022 9:51 am
Full Name: datacenteroperations
Contact:
Post
by dcop » Nov 14, 2022 12:11 pm
this post
Hello, we have a powershell script that we can use to create a virtual lab with all the needed settings.
But now I am not able to add a second "Isolated Network" and/or a second vNIC2 in the "Network Settings" via the Powershell Script.
Manually via the console it goes smoothly, but I would like to incorporate this into the script. I tried it like this:
Code: Select all
$lab = Get-VBRViVirtualLabConfiguration -Name $labname
$esx = Get-VBRServer -Name "$hostname.$env:USERDNSDOMAIN"
$maskedIP2 = "10.0.0.0"
$ipv2 = "10.0.0.1"
$subnetmaskv2 = "255.255.0.0"
$maskedIP2 = "172.16.0.0"
$IsolatedNetworkName2 = "$appliance_name2$networkname2"
$networkname2 = "smcc_TEST_460"
$vlanid = "999"
$network2 = Get-VBRViServerNetworkInfo -Server $esx | Where-Object { $_.NetworkName -eq $networkname2 }
$maprule2 = New-VBRViNetworkMappingRule -Server $esx -ProductionNetwork $network2 -IsolatedNetworkName $IsolatedNetworkName2 -VLANID $vlanid
$NetworkOption2 = New-VBRViVirtualLabNetworkOptions -NetworkMappingRule $maprule2 -IPAddress $ipv2 -SubnetMask $subnetmaskv2 -MasqueradeIPAddress $maskedIP2
Set-VBRVIVirtualLab -VirtualLab $lab -Type Advanced -NetworkOptions $NetworkOption2
Thank you for any ideas or suggestions.
Kind regards, Dany Ambühl.
oleg.feoktistov
Veeam Software
Posts: 2010 Liked: 669 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:
Post
by oleg.feoktistov » Nov 14, 2022 2:49 pm
this post
Hi,
Please note that Set-VBRViVirtualLab cmdlet (like any other Set cmdlet we have) just takes a specification you passed and
applies it to the object you choose, overwriting any existing option that falls into a specification scope.
So if you want to append, not overwrite, you need to create a new network options array that contains existing and new options together, then set this array for a lab. For example:
Code: Select all
$lab = Get-VBRViVirtualLabConfiguration -Name $labname
$networkOption = $lab.NetworkOptions
$esx = Get-VBRServer -Name "$hostname.$env:USERDNSDOMAIN"
$maskedIP2 = "10.0.0.0"
$ipv2 = "10.0.0.1"
$subnetmaskv2 = "255.255.0.0"
$maskedIP2 = "172.16.0.0"
$IsolatedNetworkName2 = "$appliance_name2$networkname2"
$networkname2 = "smcc_TEST_460"
$vlanid = "999"
$network2 = Get-VBRViServerNetworkInfo -Server $esx | Where-Object { $_.NetworkName -eq $networkname2 }
$maprule2 = New-VBRViNetworkMappingRule -Server $esx -ProductionNetwork $network2 -IsolatedNetworkName $IsolatedNetworkName2 -VLANID $vlanid
$NetworkOption2 = New-VBRViVirtualLabNetworkOptions -NetworkMappingRule $maprule2 -IPAddress $ipv2 -SubnetMask $subnetmaskv2 -MasqueradeIPAddress $maskedIP2
$networkArray = @()
$networkArray += $networkOption, $NetworkOption2
Set-VBRVIVirtualLab -VirtualLab $lab -Type Advanced -NetworkOptions $networkArray
Best regards,
Oleg
dcop
Service Provider
Posts: 4 Liked: never
Joined: May 06, 2022 9:51 am
Full Name: datacenteroperations
Contact:
Post
by dcop » Nov 18, 2022 12:42 pm
this post
Hi Oleg
Thx for the fast response.
With the Arrays its working now:
#Array definieren for maprule
$mapruleArray = @()
$mapruleArray = $maprule, $maprule2
#Array definieren
$networkArray = @()
$networkArray = $NetworkOption, $NetworkOption2
Add-VBRViAdvancedVirtualLab -Server $esx -Name $labname -Description $vlabdescripton -DesignatedResourcePoolName $respool -DesignatedVMFolderName $vmfolder -CacheDatastore $cachedatastore -ProxyAppliance $ProxyAppliance -NetworkMappingRule $mapruleArray -NetworkOptions $networkArray -EnableRoutingBetweenvNics -Force
Regards Dany
Users browsing this forum: No registered users and 13 guests