As discussed in the previous post on configuring Lunar Calenders in Windows 10, another interesting feature was also introduced in the 15002 Windows 10 Build: Blue Light Settings. Recently more operating systems have included options for reducing the amount of blue light emitted after sundown. This is easier on your eyes and allows you to fall asleep better at night time.
There are a number of settings that can be configured in the Settings > Display > Blue light settings, settings menu. The settings that can be configured are as follows:
Because automation is a great thing and manually clicking through GUI interfaces is not always optimal I decided to write a PowerShell function to simplify the configuration. For example you could utilize this function to automatically disable the reduced blue light settings when color sensitive work is performed, or lower the amount of blue light emitted as the night progresses. These are some of the actions that the Set-BlueLight function can perform.
To instantly turn of the reduced blue light setting the following code can be run:
To enable the reduced color mode and set the color shift to Medium run the following code:
To automatically reduce blue light emitted based on the Day and Night cycle in your geographical location execute this:
The values that are configured by the script are byte arrays in the registry, so it required a bit of reverse engineering to get the values to match the settings in the control panel. The function is currently available on GitHub in my Shared Scripts repository: Set-BlueLight
This function will be added to the CustomizeWindows10 module after I have developed my functional and unit tests to ensure the quality of this function.
For more information about the functions and modules discussed in this article, please refer to the following links:
As I installed the latest build of Windows 10 on my system I read that it was now possible to set the calendar to also display the Lunar Calendar in the calendar overview. Because I like automating stuff I decided to take a look at where this is configured. Note that the steps in this post are based on Windows 10 Build 15002,
It turns out this in configured in the following registry key: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.lunarcalendar\Current
Interestingly enough, the store cache seems to contain many of the recently released new functionality in Windows 10. At the moment this seems to be the space to watch if you are looking to automate your settings in Windows, although most values are binary so it might take some work to figure out how to configure this.
After setting this value to the three possible options:
Lunar Calendar with simplified Chinese characters
Lunar Calendar with traditional Chinese characters
Unfortunately this because the Data property is a binary string, so this is not that easy to manipulate. The following values correspond with the settings. I will list both the binary strings as well as their base 64 representation.
I ran into an odd problem with one of the Windows systems at a customer that was running with a very high CPU load. The system is running Windows Server 2012R2 with the DirectAccess role enabled. Upon further investigation it seemed that the SQL Server process that is running the Windows Internal Database for DirectAccess was to blame here:
In his blog post Richard used the GUI to manually create an additional index to reduce the CPU load on the DirectAccess server. Because I was having this issue on multiple servers I decided to create a PowerShell module based on his instructions. I have finalized the PowerShell module and made it publicly available: FixDaDatabase
The module comes with three cmdlets:
To get started with the module either download the module from GitHub, the TechNet Script Gallery or the PowerShell Gallery. In order to install the module directly from the PowerShell gallery run the following command:
Install-Module -Name FixDaDatabase -Verbose
Install-Module -Name FixDaDatabase -Verbose
First we run Get-DaDatabaseIndexStatus to establish if an Index is already present on the system:
Since the additional Index is not available the Add-DaDatabaseIndex cmdlet can be used to create the Index:
To verify the results of this cmdlet the Get-DaDatabaseIndexStatus cmdlet can be used:
After creating the additional Index the CPU load of the system dropped down significantly within a minute:
The module is available at the following locations: