This little snippet of PoweShell Code will create a virtual switch on an ESX Host. I found this while hunting through the VMware comunities for why I couldn't create a portgroup with Powershell. Using this code I was able to create a Virtual Switch called vSwitch1 with a VM portgroup called Production. I still have no idea what the policy setting does or do I know of any other values that could go there.
$ESXhost = "sc-gallium04.pso.vmware.com"
$vSwitch = "vSwitch1"
$user = "scriptuser"
$VC = "10.18.138.187"
*
Get-VIServer $VC -User $user -Password $password
*
$NewSwitch = New-VirtualSwitch -vmhost (*Get-VMHost* $ESXhost ) -Name $vSwitch -NIC "vmnic1"
$net = Get-View(Get-View(*Get-VMHost* -Name $ESXHost).ID).configmanager.networksystem
$PortgroupSpec = New-Object vmware.Vim.hostportgroupspec
$PortgroupSpec.vswitchname = $vSwitch
$PortgroupSpec.Name = "Production"
$PortgroupSpec.policy = New-Object vmware.Vim.HostNetworkPolicy
$net.AddPortgroup($PortGroupSpec)