Uzaktan kilitlenen pencerelerin ekranını uzaktan kilitleme veya kilit açma


3

Etki alanı ortamımda birkaç pencere 7/2008 iş istasyonum var. üzerinde çalışan kimse yoksa otomatik kilitleme penceresine sahip bir GPO'muz var (boşta). (Ekran koruyucu yok sadece kilitle)

Uzak iş istasyonunun Kilitli veya Kilitli olup olmadığını uzaktan nasıl kontrol edebilirim? Quser komutunu kullanarak kullanıcıyı sorgulamaya çalıştım (pencereleri kilitli olan veya test edilmiş başka bir kullanıcı, aynı sonuç üzerinde test edildi)

C:\>psexec \\REMOTEPC1 quser

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

Yukarıdaki sonuç, STATE = ACTIVE gösteriyor, ancak iş istasyonu LOCKED / UNLOCKED ise sorgulayamıyorum. anında istenen komut veya yöntem ile nasıl sonuç alınır?

Yanıtlar:


1

İş istasyonu KİLİTLİ / KİLİTLİ ise sorgulayamıyorum

Aşağıdaki PowerShell Komut Dosyasını kullanın (GetRemoteLogonStatus.ps1).

Bu komut dosyası yerel veya uzaktaki bir makinenin oturum açma durumunu döndürür. İade türleri arasında "Oturum açılmadı", "Kilitli", "Oturum açıldı" ve "Çevrimdışı" bulunur. Bunun en yararlı kısmı, bir bilgisayarın kilitli durumda olup olmadığını kontrol etmektir, ancak diğer iade türleri de yararlı olabilir.

Bu basit bir fonksiyondur ve kolayca daha büyük bir betiğe dahil edilebilir. Dönen değeri daha kolay ayrıştırmak için, döndürülen türler çağıran betiğin sayılarla değiştirilebilir.

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

Kaynağı Uzaktan Oturum Açma Durumu Al - Powershell


1
noob olduğum için üzgünüm, daha önce powershell scriptleri kullanmamıştım. Basitçe GetRemoteLogonStatus.ps1 adlı not defterinde bir dosya yaptım ve içindeki tüm içeriği yapıştırdım. sonra onu çalıştırmaya çalıştım ama çıktısı yoktu. örnek 'powershell' komutunu çalıştırarak powershell'i başlattım, sonra betiğini çalıştırdım ve komut PS C:\temp> .\GetRemoteLogonStatus.ps1istemi döndürdü, hata yok, bilgi yok vs.
Syed Jahanzaib

1

Gönderiyi güncellemeyi unuttum. Webmin / BASH komut dosyalarını kullanarak Active Directory işlevlerinin çoğunu yönetmek için Ubuntu kutumu kullandığımdan, bu nedenle kullanıcı oturumunda oturum açan uzak pencereler ve pencereler kilitli / açık durumu için sorgular yapan küçük bir bash betiği hazırladım.

Sonuç:

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 betiği aşağıdakileri yapar…

  • Uzak PC PING Durumunu kontrol edin, eğer ping başarısız olursa, hata ile çıkın

Yerel DNS kullanarak uzak pencerelerin IP'sini NSLOOKUP üzerinden alın

Geçerli Giriş yapmış kullanıcı ve durumları

Pencerelerin mevcut durumu ya kilitli / kilidi açık.

Sonuçları TRIM ve zevkimize göre ekran

Ayrıntıları buraya postaladım

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.