May 142019
 
IIS Logo Image

So you have a Windows Server 2019 running Server Core with no GUI installed, and you have installed and are using the IIS (Internet Information Services) role and would like to manage or modify IIS configuration.

Because Windows Server Core doesn’t have a full GUI, you cannot install or use the Internet Information Services (IIS) Manager on this server.

I originally had to figure this out so I could modify the “WsusPool” Application Pool on IIS on a Windows Server Core install that was hosting a WSUS Server to increase the Private Memory Maximum setting.

To manage, modify, or edit IIS configuration, you’ll need to use the IIS Manager on a different server/computer, and remotely connect to the IIS instance on Server Core. From here you will be able to edit/modify the server as much as you require.

Requirements

To do this, you’ll need the following:

  • Target: Windows Server with IIS role installed
  • Remote System with IIS Manager installed to connect to target

In my case the target is running Windows Server 2019 Server Core, however you can also use the instructions to enable access on the fully blown Windows Server installs as well.

Instructions

Follow these instructions to enable remote IIS management.

  1. Log on to the target server.
  2. Open PowerShell (by typing “powershell” at the command prompt) and install the Web Management Service with the following command.
    Install-WindowsFeature Web-Mgmt-Service
  3. Create a firewall exception (if needed) by running the following command in PowerShell.
    netsh advfirewall firewall add rule name=”IIS Remote Management” dir=in action=allow service=WMSVC
  4. Open the Registry Editor by running “regedit”.
  5. Do either of the following:
    Navigate to the following key:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server

    Then set “EnableRemoteManagement” to “1” as shown:
    Registry Modifcation of EnableRemoteManagement
    Or save the below as a file.reg:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server]
    "EnableRemoteManagement"=dword:00000001

    And then import it using command prompt with the command:
    reg import file.reg
  6. Configure the Web Management Service to run on boot by running the following command in command prompt.
    sc config WMSVC start=auto
  7. Start the Web Management Service by running the following command in command prompt.
    net start WMSVC
  8. Open the “Internet Information Services (IIS) Manager” on the remote machine.
    Internet Information (IIS) Services in Start Menu
  9. On the left pane, right click on “Start Page”, and select “Connect to a Server”.
    Connect to Remote IIS Server Window
  10. Enter the server name or IP and click “Next”.
  11. Enter the credentials and click “Next”.
  12. Give the Connection a friendly name (I usually just leave it), and click “Finish”.
  13. You may be prompted with a “Server Certificate Alert”. Click “Connect” to bypass it.
    IIS Certificate Warning Dialog
  14. You now have the remote target IIS instance listed in the “Connections” pane. You can now manage the server.
    IIS Server List Window Pane

Congratulations, you can now remotely manage your IIS instance running on Windows Server Core.

  22 Responses to “Manage (Remotely) IIS on Windows Server 2019 Server Core”

  1. Step 8: You should mention that you need the latest version of IIS manager. The one that you install in Windows 10 looks nothing like the one you show. I went here and got this: https://www.microsoft.com/en-us/download/confirmation.aspx?id=41177 then I had something that looked similar to yours.

    Now if I could figure out how to open \\myserver\c$ to upload content.

  2. Hi Dana,

    The version illustrated in the pictures is the default version that ships with Windows Server 2016 (as shown in the screen shots). While I didn’t use Windows 10, it would be the same version that’s included in the RSAT tools which can be installed via https://www.stephenwagner.com/2018/10/05/windows-10-1809-october-update-rsat/

    Hope that helps!

    Stephen

  3. …you gonna need IIS Remote Administration though

  4. what if i use a smartcard and do not have a password (that is known to me)?

  5. Oh, wow! Thank you, thank you, thank you.

  6. Could you perhaps let us know how to access the Shared Configuration in IIS Core?
    I have looked around and cannot find a good enough resource that describes this.
    I have the 2016 core IIS Server connect to DFS, and all files and folders are synced and ready to go.
    I just need to get the core IIS Share Configuration set to read from the folder the files are in.

    Thank you
    Wayne

  7. Hi Wayne,

    I was responding and providing info to the chat session you started, but I think you signed off to quickly and didn’t see my replies. I’ll post this here for you and anyone else looking to configure Shared Configuration on IIS on Windows Server Core.

    The Shared Configuration icon won’t appear when connecting to an IIS instance remotely when it’s running on Server Core, I can’t find out how to enable this, but you CAN enable shared configuration via command line.

    Please see: https://docs.microsoft.com/en-us/iis/manage/managing-your-configuration-settings/shared-configuration_264

    Scroll down to the command prompt section, and you’ll find out how to enable Shared Configuration on IIS on Windows Server Core.

    Cheers,
    Stephen

  8. OK.
    I never did figure out how to do the Shared Configuration through CORE.
    However, I was able to get the config files restored to the core IIS server.

    Use xcopy to copy from the folder to the inetsrv destination.

    xcopy “G:\IIS_SharedConfig_ARR\*” “C:\Windows\System32\InetSrv\Backup\ARR”

    Now, we just restore them.

    appcmd restore backup ARR

    Now connect remotely to your core IIS, and you should have all the sites listed.

  9. Hi Wayne,

    Thanks for the info! I have to mention that this isn’t using the “Shared Configuration” option for other readers. This is just simply copying the shared config and restoring it back to the local system.

    To fully use the “Shared Configuration”, you can configure via the command prompt. To configure IIS to use the Shared Config, you need to set and add configurationRedirection enabled=”true” as per https://docs.microsoft.com/en-us/iis/manage/managing-your-configuration-settings/shared-configuration_264 along with the proper syntax and share information, and then add this to the “redirection.config” file in “%windir%\system32\inetsrv\config” on the server core OS.

    Cheers,
    Stephen

  10. That is why I stated at the top of the post.
    ==I never did figure out how to do the Shared Configuration through CORE.==

    I will continue to look through the article and other sites until I get that part of it working.

  11. This is exactly what I was looking for, thank you! Worked perfectly.

  12. hi, first time with 2019 core can’t get WMSVC started access denied – any ideas?..i’m able to use win admin center and comp mgmt. just can’t get wmsvc up to get the webs going

  13. Hello, is it prompting the error when starting the service, or in the event log?

  14. CL throws
    C:\Windows\System32\GroupPolicy>net start wmsvc
    The Web Management Service service is starting.
    The Web Management Service service could not be started.

    A service specific error occurred: 5.

    system event log id=7024
    The Web Management Service service terminated with the following service-specific error:
    Access is denied.

    been researching this for days any help is much appreciated i’m to the point of calling bill and company-service after core install was running under nt authority\local svc I changed that to local system account, also tried my own acct to no avail

  15. will let this group no I have a call into the big house

  16. I was able to complete all of the steps above, with the exception of setting the service startup type to Automatic. The command returned the following error:

    sc config WMSVC start=auto
    Set-Content : A positional parameter cannot be found that accepts argument ‘start=auto’.
    At line:1 char:1
    + sc config WMSVC start=auto
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Set-Content], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetContentCommand

    However, I was able to start the service. I get the following error after entering my credentials…

    Could not connect to the specified computer. Details: The underlying connection was closed: An unexpected error occurred on a send.

    I don’t see any firewall blocks. Any thoughts?

  17. Hi Rob,

    Those commands need to be run in command prompt. I’ve modified the post to reflect that.

    As for the error, I’m not quite sure why it’s failing. I’d recommend researching the specific error to find out what could be causing it.

    Cheers,
    Stephen

  18. Thank you. For awareness, my particular issue was caused by removing TLS 1.0 from the server while not forcing TLS 1.2 be used from the workstation. Added the registry entries to force TLS 1.2 on the workstation and resolved the issue immediately. Great instructions!

  19. Hi Rob,

    Glad you got it working, and thanks for posting the resolution (as I’m sure it’ll help someone else)!

    Cheers,
    Stephen

  20. or …. you can install Win2019 FOD and then you get mmc and IIS Mgr on Server 2019 Core.
    😉

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)