[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 【已解决】求助如何批量修改windows用户密码

本帖最后由 2lodoss 于 2020-7-3 08:58 编辑

本地用户有好几十

想统一修改为比如'123456' 这个密码

我知道修改密码是 net user 用户名 修改后的密码

请教如何通过for循环  或者其他方式  让他能够批量修改用户的密码  并且修改后的密码  默认是 下一次登录必须更改密码的模式

自行测试
  1. @echo off
  2. for /f "skip=4 delims=" %%i in ('net user') do (
  3. if not defined a (
  4. set a=a
  5. for %%j in (%%i) do (
  6. net user %%j 123456
  7. Wmic Path Win32_UserAccount.Name='%%j' Set PasswordExpires=True
  8. net user %%j /logonpasswordchg:yes
  9. )
  10. )
  11. )
  12. pause
复制代码

TOP

  1. powershell "Get-LocalUser | %{Set-LocalUser -Name $_ -PasswordNeverExpires 0;net user $_.name '123456' /LOGONPASSWORDCHG:YES}"
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 2lodoss 于 2020-7-2 13:16 编辑

回复 2# 不知道是谁
大佬好 ,代码执行后 只有net user 后的 第一行的用户名(Administrator            123           清云) 修改成功了 其他的并没有成功

看命令执行过程执行(user                     2222          213123)
执行上述三个账户的时候  net user %%j 123456   %%j没有取到值 因此没有成功  
PS C:\WINDOWS\system32> net user

\\USER 的用户帐户

-------------------------------------------------------------------------------
Administrator            123           清云
user                     2222          213123
命令成功完成。

TOP

回复 3# ivor


    这是 powershell  一条命令 更改所有用户?

TOP

本帖最后由 不知道是谁 于 2020-7-2 17:38 编辑

回复 4# 2lodoss

之前那个是只获取第五行,你用户名有多行的话是获取不到的,用Wmic方式获取用户名,net user不是很好用。
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('Wmic UserAccount Get Name /Value') do (
  3. for %%j in (%%i) do (
  4. net user %%j 123456
  5. Wmic Path Win32_UserAccount.Name='%%j' Set PasswordExpires=True
  6. net user %%j /logonpasswordchg:yes
  7. )
  8. )
  9. pause
复制代码

TOP

回复 6# 不知道是谁


    win10 这个也能用把 哥

TOP

回复 7# 2lodoss


支持   
Wmic需要Windows Management Instrumentation(Winmgmt)服务,此服务Windows系统默认自动开启,只有优化过头或精简过的系统才会不正常。

TOP

返回列表