11

उपयोग करते हुए मेरे PowerShell स्क्रिप्ट में शॉर्टकट बनाने के लिए, मैं एक .exe में एक शॉर्टकट बनाना (this question से जवाब देने के लिए कुछ इसी तरह का प्रयोग करके):एक रन के रूप में प्रशासक 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() 

अब, जब मैं बना शॉर्टकट, मैं प्रशासक के रूप में चलाने के लिए डिफ़ॉल्ट बनाने के लिए स्क्रिप्ट में कैसे जोड़ूं?

+0

संभावित डुप्लिकेट [मैं एक शॉर्टकट बनाने के लिए जेस्क्रिप्ट का उपयोग कैसे कर सकता हूं जो "व्यवस्थापक के रूप में चलाएं"] का उपयोग करता है (http://stackoverflow.com/questions/11162802/how-can-i-use-jscript-to-create -ए-शॉर्टकट-वह-उपयोग-रन-ए-एडमिनिस्ट्रेटर) –

+0

निश्चित रूप से उपरोक्त लिंक नाथन को पढ़ें। कोड को PowerShell में अनुवाद करने के लिए: $ फ़ाइल = "$ होम \ डेस्कटॉप \ ColorPix.lnk"; $ बाइट्स = [System.IO.File] :: ReadAllBytes ($ फ़ाइल); $ बाइट्स [0x15] = $ बाइट्स [0x15] -bor 0x20; # सेट रनएएस प्रशासक [System.IO.File] :: WriteAllBytes ($ फ़ाइल, $ बाइट्स); रन-एडमिनिस्ट्रेटर विकल्प सेट करने के लिए -bor को अनसेट करने के लिए -bxor का उपयोग करें। –

उत्तर

21

यह उत्तर How can I use JScript to create a shortcut that uses "Run as Administrator" पर इस प्रश्न के उत्कृष्ट उत्तर का पावरशेल अनुवाद है।

संक्षेप में, आपको बाइट्स की सरणी के रूप में .lnk फ़ाइल को पढ़ने की आवश्यकता है। बाइट 21 (0x15) का पता लगाएं और बिट 6 (0x20) को 1 में बदलें। यह RunAsAdministrator ध्वज है। फिर आप बाइट सरणी को .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 फ़ाइल आप official Microsoft documentation का उल्लेख कर सकते में कुछ और ही बदलना चाहते हैं।

संबंधित मुद्दे