답변:
바탕 화면에 추가 아이콘을 사용하여이를 수행하는 한 가지 방법이 있습니다. 데스크탑에 하나의 아이콘 만 갖고 싶다면 스크립트를 다른 사람으로 옮길 수 있습니다.
이제 바탕 화면에서 새 바로 가기를 두 번 클릭하여 스크립트 권한을 높일 수 있습니다.
script.ps1
처럼 작동하는 바로 가기 powershell.exe -f script.ps1
이지만 후자는 관리자로 실행되도록 설정할 수 있습니다 ( 또는 스위치에 powershell.exe /?
대한 설명 참조 )-f
-File
UAC 사용 시스템에서 스크립트가 전체 관리자 권한으로 실행되도록하려면 스크립트 시작 부분에 다음 코드를 추가하십시오.
param([switch]$Elevated)
function Test-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
if ((Test-Admin) -eq $false) {
if ($elevated)
{
# tried to elevate, did not work, aborting
}
else {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}
exit
}
'running with full privileges'
-elevated 스위치를 사용하여 스크립트를 실행하면 실행 전에 권한 상승을 시도합니다.
param(...)
위에 오른쪽 전에 그들을 전달 -elevated
, 당신이 구축 방법에 대한 영리해야합니다 ArgumentList
, 아마도 사용하는 것이 좋습니다 String[]
양식을.
동일한 파워 쉘에 있다면 다음과 같이 할 수 있습니다.
Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
C:\Windows\System32
입니다. 현재 디렉토리를 보존하는 대안 : stackoverflow.com/a/57033941/2441655
데스크탑에 있기 때문에이 작업을 수행하는 가장 쉬운 방법은 높이 가젯으로 드래그하는 것입니다 .
그렇지 않으면 ps1 스크립트 의 elevate
명령 을 사용하여 별도의 스크립트를 만들 수 있습니다.
또는 elevate
서비스 시작 비트에만 적용 할 수 있습니다 .
탐색기 컨텍스트 메뉴에서 직접 Powershell 스크립트를 관리자로 시작하는 옵션을 원하면 여기에있는 답변의 섹션 2를 참조하십시오. https://stackoverflow.com/a/57033941/2441655
이것을 스크립트의 시작 부분에 추가하십시오 :
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$testadmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if ($testadmin -eq $false) {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}
powershell -f
권한으로 실행을 사용할 수있게되었습니다 …