Вот мой PowerShell скрипт:Powershell показывая старое время после изменения часового пояса
$time = (Get-Date).ToShortTimeString()
Write-Host "Current Time: "$time
$destzone = [System.TimeZoneInfo]::FindSystemTimeZoneById("Central Standard Time")
$desttime = [System.TimeZoneInfo]::ConvertTimeFromUtc((Get-Date).ToUniversalTime(), $destzone)
$desttime = $desttime.ToShortTimeString()
Write-Host "UTC-6 = "$desttime
$newtime = (Get-Date).ToShortTimeString()
Write-Host "Current Time: "$newtime
if($newtime -eq $desttime)
{
Write-Host "ok"
}else
{
C:\Windows\System32\tzutil.exe /s "Central Standard Time"
}
То, что я пытаюсь достичь, что
- Получить текущее системное время
- Сравните это с универсальным Время (utc-6)
- Если это то же самое, тогда ничего не поделаешь. Если нет, измените системный часовой пояс на utc-6
Все работает, но после установки системного часового пояса на utc-6, когда я проверяю текущее системное время, оно показывает мне старое время (хотя Я вижу, что системный часовой пояс изменился)
Похоже, что-то вроде кэширования. Есть ли что-нибудь подобное? Или что-то не так с моим сценарием?
Может кто-нибудь, пожалуйста, проведет меня через хороший способ?
Из любопытства новый сеанс PowerShell, созданный после изменения часового пояса, отражает изменение? – Matt