From 7748c98af66927d8b48f146ae8298fd82ee6906b Mon Sep 17 00:00:00 2001 From: luckyyzh Date: Mon, 3 Aug 2026 18:59:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20start=20=E6=97=B6=E9=9D=9E=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E8=87=AA=E5=8A=A8=E6=8F=90=E6=9D=83=E9=87=8D?= =?UTF-8?q?=E8=AF=95=EF=BC=88=E6=B3=A8=E5=86=8C=E8=AE=A1=E5=88=92=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E9=9C=80=E8=A6=81=E7=AE=A1=E7=90=86=E5=91=98=E6=9D=83?= =?UTF-8?q?=E9=99=90=EF=BC=8CUAC=20=E7=A1=AE=E8=AE=A4=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E5=90=8E=E5=8D=B3=E5=8F=AF=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/local-tools/pi-agent-public.ps1 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/data/local-tools/pi-agent-public.ps1 b/data/local-tools/pi-agent-public.ps1 index c9831bf..1418b65 100644 --- a/data/local-tools/pi-agent-public.ps1 +++ b/data/local-tools/pi-agent-public.ps1 @@ -72,6 +72,12 @@ function Ensure-Tasks { -Settings $settings -Description 'Pi Agent Integrated public tunnel' -Force | Out-Null } +function Test-IsAdmin { + $identity = [Security.Principal.WindowsIdentity]::GetCurrent() + $principal = [Security.Principal.WindowsPrincipal]::new($identity) + return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) +} + function Get-PublicAccessStatus { $webTask = Get-ScheduledTask -TaskName $webTaskName -ErrorAction SilentlyContinue $tunnelTask = Get-ScheduledTask -TaskName $tunnelTaskName -ErrorAction SilentlyContinue @@ -102,6 +108,14 @@ switch ($Action) { Get-PublicAccessStatus } 'start' { + # 注册计划任务需要管理员权限;非管理员时自动提权重启 + if (-not (Test-IsAdmin)) { + $argList = @('-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', "`"$PSCommandPath`"", 'start') + if ($NoTunnel) { $argList += '-NoTunnel' } + Write-Host "注册计划任务需要管理员权限,正在提权重启(请确认 UAC 提示)..." + Start-Process -FilePath 'powershell.exe' -Verb RunAs -ArgumentList $argList -WorkingDirectory $projectRoot + exit + } Ensure-Tasks if (-not $NoTunnel) { Start-ScheduledTask -TaskName $tunnelTaskName -ErrorAction SilentlyContinue } Start-ScheduledTask -TaskName $webTaskName