Powershell 从AnalyzeComponentStore提取值?
大家好,请提前感谢可能的答案。Powershell 从AnalyzeComponentStore提取值?,powershell,Powershell,大家好,请提前感谢可能的答案。 在我工作的地方,我们有不同的WS2016虚拟机,我们了解到更新可能会很痛苦,因为它们可能需要很长时间,而且我们不能在服务停止的情况下停留太久(我们有几个虚拟机要很快更新)。 在同一个帖子中,我们读到一条建议:清理WinSXS文件夹可以大大减少这一时间。 WS2016已经安排了此操作,但它有一个1小时的超时时间,因此如果超过此时间,进程将被终止。 解决方案是手动创建计划,因此我们为此制作了一个脚本,用于检查当前日期和上次更新日期,如果差异超过30天,则运行以下命令:
在我工作的地方,我们有不同的WS2016虚拟机,我们了解到更新可能会很痛苦,因为它们可能需要很长时间,而且我们不能在服务停止的情况下停留太久(我们有几个虚拟机要很快更新)。
在同一个帖子中,我们读到一条建议:清理WinSXS文件夹可以大大减少这一时间。
WS2016已经安排了此操作,但它有一个1小时的超时时间,因此如果超过此时间,进程将被终止。
解决方案是手动创建计划,因此我们为此制作了一个脚本,用于检查当前日期和上次更新日期,如果差异超过30天,则运行以下命令: dism.exe/Online/Cleanup Image/AnalyzeComponentStore 然后命令: dism.exe/Online/Cleanup Image/StartComponentCleanup 现在真正的问题是…AnalyzeComponentStore的结果之一是: 建议进行组件存储清理 答案可能是肯定的,也可能是否定的
是否有方法检查此值是“是”(因此启动StartComponentCleanup)还是“否”(因此退出脚本) 再次感谢 @Doug Maurer…这是AnalyzeComponentStore的结果 PS C:>dism.exe/Online/Cleanup Image/AnalyzeComponentStore 部署映像服务和管理工具 版本:10.0.14393.3750 图像版本:10.0.14393.3241 [=========================================================================================================================================================================================================================================== 组件存储(WinSxS)信息: Windows资源管理器报告的组件存储大小:8.08 GB 组件存储的实际大小:7.94 GB
Shared with Windows : 6.12 GB
Backups and Disabled Features : 1.49 GB
Cache and Temporary Data : 323.47 MB
上次清理日期:2016-09-12 13:40:35
可回收包的数量:0建议的组件存储清理:是 操作已成功完成
PS C:>实现这一点有几种方法,我将列出两种,您可以选择您更喜欢的方法。其他人可能会提供替代方法 首先使用
selectstring
——只需将输出导入selectstring即可
$output = @'
Deployment Image Servicing and Management tool Version: 10.0.14393.3750
Image Version: 10.0.14393.3241
[===========================99.7%========================= ]
Component Store (WinSxS) information:
Windows Explorer Reported Size of Component Store : 8.08 GB
Actual Size of Component Store : 7.94 GB
Shared with Windows : 6.12 GB
Backups and Disabled Features : 1.49 GB
Cache and Temporary Data : 323.47 MB
Date of Last Cleanup : 2016-09-12 13:40:35
Number of Reclaimable Packages : 0
Component Store Cleanup Recommended : Yes
The operation completed successfully.
'@
$output | Select-String "Component Store Cleanup Recommended : (\w*)" | foreach {$_.matches.groups[1].value}
我使用了Foreach的输出变量参数,你也可以正常赋值
$cleanup = $output | Select-String "Component Store Cleanup Recommended : (\w*)" | foreach {$_.matches.groups[1].value}
第二个建议是使用-Match
$cleanup = if($output -match "Component Store Cleanup Recommended : (\w*)"){$matches[1]}
两者最终都会将$cleanup
设置为您所追求的是/否值
Get-Variable cleanup
Name Value
---- -----
cleanup {Yes}
现在,您只需检查是否为“是”,如果是,则运行清理
if($cleanup -eq 'yes'){"run cleanup code"}
显示完整的输出,您可能会得到更好的答案。它以前有空位吗?冒号?谢谢。你只想知道它说是还是不是?其他信息都不重要吗?谢谢你的建议!我会尽快试一试!