• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Skrypt listujący grupę użytkownika - Windows.

VPS Starter Arubacloud
0 głosów
1,843 wizyt
pytanie zadane 2 stycznia 2019 w Systemy operacyjne, programy przez kamyk2 Początkujący (420 p.)
edycja 2 stycznia 2019 przez Arkadiusz Waluk

Witam, mam za zadanie na zajęcia utworzyć skrypt do Powershell'a, który będzie wypisywał nazwę użytkownika oraz listę grup, do których należy. Spotykam się z czymś takim po raz pierwszy, a nie mam możliwości gdziekolwiek zaczerpnąć pomocy. Przeszukałem inne fora, w szczególności te po angielsku bo tam jedynie dało się coś znaleźć. Nie może być to skomplikowane, ponieważ to pierwsze takie zadanie na moich studiach, stąd użycie np. Get-AD... odrzuciłem, bo trzeba do tego instalować moduły. Wskazówki jakie otrzymałem to: użyć env:USERNAME, gdy nazwa użytkownika nie zostanie sprecyzowana (aby wypisać listę grup aktywnego użytkownika), ponadto wskazówka, że opis konta w bazie użytkowników SAM nie zawiera listy grup do których należy konto, ale opis grupy zawiera listę kont, które do niej należą. Ostatnią rzeczą jest to, że "zwykłą" nazwę konta można rozszerzyć do pełnej przy użyciu $env:USERDOMAIN.

Z góry dziękuję za wskazówki i pomoc, jeżeli wybrałem złą kategorię to przepraszam.

1
komentarz 2 stycznia 2019 przez michulo Obywatel (1,240 p.)
przeniesione 2 stycznia 2019 przez michulo

Tak z ciekawości chciałem sprawdzić jak bardzo szukałeś...

Write-Host $env:USERNAME
Get-ADPrincipalGroupMembership -Identity $env:USERNAME | select name

nie wiem jak chcesz przekazywać nazwę użytkownika do sprawdzenia, jeśli parametrami to polecam przeczytać:

https://ss64.com/ps/syntax-args.html

 

komentarz 2 stycznia 2019 przez kamyk2 Początkujący (420 p.)
edycja 2 stycznia 2019 przez kamyk2
Hej. Probowalem używać różnych cmd związanych z get-AD... ale wszystkie podobne ze Stackoverflow wyrzucaja u mnie w powershellu błędy odnośnie braku zainstalowanego modułu. Kiedy chciałem go zainstalować (activedirectory, bodajże tak się nazywał) pojawiał się kolejny problem tak samo jak przy poleceniu include-module, że nie jest możliwe wykorzystanie tego modułu. Stąd moje pytanie odnośnie skryptu nie wykorzystującego modułów, które trzeba "doinstalować". Myślę, że gdyby prowadzacy miał w zamysle użycie tego to pojawiłaby się jakaś dodatkowa instrukcja czy wskazówka odnośnie instalacji tych modulow.
komentarz 2 stycznia 2019 przez michulo Obywatel (1,240 p.)
a to sorki, za dużo z AD pracuje, faktycznie nic o tym nie ma i już nie jet tak łatwo. zmieniam odpowiedź
komentarz 2 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,550 p.)
Jeśli problem został rozwiązany to nie należy usuwać treści pytania, to uniemożliwia zrozumienie przyszłym szukającym i w ogóle utrudnia szukanie. Należy za to wybrać najlepszą odpowiedź jeśli to możliwe, można zamknąć pytanie, ewentualnie napisać komentarz.

1 odpowiedź

+3 głosów
odpowiedź 2 stycznia 2019 przez michulo Obywatel (1,240 p.)
wybrane 3 stycznia 2019 przez kamyk2
 
Najlepsza

tutaj opis cmd to obsługi lokalnych grup

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.localaccounts/get-localgroupmember?view=powershell-5.1

 

$username = "testowy"
write-host ($username)
foreach ($item in get-localgroup) { #sprawdzam wszytkie grupy lokalne
    $members = get-localgroupmember -group $item #tworze tablice userw danej grupy 
    if ( $members.name -contains $username ) { #jesli user jest w tablicy to wypisz nazwe grupy
        Write-Host $item
    }
}

nie wiem jak chcesz przekazywać nazwę użytkownika do sprawdzenia, jeśli parametrami to polecam przeczytać:

https://ss64.com/ps/syntax-args.html

zapewne jak dasz $username=$env:username to zadziała ale ja siebie tego nie mogę sprawdzić 

komentarz 3 stycznia 2019 przez kamyk2 Początkujący (420 p.)
edycja 3 stycznia 2019 przez kamyk2
Dzięki wielkie za pomoc mimo wszystko. //edit

Drobna poprawka i działa, moje niedopatrzenie.
komentarz 9 stycznia 2019 przez konik7312 Nowicjusz (100 p.)
Skrypt wyżej nie pokazuje grup, do których dany użytkownik należy. Z tego co mi się wydaje to chyba brakuje jednej pętli? W którym jego miejscu jest wymagana ta drobna poprawka? :D
komentarz 10 stycznia 2019 przez michulo Obywatel (1,240 p.)

u mnie działa wink

$username = "xxx\tnowak"
write-host ($username)
foreach ($item in get-localgroup) {
    $members = get-localgroupmember -group $item
    if ( $members.name -contains $username ) {
        Write-Host $item
    }

output:

xxx\tnowak
Administratorzy
Użytkownicy

}

Podobne pytania

0 głosów
1 odpowiedź 303 wizyt
0 głosów
2 odpowiedzi 627 wizyt
pytanie zadane 7 maja 2017 w Systemy operacyjne, programy przez Gurred Nowicjusz (240 p.)
0 głosów
1 odpowiedź 231 wizyt

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...