我需要将服务器的日期更改为第二天,然后运行 SQL 脚本,然后将服务器日期改回。
我知道如何通过 powershell 更改服务器日期
Invoke-Command -ComputerName $sql_box_server_name -Credential $credentials -ScriptBlock {Set-Date -date (Get-Date).AddDays(1)}
但是当我需要将日期调回时,我收到一条错误消息,指出服务器和客户端之间存在日期/时间差异。我知道这是 AD/Kerberos 问题,但我不知道如何解决它。
我尝试将运行脚本的机器的日期设置为与服务器相同,但仍然出现错误。
笔记$credentials 使用 Get-Credentials 设置并默认使用 Kerberos。
答案1
在我的域控制器安装脚本模板中,我有这两个注册表注入:
reg ADD "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /t REG_DWORD /v MaxPosPhaseCorrection /d 900 /f
reg ADD "HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config" /t REG_DWORD /v MaxNegPhaseCorrection /d 900 /f
如果我没记错的话,这将拒绝超过 15 分钟的时间调整,这比默认值要严格得多(到目前为止我这样做没有遇到任何问题)。
无论如何,如果您能够在远程计算机上将这些值更改为 172800 之类的值(持续 48 小时),我想您应该能够做您想做的事情。