是否有PowerShell命令可用於將「斷開連接」的用戶踢出服務器?一旦我知道單線踢單個用戶,我就可以編寫腳本。Powershell命令將脫機用戶踢出服務器
例如,我想踢在下面的對話框中看到的8個用戶。
是否有PowerShell命令可用於將「斷開連接」的用戶踢出服務器?一旦我知道單線踢單個用戶,我就可以編寫腳本。Powershell命令將脫機用戶踢出服務器
例如,我想踢在下面的對話框中看到的8個用戶。
在我看來,最簡單的方法是使用已經存在你的機器上logoff.exe。比如在你的屏幕截圖註銷第一斷開的用戶:
logoff 3 /server:YOURSERVERNAME
我不能嘗試這個辦法:
$pc = qwinsta /server:YourServerName | select-string "Disc" | select-string -notmatch "services"
if ($pc)
{
$pc| % {
logoff ($_.tostring() -split ' +')[2] /server:YourServerName
}
}
在這裏你去:
@echo off
(set STATE=Disconnected)
REM !! IMPORTANT set length in 4th from last line !!
FOR /f "Skip=1 tokens=3,4" %%i in ('qwinsta') do (
IF /I NOT "%%i"=="The" (
call :checkpath %%i "%%j"
)
)
::pause
GOTO :EOF
:checkpath
set id=%1
set STATUS=%~2
:: !! The last number in the next line needs to
:: be the length of the STATE string
SET root=%STATUS:~0,12%
IF /I NOT "%ROOT%"=="%STATE%" GOTO :EOF
@echo on
Session ID %ID% is %STATUS%. Logging off...
@echo off
logoff %ID% /server:YOURSERVERNAME
很好的答案!你能否進一步解釋一下幾個變量,例如STATUS是代表什麼? –
STATE - 要查找的值(斷開連接); STATUS - qwinsta帶來的狀態值; id - 由wqinsta帶來的ID的值; ROOT - 是狀態的前12個字符 –
最初這個腳本是用來通過目錄關閉打開的文件的,所以對於當前的任務,一些事情確實沒有做任何事情 –
這是一個偉大的腳本型解決方案用於遠程或本地登錄人員。我正在使用qwinsta獲取會話信息並從給定的輸出中構建一個數組。這使得迭代每個條目並僅註銷實際用戶非常容易,而不是系統或RDP偵聽器本身,它們通常只是拋出拒絕訪問錯誤。
$serverName = "Name of server here OR localhost"
$sessions = qwinsta /server $serverName| ?{ $_ -notmatch '^ SESSIONNAME' } | %{
$item = "" | Select "Active", "SessionName", "Username", "Id", "State", "Type", "Device"
$item.Active = $_.Substring(0,1) -match '>'
$item.SessionName = $_.Substring(1,18).Trim()
$item.Username = $_.Substring(19,20).Trim()
$item.Id = $_.Substring(39,9).Trim()
$item.State = $_.Substring(48,8).Trim()
$item.Type = $_.Substring(56,12).Trim()
$item.Device = $_.Substring(68).Trim()
$item
}
foreach ($session in $sessions){
if ($session.Username -ne "" -or $session.Username.Length -gt 1){
logoff /server $serverName $session.Id
}
}
在這個腳本的第一行給出$ SERVERNAME適當的值或本地主機,如果本地運行。我使用此腳本在用戶嘗試移動某些文件夾之前踢出用戶。爲我預防「使用中的文件」錯誤。另外需要注意的是,這個腳本必須以管理員用戶身份運行,否則您可能會被拒絕嘗試登錄某人。希望這可以幫助!
我認爲應該可以工作 – EBGreen
我在IT部門(長篇故事)的'kiosk-like'服務器中本地使用它,它可以工作。從來沒有遠程測試,但我認爲可以工作,我也是。 –
@ CB-I最近遇到了同樣的問題,我需要登錄所有斷開連接的用戶。所以你可以說我如何實現這一點,最近我有一個問同樣的問題在這裏http://stackoverflow.com/問題/ 18377592/get-disconnected-users-and-logoff-them? – coder