Determinare lo schermo di Windows remoto bloccato o sbloccato da remoto


3

Ho diverse workstation Windows 7/2008 nel mio ambiente di dominio. abbiamo un oggetto Criteri di gruppo che blocca automaticamente la finestra se nessuno ci sta lavorando (inattivo). (Nessun salvaschermo si blocca e basta)

Come posso controllare in remoto se la workstation remota è bloccata o sbloccata? Ho provato a interrogare l'utente usando il comando quser (testato su un utente con Windows bloccato o su un altro utente con Windows sbloccato, stesso risultato)

C:\>psexec \\REMOTEPC1 quser

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

il risultato sopra mostra STATE = ACTIVE, ma non riesco a interrogare se la workstation è BLOCCATA / SBLOCCATA. come ottenere il risultato richiesto istantaneamente tramite comando o metodo ??

Risposte:


1

Non riesco a interrogare se la workstation è BLOCCATA / SBLOCCATA

Utilizzare il seguente script PowerShell (GetRemoteLogonStatus.ps1).

Questo script restituirà lo stato di accesso del computer locale o remoto. I tipi di restituzione includono "Non connesso", "Bloccato", "Accesso eseguito" e "Non in linea. La parte più utile di ciò è verificare se un computer è nello stato bloccato, sebbene anche gli altri tipi di restituzione possano essere utili.

Questa è una funzione semplice e può essere facilmente inclusa in uno script più grande. I tipi restituiti possono essere cambiati in numeri per lo script chiamante per analizzare più facilmente il valore restituito.

# 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" } 
}

Origine Ottieni stato accesso remoto - Powershell


1
scusate il fatto che non siate indifferenti, non ho mai usato script PowerShell prima. Ho semplicemente creato un file nel blocco note chiamato GetRemoteLogonStatus.ps1 e incollato tutti i contenuti in esso. poi ho provato a eseguirlo ma non ha prodotto output. esempio ho avviato powershell eseguendo il comando 'powershell', quindi eseguendo lo script come PS C:\temp> .\GetRemoteLogonStatus.ps1e il prompt ritorna, nessun errore, nessuna informazione ecc.
Syed Jahanzaib

1

Ho dimenticato di aggiornare il post. Dal momento che sto usando la mia casella Ubuntu per gestire la maggior parte delle funzioni di Active Directory usando gli script Webmin / BASH, ho quindi creato un piccolo script bash che interroga per le finestre remote registrate nella sessione utente e lo stato di Windows bloccato / sbloccato.

Risultato:

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

Lo script bash fa il seguente ...

  • Verificare lo stato PING del PC remoto, se il ping non riesce, uscire con errore

Ottieni l'IP di Windows remoto tramite NSLOOKUP utilizzando il DNS locale

Utente attualmente connesso e loro stato

Lo stato corrente di Windows è bloccato / sbloccato.

Taglia i risultati e visualizzali secondo i nostri gusti

Ho pubblicato i dettagli qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.