mirror of
https://github.com/luckyyzh/pi-agent-integrated.git
synced 2026-10-03 02:59:35 +00:00
feat: start 时非管理员自动提权重试(注册计划任务需要管理员权限,UAC 确认一次后即可)
This commit is contained in:
@@ -72,6 +72,12 @@ function Ensure-Tasks {
|
|||||||
-Settings $settings -Description 'Pi Agent Integrated public tunnel' -Force | Out-Null
|
-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 {
|
function Get-PublicAccessStatus {
|
||||||
$webTask = Get-ScheduledTask -TaskName $webTaskName -ErrorAction SilentlyContinue
|
$webTask = Get-ScheduledTask -TaskName $webTaskName -ErrorAction SilentlyContinue
|
||||||
$tunnelTask = Get-ScheduledTask -TaskName $tunnelTaskName -ErrorAction SilentlyContinue
|
$tunnelTask = Get-ScheduledTask -TaskName $tunnelTaskName -ErrorAction SilentlyContinue
|
||||||
@@ -102,6 +108,14 @@ switch ($Action) {
|
|||||||
Get-PublicAccessStatus
|
Get-PublicAccessStatus
|
||||||
}
|
}
|
||||||
'start' {
|
'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
|
Ensure-Tasks
|
||||||
if (-not $NoTunnel) { Start-ScheduledTask -TaskName $tunnelTaskName -ErrorAction SilentlyContinue }
|
if (-not $NoTunnel) { Start-ScheduledTask -TaskName $tunnelTaskName -ErrorAction SilentlyContinue }
|
||||||
Start-ScheduledTask -TaskName $webTaskName
|
Start-ScheduledTask -TaskName $webTaskName
|
||||||
|
|||||||
Reference in New Issue
Block a user