Cara membuat kata sandi & pengguna yang tidak pernah kedaluwarsa melalui pengguna bersih melalui file .bat

23

Saya menggunakan a .bat fileuntuk membuat pengguna dan kata sandi di tingkat sistem operasi windows.

Masalah yang saya hadapi adalah ketika saya menyampaikan EXPIRES:NEVERkata sandi, ketika pengguna dibuat, "Password never expires"kotak centangnya tidak dicentang (artinya kata sandi yang tidak pernah kedaluwarsa dipilih untuk pengguna yang dibuat itu) dan pengguna kedaluwarsa secara otomatis setelah 90 hari.

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

Di atas adalah baris kode utama, saya meneruskan nama pengguna dan kata sandi dari file teks dan menjalankan file .bat.

Sharpeye500
sumber

Jawaban:

34

Tambahkan baris ini ke file batch:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE
Glenn Sullivan
sumber
NB: Saya percaya ini hanya akan bekerja dengan akun LOCAL, bukan akun DOMAIN. Tetapi tampaknya itulah yang Anda butuhkan ...
Glenn Sullivan
1
Jawaban yang diterima akan mencoba mengubah pengguna lokal dan pengguna domain, jika keduanya ada dengan nama pengguna itu. (Mungkin tidak akan memiliki hak untuk mengubah pengguna domain, dan akan mengembalikan "Kegagalan umum" untuk bagian itu, tetapi setidaknya itu akan mencoba.) Jika Anda hanya ingin mengubah pengguna lokal, bukan pengguna domain dengan nama yang sama jika kebetulan ada, kemudian gunakan yang berikut: WMIC USERACCOUNT WHERE (Name = '% 1' dan Domain = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore
2

Opsi / kedaluwarsa adalah untuk akun, bukan untuk kata sandi, periksa bantuan perintah.

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

Dari dokumentasi: "Menyebabkan akun pengguna kedaluwarsa jika Anda menentukan tanggalnya."

Qkolnek
sumber
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Scott Pack
1
Kalimat pertama adalah PENTING. Harus dalam jawaban yang diterima.
AD
1

The net userperintah dapat digunakan pada lokal serta account domain. Gunakan /domainsakelar untuk akun domain.

Misalnya, untuk melihat informasi untuk pengguna domain% 1, gunakan

net user %1 /domain

Daftar lengkap opsi pengguna net tercantum di sini:

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

David Paige
sumber
1

Pengguna AD tunggal

Untuk pengguna direktori aktif, Anda dapat menggunakan perintah dsmod untuk mengubahnya untuk satu pengguna:

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

Banyak pengguna AD

Jika Anda ingin mengatur properti ini secara massal, Anda dapat melakukannya untuk seluruh unit organisasi (OU) dengan menggunakan yang di atas dalam kombinasi dengan dsquery .

Pertama, untuk membuat daftar semua pengguna dalam OU (ini aman untuk dijalankan, karena hanya menampilkan daftar pengguna):

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

Kemudian, dengan anggapan Anda puas dengan output dari perintah di atas, Anda dapat mengirimkannya ke dsmod seperti:

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

Beberapa info lebih lanjut, dengan tangkapan layar, di sini: http://www.petenetlive.com/KB/Article/0000532.htm

Isak Savo
sumber
0
net accounts /MaxPWAge:unlimited

Membuat kata sandi agar tidak pernah kedaluwarsa; tetapi untuk semua akun di mesin - tidak buruk untuk mesin rumah atau VM

hB0
sumber
-1

Seperti yang dinyatakan di atas, net usertampaknya tidak mengizinkan otpion untuk mengubah kata sandi hanya kedaluwarsa akun kedaluwarsa (melalui / kedaluwarsa).

Ini yang saya gunakan untuk menghapus kedaluwarsa kata sandi untuk akun saya:

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

Ubah 'nama pengguna' menjadi nama pengguna akun yang ingin Anda ubah.

Richard Smith Jr
sumber
4
Ini sudah merupakan jawaban yang diterima dari empat tahun lalu.
Sven