Windows: kim qayerga kirganligini bilib oling

Windows: kim qayerga kirganligini bilib oling
- Oh, men uchun hech narsa ishlamayapti, yordam bering!
- Xavotir olmang, hozir hammasini tuzatamiz. Kompyuteringiz nomini bering...
(qo'ng'iroqlardan texnik yordamgacha janr klassikalari)

Agar sizda la BgInfo vositasi bo'lsa yoki foydalanuvchilaringiz Windows+Pause/Break yorlig'i haqida bilsa va uni qanday bosishni bilsa yaxshi bo'ladi. Hatto o'z mashinasining nomini o'rganishga muvaffaq bo'lgan noyob namunalar ham bor. Ammo ko'pincha qo'ng'iroq qiluvchining asosiy muammosiga qo'shimcha ravishda ikkinchisi bor: kompyuterning nomi/IP manzilini bilish. Va ko'pincha bu ikkinchi muammoni hal qilish uchun birinchisiga qaraganda ko'proq vaqt talab etiladi (va siz shunchaki devor qog'ozini o'zgartirishingiz yoki etishmayotgan yorliqni qaytarishingiz kerak edi :).
Ammo shunga o'xshash narsalarni eshitish juda yoqimli:
- Tatyana Sergeevna, xavotir olmang, men allaqachon ulanyapman ...


Va buning uchun sizga ko'p narsa kerak emas.
Texnik qo'llab-quvvatlash bo'yicha mutaxassis faqat mashinalarning nomlarini eslab qolishi va kim uchun ishlayotganini eslab qolishi kerak.
Biz hozirda foydalanayotgan yechimni tavsiflashdan oldin, men boshqa variantlarni qisqacha ko'rib chiqaman, shunda men ularni oxirigacha tanqid qilishim va tanlovimni tushuntirishim mumkin.

  1. BgInfo, Ish stoli haqida ma'lumot va shunga o'xshashlar. Pul ko'p bo'lsa, pulliklari bor. Gap shundaki, ish stolida texnik ma'lumotlar ko'rsatiladi: mashina nomi, IP manzili, login va boshqalar. Desktop Info-da siz hatto ishlash grafiklarini ekranning yarmiga siqib qo'yishingiz mumkin.
    Menga yoqmaydigan narsa shundaki, bir xil Bginfo uchun, masalan, foydalanuvchi kerakli ma'lumotlarni ko'rish uchun oynalarni minimallashtirishi kerak. Hamkasblarim va men ham BgInfo-da bir necha bor kuzatganmiz xarakterli artefakt, yangi matn eskisining tepasida ko'rsatilganda.
    Ba'zi foydalanuvchilarni administratorlar ish stolida cho'zilgan mushukning yuziga qo'rqinchli 192.168.0.123 chizib, fon tasvirining estetikasini buzayotganidan g'azablanishadi va, albatta, bu dahshatli darajada demotivatsiya qiladi va ish ruhini butunlay o'ldiradi. .
  2. "Men kimman" yorlig'i (oxirida unga savol belgisi qo'yishga urinmang :). Ish stolidagi klassik yorliq, uning orqasida kerakli ma'lumotlarni dialog oynasi shaklida aks ettiruvchi toza yoki unchalik toza bo'lmagan skript yashiringan. Ba'zan, yorliq o'rniga, ular skriptni ish stoliga qo'yishadi, bu IMHO yomon odobdir.
    Kamchilik shundaki, yorliqni ishga tushirish uchun, birinchi holatda bo'lgani kabi, siz barcha ochiq oynalarni minimallashtirishingiz kerak (biz ish mashinasida yagona solitaire oynasi ochiq bo'lgan boylik qadrdonlarini hisobga olmaymiz). Aytgancha, sizning foydalanuvchilaringiz barcha oynalarni minimallashtirish uchun qaerga bosishni bilishadimi? To'g'ri, adminning ko'ziga barmoq.

Qopqoq, shuningdek, yuqorida tavsiflangan usullarning ikkalasi ham foydalanuvchining ko'r, ahmoq yoki hatto yolg'on gapirishi mumkin bo'lgan ma'lumotni olishda ishtirok etishi asosiy kamchilikka ega ekanligini ko'rsatadi.
Men kompyuter savodxonligini oshirish variantini ko'rib chiqmayman, chunki har bir kishi o'z mashinasi nomini Windows-da qaerdan qidirishni biladi: bu ezgu ish, lekin juda qiyin. Va agar kompaniyada kadrlar almashinuvi bo'lsa, unda bu butunlay vayron bo'ladi. Nima deyishim mumkin, aksariyat hollarda ular hatto loginlarini ham eslamaydilar.

Men jonimni to'kdim va endi nuqtaga.
Xabrov rezidentining g'oyasi asos sifatida qabul qilindi Mittel dan Ushbu maqolaning.
G'oyaning mohiyati shundan iboratki, foydalanuvchi Windows tizimiga kirganda, tizimga kirish skripti foydalanuvchi hisobining ma'lum bir atributiga kerakli ma'lumotlarni (vaqt va mashina nomi) kiritadi. Tizimdan chiqqaningizda esa xuddi shunday tizimdan chiqish skripti bajariladi.

Menga g'oyaning o'zi yoqdi, lekin amalga oshirishda menga yoqmagan narsalar ham bor edi.

  1. Foydalanuvchilar uchun tizimga kirish va tizimdan chiqish skriptlarini belgilaydigan guruh siyosati butun domen uchun amal qiladi, shuning uchun skriptlar foydalanuvchilar kiradigan har qanday mashinada ishlaydi. Agar siz terminal echimlarini ish stantsiyalari bilan birga ishlatsangiz (masalan, Microsoft RDS yoki Citrix mahsulotlari), bu yondashuv noqulay bo'ladi.
  2. Ma'lumotlar o'rtacha foydalanuvchi faqat o'qish uchun kirish huquqiga ega bo'lgan foydalanuvchi hisobining bo'lim atributiga kiritiladi. Foydalanuvchi hisobi atributiga qo'shimcha ravishda, skript kompyuter hisobining Bo'lim atributiga ham o'zgarishlar kiritadi, sukut bo'yicha foydalanuvchilar ham o'zgartira olmaydi. Shuning uchun, yechim ishlashi uchun muallif AD ob'ektlari uchun xavfsizlik sozlamalari standartlarini o'zgartirishni taklif qiladi.
  3. Sana formati maqsadli mashinadagi mahalliylashtirish sozlamalariga bog'liq, shuning uchun biz bitta mashinadan 10 yil 2018-noyabr 14:53 va boshqasidan 11/10/18 soat 2:53 ni olishimiz mumkin.

Ushbu kamchiliklarni bartaraf etish uchun quyidagilar amalga oshirildi.

  1. GPO domenga emas, balki mashinalari bo'lgan OU bilan bog'langan (men foydalanuvchilar va mashinalarni turli OUlarga ajrataman va boshqalarga maslahat beraman). Bundan tashqari, uchun orqaga qaytish siyosatini qayta ishlash rejimi rejimi o‘rnatilgan yushmoq.
  2. Skript faqat atributdagi foydalanuvchi hisobiga ma'lumotlarni yozadi ma'lumot, foydalanuvchi o'z hisobi uchun mustaqil ravishda o'zgartirishi mumkin.
  3. Atribut qiymatini yaratuvchi kod qismi o'zgartirildi

Endi skriptlar quyidagicha ko'rinadi:
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

Logon va Logoff skriptlari o'rtasidagi barcha farqlarni kim birinchi bo'lib topsa, u karma uchun plyus oladi. 🙂
Bundan tashqari, vizual ma'lumotni olish uchun quyidagi kichik PS skripti yaratildi:
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

Hammasi bir-ikki-uchta sozlangan:

  1. kerakli sozlamalar bilan GPO yarating va uni foydalanuvchi ish stantsiyalari bilan bo'limga ulang:
    Windows: kim qayerga kirganligini bilib oling
  2. keling choy ichamiz (agar AD foydalanuvchilari ko'p bo'lsa, sizga ko'p choy kerak bo'ladi :)
  3. PS skriptini ishga tushiring va natijani oling:
    Windows: kim qayerga kirganligini bilib oling
    Oynaning yuqori qismida qulay filtr mavjud bo'lib, unda siz bir yoki bir nechta maydonlarning qiymatlari asosida ma'lumotlarni tanlashingiz mumkin. Jadval ustunlarini bosish yozuvlarni tegishli maydonlarning qiymatlari bo'yicha tartiblaydi.

Biz yechimimizni chiroyli tarzda “paketlashimiz” mumkin.
Windows: kim qayerga kirganligini bilib oling
Buni amalga oshirish uchun biz "ob'ekt" maydonida shunga o'xshash narsaga ega bo'lgan texnik yordam mutaxassislari uchun skriptni ishga tushirish uchun yorliq qo'shamiz:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Texnik qo'llab-quvvatlash xodimlari ko'p bo'lsa, siz yorliq yordamida tarqatishingiz mumkin MUHIM YO'Q.

Bir nechta yakuniy sharhlar.

  • PowerShell uchun Active Directory moduli PS skripti ishga tushirilgan mashinaga o'rnatilishi kerak (buni amalga oshirish uchun Windows komponentlarida AD boshqaruv vositalarini qo'shish kifoya).
  • Odatiy bo'lib, foydalanuvchi o'z hisobining ko'pgina atributlarini tahrirlay olmaydi. Agar siz boshqa atributdan foydalanishga qaror qilsangiz, buni yodda tuting ma'lumot.
  • Qaysi atributni ishlatishingiz haqida barcha ishtirok etgan hamkasblaringizga xabar bering. Masalan, xuddi shunday ma'lumot Exchange Server administrator panelidagi foydalanuvchining pochta qutisiga interaktiv tarzda eslatma qo'shish uchun ishlatiladi va kimdir osongina uning ustiga yozishi yoki qo'shgan ma'lumotlar skriptingizning ustiga yozilganida xafa bo'lishi mumkin.
  • Agar sizda bir nechta Active Directory saytlari bo'lsa, replikatsiya kechikishlariga ruxsat bering. Misol uchun, agar siz AD sayti A dan foydalanuvchilar haqida so'nggi ma'lumotlarni olishni istasangiz va skriptni AD B saytidagi mashinadan ishga tushirmoqchi bo'lsangiz, buni qilishingiz mumkin:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSiteA — A sayti domen kontrolleri nomi (sukut bo'yicha Get-AdUser cmdlet eng yaqin domen kontrolleriga ulanadi)

Windows: kim qayerga kirganligini bilib oling

Rasm manbai

Quyidagi qisqa so'rovnomada qatnashsangiz, minnatdor bo'lardim.

So'rovda faqat ro'yxatdan o'tgan foydalanuvchilar ishtirok etishlari mumkin. tizimga kirishiltimos.

Nima ishlatasiz?

  • bginfo, ish stoli ma'lumotlari va boshqalar. (bepul dastur)

  • bginfo ning pullik analoglari

  • Men buni maqoladagidek qilaman

  • tegishli emas, chunki Men VDI/RDS va boshqalardan foydalanaman.

  • Men hali hech narsa ishlatmayapman, lekin bu haqda o'ylayapman

  • Menga bunday ma'lumotlarni yig'ish kerak emas

  • boshqa (izohlarda baham ko'ring)

112 foydalanuvchi ovoz berdi. 39 nafar foydalanuvchi betaraf qolgan.

Manba: www.habr.com

a Izoh qo'shish