以下是更新后的 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"
$nodes = @("192.168.1.1", "192.168.1.2")
Write-Host "创建新的 NLB 集群..."
New-NlbCluster -InterfaceName "Ethernet" -ClusterName $newClusterName -ClusterPrimaryIP $clusterIP
foreach ($node in $nodes) {
Write-Host "将节点 $node 添加到新集群..."
Add-NlbClusterNode -InterfaceName "Ethernet" -ClusterName $newClusterName -NewNodeName $node -NewNodeIP $node
}
# 获取当前节点的 IP 地址
$currentNodeIP = (Get-NetIPAddress -InterfaceAlias "Ethernet").IPAddress
# 将当前节点设置为主节点
Write-Host "将当前节点设置为主节点..."
(Get-NlbCluster -ClusterName $newClusterName).Nodes | Where-Object { $_.HostName -eq $currentNodeIP } | Set-NlbClusterNode -Priority 100
Write-Host "NLB 安装配置完成。"
在这个脚本中,首先检查是否以管理员权限运行。然后获取所有的 NLB 集群,并逐个删除它们。接着安装 NLB 功能,并创建一个新的集群并添加节点。请根据实际情况调整新集群的名称、IP 地址和节点列表等参数。