我试图了解Windows机器需要重启的位置。但是,我的脚本是抛出错误。
@Component({
selector: 'app-inline-message',
template: 'Name: {{ user }} | Progress {{ progress}}%',
styles: [`...`]
})
export class InlineMessageComponent {
@Input() user: string;
@Input() weight: string;
}
我在"命令提示符"中运行此命令。不确定这意味着什么!
答案 0 :(得分:5)
挂起重启可能是由多种原因引起的,而不仅仅是上述原因。尝试PendingReboot模块,该模块将各种测试合并到一个cmdlet中:
# Install
Install-Module -Name PendingReboot
# Run
Test-PendingReboot -Detailed
答案 1 :(得分:3)
您需要检查2个路径,一个密钥,您需要通过wmi查询配置管理器,以便检查所有可能的位置。
target
答案 2 :(得分:1)
您的语法不正确,如果您想从cmd运行PowerShell命令,它必须如下所示:
powershell.exe "Get-Item 'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'"
但是像Mathis提到的那样,只有在重启处于待定状态时才存在此密钥。
答案 3 :(得分:0)
我发现引起这一问题的一件事情(对我来说,是没有尽头的)是每次我尝试运行SCCM 1906更新时,由于挂起的重启失败。在调查中使用此脚本时,我注意到ComponentBasedServicing似乎拖延了工作,这是Optional Components自动安装的。多一点的挖掘工作使我完成了名为LanguageComponentsInstaller的预定任务。我禁用了此功能,但我一直在关注,但似乎已解决了该问题。
感谢您的脚本。试图破解这个鸡蛋为我节省了很多压力:)
答案 4 :(得分:0)
(我更希望将其添加为对已接受答案的评论,但代码不合适。)
我认为以下功能可以消除一些不必要的重启。 PendingFileRenameOperations
注册表项不仅支持重命名,还支持删除(本质上表示为“重命名为空”)*。我所做的假设是删除代表在此期间不会影响功能的挂起清理操作。
<#
.SYNOPSIS
Returns true if any true renames-- deletes are ignored-- are present in the
PendingFileRenameOperations registry key.
#>
function Test-PendingFileRename {
[OutputType('bool')]
[CmdletBinding()]
param()
$operations = (Get-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\').GetValue('PendingFileRenameOperations')
if ($null -eq $operations) {
$false
} else {
$trueOperationsCount = $operations.Length / 2
$trueRenames = [System.Collections.Generic.Dictionary[string, string]]::new($trueOperationsCount)
for ($i = 0; $i -ne $trueOperationsCount; $i++) {
$operationSource = $operations[$i * 2]
$operationDestination = $operations[$i * 2 + 1]
if ($operationDestination.Length -eq 0) {
Write-Verbose "Ignoring pending file delete '$operationSource'"
} else {
Write-Host "Found a true pending file rename (as opposed to delete). Source '$operationSource'; Dest '$operationDestination'"
$trueRenames[$operationSource] = $operationDestination
}
}
$trueRenames.Count -gt 0
}
}
通过在顶部插入上述函数然后替换该行,可以在已接受答案的脚本中实现这一点
if (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -EA Ignore) { return $true }
与
if (Test-PendingFileRename) { return $true }
* 参考: