Windows: ketahui siapa yang log masuk di mana

Windows: ketahui siapa yang log masuk di mana
- Oh, tiada apa yang berkesan untuk saya, tolong!
- Jangan risau, kami akan membetulkan semuanya sekarang. Berikan nama komputer anda...
(klasik genre daripada panggilan kepada sokongan teknikal)

Adalah baik jika anda mempunyai alat ala BgInfo atau pengguna anda tahu tentang pintasan Windows+Pause/Break dan tahu cara menekannya. Malah ada spesimen yang jarang ditemui yang berjaya mengetahui nama kereta mereka. Tetapi selalunya, sebagai tambahan kepada masalah utamanya, pemanggil mempunyai masalah kedua: mengetahui nama/alamat IP komputer. Dan selalunya ia memerlukan lebih banyak masa untuk menyelesaikan masalah kedua ini daripada yang pertama (dan anda hanya perlu menukar kertas dinding atau mengembalikan pintasan yang hilang :).
Tetapi lebih baik mendengar sesuatu seperti:
- Tatyana Sergeevna, jangan risau, saya sudah menyambung...


Dan anda tidak memerlukan banyak untuk ini.
Pakar sokongan teknikal hanya perlu menghafal nama mesin dan mengingati siapa yang bekerja untuk mesin tersebut.
Sebelum menerangkan penyelesaian yang sedang kami gunakan, saya akan melihat secara ringkas pilihan lain supaya saya boleh mengkritiknya sepenuhnya dan menerangkan pilihan saya.

  1. BgInfo, Maklumat Desktop dan seumpamanya. Kalau banyak duit, ada yang berbayar. Intinya ialah maklumat teknikal dipaparkan pada desktop: nama mesin, alamat IP, log masuk, dsb. Dalam Maklumat Desktop, anda juga boleh memerah graf prestasi pada separuh skrin.
    Apa yang saya tidak suka ialah untuk Bginfo yang sama, sebagai contoh, pengguna perlu meminimumkan tetingkap untuk melihat data yang diperlukan. Saya dan rakan sekerja juga telah memerhati lebih daripada sekali di BgInfo artifak ciri, apabila teks baharu dipaparkan di atas teks lama.
    Sesetengah pengguna terganggu dengan fakta bahawa pentadbir melukis 192.168.0.123 yang menakutkan pada muka kucing yang terbentang di atas meja, merosakkan estetika imej latar belakang, dan, sudah tentu, ini sangat melemahkan semangat dan membunuh sepenuhnya semangat kerja. .
  2. Label ala "Siapa saya" (jangan cuba tambah tanda soal padanya di hujung :). Pintasan klasik pada desktop, di belakangnya menyembunyikan skrip yang kemas atau tidak begitu kemas yang memaparkan maklumat yang diperlukan dalam bentuk kotak dialog. Kadang-kadang, bukannya jalan pintas, mereka meletakkan skrip itu sendiri pada desktop, yang IMHO adalah adab buruk.
    Kelemahannya ialah untuk melancarkan jalan pintas, seperti dalam kes pertama, anda perlu meminimumkan semua tetingkap yang terbuka (kami tidak mengambil kira kekasih nasib yang mempunyai satu-satunya tingkap solitaire yang terbuka pada mesin kerja mereka). By the way, adakah pengguna anda tahu di mana hendak mengklik untuk meminimumkan semua tetingkap? Betul, jari di mata admin.

Penutup juga mencadangkan bahawa kedua-dua kaedah yang diterangkan di atas mempunyai kelemahan utama yang melibatkan pengguna dalam mendapatkan maklumat, yang mungkin buta, bodoh, atau berbohong.
Saya tidak akan mempertimbangkan pilihan untuk meningkatkan celik komputer, apabila semua orang tahu di mana dalam Windows untuk mencari nama mesin mereka: ia adalah tujuan yang mulia, tetapi sangat sukar. Dan jika syarikat itu mempunyai pusing ganti kakitangan, maka ia benar-benar merosakkan. Apa yang boleh saya katakan, dalam kebanyakan kes mereka tidak ingat log masuk mereka.

Saya mencurahkan jiwa saya, dan sekarang ke titik.
Idea penduduk Khabrov diambil sebagai asas mittel daripada artikel ini.
Intipati idea ialah apabila pengguna log masuk ke Windows, skrip log masuk memasukkan maklumat yang diperlukan (masa dan nama mesin) ke dalam atribut tertentu akaun pengguna. Dan apabila anda log keluar daripada sistem, skrip logoff yang serupa dilaksanakan.

Saya menyukai idea itu sendiri, tetapi terdapat beberapa perkara yang saya tidak berpuas hati dalam pelaksanaannya.

  1. Dasar kumpulan, yang menentukan skrip log masuk dan logoff untuk pengguna, digunakan pada keseluruhan domain, jadi skrip akan dijalankan pada mana-mana mesin yang pengguna log masuk. Jika anda menggunakan penyelesaian terminal bersama stesen kerja (contohnya, produk Microsoft RDS atau Citrix), pendekatan ini akan menyusahkan.
  2. Data dimasukkan ke dalam atribut Jabatan akaun pengguna, yang mana pengguna biasa mempunyai akses baca sahaja. Selain atribut akaun pengguna, skrip juga membuat perubahan pada atribut Jabatan akaun komputer, yang secara lalai pengguna tidak boleh menukar sama ada. Oleh itu, untuk penyelesaian itu berfungsi, penulis mencadangkan menukar piawaian tetapan keselamatan untuk objek AD.
  3. Format tarikh bergantung pada tetapan penyetempatan pada mesin sasaran, jadi dari satu mesin kita boleh mendapatkan 10 November 2018 14:53, dan dari 11/10/18 yang lain 2:53 p.m.

Untuk menghapuskan kelemahan ini, perkara berikut telah dilakukan.

  1. GPO dipautkan bukan ke domain, tetapi ke OU dengan mesin (saya memisahkan pengguna dan mesin ke OU yang berbeza dan menasihati orang lain). Lebih-lebih lagi, untuk mod pemprosesan dasar gelung balik mod ditetapkan bergabung.
  2. Skrip hanya akan menulis data ke akaun pengguna dalam atribut Info, yang boleh diubah oleh pengguna secara bebas untuk akaunnya.
  3. Mengubah sekeping kod yang menjana nilai atribut

Sekarang skrip kelihatan seperti ini:
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

Sesiapa yang pertama menemui semua perbezaan antara skrip Logon dan Logoff akan mendapat tambahan untuk karma. πŸ™‚
Juga, untuk mendapatkan maklumat visual, skrip PS kecil berikut telah dicipta:
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

Secara keseluruhan, semuanya dikonfigurasikan satu-dua-tiga:

  1. buat GPO dengan tetapan yang diperlukan dan pautkannya ke jabatan dengan stesen kerja pengguna:
    Windows: ketahui siapa yang log masuk di mana
  2. mari minum teh (jika AD mempunyai bilangan pengguna yang ramai, maka anda memerlukan banyak teh :)
  3. jalankan skrip PS dan dapatkan hasilnya:
    Windows: ketahui siapa yang log masuk di mana
    Di bahagian atas tetingkap terdapat penapis yang mudah di mana anda boleh memilih data berdasarkan nilai satu atau lebih medan. Mengklik pada lajur jadual mengisih rekod mengikut nilai medan yang sepadan.

Kami boleh "membungkus" penyelesaian kami dengan cantik.
Windows: ketahui siapa yang log masuk di mana
Untuk melakukan ini, kami akan menambah pintasan untuk melancarkan skrip untuk pakar sokongan teknikal, yang akan mempunyai sesuatu seperti ini dalam medan "objek":
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Jika terdapat ramai pekerja sokongan teknikal, anda boleh mengedarkan pintasan menggunakan TAK PAYAH.

Beberapa komen terakhir.

  • Modul Active Directory untuk PowerShell mesti dipasang pada mesin dari mana skrip PS dilancarkan (untuk melakukan ini, hanya tambah alat pentadbiran AD dalam komponen Windows).
  • Secara lalai, pengguna tidak boleh mengedit kebanyakan atribut akaunnya. Ingat perkara ini jika anda memutuskan untuk menggunakan atribut selain daripada Info.
  • Maklumkan kepada semua rakan sekerja yang terlibat atribut yang akan anda gunakan. Sebagai contoh, sama Info digunakan untuk menambah nota secara interaktif pada peti mel pengguna dalam panel pentadbir Exchange Server dan seseorang boleh menimpanya dengan mudah atau berasa sedih apabila maklumat yang mereka tambahkan ditimpa oleh skrip anda.
  • Jika anda mempunyai berbilang tapak Direktori Aktif, kemudian buat elaun untuk kelewatan replikasi. Contohnya, jika anda ingin mendapatkan maklumat terkini tentang pengguna dari tapak AD A dan menjalankan skrip dari mesin dari tapak AD B, anda boleh melakukan ini:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΏΠΎ Π»ΠΎΠ³ΠΎΠ½Π°ΠΌ" -Wait

    DCfromSiteA β€” nama pengawal domain tapak A (secara lalai, cmdlet Get-AdUser bersambung ke pengawal domain terdekat)

Windows: ketahui siapa yang log masuk di mana

Sumber imej

Saya akan berterima kasih jika anda dapat mengambil tinjauan ringkas di bawah.

Hanya pengguna berdaftar boleh mengambil bahagian dalam tinjauan. Log masuk, Sama-sama.

awak guna apa?

  • bginfo, maklumat Desktop dsb. (perisian percuma)

  • analog berbayar bginfo

  • Saya akan melakukannya seperti dalam artikel

  • tidak relevan, kerana Saya menggunakan VDI/RDS dll.

  • Saya tidak menggunakan apa-apa lagi, tetapi saya sedang memikirkannya

  • Saya tidak perlu mengumpul data sedemikian

  • lain (kongsi dalam komen)

112 pengguna mengundi. 39 pengguna berpantang.

Sumber: www.habr.com

Tambah komen