내 Windows 7 데스크톱에는 script.ps1이 있으며 관리자 권한이 필요합니다 (서비스 시작). 이 스크립트를 클릭하고 관리자 권한으로 실행하고 싶습니다.
이것을 달성하는 가장 쉬운 방법은 무엇입니까?
답변
바탕 화면에 추가 아이콘을 사용하여이를 수행하는 한 가지 방법이 있습니다. 데스크탑에 하나의 아이콘 만 갖고 싶다면 스크립트를 다른 사람으로 옮길 수 있습니다.
- 데스크탑에서 Powershell 스크립트에 대한 바로 가기 생성
- 바로 가기를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하십시오.
- 바로 가기 탭을 클릭 하십시오
- 고급을 클릭하십시오
- 관리자 권한으로 실행을 선택 하십시오.
이제 바탕 화면에서 새 바로 가기를 두 번 클릭하여 스크립트 권한을 높일 수 있습니다.
답변
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 스위치를 사용하여 스크립트를 실행하면 실행 전에 권한 상승을 시도합니다.
답변
동일한 파워 쉘에 있다면 다음과 같이 할 수 있습니다.
Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
답변
데스크탑에 있기 때문에이 작업을 수행하는 가장 쉬운 방법은 높이 가젯으로 드래그하는 것입니다 .
그렇지 않으면 ps1 스크립트 의 elevate
명령 을 사용하여 별도의 스크립트를 만들 수 있습니다.
또는 elevate
서비스 시작 비트에만 적용 할 수 있습니다 .
답변
PowerShell ISE는 % windir % \ system32 \ WindowsPowerShell \ v1.0 \ PowerShell_ISE.exe에 있습니다. 마우스 오른쪽 버튼으로 클릭하고 “관리자 권한으로 실행”을 선택하고 거기에서 스크립트를 실행할 수 있습니다.
Windows 로고> 모든 프로그램> 보조 프로그램> Windows PowerShell에서 해당 바로 가기를 사용하여 동일한 작업을 수행 할 수도 있습니다.
답변
탐색기 컨텍스트 메뉴에서 직접 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
}