最近,我在“域”设置中使用Powershell命令注销了夜间不注销的远程用户。我正在使用命令
Invoke-Command -ComputerName $name { quser }
确认该人已登录。
Invoke-Command -ComputerName $name { logoff 2 }
(2是会话ID) 这可以很好地工作,但是每次都要编辑.ps1文件来更改工作站的名称时,会很烦。我正在尝试编辑此命令,以便它将要求用户输入,然后将用户输入用作运行该命令的工作站,但是每当我使用以下代码时,它都将不起作用。
$name = Read-Host -Prompt 'Enter the name of the computer'
Invoke-Command -ComputerName computer1 { quser }
这仅适用于quser,直到我得到包括Logoff 2在内的此类不良工作。抱歉,如果我错过了Powershell的新信息,就对不起。
答案 0 :(得分:0)
由于远程桌面命令行工具可以远程工作,因此无需使用PowerShell调用远程会话。请尝试以下脚本,该脚本将注销所有用户在远程计算机上。
param([string]$ComputerName)
# Cleanup the quser.exe output a little and turn it into an object
# Modified from: https://ss64.com/nt/query-user.html
$sessions = (quser /server:$ComputerName) -replace '\s{2,}', ',' -replace '>','' | ConvertFrom-Csv
foreach ($session in $sessions)
{
Write-Output "Logging off user $($session.USERNAME) with session ID $($session.ID) on $ComputerName..."
(logoff $session.ID /server:$ComputerName /V)
}
将脚本另存为LogOffUsers.ps1并从PowerShell提示符运行的示例用法。
.\LogOffUsers.ps1 -ComputerName SFWEB01