Windows: mësojmë kush është loguar ku

Windows: mësojmë kush është loguar ku
— Oi, nuk po funksionon asgjĂ«, mĂ« ndihmoni!
— Mos u shqetĂ«soni, tani gjithçka do ta rregullojmĂ«. TĂ« thoni emrin e kompjuterit

(klasike nga telefonatat në mbështetje teknike)

Mirë, nëse keni një mjet si BgInfo ose përdoruesit tuaj dinë për shkurtesën Windows+Pause/Break dhe dinë ta shtypin atë. Takohen edhe ekzemplarë të rrallë, që e kanë mësuar emrin e makinerisë së tyre. Por shpesh, në telefonatë, përveç problemit kryesor, shfaqet një e dytë: të mësosh emrin/adresën IP të kompjuterit. Dhe shpesh herë, zgjidhja e kësaj problemi të dytë merr shumë më tepër kohë sesa e para (në fund të fundit, mund të ishte thjesht të ndryshoje tapetin ose të rikthenit një shkurtesë të humbur :).
Po do të ishte më e këndshme të dëgjoje diçka si:
— Tatjana Sergeevna, mos u shqetĂ«soni, po lidhem tani



Për këtë nuk është aq shumë e nevojshme.
Një specialist i mbështetjes teknike, mjafton thjesht të mësojë përmendsh emrat e makinerive dhe të mbajë mend kush punon për cilin.
Para përshkrimit të zgjidhjes, me të cilën po përdorim tani, do të shqyrtoj disa alternativa të tjera, për ta kritikuar në mënyrë që t'i shpjegoj zgjedhjen time.

  1. BgInfo, Desktop Info dhe të ngjashme. Nëse keni shumë para, ka edhe opcione paguese. Qëllimi është që informacioni teknik të shfaqet në desktop: emri i makinerisë, adresa IP, emri i përdoruesit, etj. Në Desktop Info mund të shtoni edhe grafikë të performancës në gjysmën e ekranit.
    Nuk më pëlqen që për të njëjtën BgInfo, për shembull, përdoruesi duhet të minimizojë dritaret për të parë informacionin e nevojshëm. Po ashtu, me kolegët kemi vënë re disa herë me BgInfo një artefakt karakteristik, kur teksti i ri shfaqet mbi tekstin e vjetër.
    Disa përdorues irritohen nga fakti se adminët vizatojnë 192.168.0.123 mbi pamjen e një maceje të shtrirë në desktop, që prish estetikën e imazhit të prapaskenës, dhe, natyrisht, kjo demotivon shumë dhe e vret totalisht humorin e punës.
  2. Një shkurtesë si «Kush jam» (mos u përpiqni ta shtoni një pikëpyetje në fund :). Një shkurtesë klasike në desktop, pas së cilës qëndron një skript i rregullt ose jo shumë që shfaq informacionin e nevojshëm në formën e një dritare dialogu. Ndonjëherë në vend të shkurtesës, vendosin vetë skriptin, çka mendoj se është mjaft e papërshtatshme.
    Disavantazhi është që për të nisur shkurtesën, si në rastin e parë, duhet të minimizoni të gjitha dritaret e hapura (nuk do të llogarisim ata që kanë hapur vetëm një dritare me pasjallin në makinerinë e tyre). Për më tepër, a dijnë përdoruesit tuaj se ku të klikojnë për të minimizuar të gjitha dritaret? Po, aktualisht, gishtin në sy të adminit.

Gjithashtu, kllouni sugjeron që të dyja metodat e përshkruara më sipër kanë një mangësi themelore në atë që për të marrë informacionin merr pjesë përdoruesi, i cili mund të jetë paksa i verbër, budalla dhe në përgjithësi, të gaboje.
Nuk do të shqyrtoj variantin e rritjes së kompetencës kompjuterike, kur të gjithë dinë se ku në Windows të shikojnë emrin e makinerisë së tyre; është një nismë e lavdërueshme, por shumë e vështirë. Dhe nëse në kompaninë tuaj ka lëvizshmëri të madhe të personelit, atëherë është edhe më e vështirë. Siç duket, në shumicën e rasteve, ata as nuk e kujtojnë emrin e tyre.

Kam rrëfyer shpirtin, tani në punë.
Kisha marrë si bazë idenë e një anëtari të Habr. mittel nga këtë artikull.
Qëllimi i konceptit është që kur përdoruesi hyn në Windows, skripti i logon regjistron informacionin e nevojshëm (koha dhe emri i makinerisë) në një atribut të caktuar të llogarisë së përdoruesit. Dhe kur del nga sistemi, një skript i ngjashëm i logoff ekzekutohet.

Ideja e vet mi pëlqeu, por në realizim kishte disa gjëra që nuk më pëlqyen.

  1. Grup politika, në të cilën janë caktuar skriptet e logon dhe logoff për përdoruesit, i zbaton çdo domeni, prandaj skriptet do të ekzekutohen në çdo makinë që përdoruesit lidhen. Nëse keni ndonjë përveç stacioneve të punës, zgjidhjet terminale (p.sh., Microsoft RDS ose produktet e Citrix), kjo qasje do të ishte e papërshtatshme.
  2. Të dhënat regjistrohen në atributin Departament të llogarisë së përdoruesit, për të cilin përdoruesi i zakonshëm ka vetëm akses për të lexuar. Përveç atributit të llogarisë së përdoruesit, skripti gjithashtu bën ndryshime në atributin Departament të llogarisë së makinerisë, të cilin përdoruesit gjithashtu nuk mund ta ndryshojnë për defolt. Prandaj, në mënyrë që zgjidhja të funksionojë, autori propozon të ndryshojë cilësimet standarde të sigurisë për objektet AD.
  3. Formati i datës varet nga cilësimet e lokalizimit në makinën përfundimtare, prandaj nga një makinë mund të marrim 10 nëntor 2018 14:53, dhe nga një tjetër 11/10/18 2:53 p.m.

Për të eliminuar këto mangësi, u realizua e mëposhtme.

  1. GPO lidhet jo me domenin, por me OU me makinat (unë i ndaj përdoruesit dhe makinat në OU të ndryshme dhe të tjerët gjithashtu ia rekomandoj). Në këtë mënyrë, për modalitetin e përpunimit të politikës loopback është caktuar modaliteti bashkë.
  2. Skripti do të regjistrojë të dhënat vetëm në llogarinë e përdoruesit në atribut Info, që përdoruesi mund ta ndryshojë vetë për llogarinë e tij.
  3. Pjesa e kodit e cila gjeneron vlerën e atributeve është ndryshuar

Tani skcripet duken kështu:
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 & " " & " @ " & 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 & " " & " @ " & strComputerName
oUser.Setinfo

Kushdo qĂ« e gjen tĂ« parin tĂ« gjitha ndryshimet mes skrciptit tĂ« logonit dhe logoff-it, do tĂ« marrĂ« njĂ« pikĂ« nĂ« karmĂ«n e tij. 🙂
Po ashtu, për të marrë informacion vizual është krijuar ky skcrip i vogël PS:
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 "Informacioni mbi logonat" -Wait

Në përfundim, gjithçka konfigurohet shpejt:

  1. krijojmë GPO me cilësimet e nevojshme dhe e lidhim atë me departamentin që ka stacionet e punës së përdoruesve:
    Windows: mësojmë kush është loguar ku
  2. shkojmĂ« tĂ« pimĂ« çaj (nĂ«se AD ka shumĂ« pĂ«rdorues, atĂ«herĂ« na duhet shumĂ« çaj 🙂
  3. nisim skcripin PS dhe marrim rezultatin:
    Windows: mësojmë kush është loguar ku
    Në pjesën e sipërme të dritares ka një filtrues të dobishëm, në të cilin mund të filtrojmë të dhënat sipas vlerave të një apo disa fushave. Klikimi mbi kolonat e tabelës rendit regjistrimet sipas vlerave të fushave përkatëse.

Mund ta 'paketojmë' bukur zgjidhjen tonë.
Windows: mësojmë kush është loguar ku
Për këtë do të shtojmë një shkurtesë për ekzekutimin e skrciptit për specialistët e mbështetjes teknike, ku në fushën "objekti" do të jetë diçka e tillë:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

Nëse ka shumë punonjës të mbështetjes teknike, mund ta shpërndajmë shkurtesën nëpërmjet GPP.

Disa vobservime në fund.

  • NĂ« makinĂ«n nga ku ekzekutohet skcripti PS, duhet tĂ« jetĂ« e instaluar moduli Active Directory pĂ«r PowerShell (Ă«shtĂ« e mjaftueshme tĂ« shtoni mjetet e menaxhimit AD nĂ« komponentĂ«t e Windows).
  • PĂ«rdoruesi pĂ«r shumicĂ«n e atributeve tĂ« llogarisĂ« sĂ« tij ngaqĂ« nuk mund t'i redaktojĂ«, duhet tĂ« keni parasysh kĂ«tĂ« nĂ«se vendosni tĂ« pĂ«rdorni njĂ« atribut tjetĂ«r nga Info.
  • Informoni tĂ« gjithĂ« kolegĂ«t e pĂ«rfshirĂ« se cilin atribut do tĂ« pĂ«rdorni. PĂ«r shembull, i njĂ«jti Info pĂ«rdoret pĂ«r shtimin interaktiv tĂ« shĂ«nimeve nĂ« kuti tĂ« pĂ«rdoruesit nĂ« administratĂ«n e Exchange Server dhe dikush mund ta fshijĂ« lehtĂ«sisht, ose mund tĂ« jetĂ« i shqetĂ«suar kur informacioni qĂ« ai/saj shtoi fshihet nga skripti juaj.
  • NĂ«se keni disa faqe Active Directory, atĂ«herĂ« bĂ«ni kujdes me vonesat e replikimit. PĂ«r shembull, nĂ«se dĂ«shironi tĂ« merrni informacionin e saktĂ« pĂ«r pĂ«rdoruesit nga faqja AD A, dhe ekzekutoni skcriptin nga makina nĂ« faqen AD B, mund ta bĂ«ni kĂ«shtu:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Informacion mbi logonat" -Wait

    DCfromSiteA — emri i kontrolluesit tĂ« domenit tĂ« faqes A (sipas parazgjedhjes, komandleti Get-AdUser lidhet me kontrolluesin mĂ« tĂ« afĂ«rt tĂ« domenit)

Windows: mësojmë kush është loguar ku

Burimi i imazheve

Do të isha mirënjohës nëse do të plotësonit një sondazh të shkurtër më poshtë.

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, ju lutemi.

ÇfarĂ« pĂ«rdorni?

  • bginfo, Desktop info etj. (softuer falas)

  • analogĂ«t me pagesĂ« tĂ« bginfo

  • do ta bĂ«j kĂ«shtu si nĂ« artikull

  • nuk Ă«shtĂ« aktuale, pasi pĂ«rdor VDI/RDS etj.

  • ndoshta nuk po pĂ«rdor asgjĂ«, por po mendoj

  • nuk kam nevojĂ« tĂ« mbledh kĂ«to tĂ« dhĂ«na

  • tjetĂ«r (shpĂ«rndani nĂ« komentet)

112 përdorues kanë votuar. 39 përdorues janë përmbajtur.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster