Jak stworzyć nigdy nie wygasające hasło i użytkownika za pośrednictwem użytkownika sieciowego za pomocą pliku .bat

23

Korzystam z a, .bat fileaby utworzyć użytkownika i hasło na poziomie systemu operacyjnego Windows.

Problem, z którym się spotykam, polega na tym, że kiedy podaję EXPIRES:NEVERhasło, kiedy użytkownik jest tworzony, nie ma "Password never expires"zaznaczonego pola wyboru (co oznacza, że ​​hasło nigdy nie wygasa jest wybrane dla tego utworzonego użytkownika), a użytkownik wygasa automatycznie po 90 dniach.

Net User %1 %2 /COMMENT:"%3" /EXPIRES:NEVER /PASSWORDCHG:NO /ADD

Powyżej jest główną linią kodu, przekazuję nazwę użytkownika i hasło z pliku tekstowego i uruchamiam plik .bat.

Sharpeye500
źródło

Odpowiedzi:

34

Dodaj ten wiersz do pliku wsadowego:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Glenn Sullivan
źródło
Uwaga: Uważam, że będzie to działać tylko z kontami LOKALNYMI, a nie kontami DOMAIN. Ale wydaje się, że tego potrzebujesz ...
Glenn Sullivan
1
Zaakceptowana odpowiedź spróbuje zmienić zarówno użytkownika lokalnego, jak i użytkownika domeny, jeśli oba istnieją z tą nazwą użytkownika. (Może nie będzie miał uprawnień do zmiany użytkownika domeny i zwróci „Ogólną awarię” dla tej części, ale przynajmniej spróbuje.) Jeśli chcesz tylko zmienić użytkownika lokalnego, a nie użytkownika domeny z taka sama nazwa, jeśli tak się stanie, użyj następującego polecenia: WMIC USERACCOUNT WHERE (Name = '% 1' and Domain = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore
2

Opcja / wygasa dotyczy konta, a nie hasła, sprawdź pomoc polecenia.

http://support.microsoft.com/kb/251394/en-us

Z dokumentacji: „Powoduje wygaśnięcie konta użytkownika, jeśli podasz datę”.

Qkolnek
źródło
Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Scott Pack
1
Pierwsze zdanie jest WAŻNE. Powinien być w zaakceptowanej odpowiedzi.
AD
1

net userKomenda może być stosowany na lokalnym, jak również kont domeny. Użyj /domainprzełącznika dla kont domeny.

Na przykład, aby wyświetlić informacje dla użytkownika domeny% 1, użyj

net user %1 /domain

Pełna lista opcji użytkownika netto znajduje się tutaj:

http://support.microsoft.com/kb/251394

David Paige
źródło
1

Pojedynczy użytkownik AD

W przypadku użytkowników usługi Active Directory możesz użyć polecenia dsmod, aby zmienić go dla pojedynczego użytkownika:

dsmod user "CN=username,OU={User Org Unit},DC... etc" -pwdneverexpires yes

Wielu użytkowników AD

Jeśli chcesz zbiorczo ustawić tę właściwość, możesz to zrobić dla całej jednostki organizacyjnej (OU), używając powyższego w połączeniu z dsquery .

Po pierwsze, aby wyświetlić listę wszystkich użytkowników w jednostce organizacyjnej (jest to bezpieczne do uruchomienia, ponieważ wyświetla tylko listę użytkowników):

dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}"

Następnie, zakładając, że jesteś zadowolony z wyniku powyższego polecenia, możesz przesłać go do dsmod w następujący sposób:

dsquery user "OU={your target OU},DC={your domain},DC={your domain extension}" | dsmod user -pwdneverexpires yes

Więcej informacji z zrzutami ekranu tutaj: http://www.petenetlive.com/KB/Article/0000532.htm

Isak Savo
źródło
0
net accounts /MaxPWAge:unlimited

Sprawia, że ​​hasło nigdy nie wygasa; ale dla wszystkich kont na komputerze - nieźle jak na komputer domowy lub maszynę wirtualną

hB0
źródło
-1

Jak wspomniano powyżej, net userwydaje się , że nie zezwala na zmianę terminu ważności hasła, tylko wygasanie konta (przez / wygasa).

Oto, czego użyłem, aby usunąć wygasanie hasła do mojego konta:

wmic UserAccount where Name='username' set PasswordExpires=False

Zmień „nazwę użytkownika” na nazwę użytkownika konta, które chcesz zmienić.

Richard Smith Jr
źródło
4
To już zaakceptowana odpowiedź sprzed czterech lat.
Sven