License compliance checking in Windows Essentials and Foundation

Good morning.  I figured it was time for another post on Essentials.  Some parts of this article also apply to Foundation edition.

Let’s start off with a little background on Essentials edition.  Windows Server Essentials edition is designed for a small to medium sized business.  It is a very good option for a small to medium sized business with less than 25 users/computers.  Here are a few of the advantages to running Essentials.

  • It is less expense than standard edition.  Typically by $200-300.
  • There are no additional CALs (Client Access Licenses) to purchase.  Twenty five user CALs are included.
  • Can be easily upgraded to standard edition with a single command.
  • Client PC Backup is builtin.  This feature automatically backs up client PCs to the server
  • Anywhere access is available.  This is a feature that was first introduced in SBS (Small Business Server)  It allows a user to remotely access computers and file shares.  It also allows the administrator to access the Dashboard from anywhere.  Additionally the administrator can setup a SSTP (Secure Socket Tunneling Protocol) VPN (Virtual Private Network) via a wizard.
  • Easy integration with Microsoft cloud solutions.

 

What’s the catch?  There is always a catch.  Windows Essentials edition is no exception.  Below are the limitations imposed by running Essentials.

  • The Essentials server MUST be a domain controller.
  • The Essentials server must hold all the FSMO (Flexible Single Master Operation) roles.  If you want to learn more about the FSMO roles here is a good article.
  • Only one domain is permitted in the forest where the Windows Essentials edition server resides.
  • No forest/domain trusts are permitted.
  • The Remote Desktop Session Host role feature is not supported and typically will not function.

So what if the server is not a domain controller or violates one of the rules above?  This is where the Server Infrastructure License Service comes into play.  This service regularly checks the server to verify it is not violating the EULA (End User License Agreement).  If a violation is found the server will shutdown every 27.67 days (27 days, 16 hours).  Why Microsoft chose 27.67 days, I have no idea.  Before it shuts down though it will warn you.  The events will show up in the Server Infrastructure Licensing log.
Server Infrastructure Licensing Error

The next question is how do we fix these errors.  I have seen three causes for this issue.  Let’s go over each one and how to fix it.  After you believe you have fixed the issue, see the the next section for a way to confirm the issue is resolved.

  1. The first cause of this issue is also the most painful to fix.  If the server is demoted, and put into a workgroup it will cause this issue.  All checks will fail because the domain can no longer be contacted.  Unfortunately the only fix is to reinstall Windows on the server.
  2. The second reason these errors might crop up is due to the check failing due to an issue with Active Directory.  For instance, if the server is not advertising as a domain controller due a SYSVOL issue.  If an Active Directory issue is suspected, the first place to start should be to run a dcdiag.  Dcdiag will test the basic functionality and report any issues found.  As stated above, if there are SYSVOL issues, then the server will likely fail the advertising test.
  3. The last reason I have seen on more than a few occasions is the following error:

    Log Name:      Microsoft-Windows-Server Infrastructure Licensing/Operational
    Event ID:      2
    Level:         Error

    Description:The Forest Trust Check in the Licensing component did not pass because error 0x80070008 occurred in function fe1 [YJBI].
    Not enough storage is available to process this command.

    This error seems to indicate that we are low on hard drive space.  However this is not the case.  This error is actually referring to a special pool in memory (RAM, Random Access Memory) called the heap.  The heap is a finite size, regardless of how much RAM is in the system.  Normally Windows will not experience a heap exhaustion, that is where this special pool of memory is completely depleted.  However, if a program or driver is leaking memory, then the pool will eventually run out.  In case you are wondering what a memory leak is, it occurs when a program or driver allocates memory, but does not free it when complete.
    So in essence this error is caused by a malfunctioning program or driver.  The good news is that every time I have seen this issue in Essentials or Foundation it was caused by a printer driver.  There are 2 ways to fix this problem.  The first way is to simply restart the printer spooler service.  Restarting the printer spooler service unloads the printer drivers and frees all memory associated with them.  This will temporarily eliminate the issue.  A scheduled task could then be created to automatically do this on a regular basis.  The optimal solution though is to find the problem driver and either remove or update it.

So to this point we have covered some of the pros and cons of running Essentials, what happens when the EULA is violated, and some common causes for the Server Infrastructure Licensing service shutting down the server.  The last item I wanted to cover is how to force a new compliance check from the Server Infrastructure Licensing service.  This process works for both Essentials and Foundation edition.  This is useful if you are seeing compliance check errors, have taken measures to correct them, and now want to test if the issue is resolved.  It is surprisingly easy to force a compliance check.  Only one PowerShell command is required.  Ensure you run PowerShell as administrator when running this command.

Stop-Process -ProcessName silsvc -Force

The above command forces the Server Infrastructure License service process to stop.  The process will then immediately start again.  The trick here is that the Server Infrastructure License does a compliance check every time it starts.  You should see a compliance check within 2-3 minutes after the service stops.
Well, we covered a lot of ground with this post.  If you have any questions, or any suggestions please add a comment below.

Advertisements

10 < 6

It turns out when performing a WMI (Windows Management Instrumentation) query, 10 is less than 6.  The reason for this is because the version number is treated as a string and not a number.  So the 10 is actually treated as 1, and 1 is less than 6.

So why is this important?  In Windows Server 2012 Essentials folder redirection will not work for Windows 10 clients by default.  This is due to the WMI query used by the folder redirection group policy.

The fix is to edit the WMI query used by the policy.  Here is the process.

  1. Open the Group Policy Management console. (gpmc.msc)
  2. Expand Forest, then Domains, and finally the domain name.
  3. Click on the “WSE Group Policy Folder Redirection” policy.
  4. At the bottom of the Scope tab on the right, click Open in the WMI filtering section.
  5. Click the Edit Filter button.
  6. Click on Edit.
  7. Change the query to: select * from Win32_OperatingSystem where Version like “10.%” or Version >=”6.1″
  8. Click OK on the warning about the namespace.
  9. Click the Save button.
  10. Close the Group Policy Management console.

Once the WMI query is corrected, the Windows 10 client will need to be rebooted or have group policy updated.  To force group policy update on any Windows device, run gpupdate /force from a command line.

So there you have it 10 can be less than 6.

 

Source: grouppolicy.biz

Anywhere Access wizard

Good morning.  I figured it was time for Windows Server Essentials to get some time on this blog.  What better way to start than with the main wizard in Essentials.   The Anywhere Access wizard.  Anywhere access is probably one of Windows Essentials top features.  Here is what it can do.

  • Allow access to file shares on the server through a web interface.
  • Allow encrypted RDP (Remote Desktop Protocol) access to any system joined to the domain
  • Allow SSTP (Secure Socket Tunneling Protocol) VPN (Virtual Private Network) access.
  • Allow remote access to the Dashboard to administer the server

All of this is setup automatically with an easy to use wizard.  There are two requirements though for running the wizard; internet access, and a trusted certificate.

So what can possibly go wrong?
Essentials Internet

This is the most common issue that I see with the wizard.  Basically, the wizard does not believe the server has internet access.  So how does the wizard know whether the server is connected to the Internet?  It checks to see if the name www. microsoft. com is resolvable in DNS (Domain Name System).  If it is, then the wizard will continue even if it cannot access the list of domain services. So if this error comes up it typically indicates a DNS problem problem.

So what is a good method for troubleshooting this issue?

  1. Connect to the DNS management console.  (dnsmgmt.msc)
  2. Right-click the server name and choose properties.
  3. Go to the Root Hints tab.
  4. Click the “Copy from Server” button.
  5. Enter in 198.41.0.4 and click OK.
  6. Switch to the Forwarders tab.
  7. Click the Edit button.
  8. Delete all forwarders.
  9. Test access to http://www.microsoft.com and if successful, run the Anywhere Access wizard again.

If the problem still persists, then it is time to go deeper.  Some ISPs (Internet Service Providers) block access to root hints and require the use of their DNS servers.  This is fairly rare, but I have encountered it a few times.  To test and configure a DNS forwarder, follow the instructions below.

  1. Open an admin command prompt.  (Right-click windows icon at bottom left and choose “Command Prompt(Admin)”)
  2. Type nslookup and hit enter.
  3. Type www. microsoft. com and hit enter (Remove the spaces).

    Good output:

    Server:  server.myessentialsdomain.local
    Address:  192.168.1.2
    
    Non-authoritative answer:
    Name:    e10088.dspb.akamaiedge.net
    Addresses:  2600:1404:21:28b::2768
    2600:1404:21:288::2768
    104.93.66.12
    Aliases:  www.microsoft.com
    www.microsoft.com-c.edgekey.net
    www.microsoft.com-c.edgekey.net.globalredir.akadns.net


    Bad output:

    Server:  server.myessentialsdomain.local
    Address:  192.168.1.2
    
    ***server.myessentialsdomain.local can't find www.microsoft.com: Non-existent domain

    If you received the good output, try the Anywhere access wizard again. If you are seeing the bad output, then proceed on.

  4. Type server 8.8.8.8 and hit enter
  5. Type www. microsoft. com and hit enter. (Remove the spaces)  Refer to step 3.  If good output is produced, then proceed on.  If bad output is produced, then repeat step 4 and 5 using the DNS server provided by your ISP.  Proceed good output is received.
  6. Open the DNS management console.
  7. Right-click the server name and choose properties.
  8. Click on the Forwarders tab.
  9. Click the Edit button.
  10. Add the server IP address that worked in 4.
  11. Click OK twice.
  12. Switch back to the admin command prompt.
  13. Type ipconfig /flushdns and hit enter.
  14. Re-run the Anywhere Access wizard.

If the above steps don’t fix the problem for you, I want to hear about it in the comments section.