Windows: kimin nerede oturum açtığını öğrenin

Windows: kimin nerede oturum açtığını öğrenin
- Hiçbir şey işime yaramıyor, yardım et!
- Merak etme, şimdi her şeyi düzelteceğiz. Bilgisayarınızın adını verin...
(çağrılardan teknik desteğe kadar türün klasikleri)

BgInfo benzeri bir aracınız varsa veya kullanıcılarınızın Windows+Duraklat/Break kısayolunu bilmesi ve ona nasıl basılacağını bilmesi iyi olur. Arabalarının adını öğrenmeyi başaran nadir örnekler bile var. Ancak çoğu zaman arayan kişinin ana sorununa ek olarak ikinci bir sorunu daha vardır: bilgisayarın adını/IP adresini bulmak. Ve çoğu zaman bu ikinci sorunu çözmek ilkinden çok daha fazla zaman alır (ve sadece duvar kağıdını değiştirmeniz veya eksik kısayolu geri getirmeniz gerekiyordu :).
Ama şöyle bir şey duymak çok daha güzel:
- Tatyana Sergeevna, merak etme, zaten bağlanıyorum...


Ve bunun için fazla bir şeye ihtiyacınız yok.
Bir teknik destek uzmanının yalnızca makinelerin adlarını ezberlemesi ve kimin ne için çalıştığını hatırlaması yeterlidir.
Şu anda kullandığımız çözümü anlatmadan önce diğer seçeneklere kısaca bakacağım ki onları sonuna kadar eleştireyim ve tercihimi açıklayayım.

  1. BgBilgisi, Masaüstü Bilgisi ve benzerleri. Para çoksa ücretli olanlar da var. Mesele şu ki, teknik bilgiler masaüstünde görüntüleniyor: makine adı, IP adresi, oturum açma vb. Masaüstü Bilgilerinde performans grafiklerini ekranın yarısına bile sıkıştırabilirsiniz.
    Sevmediğim şey şu ki, örneğin aynı Bginfo için kullanıcının gerekli verileri görmek için pencereleri küçültmesi gerekiyor. Meslektaşlarım ve ben de BgInfo'da birden fazla kez gözlemledik. karakteristik eser, yeni metin eskisinin üstünde görüntülendiğinde.
    Bazı kullanıcılar, yöneticilerin masaüstüne uzanan bir kedinin yüzüne korkutucu bir 192.168.0.123 çizmesinden, arka plan görüntüsünün estetiğini bozmasından rahatsız oluyor ve tabii ki bu, son derece moral bozucu ve iş ruhunu tamamen öldürüyor. .
  2. “Ben Kimim” etiketi (sonuna soru işareti eklemeye çalışmayın :). Masaüstünde, gerekli bilgileri bir iletişim kutusu biçiminde görüntüleyen düzgün veya o kadar da düzgün olmayan bir komut dosyasının gizlendiği klasik bir kısayol. Bazen bir kısayol yerine betiğin kendisini masaüstüne koyarlar ki bu IMHO'nun kötü bir davranışıdır.
    Dezavantajı, kısayolu başlatmak için, ilk durumda olduğu gibi, tüm açık pencereleri simge durumuna küçültmeniz gerekmesidir (çalışma makinelerinde açık olan tek solitaire penceresi olan servet sevgililerini hesaba katmıyoruz). Bu arada, kullanıcılarınız tüm pencereleri simge durumuna küçültmek için nereye tıklamaları gerektiğini biliyor mu? Aynen öyle, yöneticinin gözüne bir parmak.

Kapak ayrıca, yukarıda açıklanan yöntemlerin her ikisinin de, kör, aptal ve hatta yalan söyleyebilen kullanıcının bilgi edinme sürecine dahil olması gibi ana dezavantaja sahip olduğunu öne sürüyor.
Herkes makinesinin adını Windows'ta nerede arayacağını bildiğinden, bilgisayar okuryazarlığını artırma seçeneğini dikkate almayacağım: bu asil bir amaç ama çok zor. Ve eğer şirkette personel değişimi varsa, o zaman bu tamamen yıkıcıdır. Ne diyebilirim ki çoğu durumda giriş bilgilerini bile hatırlamıyorlar.

Ruhumu döktüm ve şimdi asıl konuya geçiyorum.
Habrov sakini fikri esas alındı orta arasında Bu makalede.
Fikrin özü, bir kullanıcı Windows'ta oturum açtığında, oturum açma komut dosyasının gerekli bilgileri (zaman ve makine adı) kullanıcı hesabının belirli bir özelliğine girmesidir. Sistemden çıkış yaptığınızda da benzer bir oturum kapatma komut dosyası yürütülür.

Fikrin kendisi hoşuma gitti ama uygulamada memnun olmadığım bazı şeyler vardı.

  1. Kullanıcılar için oturum açma ve oturum kapatma komut dosyalarını belirten grup ilkesi etki alanının tamamına uygulanır, böylece komut dosyaları kullanıcıların oturum açtığı herhangi bir makinede çalışır. İş istasyonlarıyla birlikte terminal çözümleri (örneğin, Microsoft RDS veya Citrix ürünleri) kullanıyorsanız bu yaklaşım sakıncalı olacaktır.
  2. Veriler, ortalama kullanıcının salt okuma erişimine sahip olduğu kullanıcı hesabının Departman özelliğine girilir. Komut dosyası, kullanıcı hesabı özniteliğine ek olarak bilgisayar hesabının Departman özniteliğinde de değişiklikler yapar; varsayılan olarak kullanıcılar da bunu değiştiremez. Bu nedenle, çözümün işe yaraması için yazar, AD nesnelerine yönelik güvenlik ayarları standartlarının değiştirilmesini önermektedir.
  3. Tarih formatı, hedef makinedeki yerelleştirme ayarlarına bağlıdır, dolayısıyla bir makineden 10 Kasım 2018 14:53 ve diğerinden 11/10/18 2:53 pm alabiliriz.

Bu eksiklikleri gidermek için aşağıdakiler yapıldı.

  1. GPO bir etki alanına değil, makinelerin bulunduğu bir OU'ya bağlıdır (Kullanıcıları ve makineleri farklı OU'lara ayırıyorum ve diğerlerine tavsiyelerde bulunuyorum). Üstelik geridöngü ilkesi işleme modu mod ayarlandı birleştirme.
  2. Komut dosyası yalnızca özellikteki kullanıcı hesabına veri yazacaktır BilgiKullanıcının kendi hesabı için bağımsız olarak değiştirebileceği.
  3. Özellik değerini oluşturan kod parçası değiştirildi

Şimdi komut dosyaları şuna benziyor:
SaveLogonInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logon>" & " @ " & strComputerName
oUser.Setinfo

SaveLogoffInfoToAdUserAttrib.vbs

On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
strComputerName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set adsinfo = CreateObject("ADSystemInfo")
Set oUser = GetObject("LDAP://" & adsinfo.UserName)
strMonth = Month(Now())
If Len(strMonth) < 2 then
  strMonth = "0" & strMonth
End If
strDay = Day(Now())
If Len(strDay) < 2 then
  strDay = "0" & strDay
End If
strTime = FormatDateTime(Now(),vbLongTime)
If Len(strTime) < 8 then
  strTime = "0" & strTime
End If
strTimeStamp = Year(Now()) & "/" & strMonth & "/" & strDay & " " & strTime
oUser.put "info", strTimeStamp & " <logoff>" & " @ " & strComputerName
oUser.Setinfo

Oturum Açma ve Oturum Kapatma komut dosyaları arasındaki tüm farkları ilk bulan kişi, karma için bir artı elde edecek. 🙂
Ayrıca görsel bilgi elde etmek için aşağıdaki küçük PS betiği oluşturuldu:
Get-UsersByPCsInfo.ps1

$OU = "OU=MyUsers,DC=mydomain,DC=com"
Get-ADUser -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

Toplamda her şey bir-iki-üç olarak yapılandırılmıştır:

  1. gerekli ayarlarla bir GPO oluşturun ve bunu kullanıcı iş istasyonlarının bulunduğu departmana bağlayın:
    Windows: kimin nerede oturum açtığını öğrenin
  2. hadi gidip çay içelim (eğer AD'nin çok sayıda kullanıcısı varsa, o zaman çok fazla çaya ihtiyacınız var :)
  3. PS betiğini çalıştırın ve sonucu alın:
    Windows: kimin nerede oturum açtığını öğrenin
    Pencerenin üst kısmında, bir veya daha fazla alanın değerlerine göre verileri seçebileceğiniz kullanışlı bir filtre bulunmaktadır. Tablo sütunlarına tıklamak, kayıtları ilgili alanların değerlerine göre sıralar.

Çözümümüzü güzel bir şekilde “paketleyebiliriz”.
Windows: kimin nerede oturum açtığını öğrenin
Bunu yapmak için, "nesne" alanında buna benzer bir şeye sahip olacak teknik destek uzmanları için komut dosyasını başlatmak üzere bir kısayol ekleyeceğiz:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Çok sayıda teknik destek çalışanı varsa, kullanarak bir kısayol dağıtabilirsiniz. ÖNEMLİ DEĞİL.

Son birkaç yorum.

  • PowerShell için Active Directory modülü, PS betiğinin başlatıldığı makineye kurulmalıdır (bunu yapmak için Windows bileşenlerine AD yönetim araçlarını eklemeniz yeterlidir).
  • Varsayılan olarak kullanıcı, hesabının özelliklerinin çoğunu düzenleyemez. Bunun dışında bir özellik kullanmaya karar verirseniz bunu aklınızda bulundurun. Bilgi.
  • Hangi özelliği kullanacağınızı ilgili tüm meslektaşlarınıza bildirin. Örneğin, aynı Bilgi Exchange Server yönetici panelinde bir kullanıcının posta kutusuna etkileşimli olarak notlar eklemek için kullanılır ve birisi kolayca bu notun üzerine yazabilir veya eklediği bilgilerin üzerine komut dosyanız tarafından yazıldığında üzülebilir.
  • Birden fazla Active Directory siteniz varsa çoğaltma gecikmelerini hesaba katın. Örneğin, AD sitesi A'daki kullanıcılar hakkında güncel bilgi almak ve betiği AD sitesi B'deki bir makineden çalıştırmak istiyorsanız şunu yapabilirsiniz:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCSiteA'dan — A sitesinin etki alanı denetleyicisinin adı (varsayılan olarak Get-AdUser cmdlet'i en yakın etki alanı denetleyicisine bağlanır)

Windows: kimin nerede oturum açtığını öğrenin

Resim kaynağı

Aşağıdaki kısa ankete katılırsanız çok sevinirim.

Ankete sadece kayıtlı kullanıcılar katılabilir. Giriş yapLütfen.

Ne kullaniyorsun?

  • bginfo, Masaüstü bilgileri vb. (ücretsiz yazılım)

  • bginfo'nun ücretli analogları

  • Bunu makaledeki gibi yapacağım

  • alakalı değil çünkü VDI/RDS vb. kullanıyorum.

  • Henüz hiçbir şey kullanmıyorum ama kullanmayı düşünüyorum

  • Bu tür verileri toplamam gerekmiyor

  • diğer (yorumlarda paylaşın)

112 kullanıcı oy kullandı. 39 kişi çekimser kaldı.

Kaynak: habr.com

Yorum ekle