Windows: selvitä kuka on kirjautunut sisään missä

Windows: selvitä kuka on kirjautunut sisään missä
- Voi, mikään ei toimi minulle, apua!
- Älä huoli, me korjaamme kaiken nyt. Anna tietokoneellesi nimi...
(genren klassikot puheluista tekniseen tukeen)

On hyvä, jos sinulla on työkalu a la BgInfo tai käyttäjäsi tietävät Windows+Pause/Break-pikakuvakkeen ja osaavat painaa sitä. On jopa harvinaisia ​​yksilöitä, jotka ovat onnistuneet oppimaan autonsa nimen. Mutta usein soittajalla on pääongelmansa lisäksi toinen ongelma: tietokoneen nimen/IP-osoitteen selvittäminen. Ja usein tämän toisen ongelman ratkaiseminen vie paljon enemmän aikaa kuin ensimmäinen (ja sinun piti vain vaihtaa taustakuva tai palauttaa puuttuva pikakuvake :).
Mutta on paljon mukavampaa kuulla jotain tällaista:
- Tatjana Sergeevna, älä huoli, yhdistän jo...


Ja tähän et tarvitse paljoa.
Teknisen tuen asiantuntijan tarvitsee vain muistaa koneiden nimet ja muistaa, kuka työskentelee millekin palveluksessa.
Ennen kuin kuvailen tällä hetkellä käyttämäämme ratkaisua, käyn lyhyesti läpi muita vaihtoehtoja, jotta voin kritisoida niitä myöten ja selittää valintani.

  1. BgInfo, Tietokoneen tiedot ja vastaavat. Jos rahaa on paljon, on myös maksettuja. Asia on siinä, että tekniset tiedot näkyvät työpöydällä: koneen nimi, IP-osoite, sisäänkirjautuminen jne. Desktop Info -sovelluksessa voit jopa puristaa suorituskykykaavioita puoleen näytöstä.
    En pidä siitä, että esimerkiksi samalle Bginfolle käyttäjän on pienennettävä ikkunat nähdäkseen tarvittavat tiedot. Myös minä ja kollegani olemme havainneet useammin kuin kerran BgInfossa tyypillinen artefakti, kun uusi teksti näkyy vanhan päällä.
    Joitakin käyttäjiä ärsyttää se, että järjestelmänvalvojat piirtävät pelottavan 192.168.0.123:n työpöydälle ojennetun kissan kasvoille, mikä pilaa taustakuvan estetiikan, ja tämä on tietysti hirveän demotivoivaa ja tappaa työhengen täysin. .
  2. Etiketti a la "Kuka minä olen" (älä yritä lisätä siihen kysymysmerkkiä loppuun :). Klassinen pikakuvake työpöydällä, jonka taakse piiloutuu siisti tai ei niin siisti skripti, joka näyttää tarvittavat tiedot valintaikkunan muodossa. Joskus pikakuvakkeen sijaan he laittavat itse skriptin työpöydälle, mikä IMHO on huonoa käytöstä.
    Haittapuolena on, että käynnistääksesi pikakuvakkeen, kuten ensimmäisessä tapauksessa, sinun on minimoitava kaikki avoimet ikkunat (emme ota huomioon niitä onnenrakkaita, joilla on työkoneensa ainoa pasianssi-ikkuna auki). Muuten, tietävätkö käyttäjäsi, mistä napsauttaa minimoidaksesi kaikki ikkunat? Juuri niin, sormi järjestelmänvalvojan silmässä.

Korkki viittaa myös siihen, että molemmilla edellä kuvatuilla menetelmillä on suurin haittapuoli, että käyttäjä on mukana tiedon hankkimisessa, joka voi olla sokea, tyhmä tai jopa valehdella.
En harkitse mahdollisuutta lisätä tietokonelukutaitoa, kun kaikki tietävät, mistä Windowsista voi etsiä koneensa nimen: se on jalo asia, mutta erittäin vaikea. Ja jos yrityksessä on vaihtuvuutta, se on täysin tuhoisaa. Mitä voin sanoa, useimmissa tapauksissa he eivät edes muista kirjautumistaan.

Vuodasin sieluni, ja nyt asiaan.
Ajatus Khabrov-asukasta otettiin pohjaksi keskikokoinen ja tässä artikkelissa.
Ajatuksen ydin on, että kun käyttäjä kirjautuu sisään Windowsiin, kirjautumisskripti syöttää tarvittavat tiedot (aika ja koneen nimi) käyttäjätilin tiettyyn attribuuttiin. Ja kun kirjaudut ulos järjestelmästä, samanlainen uloskirjautumisskripti suoritetaan.

Pidin itse ideasta, mutta toteutuksessa oli joitain asioita, joihin en ollut tyytyväinen.

  1. Ryhmäkäytäntö, joka määrittää käyttäjille kirjautumis- ja uloskirjautumisskriptit, koskee koko toimialuetta, joten komentosarjat toimivat kaikilla koneilla, joihin käyttäjät kirjautuvat sisään. Jos käytät pääteratkaisuja työasemien kanssa (esimerkiksi Microsoft RDS- tai Citrix-tuotteet), tämä lähestymistapa on hankala.
  2. Tiedot syötetään käyttäjätilin Osasto-attribuutille, johon keskivertokäyttäjällä on vain luku -oikeus. Käyttäjätili-attribuutin lisäksi skripti tekee muutoksia myös tietokonetilin Osasto-attribuuttiin, joita käyttäjät eivät oletuksena voi muuttaa. Siksi, jotta ratkaisu toimisi, kirjoittaja ehdottaa AD-objektien suojausasetusstandardien muuttamista.
  3. Päivämäärän muoto riippuu kohdekoneen lokalisointiasetuksista, joten yhdeltä koneelta saamme 10 2018:14 ja toisesta 53 11:10.

Näiden puutteiden poistamiseksi tehtiin seuraavaa.

  1. GPO ei ole linkitetty verkkotunnukseen, vaan organisaatioyksikköön, jossa on koneita (erotan käyttäjät ja koneet eri organisaatioyksiköihin ja neuvon muita). Lisäksi varten silmukkakäytännön käsittelytila tila on asetettu yhdistää.
  2. Komentosarja kirjoittaa tietoja vain attribuutissa olevaan käyttäjätiliin Tiedot, jota käyttäjä voi muuttaa itsenäisesti tililleen.
  3. Vaihdettu koodinpätkä, joka luo määritteen arvon

Nyt skriptit näyttävät tältä:
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

Se, joka löytää ensimmäisenä kaikki erot Logon- ja Logoff-skriptien välillä, saa plussan karmasta. 🙂
Visuaalisen tiedon saamiseksi luotiin myös seuraava pieni PS-skripti:
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

Kaiken kaikkiaan kaikki on määritetty yksi-kaksi-kolme:

  1. luo GPO tarvittavin asetuksin ja linkitä se osastoon, jossa on käyttäjätyöasemat:
    Windows: selvitä kuka on kirjautunut sisään missä
  2. mennään juomaan teetä (jos AD:lla on paljon käyttäjiä, niin teetä tarvitaan paljon :)
  3. suorita PS-skripti ja saat tuloksen:
    Windows: selvitä kuka on kirjautunut sisään missä
    Ikkunan yläosassa on kätevä suodatin, jossa voit valita tietoja yhden tai useamman kentän arvojen perusteella. Napsauttamalla taulukon sarakkeita, tietueet lajitellaan vastaavien kenttien arvojen mukaan.

Pystymme "pakkaamaan" ratkaisumme kauniisti.
Windows: selvitä kuka on kirjautunut sisään missä
Tätä varten lisäämme pikakuvakkeen skriptin käynnistämiseksi teknisen tuen asiantuntijoille, joilla on jotain tällaista "objekti"-kentässä:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Jos teknisen tuen työntekijöitä on paljon, voit jakaa pikakuvakkeen käyttämällä GPP.

Lopuksi muutama kommentti.

  • PowerShellin Active Directory -moduuli on asennettava koneelle, josta PS-komentosarja käynnistetään (tämä tehdään lisäämällä AD-hallintatyökalut Windows-komponentteihin).
  • Oletuksena käyttäjä ei voi muokata useimpia tilinsä määritteitä. Pidä tämä mielessä, jos päätät käyttää muuta attribuuttia kuin Tiedot.
  • Ilmoita kaikille mukana oleville kollegoille, mitä ominaisuuksia käytät. Esimerkiksi sama Tiedot käytetään vuorovaikutteisesti muistiinpanojen lisäämiseen käyttäjän postilaatikkoon Exchange Server -hallintapaneelissa, ja joku voi helposti korvata sen tai tulla surulliseksi, kun komentosarjasi korvaa heidän lisäämänsä tiedot.
  • Jos sinulla on useita Active Directory -sivustoja, ota replikointiviiveet huomioon. Jos esimerkiksi haluat saada ajantasaista tietoa käyttäjistä AD-sivustolta A ja suorittaa komentosarjan AD-sivuston B koneelta, voit tehdä näin:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCsivustoltaA — sivuston A toimialueen ohjaimen nimi (oletusarvoisesti Get-AdUser-cmdlet muodostaa yhteyden lähimpään toimialueen ohjaimeen)

Windows: selvitä kuka on kirjautunut sisään missä

Kuvan lähde

Olisin kiitollinen, jos voisitte vastata alla olevaan lyhyeen kyselyyn.

Vain rekisteröityneet käyttäjät voivat osallistua kyselyyn. Kirjaudu sisään, ole kiltti.

Mitä sinä käytät?

  • bginfo, työpöytätiedot jne. (ilmaisohjelma)

  • bginfon maksulliset analogit

  • Teen sen kuten artikkelissa

  • ei ole relevanttia, koska Käytän VDI/RDS jne.

  • En käytä vielä mitään, mutta mietin sitä

  • Minun ei tarvitse kerätä tällaisia ​​tietoja

  • muu (jaa kommenteissa)

112 käyttäjää äänesti. 39 käyttäjää pidättyi äänestämästä.

Lähde: will.com

Lisää kommentti