Windows: fyn út wa't is oanmeld wêr

Windows: fyn út wa't is oanmeld wêr
- Och, neat wurket foar my, help!
- Sit gjin soargen, wy sille no alles reparearje. Jou jo kompjûternamme ...
(klassikers fan it sjenre fan petearen oant technyske stipe)

It is goed as jo in ark a la BgInfo hawwe of jo brûkers witte oer de fluchtoets Windows + Pause / Break en wite hoe't se kinne drukke. D'r binne sels seldsume eksimplaren dy't de namme fan har auto wisten te learen. Mar faaks hat de beller, neist syn haadprobleem, in twadde: it finen fan de namme/IP-adres fan 'e kompjûter. En faaks nimt it folle mear tiid om dit twadde probleem op te lossen dan it earste (en jo moasten gewoan it behang feroarje of de ûntbrekkende fluchtoets weromjaan :).
Mar it is folle moaier om wat te hearren as:
- Tatyana Sergeevna, meitsje jo gjin soargen, ik bin al ferbûn ...


En jo hawwe net folle nedich foar dit.
In spesjalist foar technyske stipe moat allinich de nammen fan 'e masines ûnthâlde en ûnthâlde wa't foar hokker wurket.
Foardat ik de oplossing beskriuwt dy't wy op it stuit brûke, sil ik koart nei oare opsjes sjen, sadat ik se ta it heft bekritisearje en myn kar útlizze kin.

  1. BgInfo, Desktop Info ensafuorthinne. As der in protte jild is, binne der betelle. It punt is dat technyske ynformaasje wurdt werjûn op it buroblêd: masinenamme, IP-adres, oanmelde, ensfh. Yn Desktop Info kinne jo sels prestaasjesgrafiken snije op de helte fan it skerm.
    Wat ik net leuk is dat foar deselde Bginfo, bygelyks, de brûker finsters minimalisearje moat om de nedige gegevens te sjen. Myn kollega's en ik hawwe ek mear as ien kear observearre by BgInfo karakteristyk artefakt, as nije tekst wurdt werjûn boppe op de âlde.
    Guon brûkers fergrieme har troch it feit dat admins in skriklike 192.168.0.123 tekenje op it gesicht fan in kat op 'e buroblêd, dy't de estetyk fan' e eftergrûnôfbylding bedjerre, en, fansels, dit is ferskriklik demotivearjend en deadet de wurkgeast folslein .
  2. In label a la "Wa bin ik" (besykje net in fraachteken oan it ein ta te foegjen :). In klassike fluchtoets op it buroblêd, wêrachter in kreas of net sa kreas skript ferberget dat de nedige ynformaasje yn 'e foarm fan in dialoochfinster toant. Soms, ynstee fan in fluchtoets, se sette it skript sels op it buroblêd, dy't IMHO is minne manieren.
    It neidiel is dat om de fluchtoets te starten, lykas yn it earste gefal, jo alle iepen finsters moatte minimalisearje (wy nimme gjin rekken mei dy darlings fan fortún dy't it ienige solitaire-finster iepen hawwe op har wurkmasine). Trouwens, witte jo brûkers wêr't se moatte klikke om alle finsters te minimalisearjen? Dat kloppet, in finger yn it each fan de admin.

De pet suggerearret ek dat beide fan 'e metoaden dy't hjirboppe beskreaun binne de wichtichste neidiel hawwe dat de brûker belutsen is by it krijen fan ynformaasje, dy't blyn, dom, of sels lizze kin.
Ik sil de opsje net beskôgje om komputerfeardigens te fergrutsjen, as elkenien wit wêr't yn Windows de namme fan har masine opsykje kin: it is in foarname saak, mar heul lestich. En as it bedriuw personielsomset hat, dan is it folslein fernield. Wat kin ik sizze, yn 'e measte gefallen ûnthâlde se har oanmelding net iens.

Ik gie myn siel út, en no nei it punt.
It idee fan in ynwenner fan Khabrov waard nommen as basis Mittel fan dit artikel.
De essinsje fan it idee is dat as in brûker ynlogt yn Windows, it oanmeldskript de nedige ynformaasje (tiid en masinenamme) yn in beskate attribút fan it brûkersaccount ynfiert. En as jo út it systeem ôfmelde, wurdt in ferlykber ôfmeldskript útfierd.

Ik fûn it idee sels leuk, mar d'r wiene guon dingen wêr't ik net bliid mei wie yn 'e útfiering.

  1. Groepbelied, dat oanmeld- en ôfmeldskripts foar brûkers spesifisearret, jildt foar it hiele domein, sadat de skripts sille rinne op elke masine wêrop brûkers har oanmelde. As jo ​​​​terminaloplossingen brûke tegearre mei wurkstasjons (bygelyks Microsoft RDS- of Citrix-produkten), sil dizze oanpak ûngemaklik wêze.
  2. De gegevens wurde ynfierd yn it ôfdieling-attribút fan it brûkersaccount, dêr't de gemiddelde brûker allinich-lês tagong hat. Neist it brûker account attribút, it skript makket ek feroarings oan de ôfdieling attribute fan de kompjûter account, dy't standert brûkers kinne ek net feroarje. Dêrom, om de oplossing te wurkjen, suggerearret de auteur it feroarjen fan de noarmen foar feiligensynstellingen foar AD-objekten.
  3. It datumformaat is ôfhinklik fan de lokalisaasjeynstellingen op 'e doelmasine, dus fan ien masine kinne wy ​​10 novimber 2018 14:53 krije, en fan in oare 11/10/18 2:53 oere

Om dizze tekoarten te eliminearjen, waard it folgjende dien.

  1. GPO is net keppele oan in domein, mar oan in OU mei masines (Ik skied brûkers en masines yn ferskate OU's en advisearje oaren). Boppedat, foar loopback belied ferwurkjen modus modus is ynsteld fusearje.
  2. It skript sil allinich gegevens skriuwe nei it brûkersaccount yn it attribút info, dy't de brûker selsstannich wizigje kin foar syn akkount.
  3. Feroare it stik koade dat generearret de attribút wearde

No sjogge de skripts der sa út:
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

Wa't de earste is om alle ferskillen te finen tusken Logon- en Logoff-skripts sil in plus krije foar karma. 🙂
Ek, om fisuele ynformaasje te krijen, waard it folgjende lytse PS-skript makke:
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

Yn totaal is alles ien-twa-trije konfigurearre:

  1. meitsje in GPO mei de nedige ynstellingen en keppelje it oan 'e ôfdieling mei brûkerswurkstasjons:
    Windows: fyn út wa't is oanmeld wêr
  2. lit ús tee drinke (as AD in grut oantal brûkers hat, dan hawwe jo in protte tee nedich :)
  3. útfiere it PS-skript en krije it resultaat:
    Windows: fyn út wa't is oanmeld wêr
    Oan 'e boppekant fan it finster is d'r in handich filter wêryn jo gegevens kinne selektearje op basis fan de wearden fan ien of mear fjilden. Troch te klikken op tabelkolommen sortearret records troch de wearden fan 'e oerienkommende fjilden.

Wy kinne ús oplossing prachtich "ferpakke".
Windows: fyn út wa't is oanmeld wêr
Om dit te dwaan, sille wy in fluchtoets tafoegje om it skript te starten foar spesjalisten foar technyske stipe, dy't sa'n ding sille hawwe yn it "objekt" fjild:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"

As d'r in protte meiwurkers fan technyske stipe binne, kinne jo in fluchtoets fersprieden mei DOCHT ER NET TA.

In pear lêste opmerkings.

  • De Active Directory-module foar PowerShell moat ynstalleare wurde op 'e masine wêrfan it PS-skript wurdt lansearre (om dit te dwaan, foegje gewoan AD-administraasje-ark ta yn Windows-komponinten).
  • Standert kin de brûker de measte attributen fan syn akkount net bewurkje. Hâld dit yn gedachten as jo beslute in gebrûk in attribút oars as info.
  • Ynformearje alle belutsen kollega's hokker attribút jo sille brûke. Bygelyks, itselde info wurdt brûkt om ynteraktyf notysjes ta te foegjen oan de postfak fan in brûker yn it Exchange Server adminpaniel en immen kin it maklik oerskriuwe, of tryst wurde as de ynformaasje dy't se tafoege wurdt oerskreaun troch jo skript.
  • As jo ​​​​meardere Active Directory-siden hawwe, meitsje dan fergoedingen foar replikaasjefertragingen. As jo ​​​​bygelyks aktuele ynformaasje wolle krije oer brûkers fan AD-side A, en it skript útfiere fan in masine fan AD-side B, kinne jo dit dwaan:
    Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Информация по логонам" -Wait

    DCfromSiteA - de namme fan 'e domeincontroller fan side A (standert makket de Get-AdUser cmdlet ferbining mei de tichtstbye domeincontroller)

Windows: fyn út wa't is oanmeld wêr

Ofbylding boarne

Ik soe tankber wêze as jo de koarte enkête hjirûnder kinne nimme.

Allinnich registrearre brûkers kinne meidwaan oan 'e enkête. Ynlogge, asjebleaft.

Wat brûke jo?

  • bginfo, Buroblêdynfo ensfh. (freeware)

  • betelle analogen fan bginfo

  • Ik sil it dwaan lykas yn it artikel

  • net relevant, omdat Ik brûk VDI / RDS ensfh.

  • Ik brûk noch neat, mar ik tink der oer nei

  • Ik hoech sokke gegevens net te sammeljen

  • oar (diel yn 'e kommentaren)

112 brûkers stimden. 39 brûkers ûntholden har.

Boarne: www.habr.com

Add a comment