从Add-WindowsFeature cmdlet清除PowerShell覆盖

时间:2012-06-04 19:04:13

标签: powershell powershell-v2.0 cmdlets

我最近注意到,在创建使用Windows Server 2008 R2上Add-WindowsFeatureServerManager Module cmdlet的PowerShell脚本时,有一个水蓝色叠加层在整个脚本完成之前无法清除完了。例如,以下是使用Add-WindowsFeature Web-Server命令安装IIS的脚本的屏幕截图:

Add-WindowsFeature Web-Server overlay

收集数据...开始安装...重叠停留在控制台历史记录之上,直到整个脚本完成后才会消失。有没有办法让控制台重新绘制自己或禁用叠加?

2 个答案:

答案 0 :(得分:3)

这只是服务器管理器cmdlet在内部调用Write-Progress的结果。如果你想让它保持沉默 - 只需将你的$ ProgressPreference改为'SilentlyContinue'。

您可以使用Write-Progress your self:

来模拟这一点
for ($i = 0; $i -lt 100; $i++) { 
    Write-Progress -Activity "Counting: $i" -Status "$i" -PercentComplete $i
    sleep 1 
}

HTH 鲍尔泰克

答案 1 :(得分:0)

我发现了一种有趣的解决方法。在使用写入进程时,您可以简单地实现一个二级循环,它完全不做任何事情,但最后添加一个完成的开关。

for ($i = 1; $i -le 100; $i++ )
{write-progress -activity "Search in Progress" -status "$i% Complete:" -percentcomplete $i;}

上面的代码当然是你的功能循环,它显示进度并实际执行某些操作。

for ($i = 1; $i -le 100; $i++ ) {
write-progress -activity "Finishing" -status "$i% Complete:" -percentcomplete $i -Completed;}

运行这个不执行任何操作的精确代码段并且因为您使用-completed开关会使进度对话框重叠消失。不完全是一个简洁的解决方案,但仍然是我的需求的解决方案。

相关问题