Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Local user přes Powershell?

Dobrý den všem,
potřeboval bych v rámci domény zjistit, kteří aktuálně přihlášení uživatelé jsou na svém PC v localgroup Administrators (abych jim to zatrhnul :). Nerad bych procházel jeden počítač a po druhém, předpokládám, že PS by to mohl zvládnout. Poradíte?

Předmět Autor Datum
http://stackoverflow.com/questions/21147784/net-lo calgroup-administrators-equivalent-in-powershell
touchwood 10.06.2015 11:31
touchwood
Pokud jde jen o zatrhnutí, použil bych prostě už připravenou funkci v GPO. Samozřejmě to neřeší evid…
nikdo_kdo_by_si_pral 10.06.2015 15:47
nikdo_kdo_by_si_pral
Díky, vyzkoušel jsem. Předpokládá to na stanicích povolený WinRM, což by asi nebyl takový problém, a…
maxq 11.06.2015 11:45
maxq
Díky, že ses podělil o vlastní řešení.
touchwood 11.06.2015 11:47
touchwood
stejně je nejlepší cesta GPO a restricted groups .. poslední
MKc 27.06.2015 23:08
MKc

Pokud jde jen o zatrhnutí, použil bych prostě už připravenou funkci v GPO. Samozřejmě to neřeší evidenci takových individuí.

Jinak PS script, narychlo spichnuty bez osetreni chyb (aspon jako voditko):

import-module activedirectory
get-adcomputer -filter * | Select -Expand Name | Get-CimInstance -ClassName win32_group -Filter "name = 'administrators'" | Get-CimAssociatedInstance -Association win32_groupuser

Díky, vyzkoušel jsem. Předpokládá to na stanicích povolený WinRM, což by asi nebyl takový problém, ale zase proč, že? :)

Nakonec jsem to zkombinoval i s předchozím odkazem a výsledkem je tohle, s čímž už se dá něco dělat. Díky.

$groupname = 'Administrators'
get-adcomputer -Filter {OperatingSystem -like "Windows*"} | Select -Expand Name | % {
  $group = [ADSI]("WinNT://$_/$groupname,group")
  $group.PSBase.Invoke('Members') | % {
    $_.GetType().InvokeMember('Name', 'GetProperty', $null, $_, $null)
  }
}

úprava do "code" (touchwood)

Zpět do poradny Odpovědět na původní otázku Nahoru