I've been searching for awhile and have yet to find the answer to my question on exactly how windows update works with Server Core 2012. I have a couple of domain controllers i just brought online and decided to change them to server core. The two things i've found is to use sconfig but get the following error message when it

♀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:

I also found some links that say to use Cscript but i also get an error when i run that. For example:

[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".

So how do i make sure automatic updates are working? Any way to update manually?


I don't know why sconfig does have this error on your server.

scregedit.wsf is located in system32:

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

would turn on automated updates.

You can also change the registry directly, the key is at: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update

There is a DWORD value named 'AUOptions'

A value of 1 turns updates off, a value of 4 downloads and installs them automatically. Values 2 and 3 notify the user via the Taskbar notification area which does not exist in Core, so don't use these.

I install updates manually because I need to be able to decide when reboots happen.

There are various third party tools such as 'Core Configurator' that allow you to manually perform updates.

I am currently using: 'WUA_SearchDownloadInstall.vbs', a small script from Microsoft


There is now a nice PowerShell module that gives you more control over the updates to install:

Windows Update PowerShell Module

After you copied the files into a folder under any path specified in %PSModulePath%, you can use:

Get-WUlist

You can do the usual PowerShell piping:

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

To get a list of all available updates. You can then install single updates:

Get-WUInstall -KBArticleID KB2868623

or without any prompts:

Get-WUInstall -KBArticleID KB2849470 -AcceptAll -IgnoreReboot

You can only install certain updates for Windows:

Get-WUInstall -Category "Security Updates" -ListOnly

Show the history of updates:

Get-WUHistory | fl

Check whether you need a reboot:

Get-WURebootStatus

It seems this also works on remote machines, but I haven't tested that yet.


I know this is an old post, but thought I would post an answer here anyway. The reason for the Input error is because CScript, the name of the script and the options need to be separated out. After fighting with this for quite some time, this is what I found to work while running this inside of a script. Invoke-Command -Scriptblock { & 'CScript' 'C:\windows\system32\SCRegedit.wsf' "/AU" "/v"


You didn't state under what context you're running sconfig.cmd but this happens when you run that tool from a remote PowerShell session. I've only had success running it when connected over RDP.