将NLB绑定到接口

时间:2012-05-22 14:26:32

标签: powershell nlb

我安装了NLB并进行了设置。我得到这样的接口数据:

Get-NlbClusterNodeNetworkInterface



InterfaceName       : quanet
   NlbBound            : False
   Cluster             :
   DhcpEnabled         : False
   InterfaceIP         : 10.165.250.206
   InterfaceSubnetMask : 255.255.0.0
   ClusterPrimaryIP    :
   ClusterSubnetMask   :

   InterfaceName       : cluster
   NlbBound            : False
   Cluster             :
   DhcpEnabled         : False
   InterfaceIP         : 172.16.1.206
   InterfaceSubnetMask : 255.255.255.0
   ClusterPrimaryIP    :
   ClusterSubnetMask   :

我想使用Powershell将NlbBound设置为true。不用说设置属性不起作用。 e.g

   $x = Get-NlbClusterNodeNetworkInterface
   $x[1].nlbbound = $true
   $x = Get-NlbClusterNodeNetworkInterface
   echo $x[1].NlbBound
   False

我想避免在网络适配器设置中显式设置属性,因为此功能将存在于脚本中。 如果可能的话,我也想避免使用WMI。

根据Get-Member cmdlet,NlbBound属性是可读的:

Get-Member -InputObject $x[1]

   TypeName: Microsoft.NetworkLoadBalancingClusters.PowerShell.NetworkInterface

Name                MemberType Definition
----                ---------- ----------
Equals              Method     bool Equals(System.Object obj)
GetHashCode         Method     int GetHashCode()
GetType             Method     type GetType()
ToString            Method     string ToString()
Cluster             Property   System.String Cluster {get;set;}
ClusterPrimaryIP    Property   System.String ClusterPrimaryIP {get;set;}
ClusterSubnetMask   Property   System.String ClusterSubnetMask {get;set;}
DhcpEnabled         Property   System.Boolean DhcpEnabled {get;set;}
InterfaceIP         Property   System.String InterfaceIP {get;set;}
InterfaceName       Property   System.String InterfaceName {get;set;}
InterfaceSubnetMask Property   System.String InterfaceSubnetMask {get;set;}
NlbBound            Property   **System.Boolean NlbBound {get;set;}**

1 个答案:

答案 0 :(得分:0)

Import-Module ServerManager

# Interface cards should be named the same and have a fixed IP
$interfaceName = "NLB"
$clusterName = "NLB-Cluster"
$clusterIpAddress = "1.2.3.0"
$clusterSubnet = "255.0.0.0"

# Install Network Load Balancing and Tools
Write-Host "Install Network Load Balancing and Tools"
Add-WindowsFeature NLB, RSAT-NLB
Import-Module NetworkLoadBalancingClusters

# If the cluster hasn't been created yet then create it
if (!(Get-NlbCluster -HostName $clusterIpAddress -ErrorAction SilentlyContinue))
{
    Write-Host "Creating NLB Cluster: $clusterName" -ForegroundColor yellow 

    # Create Cluster (default unicast)
    New-NlbCluster -InterfaceName $interfaceName -ClusterName $clusterName -ClusterPrimaryIP $clusterIpAddress -SubnetMask $clusterSubnet 

    # Remove defaults
    Write-Host "Removing default port rules" -ForegroundColor yellow 
    Get-NlbClusterPortRule | Remove-NlbClusterPortRule -Force

    # Create port rules
    Get-NlbCluster | Add-NlbClusterPortRule -StartPort 80 -EndPort 80 -Protocol TCP -Affinity None | Out-Null
    Get-NlbCluster | Add-NlbClusterPortRule -StartPort 443 -EndPort 443 -Protocol TCP -Affinity None | Out-Null 
}
else
{
    Get-NlbCluster 
}

# if this node isn't already a member of a cluster then add it
if(!(Get-NlbClusterNode -HostName $env:COMPUTERNAME))
{
    # Add node to cluster
    Write-Host "Adding node to cluster: $clusterName" -ForegroundColor yellow 
    Get-NlbCluster -HostName $clusterIpAddress | Add-NlbClusterNode -NewNodeName $env:COMPUTERNAME -NewNodeInterface $interfaceName
}
else
{
    Get-NlbClusterNode
}