태그 보관물: windows-7

windows-7

관리자로 powershell 스크립트를 실행하는 방법 스크립트를 클릭하고 관리자 권한으로

내 Windows 7 데스크톱에는 script.ps1이 있으며 관리자 권한이 필요합니다 (서비스 시작). 이 스크립트를 클릭하고 관리자 권한으로 실행하고 싶습니다.

이것을 달성하는 가장 쉬운 방법은 무엇입니까?



답변

바탕 화면에 추가 아이콘을 사용하여이를 수행하는 한 가지 방법이 있습니다. 데스크탑에 하나의 아이콘 만 갖고 싶다면 스크립트를 다른 사람으로 옮길 수 있습니다.

  1. 데스크탑에서 Powershell 스크립트에 대한 바로 가기 생성
  2. 바로 가기를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하십시오.
  3. 바로 가기 탭을 클릭 하십시오
  4. 고급을 클릭하십시오
  5. 관리자 권한으로 실행을 선택 하십시오.

이제 바탕 화면에서 새 바로 가기를 두 번 클릭하여 스크립트 권한을 높일 수 있습니다.


답변

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
}