원격 Windows 화면 잠금 또는 원격 잠금 해제 결정


2

내 도메인 환경에서 여러 Windows 7/2008 워크 스테이션이 있습니다. 아무도 작업을하지 않으면 자동 잠금 창이있는 GPO가 있습니다 (유휴 상태). (화면 보호기 없음)

원격 워크 스테이션이 잠겨 있는지 여부를 원격으로 확인할 수 있습니까? quser 명령을 사용하여 사용자에게 쿼리를 시도했습니다 (Windows가 잠긴 사용자 또는 Windows가 잠금 해제 된 다른 사용자가 동일한 결과를 테스트 함)

C:\>psexec \\REMOTEPC1 quser

 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
 USER1                 console             1  Active      none   1/24/2017 11:21 AM

위의 결과는 STATE = ACTIVE를 표시하지만 워크 스테이션이 LOCKED / UNLOCKED이면 쿼리 할 수 ​​없습니다. 명령이나 메소드로 필요한 결과를 즉시 얻을 수있는 howto?

답변:


1

워크 스테이션이 잠금 / 잠금 해제되어 있는지 쿼리 할 수 ​​없습니다.

다음 PowerShell 스크립트 (GetRemoteLogonStatus.ps1)를 사용하십시오.

이 스크립트는 로컬 또는 원격 시스템의 로그온 상태를 리턴합니다. 반환 유형에는 "로그온하지 않음", "잠근", "로그온 한 시간"및 "오프라인"이 포함됩니다.이 중 가장 유용한 부분은 컴퓨터가 잠긴 상태인지 여부를 확인하는 것이지만 다른 반환 유형도 유용 할 수 있습니다.

이것은 간단한 함수이며 더 큰 스크립트에 쉽게 포함될 수 있습니다. 반환 값을 더 쉽게 파싱하려면 반환 유형을 호출 스크립트의 숫자로 변경할 수 있습니다.

# This function will return the logged-on status of a local or remote computer 
# Written by BigTeddy 10 September 2012 
# Version 1.0 
# Sample usage: 
# GetRemoteLogonStatus '<remoteComputerName>' 

function GetRemoteLogonStatus ($computer = 'localhost') { 
if (Test-Connection $computer -Count 2 -Quiet) { 
    try { 
        $user = $null 
        $user = gwmi -Class win32_computersystem -ComputerName $computer | select -ExpandProperty username -ErrorAction Stop 
        } 
    catch { "Not logged on"; return } 
    try { 
        if ((Get-Process logonui -ComputerName $computer -ErrorAction Stop) -and ($user)) { 
            "Workstation locked by $user" 
            } 
        } 
    catch { if ($user) { "$user logged on" } } 
    } 
else { "$computer Offline" } 
}

출처 원격 로그온 상태 가져 오기 - Powershell


1
죄송합니다 멍청한 녀석, 전 powershell 스크립트를 사용하지 않았습니다. 메모장에서 GetRemoteLogonStatus.ps1이라는 파일을 만들고 그 안에 모든 내용을 붙여 넣기 만했습니다. 그때 나는 그것을 실행하려고 시도했지만 그 결과는 아무런 결과도주지 못했다. 예 : 'powershell'명령을 실행하여 powershell을 시작한 다음 다음과 같은 스크립트를 실행합니다. PS C:\temp> .\GetRemoteLogonStatus.ps1 프롬프트가 반환되고, 오류가없고, 정보가 반환되지 않습니다.
Syed Jahanzaib

0

나는 게시물을 잊어 버렸다. Webmin / BASH 스크립트를 사용하여 대부분의 Active Directory 기능을 관리하기 위해 우분투 상자를 사용하고 있기 때문에 사용자 세션 및 Windows 잠긴 / 잠금 해제 상태로 기록 된 원격 창을 쿼리하는 작은 bash 스크립트를 만들었습니다.

결과:

root@linux:/temp# /temp/winuserstatus.sh WORKSTAION-1

Remote PC = WORKSTAION-1
IP Details =
Address: 10.0.0.20
Address: 10.0.0.21

User Status = Logged in User found ... details as below ...
jahan.zaib console 13 Active 1+00:53 1/23/2017 1:57 PM
Windows Status = Windows is LOCKED

bash 스크립트는 다음을 수행합니다 ...

  • 원격 PC PING 상태 확인, ping이 실패한 경우 오류와 함께 종료

로컬 DNS를 사용하여 NSLOOKUP을 통해 원격 Windows IP 가져 오기

현재 로그인 한 사용자 및 상태

창문의 현재 상태는 잠긴 / 잠금 해제 상태입니다.

결과를 트림하고 우리의 취향에 따라 표시

나는 세부 사항을 올렸다. 이리

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.