运行 WMIC 命令时,有时 ReturnValue 不为零,表示出现错误,例如:
wmic.exe ComputerSystem where "Name='%computername%'" call Rename Name="%newname%"
或者
%WPath% /Namespace:\\root\default PATH SystemRestore Call Enable "C:\"
我分别尝试过:
for /F "tokens=2 delims==;" %R in (
wmic.exe ComputerSystem where "Name='%computername%'" call Rename Name="%newname%" ^| findstr /RC:"\<ReturnValue =\>"'
) do echo %R
和 :
%WPath% /Namespace:\\root\default PATH SystemRestore Call Enable "C:\"|find "ReturnValue = 0" >nul && goto :next
但这似乎不起作用...有人可以帮忙处理和解决这些问题吗?
答案1
Windows 客户端的弃用功能文章
[09/01/2023] ✅ Windows 10 ✅ Windows 11
Windows 管理规范命令行 (WMIC) 工具。
Windows 10 版本 21H1 和 Windows Server 21H1 通用版本中已弃用 WMIC 工具。此工具已被适用于 WMI 的 Windows PowerShell 取代。
笔记:此弃用仅适用于命令行管理工具。
WMI 本身不受影响。21H1
使用或调用 Powershell
set "_var=NEWMANECOMPUTER"
powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -C "Rename-Computer -ComputerName "." -NewName $env:_var 2>$null ; $?" | find "True" >nul && echo/Done! || echo/nOp!
观察1:您可以在不执行操作的情况下测试命令行为-WhatIf | -wi
:
Powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -C "Rename-Computer -ComputerName "." -NewName $env:_var 2>$null -wi ; $?" | find "True" >nul && echo/Done! || echo/nOp!
观察2:要更改名称,您需要管理员凭据来执行此操作,并重新启动才能生效
Rename-Computer -ComputerName "." -NewName $env:_var -Restart
观察3:注意允许组成你的%NewComputerName%
变量并满足 15 个字符的最大长度
这同样适用于:
wmic /Namespace:\\root\default PATH SystemRestore Call Enable "C:\"
powershell -NoP -Ex -By -C "Enable-ComputerRestore -Drive 'C:'; $?" | find "True" >nul && echo/Done! || echo/nOp!"
- 其他资源: