Windows PowerShell 脚本 xxx.ps1 以管理员身份运行

# 检查当前是否以管理员身份运行
function Is-Administrator {
    $currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
    $principal = New-Object Security.Principal.WindowsPrincipal($currentUser)
    return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}

# 获取当前脚本的完整路径
$scriptPath = $MyInvocation.MyCommand.Path

# 如果不是管理员身份,则以管理员权限重新启动 PowerShell 并运行脚本
if (-not (Is-Administrator)) {
    # 以管理员身份重新启动 PowerShell 并运行脚本
    Start-Process -FilePath "powershell.exe" `
    -ArgumentList "-NoExit", "-ExecutionPolicy Bypass", "-File", "`"$scriptPath`"" `
    -Verb RunAs
    exit  # 退出当前脚本,避免在当前窗口执行以下操作
}

# 以下写具体方法
Write-Host "管理员身份输出的内容"

posted @ 2025-04-09 18:19  HookDing  阅读(566)  评论(0)    收藏  举报