जवाबों:
यहां ऐसा करने का एक तरीका है, अपने डेस्कटॉप पर एक अतिरिक्त आइकन की मदद से। मुझे लगता है कि अगर आप केवल अपने डेस्कटॉप पर एक ही आइकन रखना चाहते हैं तो आप स्क्रिप्ट को किसी और से स्थानांतरित कर सकते हैं।
अब आप अपने डेस्कटॉप पर नए शॉर्टकट को डबल-क्लिक करके एलिवेटेड स्क्रिप्ट चला सकते हैं।
script.ps1
काम करता है, जैसा कि एक शॉर्टकट करता है powershell.exe -f script.ps1
, लेकिन बाद को प्रशासक के रूप में चलाने के लिए सेट किया जा सकता है ( या स्विच powershell.exe /?
के स्पष्टीकरण के लिए देखें )-f
-File
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 स्विच के साथ चलाने पर, यह चलने से पहले विशेषाधिकारों को बढ़ाने का प्रयास करेगा।
param(...)
शीर्ष पर जोड़ते हैं और उन्हें ठीक पहले अग्रेषित करते हैं -elevated
, आपको इस बारे में चतुर होना होगा कि आप कैसे बनाते हैं ArgumentList
, शायद String[]
फ़ॉर्म का उपयोग करना चाहते हैं ।
यदि आप एक ही अधिकार में हैं तो आप ऐसा कर सकते हैं:
Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
C:\Windows\System32
। एक विकल्प जो वर्तमान निर्देशिका को संरक्षित करता है: stackoverflow.com/a/57033941/2441655
चूंकि यह आपके डेस्कटॉप पर बैठा है, मैं कहूंगा कि इसे पूरा करने का सबसे सरल तरीका है इसे ऊंचाई वाले गैजेट पर खींचना ।
नहीं तो आप का उपयोग कर एक अलग स्क्रिप्ट बना सकता है आदेश अपने PS1 स्क्रिप्ट पर।elevate
या, आप elevate
बस सेवा शुरू करने वाले बिट पर आवेदन कर सकते हैं ।
PowerShell ISE% windir% \ system32 \ WindowsPowerShell \ v1.0 \ PowerShell_ISE.exe पर रहता है। आप उस पर राइट-क्लिक कर सकते हैं और "व्यवस्थापक के रूप में चलाएं" चुनें और वहां से स्क्रिप्ट चलाएं।
आप इसे विंडोज लोगो> सभी प्रोग्राम> एक्सेसरीज़> विंडोज पॉवरशेल के तहत भी पा सकते हैं और यही काम उन शॉर्टकट्स के साथ भी कर सकते हैं।
यदि आप पॉवरशेल स्क्रिप्ट को व्यवस्थापक के रूप में लॉन्च करने का विकल्प चाहते हैं, सीधे एक्सप्लोरर संदर्भ-मेनू से, मेरे उत्तर की धारा 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
}
powershell -f
स्क्रिप्ट पथ के सामने जोड़ने के बाद उपलब्ध हो जाता है, इसलिए "कमांड को" पूरा करने के लिए ...