如何将未指定的服务器设置为耗尽模式,在未指定的服务器上注销用户,最后使该服务器退出耗尽模式?

How to set an unspecified server in drain mode, log off user on a unspecified server, and finally take that server out of drain mode?

排空模式,将相对权重设置为 1,不允许新的重新连接,这些都可以。我只需要在 10 个 Windows 2008 R2 服务器的阵列上对此进行 PowerShell 回答。

到目前为止,除了耗尽模式,我什么都搞定了。

$ErrorActionPreference = 'silentlycontinue'
$username = Read-Host "Enter Username: "
$serverList = @("foo", "boo", "hullabaloo", "hoot")

foreach ($item in $serverList)
{
    if (quser $username /server:$item)
    {
        quser $username /server:$item
        Write-Host $username is at $item
        #Set $item to drain mode
        #logoff $username /server:item
        Sleep 60 -s
        #Set $item out of drain mode
    }
}

这离我的办公桌很远。

下面我自己回答了这个问题。

为了将服务器设置为耗尽模式,我这样做了:

    $Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $item)

    $regKey = $Reg.OpenSubKey("SYSTEM\CurrentControlSet\Control\Terminal Server\", $true)
    $regKey.SetValue("TSServerDrainMode", 2, 'DWORD')
    sleep -s 30
    Write-Host "30 more seconds."
    sleep -s 30
    $regKey.SetValue("TSServerDrainMode", 0, 'DWORD')