【问题标题】:Automating cleanmgr.exe silently using PowerShell使用 PowerShell 以静默方式自动化 cleanmgr.exe
【发布时间】:2014-08-08 16:46:38
【问题描述】:

我一直在编写一个脚本,该脚本应该在磁盘 C: 小于 1gb 时静默运行 cleanmgr.exe,一切运行良好,但有一件事我无法实现...

我想完全静默运行 cleanmgr.exe!我不想从磁盘清理 gui 中看到任何东西,甚至不想看到显示完成的屏幕。

使用 sageset 和 sagerun 使其自动化是的,但它仍然显示该过程。

这是我的代码(我知道它在一些事情上存在一些问题,但我在这里专注于静默执行,谢谢!):

if ($freeSpace -le $lowSpace)
{   
   cleanmgr.exe /sagerun:10
   defrag C:
}

else
{
   echo "sorry!"
   pause
}

【问题讨论】:

  • 最好先解决导致磁盘空间严重不足的任何情况。
  • 这是我和朋友之间的挑战,与修理东西无关。 :D
  • 这是stackoverflow.com/q/28852786/80161 的重复问题,我将把答案移到那里。

标签: powershell disk


【解决方案1】:

如果您在命令提示符下导航到 C:\windows\system32\cleanmgr.exe /?,您将看到 exe 的开关。不幸的是,这个实用程序似乎没有静音开关。

【讨论】:

  • 谢谢!以前有人介绍过这个,我只是问有没有办法,显然没有。
  • @AliAlghamdi 不,我看不到这样做的方法。如果我的回答足够,请将此“标记”为答案。
  • 谢谢,我现在看不出这样做。所以谢谢你。
【解决方案2】:

我发现做到这一点的最佳方法是使用 schtasks 创建计划任务(我构建了一个部署的 XML 配置)并在创建时运行任务,在设置中它可以设置为以系统/管理员身份运行(其中你需要一个碎片整理)和非交互方式。我遇到的唯一问题是 Windows 更新清理组件似乎没有运行。

【讨论】:

    【解决方案3】:

    所以不确定你在哪里,但这是我用来清理我们在 Packer 中构建的模板,然后再部署到 VMware 中。

    $strKeyPath   = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
    $strValueName = "StateFlags0065"
    $subkeys      = Get-ChildItem -Path $strKeyPath -Name
    
    ForEach($subkey in $subkeys){
        $null = New-ItemProperty `
            -Path $strKeyPath\$subkey `
            -Name $strValueName `
            -PropertyType DWord `
            -Value 2 `
            -ea SilentlyContinue `
            -wa SilentlyContinue
    }
    
    Start-Process cleanmgr `
            -ArgumentList "/sagerun:65" `
            -Wait `
            -NoNewWindow `
            -ErrorAction   SilentlyContinue `
            -WarningAction SilentlyContinue
    
    ForEach($subkey in $subkeys){
        $null = Remove-ItemProperty `
            -Path $strKeyPath\$subkey `
            -Name $strValueName `
            -ea SilentlyContinue `
            -wa SilentlyContinue
    }
    
    exit 0 
    

    【讨论】:

      【解决方案4】:

      其实cleanmgr /verylowdisk 是默默运行的。

      cleanmgr /verylowdisk 类似于 cleanmgr /lowdisk 的一个版本,没有用户交互。

      【讨论】:

        猜你喜欢
        • 2017-09-02
        • 2011-11-11
        • 1970-01-01
        • 2010-11-11
        • 2018-04-13
        • 2017-12-10
        • 2011-02-07
        • 2020-05-30
        • 1970-01-01
        相关资源
        最近更新 更多