From 33d5da50436735c29ece0d15aeaa4e912079ba45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Thu, 15 Jan 2026 11:45:31 +0800 Subject: [PATCH] =?UTF-8?q?```=20fix(cursor=5Fwin=5Fid=5Fmodifier):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20firstSessionDate=20=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 UTC 时间生成/规范化 firstSessionDate,避免本地时间却带 Z 的语义错误 - 兼容 ConvertFrom-Json 可能返回 DateTime 类型的情况 - 在所有场景下都使用 ToUniversalTime() 确保时间格式的一致性 ``` --- scripts/run/cursor_win_id_modifier.ps1 | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/scripts/run/cursor_win_id_modifier.ps1 b/scripts/run/cursor_win_id_modifier.ps1 index ae71714..e858575 100644 --- a/scripts/run/cursor_win_id_modifier.ps1 +++ b/scripts/run/cursor_win_id_modifier.ps1 @@ -395,7 +395,19 @@ function Modify-CursorJSFiles { # 机器 GUID 用于模拟注册表/原始机器码读取 $machineGuid = if ($global:CursorIds.machineGuid) { [string]$global:CursorIds.machineGuid } else { [System.Guid]::NewGuid().ToString().ToLower() } $sessionId = if ($global:CursorIds.sessionId) { [string]$global:CursorIds.sessionId } else { [System.Guid]::NewGuid().ToString().ToLower() } - $firstSessionDateValue = if ($global:CursorIds.firstSessionDate) { [string]$global:CursorIds.firstSessionDate } else { (Get-Date).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") } + # 使用 UTC 时间生成/规范化 firstSessionDate,避免本地时间却带 Z 的语义错误;同时兼容 ConvertFrom-Json 可能返回 DateTime + $firstSessionDateValue = if ($global:CursorIds.firstSessionDate) { + $rawFirstSessionDate = $global:CursorIds.firstSessionDate + if ($rawFirstSessionDate -is [DateTime]) { + $rawFirstSessionDate.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + } elseif ($rawFirstSessionDate -is [DateTimeOffset]) { + $rawFirstSessionDate.UtcDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + } else { + [string]$rawFirstSessionDate + } + } else { + (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + } $macAddress = if ($global:CursorIds.macAddress) { [string]$global:CursorIds.macAddress } else { "00:11:22:33:44:55" } $useConfigIds = $true } else { @@ -414,7 +426,8 @@ function Modify-CursorJSFiles { # 机器 GUID 用于模拟注册表/原始机器码读取 $machineGuid = [System.Guid]::NewGuid().ToString().ToLower() $sessionId = [System.Guid]::NewGuid().ToString().ToLower() - $firstSessionDateValue = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + # 使用 UTC 时间生成 firstSessionDate,避免本地时间却带 Z 的语义错误 + $firstSessionDateValue = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") $macAddress = "00:11:22:33:44:55" } @@ -609,7 +622,8 @@ function Modify-CursorJSFiles { # 🔧 新增: firstSessionDate(重置首次会话日期) if (-not $firstSessionDateValue) { - $firstSessionDateValue = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + # 使用 UTC 时间生成 firstSessionDate,避免本地时间却带 Z 的语义错误 + $firstSessionDateValue = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ") } $placeholders = @(