以下是更新后的 PowerShell 脚本,支持一主多备的 NLB 配置:
powershell
# 检查是否以管理员权限运行
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Start-Process powershell.exe -Verb runAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`""
exit
}
# 获取所有 NLB 集群
$clusters = Get-NlbCluster
# 删除所有现有集群
foreach ($cluster in $clusters) {
Write-Host "正在删除集群:$($cluster.ClusterName)"
Remove-NlbCluster -ClusterName $cluster.ClusterName
}
# 安装 NLB 功能
Write-Host "正在安装 NLB 功能..."
Install-WindowsFeature NLB
# 配置新的 NLB 集群
$newClusterName = "MyNewNLBCluster"
$clusterIP = "192.168.1.100"
$masterNodeIP = "192.168.1.1"
$backupNodes = @("192.168.1.2", "192.168.1.3")
Write-Host "创建新的 NLB 集群..."
New-NlbCluster -InterfaceName "Ethernet" -ClusterName $newClusterName -ClusterPrimaryIP $clusterIP
# 添加主节点
Write-Host "将主节点 $masterNodeIP 添加到集群..."
Add-NlbClusterNode -InterfaceName "Ethernet" -ClusterName $newClusterName -NewNodeName $masterNodeIP -NewNodeIP $masterNodeIP -Priority 100
# 添加备用节点
foreach ($backupNodeIP in $backupNodes) {
Write-Host "将备用节点 $backupNodeIP 添加到集群..."
Add-NlbClusterNode -InterfaceName "Ethernet" -ClusterName $newClusterName -NewNodeName $backupNodeIP -NewNodeIP $backupNodeIP -Priority 50
}
Write-Host "NLB 安装配置完成。"
在这个脚本中,首先定义了主节点的 IP 和备用节点的 IP 列表。然后创建新的 NLB 集群,将主节点以较高优先级添加,备用节点以较低优先级添加。请根据实际情况调整集群名称、IP 地址等参数。