วิธีสร้างรหัสผ่านและผู้ใช้ที่ไม่มีวันหมดอายุผ่านทางผู้ใช้เน็ตผ่านไฟล์. bat


23

ฉันใช้ a .bat fileเพื่อสร้างผู้ใช้และรหัสผ่านที่ระดับระบบปฏิบัติการ windows

ปัญหาที่กำลังเผชิญคือเมื่อฉันส่งEXPIRES:NEVERรหัสผ่านเมื่อผู้ใช้ถูกสร้างขึ้นก็ไม่มีการ"Password never expires"ทำเครื่องหมายที่ช่องทำเครื่องหมาย (หมายถึงรหัสผ่านที่ไม่เคยถูกเลือกสำหรับผู้ใช้ที่สร้างขึ้นนั้น) และผู้ใช้จะหมดอายุโดยอัตโนมัติหลังจาก 90 วัน

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

ด้านบนคือบรรทัดหลักของรหัสฉันส่งชื่อผู้ใช้และรหัสผ่านจากไฟล์ข้อความและเรียกใช้ไฟล์. bat

คำตอบ:


34

เพิ่มบรรทัดนี้ไปยังไฟล์แบทช์:

WMIC USERACCOUNT WHERE "Name='%1'" SET PasswordExpires=FALSE

หมายเหตุ: ฉันเชื่อว่านี่จะใช้ได้กับบัญชี LOCAL เท่านั้นไม่ใช่บัญชี DOMAIN แต่ดูเหมือนว่าคุณต้องการ ...
Glenn Sullivan

1
คำตอบที่ได้รับการยอมรับจะพยายามเปลี่ยนทั้งผู้ใช้ภายในและผู้ใช้โดเมนหากทั้งคู่มีอยู่กับชื่อผู้ใช้นั้น (อาจไม่มีสิทธิ์ในการเปลี่ยนผู้ใช้โดเมนและจะส่งกลับ "Generic Fail" สำหรับส่วนนั้น แต่อย่างน้อยก็จะลอง) หากคุณต้องการเปลี่ยนผู้ใช้ภายในไม่ใช่ผู้ใช้โดเมนที่มี ชื่อเดียวกันถ้ามันจะเกิดขึ้นให้ใช้ต่อไปนี้: WMIC USERACCOUNT WHERE (ชื่อ = '% 1' และโดเมน = '% computername%') SET PasswordExpires = FALSE
Ronny D'Hoore

2

ตัวเลือก / หมดอายุสำหรับบัญชีไม่ใช่รหัสผ่านตรวจสอบความช่วยเหลือคำสั่ง

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

จากเอกสาร: "ทำให้บัญชีผู้ใช้หมดอายุหากคุณระบุวันที่"


ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนที่สำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Scott Pack

1
ประโยคแรกมีความสำคัญ ควรเป็นคำตอบที่ยอมรับได้
โฆษณา

1

net userคำสั่งที่สามารถใช้กับท้องถิ่นเช่นเดียวกับบัญชีโดเมน ใช้/domainสวิตช์สำหรับบัญชีโดเมน

ตัวอย่างเช่นหากต้องการดูข้อมูลสำหรับผู้ใช้โดเมน% 1 ให้ใช้

net user %1 /domain

รายการทั้งหมดของตัวเลือกผู้ใช้เน็ตอยู่ที่นี่:

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


1

ผู้ใช้โฆษณาคนเดียว

สำหรับผู้ใช้ไดเรกทอรีที่ใช้งานคุณสามารถใช้คำสั่งdsmodเพื่อเปลี่ยนมันสำหรับผู้ใช้คนเดียว:

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

ผู้ใช้โฆษณาหลายคน

หากคุณต้องการชุดกลุ่มคุณสมบัตินี้คุณสามารถทำมันได้สำหรับหน่วยขององค์กรทั้งหมด (OU) โดยใช้ข้างต้นร่วมกับdsquery

ขั้นแรกเพื่อแสดงรายการผู้ใช้ทั้งหมดใน OU (ซึ่งปลอดภัยในการทำงานเนื่องจากจะแสดงรายการผู้ใช้เท่านั้น):

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

จากนั้นสมมติว่าคุณพอใจกับผลลัพธ์ของคำสั่งด้านบนคุณสามารถไพพ์ไปยัง dsmod ได้ดังนี้

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

ข้อมูลเพิ่มเติมพร้อมด้วยภาพหน้าจอที่นี่: http://www.petenetlive.com/KB/Article/0000532.htm


0
net accounts /MaxPWAge:unlimited

ทำให้รหัสผ่านไม่มีวันหมดอายุ แต่สำหรับทุกบัญชีในเครื่อง - ไม่เลวสำหรับเครื่องที่บ้านหรือ VM


-1

ตามที่ระบุไว้ข้างต้นnet userไม่อนุญาตให้ otpion เปลี่ยนการหมดอายุของรหัสผ่านเฉพาะการหมดอายุของบัญชี (ผ่าน / หมดอายุ)

นี่คือสิ่งที่ฉันใช้เพื่อลบรหัสผ่านหมดอายุสำหรับบัญชีของฉัน:

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

เปลี่ยน 'ชื่อผู้ใช้' เป็นชื่อผู้ใช้ของบัญชีที่คุณต้องการเปลี่ยน


4
นี่เป็นคำตอบที่ยอมรับแล้วเมื่อสี่ปีที่แล้ว
สเวน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.