programing

Powershell을 사용하여 관리자로 실행 바로 가기를 만드는 방법

cafebook 2023. 9. 10. 12:38
반응형

Powershell을 사용하여 관리자로 실행 바로 가기를 만드는 방법

PowerShell 스크립트에서 .exe 바로 가기를 만듭니다( 질문의 답변과 유사한 내용 사용).

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\ColorPix.lnk")
$Shortcut.TargetPath = "C:\Program Files (x86)\ColorPix\ColorPix.exe"
$Shortcut.Save()

이제 바로 가기를 만들 때 스크립트에 어떻게 추가하면 기본적으로 Administrator(관리자)로 실행되도록 설정할 수 있습니까?

이 답변은 이 질문에 대한 훌륭한 답변을 PowerShell로 번역한 입니다. JScript를 사용하여 "관리자로 실행"을 사용하는 바로 가기를 만드는 방법은 무엇입니까?

간단히 말해, .lnk 파일을 바이트 배열로 읽어야 합니다.바이트 21(0x15)을 찾고 비트 6(0x20)을 1로 변경합니다.RunAs Administrator 플래그입니다.그런 다음 바이트 배열을 .lnk 파일에 다시 씁니다.

코드상으로는 다음과 같습니다.

$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\Desktop\ColorPix.lnk")
$Shortcut.TargetPath = "C:\Program Files (x86)\ColorPix\ColorPix.exe"
$Shortcut.Save()

$bytes = [System.IO.File]::ReadAllBytes("$Home\Desktop\ColorPix.lnk")
$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON
[System.IO.File]::WriteAllBytes("$Home\Desktop\ColorPix.lnk", $bytes)

만약 누군가가 다른 무언가를 바꾸고 싶다면,.LNK파일은 공식적인 마이크로소프트 문서를 참조할 수 있습니다.

-Elevate true 스위치를 사용하여 다음 작업을 수행할 수 있습니다.

    CreateShortcut -name "myApp" -Target 
    "${env:ProgramFiles}\mApp\myApp.exe" -OutputDirectory 
    "C:\Users\Public\Desktop" -Elevated True

언급URL : https://stackoverflow.com/questions/28997799/how-to-create-a-run-as-administrator-shortcut-using-powershell

반응형