New-LocalUser 是什么
New-LocalUser 属于 LocalAccounts 模块,用来在本机创建本地账户,并一次配好密码、全名、描述与到期时间。它把 GUI 的“计算机管理 → 本地用户和组”搬到命令行,便于批量建号与纳入部署脚本。创建出来的账户默认只是普通用户,要拿到实际权限必须再用 Add-LocalGroupMember 加入相应组。
基本信息
| 适用平台 | Windows 10/11、Server 2016 及以后(LocalAccounts 模块) |
|---|---|
| 权限要求 | 管理员权限的 PowerShell 会话 |
| 语法 | New-LocalUser -Name x -Password (Read-Host -AsSecureString) [属性] |
| 常用参数 | -FullName、-Description、-AccountExpires、-PasswordNeverExpires、-UserMayNotChangePassword |
| 后续步骤 | Add-LocalGroupMember -Group <组> -Member <用户> |
| 查询配套 | Get-LocalUser、Set-LocalUser、Remove-LocalUser |
典型使用场景
- 为第三方运维人员建临时账号并设置到期日
- 批量部署时为多台机器统一创建服务运行账户
- 给自动化脚本准备专用低权限账户
- 交接期给供应商开受限账号,到期自动失效,不用人工回收
- 首次装机初始化脚本里预置本地管理员备用账户
常用示例
常用示例
$pw = Read-Host -AsSecureString '输入初始密码' # 交互式输入,避免明文落在历史里
New-LocalUser -Name ops01 -Password $pw -FullName '运维账号' -Description '临时运维,到期自动失效' -AccountExpires (Get-Date).AddMonths(3)
Add-LocalGroupMember -Group Administrators -Member ops01 # 加入组才有实际权限
Add-LocalGroupMember -Group 'Remote Desktop Users' -Member ops01 # 需要远程桌面时一并授权
Get-LocalUser -Name ops01 | Select-Object Name, Enabled, AccountExpires # 验证属性
Get-LocalGroupMember -Group Administrators # 复核组成员
Remove-LocalUser -Name ops01 # 到期回收关键参数读法
| 参数 | 含义 | 使用提示 |
|---|---|---|
| -AccountExpires | 账户到期时间 | 必须是日期对象,用 (Get-Date).AddMonths(3) |
| -PasswordNeverExpires | 密码永不过期 | 服务账户常用,人工账号慎用 |
| -UserMayNotChangePassword | 禁止用户改密码 | 共享账户或受管账号场景 |
| -Description | 备注信息 | 写清用途与责任方,审批时用得上 |
| -NoPassword | 空密码账户 | 受登录策略限制,风险高 |
本地账户的密码策略由本机安全策略控制:如果设了最短长度与复杂度要求,脚本传入的弱密码会直接创建失败,报错信息通常只说密码不符合策略。
空密码账户默认只能在本机控制台登录、且可能被策略直接禁止远程使用,除极特殊的自动化场景外不要启用。