• 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.

Object Storage Arubacloud
0 głosów
1,873 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,950 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ź 324 wizyt
0 głosów
2 odpowiedzi 647 wizyt
pytanie zadane 7 maja 2017 w Systemy operacyjne, programy przez Gurred Nowicjusz (240 p.)
0 głosów
1 odpowiedź 256 wizyt

92,583 zapytań

141,434 odpowiedzi

319,668 komentarzy

61,966 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...