我已经搜索了一段时间,但还没有找到关于 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 模块,可以让您更好地控制要安装的更新:
将文件复制到 %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 连接时才能成功运行它。