Server Core 2012 上的 Windows 更新

Server Core 2012 上的 Windows 更新

我已经搜索了一段时间,但还没有找到关于 Windows 更新如何与 Server Core 2012 配合使用的问题的答案。我有几个域控制器,我刚刚将它们联机并决定将它们更改为服务器核心。我发现的两件事是使用,sconfig但在使用时收到以下错误消息

♀Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Inspecting system...


===============================================================================
                         Server Configuration
===============================================================================

1) Domain/Workgroup:                    Domain:  mydomain
2) Computer Name:                       mydc
3) Add Local Administrator
4) Configure Remote Management          Enabled

5) Windows Update Settings:             Automatic
6) Download and Install Updates
7) Remote Desktop:                      Disabled

8) Network Settings
9) Date and Time
10) Help improve the product with CEIP  Not participating
11) Windows Activation

12) Log Off User
13) Restart Server
C:\Windows\System32\en-US\sconfig.vbs(326, 1) Microsoft VBScript runtime error: Input past end of file
14) Shut Down Server
15) Exit to Command Line

Enter number to select an option:

我还发现了一些链接,上面说要使用 Cscript,但运行它时也会出现错误。例如:

[mydc]: PS C:\Users\JohnDoe\Documents> Cscript scregedit.wsf /AU /v
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Input Error: Can not find script file "C:\Users\JohnDoe\Documents\scregedit.wsf".

那么我该如何确保自动更新有效?有没有办法手动更新?

答案1

我不知道为什么 sconfig 在你的服务器上出现这个错误。

scregedit.wsf 位于 system32 中:

cd c:\windows\system32
Cscript scregedit.wsf /AU /v 4

将打开自动更新。

也可以直接更改注册表,键值位于:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update

有一个名为“AUOptions”的 DWORD 值

值为 1 表示关闭更新,值为 4 表示自动下载并安装更新。值为 2 和 3 表示通过任务栏通知区域通知用户,但核心中不存在该区域,因此请勿使用这些值。

我手动安装更新,因为我需要能够决定何时重新启动。

有各种第三方工具,例如“核心配置器' 允许您手动执行更新。

我目前正在使用:'WUA_搜索下载安装',来自微软的一个小脚本

答案2

现在有一个很好的 PowerShell 模块,可以让您更好地控制要安装的更新:

Windows 更新 PowerShell 模块

将文件复制到 %PSModulePath% 中指定的任意路径下的文件夹后,可以使用:

Get-WUlist

您可以执行通常的 PowerShell 管道:

Get-WUList | format-list -property Title, Description

获取所有可用更新的列表。然后您可以安装单个更新:

Get-WUInstall -KBArticleID KB2868623

或者没有任何提示:

Get-WUInstall -KBArticleID KB2849470 -AcceptAll -IgnoreReboot

您只能安装适用于 Windows 的某些更新:

Get-WUInstall -Category "Security Updates" -ListOnly

显示更新历史记录:

Get-WUHistory | fl

检查是否需要重新启动:

Get-WURebootStatus

看来这在远程机器上也有效,但我还没有测试过。

答案3

我知道这是一篇旧帖子,但无论如何我还是想在这里发布一个答案。输入错误的原因是 CScript、脚本名称和选项需要分开。经过一段时间的斗争,我发现在脚本中运行这个时,这是可行的。 Invoke-Command -Scriptblock { & 'CScript' 'C:\windows\system32\SCRegedit.wsf' "/AU" "/v"

答案4

您没有说明在什么环境下运行 sconfig.cmd,但当您从远程 PowerShell 会话运行该工具时会发生这种情况。我只有在通过 RDP 连接时才能成功运行它。

相关内容