Como definir uma função do PowerShell que requer elevação?

Como definir uma função do PowerShell que requer elevação?

Já que não consigo encontrar nenhuma alternativa ao Linux'sudocomando de elevação, tenho a seguinte dúvida:

Como definir uma função do PowerShell que requer elevação? Quero dizer, prompt do UAC.

Digamos que tal função segue:

function system-check {
    SFC /ScanNow
}

Sistema:

Windows 8.1 Pro de 64 bits

PowerShell:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  117

EDITAR1:

Para ser 100% compreensível, deixe-me reformular:

  1. Eu executo o PowerShell como usuário
  2. Eu executo a função mencionadasystem-check
  3. Quero que a função seja elevada para poder executar o comando; observe que quero que o prompt do UAC apareça

Responder1

Para executar um comando específico em uma janela elevada:

Start-Process -FilePath powershell.exe -ArgumentList {$ScriptBlock} -verb RunAs

Por exemplo:

Start-Process -FilePath powershell.exe -ArgumentList {
    SFC /scannow
} -verb RunAs

Para executar um script específico em uma janela elevada:

Start-Process powershell -ArgumentList '-noprofile -file MyScript.ps1' -verb RunAs

Para executar uma sessão inteira do PowerShell solicitando o UAC:

Start-Process powershell.exe -Verb runAs

Uma função para retornar $True ou $False se a janela atual estiver sendo executada com permissões elevadas:

function isadmin
 {
 #Returns true/false
   ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
 }

Para garantir que um script seja executado apenas como administrador, adicione isto ao início:

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
 {
  Echo "This script needs to be run As Admin"
  Break
 }

No PowerShell v4.0, o acima pode ser simplificado usando uma instrução #Requires:

#Requires -RunAsAdministrator

Fonte:Execute com permissões elevadas

informação relacionada