如何使用PowerShell统计虚拟桌面数量并删除超出2个的多余桌面
PowerShell虚拟桌面清理脚本修改方案
首先给修改完成可直接运行的脚本:
# 循环查询当前桌面数量,直到数量等于2时停止 do { $currentDesktopCount = Get-DesktopCount # 数量大于2时才执行删除 if ($currentDesktopCount -gt 2) { Remove-Desktop -Desktop "Desktop 2" } } while ($currentDesktopCount -gt 2)
你原来的脚本主要有3个核心错误:
- 变量只初始化了一次:
$DTC = Get-DesktopCount只在脚本最开始执行了一次,循环过程中桌面数量变化后不会自动更新,判断条件永远用的是初始值 - 循环逻辑完全写反:
Until的含义是「直到指定条件成立就退出循环」,你原来写的Until (($DTC) -gt '2')意思就是只要桌面数量大于2就直接停止循环,和你要的「大于2就删到等于2为止」逻辑完全相反 - 类型混用:你把数字2加了引号变成字符串类型,虽然PowerShell支持隐式类型转换,但涉及数值比较时直接写数值不需要加引号,避免出现非预期的匹配问题
补充优化点:如果你的虚拟桌面删除后序号不会自动重排,可以把删除逻辑改成Remove-Desktop -Desktop ($currentDesktopCount - 1) 直接删最后一个桌面,适配性更强。
内容的提问来源于stack exchange,提问作者Twiggo
相关产品推荐
相关产品推荐

