„Windows“: sužinokite, kas kur yra prisijungęs

„Windows“: sužinokite, kas kur yra prisijungęs
- O, man niekas netinka, padėk!
- Nesijaudink, mes dabar viską sutvarkysime. Duok savo kompiuterio pavadinimą...
(žanro klasika nuo skambučių iki techninės pagalbos)

Gerai, jei turite įrankį a la BgInfo arba jūsų vartotojai žino apie „Windows+Pause/Break“ spartųjį klavišą ir žino, kaip jį paspausti. Yra net retų egzempliorių, kuriems pavyko sužinoti savo automobilio pavadinimą. Tačiau dažnai skambinantysis, be pagrindinės savo problemos, turi ir antrą – sužinoti kompiuterio vardą/IP adresą. Ir dažnai šiai antrai problemai išspręsti prireikia daug daugiau laiko nei pirmajai (o tereikėjo pakeisti tapetą arba grąžinti trūkstamą nuorodą :).
Bet daug maloniau išgirsti kažką panašaus:
- Tatjana Sergeevna, nesijaudink, aš jau jungiuosi...


Ir tam jums nereikia daug.
Techninės pagalbos specialistui tereikia įsiminti mašinų pavadinimus ir prisiminti, kas kuriam dirba.
Prieš aprašydamas šiuo metu naudojamą sprendimą, trumpai apžvelgsiu kitus variantus, kad galėčiau juos sukritikuoti ir paaiškinti savo pasirinkimą.

  1. BgInfo, Darbalaukio informacija ir panašiai. Jei yra daug pinigų, yra ir mokami. Esmė ta, kad darbalaukyje rodoma techninė informacija: mašinos pavadinimas, IP adresas, prisijungimas ir kt. Stalinio kompiuterio informacijoje netgi galite išspausti našumo diagramas ant pusės ekrano.
    Man nepatinka, kad, pavyzdžiui, tam pačiam Bginfo, vartotojas turi sumažinti langus, kad matytų reikiamus duomenis. Aš ir mano kolegos ne kartą stebėjome „BgInfo“. būdingas artefaktas, kai naujas tekstas rodomas virš senojo.
    Kai kuriuos vartotojus erzina tai, kad administratoriai ant darbastalio ištemptos katės veido piešia bauginantį 192.168.0.123, gadinantį fono vaizdo estetiką, ir, žinoma, tai siaubingai demotyvuoja ir visiškai užmuša darbo dvasią. .
  2. Etiketė a la "Kas aš" (nemėginkite jos pabaigoje pridėti klaustuko :). Klasikinis spartusis klavišas darbalaukyje, už kurio slepiasi tvarkingas ar nelabai tvarkingas scenarijus, rodantis reikiamą informaciją dialogo lango pavidalu. Kartais vietoj nuorodos jie įdeda patį scenarijų į darbalaukį, o tai IMHO yra blogos manieros.
    Trūkumas yra tas, kad norint paleisti spartųjį klavišą, kaip ir pirmuoju atveju, reikia sumažinti visus atidarytus langus (neatsižvelgiame į tuos sėkmės numylėtinius, kurių darbo mašinoje yra atidarytas vienintelis pasjanso langas). Beje, ar jūsų vartotojai žino, kur spustelėti, kad sumažintų visus langus? Teisingai, pirštas administratoriui į akis.

Dangtelis taip pat rodo, kad abu aukščiau aprašyti metodai turi pagrindinį trūkumą, kad vartotojas yra įtrauktas į informacijos gavimą, kuris gali būti aklas, kvailas ar net melas.
Nesvarstysiu galimybės padidinti kompiuterinį raštingumą, kai visi žino, kur sistemoje Windows ieškoti savo mašinos pavadinimo: tai kilni priežastis, bet labai sunku. O jei įmonėje yra darbuotojų kaita, tai visiškai pražūtinga. Ką aš galiu pasakyti, daugeliu atvejų jie net neprisimena savo prisijungimo.

Išliejau sielą, o dabar prie reikalo.
Pagrindas buvo Chabrovo gyventojo idėja mittelšis straipsnis.
Idėjos esmė ta, kad vartotojui prisijungus prie Windows, prisijungimo scenarijus įveda reikiamą informaciją (laiką ir mašinos pavadinimą) į tam tikrą vartotojo abonemento atributą. O kai atsijungiate iš sistemos, vykdomas panašus atsijungimo scenarijus.

Pati idėja man patiko, tačiau buvo keletas dalykų, kuriais nebuvau patenkintas įgyvendinant.

  1. Grupės politika, nurodanti vartotojų prisijungimo ir atsijungimo scenarijus, taikoma visam domenui, todėl scenarijai bus vykdomi bet kuriame kompiuteryje, prie kurio prisijungia vartotojai. Jei kartu su darbo stotimis naudosite terminalų sprendimus (pavyzdžiui, Microsoft RDS ar Citrix produktus), toks požiūris bus nepatogus.
  2. Duomenys įvedami į vartotojo abonemento atributą Departamentas, prie kurio paprastas vartotojas turi tik skaitymo prieigą. Be vartotojo abonemento atributo, scenarijus taip pat keičia kompiuterio paskyros atributą Skyrius, kurio pagal numatytuosius nustatymus vartotojai taip pat negali keisti. Todėl, kad sprendimas veiktų, autorius siūlo pakeisti AD objektų saugos nustatymų standartus.
  3. Datos formatas priklauso nuo lokalizacijos nustatymų tiksliniame kompiuteryje, todėl iš vieno įrenginio galime gauti 10 m. lapkričio 2018 d. 14:53, o iš kito 11/10/18 2:53 val.

Siekiant pašalinti šiuos trūkumus, buvo atlikta taip.

  1. GPO yra susietas ne su domenu, o su OU su mašinomis (atskiriu vartotojus ir mašinas į skirtingas OU ir patariu kitiems). Be to, už grįžtamojo ryšio strategijos apdorojimo režimas nustatytas režimas susijungti.
  2. Scenarijus tik įrašys duomenis į vartotojo abonementą atribute Informacija, kurį vartotojas gali savarankiškai pakeisti savo paskyroje.
  3. Pakeistas kodo fragmentas, generuojantis atributo reikšmę

Dabar scenarijai atrodo taip:
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

Kas pirmas ras visus Logon ir Logoff scenarijų skirtumus, gaus pliusą už karmą. 🙂
Be to, norint gauti vaizdinę informaciją, buvo sukurtas šis mažas PS scenarijus:
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

Iš viso viskas sukonfigūruota vienas-du-trys:

  1. sukurkite GPO su reikiamais parametrais ir susiekite jį su skyriumi, kuriame yra vartotojo darbo vietos:
    „Windows“: sužinokite, kas kur yra prisijungęs
  2. einam išgerti arbatos (jei AD turi daug vartotojų, vadinasi, arbatos reikia daug :)
  3. paleiskite PS scenarijų ir gaukite rezultatą:
    „Windows“: sužinokite, kas kur yra prisijungęs
    Lango viršuje yra patogus filtras, kuriame galite pasirinkti duomenis pagal vieno ar kelių laukų reikšmes. Spustelėjus lentelės stulpelius, įrašai surūšiuojami pagal atitinkamų laukų reikšmes.

Galime gražiai „supakuoti“ savo sprendimą.
„Windows“: sužinokite, kas kur yra prisijungęs
Norėdami tai padaryti, pridėsime spartųjį klavišą, kad paleistumėte scenarijų techninės pagalbos specialistams, kurie lauke „objektas“ turės kažką panašaus:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Jei yra daug techninės pagalbos darbuotojų, galite platinti nuorodą naudodami ŽVP.

Keletas paskutinių komentarų.

  • „Active Directory“ modulis, skirtas „PowerShell“, turi būti įdiegtas kompiuteryje, iš kurio paleidžiamas PS scenarijus (kad tai padarytumėte, tiesiog pridėkite AD administravimo įrankius „Windows“ komponentuose).
  • Pagal numatytuosius nustatymus vartotojas negali redaguoti daugumos savo paskyros atributų. Turėkite tai omenyje, jei nuspręsite naudoti kitą atributą nei Informacija.
  • Informuokite visus dalyvaujančius kolegas, kurią atributą naudosite. Pavyzdžiui, tas pats Informacija naudojamas interaktyviai pridėti pastabų į vartotojo pašto dėžutę Exchange serverio administratoriaus skydelyje ir kas nors gali lengvai ją perrašyti arba nuliūdinti, kai jūsų scenarijus perrašo jų pridėtą informaciją.
  • Jei turite kelias Active Directory svetaines, atsižvelkite į replikacijos delsą. Pavyzdžiui, jei norite gauti naujausios informacijos apie vartotojus iš AD svetainės A ir paleisti scenarijų iš kompiuterio iš AD svetainės B, galite tai padaryti:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DC fromSiteA — A svetainės domeno valdiklio pavadinimas (pagal numatytuosius nustatymus Get-AdUser cmdlet prisijungia prie artimiausio domeno valdiklio)

„Windows“: sužinokite, kas kur yra prisijungęs

Vaizdo šaltinis

Būčiau dėkingas, jei sudalyvautumėte toliau pateiktoje trumpoje apklausoje.

Apklausoje gali dalyvauti tik registruoti vartotojai. Prisijungti, Prašau.

ka tu naudoji?

  • bginfo, darbalaukio informacija ir kt. (nemokama programa)

  • mokami bginfo analogai

  • Aš padarysiu taip, kaip nurodyta straipsnyje

  • neaktualu, nes Naudoju VDI/RDS ir pan.

  • Kol kas nieko nenaudoju, bet galvoju

  • Man nereikia rinkti tokių duomenų

  • kita (pasidalinkite komentaruose)

Balsavo 112 vartotojų. 39 vartotojai susilaikė.

Šaltinis: www.habr.com

Добавить комментарий