11

W moim skryptu PowerShell utworzyć skrót do .exe (używając coś podobnego do odpowiedzi z this question):Jak utworzyć skrót Uruchom jako Administrator przy użyciu PowerShell

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

Teraz, kiedy utworzyć skrót, jak dodać do skryptu, aby domyślnie działał jako Administrator?

+0

możliwy duplikat [Jak mogę użyć JScript do utworzenia skrótu, który używa "Uruchom jako administrator"] (http://stackoverflow.com/questions/11162802/how-can-i-use-jscript-to-create -a-skrót-ten-używa-uruchamia-jako-administrator) –

+0

Zdecydowanie przeczytaj pytanie Nathan powiązane powyżej. Aby przetłumaczyć kod na PowerShell: $ file = "$ Home \ Desktop \ ColorPix.lnk"; $ bytes = [System.IO.File] :: ReadAllBytes (plik $); $ bajtów [0x15] = $ bajtów [0x15] -bor 0x20; #Uruchom RunAsAdministrator [System.IO.File] :: WriteAllBytes (plik $, $ bajty); Użyj opcji -bor, aby ustawić opcję RunAsAdministrator i -bxor, aby anulować ustawienie. –

Odpowiedz

21

Ta odpowiedź jest tłumaczeniem doskonałej odpowiedzi PowerShell na to pytanie How can I use JScript to create a shortcut that uses "Run as Administrator".

W skrócie, należy odczytać plik .lnk jako tablicę bajtów. Zlokalizuj bajt 21 (0x15) i zmień bit 6 (0x20) na 1. To jest flaga RunAsAdministrator. Następnie zapisujesz tablicę bajtów z powrotem do pliku .lnk.

W kodzie będzie to wyglądać tak:

$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) 

Jeśli ktoś chce zmienić coś innego w pliku .LNK można odnosić do official Microsoft documentation.

Powiązane problemy