PsPasswd.exe i „net user”, czyli zmiana hasła na wielu komputerach

Jednym z wyzwań przy zarządzaniu rozbudowanym środowiskiem informatycznym jest zapewnienie bezpieczeństwa wszystkich systemów. Cykliczna zmiana haseł kont lokalnych (szczególnie administratora) to jeden z podstawowych punktów polityki bezpieczeństwa i dzisiaj podzielę się z Wami dwoma sposobami na wygodną zmianę hasła na wielu komputerach na raz.

Najpierw sięgniemy do pakietu PSTOOLS (pisaliśmy m.in. o psexec, pslist i psshutdown), a konkretnie do programu PsPasswd.exe. Pakiet możecie pobrać za darmo ze strony Microsoftu.

PsPasswd.exe podobnie jak wszystkie programy z tego pakietu nie ma interfejsu graficznego i działa tylko w wierszu poleceń. Dla mnie jest to jego mocną stroną 🙂

Oczywiście w tym miejscu moglibyście sami przeczytać wbudowany „manual”, ale dla osób mających problemy z językiem angielskim, albo lubiących gotowe przykłady, Blog Spece.IT jak zawsze stara się być pomocnym 🙂

Aby zmienić hasło lokalnego użytkownika wystarczy w wierszu poleceń użyć prostej składni:

pspasswd.exe [nazwa_konta] [nowe_hasło]

Możemy łączyć się ze zdalnym komputerem:

pspasswd.exe \\zdalny_komputer [nazwa_konta] [nowe_hasło]

Łącząc się ze zdalnymi maszynami możemy podać poświadczenia innego konta (np. konta serwisowego z wyższymi uprawnieniami):

pspasswd.exe \\zdalny_komputer -u [użytkownik] -p [hasło] [nazwa_konta] [nowe_hasło]

Możemy podać kilka nazw komputerów oddzielając je przecinkami:

pspasswd.exe \\zdalny_komputer1,\\zdalny_komputer2 [nazwa_konta] [nowe_hasło]

..albo też wykonać to polecenie na komputerach z pliku.

pspasswd.exe @mój_plik_z_nazwami_komputerów.txt [nazwa_konta] [nowe_hasło]

Istnieje wiele sposobów na zmianę hasła. Nie jestem w stanie opisać wszystkich, ale grzechem byłoby gdybym nie wspomniał o natywnym poleceniu w Windowsach:

net user [nazwa_konta] [nowe_hasło]

Polecenie to nie ma opcji wykonywania na zdalnych komputerach. Można oczywiście wykorzystać psexec.exe, ale skoro istnieje znacznie mniej skomplikowana metoda opisana wyżej, to chyba nie ma sensu komplikować, prawda? 🙂

A Wy, jak zmieniacie hasła na zdalnych maszynach?

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

4 komentarze

  1. Geras napisał(a):

    Witam, stworzyłem listę kilkudziesięciu komputerów gdzie nie wszystkie są w chwili uruchamiania skryptu ONLINE.
    – po pierwsze: jak skrócić liczbe prób na zmianę hasła aby po pierwszym niepowodzeniu od razu przeszło do kolejnego komputera z listy (w tej chwili trwa to około 20 sekund)
    – po drugie: jak sprawić aby hasło zmieniło się zaraz po pojawieniu się komputera w sieci ?

    Z góry dziękuje za pomoc

  2. Łukasz Skalikow napisał(a):

    @Geras:
    Cześć! Po pierwsze w samym pspassword nie ma funkcji sprawdzania dostępności maszyny oraz ustawiania ilości prób. Można to obejść na wiele sposobów, na przykład najpierw PINGiem sprawdzić czy maszyna jest online (parametr -n odpowiada za ilość pingów), i jeśli odpowiedź z PINGA zawieraq TTL – wiesz, że maszyna jest online.

    ping -n 1 nazwa_lub_ip_maszyny | find „TTL” if not errorlevel 1

    Zmiane hasła po pojawieniu się maszyny w sieci najlepiej wykona Group Policy ( nie napisałeś jednak czy masz domenę..)

  3. Wojciech Górecki napisał(a):

    witam jak wpisuję pspasswd.exe \nazwa komputera [nazwa konta] [nowe hasło] to wyrzuca mi Access is denied co może być przyczyną

  4. Marcin napisał(a):

    odpal CMD jako administrator

Dodaj komentarz