— Omlouvám se, nic mi nefunguje, pomozte mi!
— Nebojte se, hned to napravíme. Jaké je jméno počítače…
(klasika žánru z hovorů na technickou podporu)
Je dobře, pokud máte nástroj typu BgInfo nebo vaši uživatelé znají zkratku Windows+Pause/Break a vědí, jak ji zmáčknout. Dokonce se občas objeví vzácné případy, kteří si zapamatovali jméno svého stroje. Ale často se během hovoru kromě hlavního problému objeví i druhý: zjistit jméno/IP adresu počítače. A než se tento druhý problém vyřeší, trvá to často mnohem déle než první (a přitom stačilo jen změnit pozadí nebo vrátit ztracenou zástupce :).
A přece je mnohem příjemnější slyšet něco jako:
— Tatiano Sergejevno, nedělejte si starosti, již se připojuji…
A není k tomu potřeba tak moc.
Specialistovi technické podpory stačí si zapamatovat jména strojů a vědět, kdo na čem pracuje.
Před popisem řešení, které nyní používáme, stručně proberu jiné možnosti, abych je moc kritizoval a vysvětlil svojí volbu.
- , a podobné. Pokud máte hodně peněz, jsou k dostání i placené verze. Podstatou je, že na desktopu se zobrazují technické informace: jméno stroje, IP adresa, přihlášení atd. V Desktop Info je dokonce možné vměstnat grafy výkonu na polovinu obrazovky.
Nedostatečné je, že pro stejné Bginfo, například, uživatel musí minimalizovat okna, aby viděl potřebná data. Také jsme s kolegy několikrát pozorovali u BgInfo , když se nový text zobrazuje přes starý.
Někteří uživatelé obtěžuje, že administrátoři kreslí hrozivou 192.168.0.123 na obličeji natáhnutého kočičíka na pracovním stole, což kazí estetiku pozadí, a samozřejmě to hrozně demotivuje a naprosto ničí pracovní atmosféru. - Zástupce typu "Kdo jsem" (nesnažte se mu na konci přidat otazník :). Klasický zástupce na ploše, za kterým se skrývá čistý nebo méně upravený skript, zobrazující potřebné informace v podobě dialogového okna. Někdy místo zástupce na ploše umisťují přímo skript, což, IMHO, není zrovna dobrý styl.
Nevýhodou je, že pro spuštění zástupce, stejně jako v prvním případě, je nutné minimalizovat všechna otevřená okna (nebereme v úvahu šťastlivce, kteří mají na pracovní stanici otevřené jediné okno s soliterem). Mimochodem, ví vaši uživatelé, kam musí kliknout, aby minimalizovali všechna okna? Správně, prstem do oka admina.
Také kápo naznačuje, že oba výše popsané způsoby mají společnou nevýhodu v tom, že na získání informací se podílí uživatel, který může být pomalý, hloupý a vůbec lhát.
Varianta se zvyšováním počítačové gramotnosti, kdy všichni vědí, kde ve Windows zjistit jméno svého stroje, se nezabývám: jde o ušlechtilou, ale velmi obtížnou záležitost. A pokud v společnosti dochází k fluktuaci zaměstnanců, pak úplně marná věc. Co si povídat, ve většině případů si ani nepamatují své uživatelské jméno.
Vylil jsem duši, a nyní k věci.
Jako základ byla vzata myšlenka od člena komunity Habr. z .
Podstata myšlenky spočívá v tom, že při přihlášení uživatele do Windows přihlašovací skript zaznamenává potřebné informace (čas a jméno stroje) do určitého atributu uživatelského účtu. A při odhlášení ze systému se spustí podobný odhlašovací skript.
Samotná myšlenka se mi líbila, ale v realizaci mě některé věci nenadchly.
- Skupinová politika, ve které jsou definovány přihlašovací a odhlašovací skripty pro uživatele, se aplikuje na celou doménu, proto skripty budou fungovat na jakémkoli stroji, na kterém se uživatelé přihlašují. Pokud kromě pracovních stanic používáte terminálová řešení (například Microsoft RDS nebo produkty Citrix), tento přístup nebude pohodlný.
- Data se zaznamenávají do atributu Department uživatelského účtu, na který má běžný uživatel přístup pouze pro čtení. Kromě atributu uživatelského účtu skript také provádí změny v atributu Department uživatelského počítače, který uživatelé obvykle měnit nemohou. Aby řešení fungovalo, autor navrhuje změnit standardní nastavení zabezpečení pro objekty AD.
- Formát data závisí na nastavení lokalizace na koncovém zařízení, takže z jednoho zařízení můžeme získat 10. listopadu 2018 14:53, zatímco z druhého 11/10/18 2:53 p.m.
Za účelem odstranění těchto nedostatků bylo provedeno následující.
- GPO se linkuje nikoli k doméně, ale k OU s počítači (uživatele a počítače rozděluji do různých OU a doporučuji to i ostatním). Přitom je nastavena byl nastaven sloučit.
- Skript bude ukládat data pouze do uživatelského účtu v atributu Info, který si uživatel může změnit sám pro svůj účet.
- Byl změněn kód generující hodnotu atributu
Nyní skripty vypadají takto:
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
Kdo první najde všechny rozdíly mezi logon a logoff skriptem, tomu to přinese karma. 🙂
Také byl vytvořen tento malý PS skript pro získání přehledných informací:
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 "Informace k přihlášením" -Wait
Celkově se vše nastavuje rychle:
- vytvoříme GPO s požadovanými nastaveními a propojí ho s oddělením pracovních stanic uživatelů:
- jdeme si uvařit čaj (pokud je AD s velkým počtem uživatelů, tak bude čaje potřeba mnoho 🙂
- spustíme PS skript a dostaneme výsledek:

V horní části okna je pohodlný filtr, ve kterém je možné vybírat data podle hodnot jednoho nebo více polí. Kliknutí na sloupce tabulky řadí záznamy podle hodnot odpovídajících polí.
Naše řešení lze „hezkě zabalit“.

K tomu přidáme zástupce pro spuštění skriptu technickým specialistům, jehož pole „objekt“ bude mít něco takového:
powershell.exe -NoLogo -ExecutionPolicy Bypass -File "servershareScriptsGet-UsersByPCsInfo.ps1"
Pokud je zaměstnanců technické podpory hodně, můžete rozdat zástupce pomocí .
Na závěr několik poznámek.
- Na počítači, odkud se spouští PS skript, musí být nainstalován modul Active Directory pro PowerShell (stačí přidat nástroje pro správu AD v komponentách Windows).
- Většinu atributů svého účtu uživatel obvykle editovat nemůže. Mějte to na paměti, pokud se rozhodnete použít atribut jiný než Info.
- Informujte všechny zúčastněné kolegy o tom, který atribut budete používat. Například stejný Info se používá pro interaktivní přidávání poznámek k uživatelskému účtu v administraci Exchange Serveru a někdo ho snadno může přepsat, nebo se o něm zarmoutit, když informace, které přidal, přepíše váš skript.
- Pokud máte několik webů Active Directory, zohledněte zpoždění replikace. Například pokud chcete získat aktuální informace o uživatelích z AD webu A, ale spouštíte skript z počítače na AD webu B, můžete to udělat takto:
Get-ADUser -Server DCfromSiteA -SearchBase $OU -Properties * -Filter * | Select-Object DisplayName, SamAccountName, info | Sort DisplayName | Out-GridView -Title "Informace k přihlášením" -Wait
DCfromSiteA — jméno doménového kontroléru webu A (podle defaultu se cmdlet Get-AdUser připojuje k nejbližšímu doménovému kontroléru)

Budeme vděční, pokud vyplníte krátký dotazník níže.
Pouze registrovaní uživatelé se mohou účastnit ankety. , prosím.
Co používáte?
bginfo, Desktop info apod. (zdarma software)
placené náhrady bginfo
udělám to, jak je ve článku
není relevantní, protože používám VDI/RDS apod.
zatím nic nepoužívám, ale uvažuji
nemám potřebu shromažďovat takové údaje
jiné (sdílejte v komentářích)
Hlasovalo 112 uživatelů. Zdrželo se 39 uživatelů.
Zdroj: habr.com

