Dav*_*ski 15 windows windows-registry powershell chef windows-10
如何通过注册表配置 Windows 10 (Pro) Creators Update 中的新夜灯功能?
我想在使用我选择的配置管理工具 (Chef) 时自动配置新的/更新的安装。通过 Sysinternals Process Monitor 进行的系统检查显示一个二进制Data密钥在HKCU\Software\Microsoft\Windows\CurrentVersion\CloudStore\Cache\DefaultAccount\$$windows.data.bluelightreduction.settings\Current.
非常感谢有关配置夜灯功能的不同注册表、PowerShell 或其他自动化友好方式的帮助!
Ben*_*n N 14
通过一系列实验,我设法或多或少地确定了该注册表值的格式(有关详细信息,请参见下文)。
我制作了这个 PowerShell 脚本:
Function Set-BlueLightReductionSettings {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true)] [ValidateRange(0, 23)] [int]$StartHour,
[Parameter(Mandatory=$true)] [ValidateSet(0, 15, 30, 45)] [int]$StartMinutes,
[Parameter(Mandatory=$true)] [ValidateRange(0, 23)] [int]$EndHour,
[Parameter(Mandatory=$true)] [ValidateSet(0, 15, 30, 45)] [int]$EndMinutes,
[Parameter(Mandatory=$true)] [bool]$Enabled,
[Parameter(Mandatory=$true)] [ValidateRange(1200, 6500)] [int]$NightColorTemperature
)
$data = (2, 0, 0, 0)
$data += [BitConverter]::GetBytes((Get-Date).ToFileTime())
$data += (0, 0, 0, 0, 0x43, 0x42, 1, 0)
If ($Enabled) {$data += (2, 1)}
$data += (0xCA, 0x14, 0x0E)
$data += $StartHour
$data += 0x2E
$data += $StartMinutes
$data += (0, 0xCA, 0x1E, 0x0E)
$data += $EndHour
$data += 0x2E
$data += $EndMinutes
$data += (0, 0xCF, 0x28)
$tempHi = [Math]::Floor($NightColorTemperature / 64)
$tempLo = (($NightColorTemperature - ($tempHi * 64)) * 2) + 128
$data += ($tempLo, $tempHi)
$data += (0xCA, 0x32, 0, 0xCA, 0x3C, 0, 0)
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.bluelightreduction.settings\Current' -Name 'Data' -Value ([byte[]]$data) -Type Binary
}
Run Code Online (Sandbox Code Playgroud)
要使用它,请将其另存为.ps1文件并按照PowerShell 标记 wiki的启用脚本部分中的说明进行操作。然后,您可以通过点源导入脚本的内容:
. ./bluelightmanagement.ps1
Run Code Online (Sandbox Code Playgroud)
然后使用它提供的类似 cmdlet 的功能:
Set-BlueLightReductionSettings -StartHour 7 -StartMinutes 0 -EndHour 21 -EndMinutes 15 -Enabled $true -NightColorTemperature 6000
Run Code Online (Sandbox Code Playgroud)
如果您在运行命令时打开了蓝光减少页面,则设置应用程序甚至会立即更新所有内容(颜色滑块除外)。
CloudStore值共有的签名FILETIME值(8 字节,小端)2然后1如果禁用它就消失了色温以小端存储为两个字节。高位是温度除以64得到的整数部分。低位是余数乘以2,再加128。要从字节计算温度,高字节乘以64并添加将低字节和 128 之间的差除以二时得到的结果。
| 归档时间: |
|
| 查看次数: |
12836 次 |
| 最近记录: |