【发布时间】:2021-06-27 08:45:28
【问题描述】:
我正在编写一个将在任务计划程序中运行的 PowerShell 脚本。 我希望它的工作方式是:
默认值设置为强制用户在下次登录时更改密码:
net user su /logonpasswordchg:yes
现在代码会是这样的:
$password = Azerty123! 如果 $password 与 $password 不同 将密码从“用户下次登录时必须更改密码”更改为“密码永不过期” 否则留下下次登录时更改密码的值
经过多次测试,我认为需要根据当前密码切换以下2个值
Set-LocalUser -Name "su" -PasswordNeverExpires:$trueSet-LocalUser -Name "su" -PasswordNeverExpires:$falsenet user su /logonpasswordchg:yesnet user su /logonpasswordchg:no
脚本基本上是用Intune部署的,创建一个Task Scheduler,它会每天检查一次密码值,如果密码已更改,则密码值更改为永不过期,只要密码为从未更改,下次登录时将其保留为更改密码。 谁可以帮我这个事 ?对不起我笨拙的解释
【问题讨论】:
-
你怎么知道用户'su'的密码?
-
您还有其他需要密码才能过期的用户吗?作为替代方法,您可以使用本地 GPO?本地计算机策略 -> 计算机配置 -> Windows 设置 -> 安全设置 -> 帐户策略 -> 密码策略设置 ‘Maximum password age’ 为 ‘0’
-
很遗憾,没有,最终目标是通过 Intune 将此脚本部署在 Intunewin 包中。除非有办法在 Intune 中使用您描述的 GPO 进行类似的操作,否则可能会奏效,但我没有找到任何相关信息。
-
我对 InTune 的处理不多,但您似乎可以在那里进行本地 GPO 设置:docs.microsoft.com/en-us/mem/intune/configuration/…。或者,您可以在 1 off 脚本
net accounts /maxpwage:0中调用它。但在我看来,政策方法会更加确定 -
@andr3yk 感谢您的回复,它实际上对我帮助很大,我按照您的建议使用了 net accounts 命令,它完成了工作。您能否将其发布为对该主题的实际回复,以便我可以将此问题设置为已解决?最好的。
标签: powershell scheduled-tasks change-password