2026. szeptember 19., szombat

PsPasswd paraméterezése

A PsPasswd paraméterezése attól függ, hogy helyi vagy távoli Windows-fiók jelszavát akarod módosítani. A Microsoft jelenlegi dokumentációja szerint a PsPasswd v1.25 szintaxisa:
pspasswd [[\\computer[,computer[,...]] | @file] [-u user [-p psswd]]] Username [NewPassword]

1. Helyi gépen

Például a TesztUser jelszavának módosítása:
pspasswd TesztUser UjJelszo123!

Ha nem adod meg a NewPassword paramétert, a Microsoft dokumentációja szerint NULL/üres jelszó kerül alkalmazásra, ezért ezt éles rendszeren különösen kerülni kell.
2. Jelszó megadása biztonságosabban

A PsPasswd használható úgy is, hogy a -p kapcsolót nem adod meg:
pspasswd \\PC01 -u Administrator TesztUser

Ilyenkor a PsPasswd rejtett módon bekéri a távoli kapcsolathoz szükséges jelszót. Ez jobb, mint a jelszót közvetlenül a parancssorba írni.
3. Távoli számítógép
pspasswd \\PC01 TesztUser UjJelszo123!

Itt:
\\PC01 │ └── távoli számítógép TesztUser │ └── módosítandó Windows-fiók UjJelszo123! │ └── új jelszó

4. Másik hitelesítő adatokkal
pspasswd \\PC01 -u AdminUser TesztUser UjJelszo123!

A -u a távoli gépre történő bejelentkezéshez használt felhasználót jelöli; ez nem feltétlenül ugyanaz, mint a módosítandó Username.
5. Több gép egyszerre

Szövegfájlból is megadhatók a számítógépek:
PC01 PC02 PC03




majd:
pspasswd @gepek.txt TesztUser UjJelszo123!




A @file jelentése, hogy a PsPasswd a fájlban felsorolt számítógépeken hajtja végre a műveletet.
A paraméterek röviden

ParaméterJelentése\\computer Távoli számítógép
@file Számítógépek listája fájlból
-u user Távoli géphez használt felhasználó
-p psswd Távoli hitelesítés jelszava
Username A módosítandó fiók
NewPassword Az új jelszó

Biztonsági szempontból: a -p után megadott jelszó parancssori argumentumként jelenhet meg, ezért érzékeny környezetben célszerű elhagyni a -p értékét, és használni az interaktív, rejtett bekérést. A Microsoft szerint a PsPasswd Windows jelszó-visszaállítási API-kat használ, és a jelszavakat nem küldi át hálózaton egyszerű szövegként.
-----------------
import os
import shutil
import subprocess
import getpass


def find_pspasswd():
    """
    Megkeresi a PsPasswd.exe fájlt.
    """

    # 1. PATH keresés
    path = shutil.which("pspasswd.exe")

    if path:
        return path

    # 2. Gyakori helyek
    possible_paths = [
        r"C:\Sysinternals\PsPasswd.exe",
        r"C:\Tools\PsPasswd.exe",
        r"C:\Windows\PsPasswd.exe",
        os.path.join(os.getcwd(), "PsPasswd.exe"),
    ]

    for path in possible_paths:
        if os.path.isfile(path):
            return path

    return None


def run_pspasswd():

    print("=" * 60)
    print("        PsPasswd Python vezérlő")
    print("=" * 60)
    print()

    pspasswd = find_pspasswd()

    if not pspasswd:
        print("HIBA: A PsPasswd.exe nem található.")
        print()
        print("Helyezd például ide:")
        print(r"C:\Sysinternals\PsPasswd.exe")
        return

    print("PsPasswd:")
    print(pspasswd)
    print()

    # -------------------------------------------------
    # Helyi vagy távoli gép
    # -------------------------------------------------

    print("1 - Helyi számítógép")
    print("2 - Távoli számítógép")
    print()

    mode = input("Választás [1/2]: ").strip()

    if mode == "1":

        computer = None

    elif mode == "2":

        computer_name = input(
            "Távoli gép neve vagy IP-címe: "
        ).strip()

        if not computer_name:
            print("Nem adtál meg számítógépet.")
            return

        computer = rf"\\{computer_name}"

    else:

        print("Érvénytelen választás.")
        return

    # -------------------------------------------------
    # Módosítandó Windows-fiók
    # -------------------------------------------------

    username = input(
        "Módosítandó felhasználónév: "
    ).strip()

    if not username:
        print("Nem adtál meg felhasználónevet.")
        return

    # -------------------------------------------------
    # Új jelszó
    # -------------------------------------------------

    new_password = getpass.getpass(
        "Új jelszó: "
    )

    confirm_password = getpass.getpass(
        "Új jelszó ismét: "
    )

    if new_password != confirm_password:
        print("HIBA: A két jelszó nem egyezik.")
        return

    if not new_password:
        print("HIBA: Üres jelszó nem engedélyezett.")
        return

    # -------------------------------------------------
    # Távoli hitelesítő adatok
    # -------------------------------------------------

    command = [pspasswd]

    if computer:
        command.append(computer)

        admin_user = input(
            "Távoli adminisztrátori felhasználó: "
        ).strip()

        if not admin_user:
            print("Nem adtál meg adminisztrátori felhasználót.")
            return

        command.extend(["-u", admin_user])

        print()
        print(
            "A PsPasswd saját hitelesítési jelszóbekérését "
            "fogja használni."
        )

    # -------------------------------------------------
    # Felhasználó + új jelszó
    # -------------------------------------------------

    command.append(username)
    command.append(new_password)

    print()
    print("PsPasswd indítása...")
    print()

    try:

        result = subprocess.run(
            command,
            text=True,
            capture_output=True
        )

        print("Visszatérési kód:", result.returncode)
        print()

        if result.stdout:
            print("PsPasswd kimenete:")
            print(result.stdout)

        if result.stderr:
            print("PsPasswd hibaüzenete:")
            print(result.stderr)

        if result.returncode == 0:

            print()
            print("=" * 60)
            print("A művelet sikeresen befejeződött.")
            print("=" * 60)

        else:

            print()
            print("=" * 60)
            print("A művelet sikertelen.")
            print("Ellenőrizd:")
            print("- rendszergazdai jogosultság")
            print("- számítógép neve")
            print("- felhasználónév")
            print("- hálózati kapcsolat")
            print("- PsPasswd verzió")
            print("=" * 60)

    except FileNotFoundError:

        print("A PsPasswd.exe nem indítható.")

    except PermissionError:

        print(
            "Nincs megfelelő jogosultság a program futtatásához."
        )

    except Exception as error:

        print("Váratlan hiba:")
        print(error)


if __name__ == "__main__":
    run_pspasswd()
------------------

Nincsenek megjegyzések:

Megjegyzés küldése