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