V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fairyStage
V2EX  ›  Windows

为什么在 PowerShell 中,调用 wmic 修改用户账户会提示“此级别的开关异常。”,但命令提示符不会?

  •  
  •   fairyStage · 2023-02-10 14:01:28 +08:00 · 1175 次点击
    这是一个创建于 440 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目标:将名为 local-user 的本地用户账户设定为密码永不过期。



    使用 PowerShell:
    Windows PowerShell
    版权所有 (C) Microsoft Corporation 。保留所有权利。

    尝试新的跨平台 PowerShell https://aka.ms/pscore6

    PS C:\Windows\system32> WMIC USERACCOUNT WHERE Name='local-user' SET PasswordExpires=FALSE
    此级别的开关异常。



    使用命令提示符 :
    Microsoft Windows [版本 10.0.19044.2364]
    (c) Microsoft Corporation 。保留所有权利。

    C:\Windows\system32>WMIC USERACCOUNT WHERE Name='local-user' SET PasswordExpires=FALSE
    正在更新“\\TESETR-VM\ROOT\CIMV2:Win32_UserAccount.Domain="TESETR-VM",Name="local-user"”的属性
    属性更新成功。


    楼主已尝试过 Google 搜索 “unexpected switch at this level” (英文版的“此级别的开关异常”),但没有找到任何有价值的结果,看起来很多遇到“此级别的开关异常”错误的人都只是不慎输错了命令。
    3 条回复    2023-02-10 14:35:02 +08:00
    fairyStage
        1
    fairyStage  
    OP
       2023-02-10 14:15:27 +08:00
    自答:
    换了一种搜索思路,搜索“powershell wmic”。
    发现这是微软故意设置的障碍。
    微软正筹备在未来的 Windows 中彻底删除 WMIC ,以消除 WMIC 带来的安全风险。

    来源:
    https://stackoverflow.com/questions/47934164/how-to-create-wmic-powershell-script

    https://www.bleepingcomputer.com/news/microsoft/microsoft-starts-killing-off-wmic-in-windows-will-thwart-attacks/#:~:text=Microsoft%20is%20moving%20forward%20with,to%20the%20Windows%20Management%20Instrumentation
    fairyStage
        2
    fairyStage  
    OP
       2023-02-10 14:23:56 +08:00
    那么应该怎么用脚本设置密码永不过期呢?

    场景一:又不是不能用 WMIC
    wmic useraccount where "Name='[Username]'" set PasswordExpires=false

    场景二:我们已经准备好拥抱 PowerShell 了!
    Set-LocalUser -Name "[Username]" -PasswordNeverExpires 1

    场景三:现在是 203X 年,WMIC 真的消失了,难道就没有别的办法让我继续用 cmd 吗?
    有办法,但现在不能修改单个用户账户的设置了。
    执行下面的命令,则所有本地用户账户的密码均永不过期。
    net accounts /maxpwage:unlimited
    thinkershare
        3
    thinkershare  
       2023-02-10 14:35:02 +08:00
    12 年左右就不用 CMD 了,都是 powershell 一把梭。现在用 powershell 7, Windows 自带的 Powershell 我都删掉。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2922 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:18 · PVG 23:18 · LAX 08:18 · JFK 11:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.