উত্তর:
আপনার ডেস্কটপে অতিরিক্ত আইকনের সাহায্যে এটি করার একটি উপায় এখানে। আমার ধারণা, আপনি যদি ডেস্কটপে কেবলমাত্র একক আইকন রাখতে চান তবে আপনি অন্য কারও কাছে স্ক্রিপ্টটি সরিয়ে নিতে পারবেন।
আপনি এখন আপনার ডেস্কটপে নতুন শর্টকাটকে ডাবল-ক্লিক করে উন্নত স্ক্রিপ্টটি চালাতে পারেন।
script.ps1
যেমন কাজ করে, তেমন একটি শর্টকাটও powershell.exe -f script.ps1
তবে দ্বিতীয়টি অ্যাডমিনিস্ট্রেটর হিসাবে চালানোর জন্য সেট করা যেতে পারে ( বা স্যুইচটির powershell.exe /?
ব্যাখ্যা দেখুন )-f
-File
ইউএসি-সক্ষম হওয়া সিস্টেমগুলিতে, কোনও স্ক্রিপ্ট পুরো অ্যাডমিন সুবিধার সাথে চলছে কিনা তা নিশ্চিত করতে, আপনার স্ক্রিপ্টের শুরুতে এই কোডটি যুক্ত করুন:
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'
যখন আপনার স্ক্রিপ্টটি প্রাসঙ্গিক সুইচ দিয়ে চালিত করা হয়, এটি চালানোর আগে সুবিধাগুলি উন্নত করার চেষ্টা করবে।
param(...)
উপরের দিকে যুক্ত করুন এবং তাদের ঠিক আগে ফরোয়ার্ড করুন -elevated
, আপনি কীভাবে এটি তৈরি করবেন সে সম্পর্কে আপনার চালাক হওয়া দরকার ArgumentList
, সম্ভবত String[]
ফর্মটি ব্যবহার করতে চাইবেন ।
আপনি যদি একই পাওয়ারের শেলটিতে থাকেন তবে আপনি এটি করতে পারেন:
Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
C:\Windows\System32
। একটি বিকল্প যা বর্তমান ডিরেক্টরির অপরিবর্তিত: stackoverflow.com/a/57033941/2441655
যেহেতু এটি আপনার ডেস্কটপে বসে আছে, তাই আমি বলব এটি করার সবচেয়ে অনায়াস উপায় এটিকে এলিভেশন গ্যাজেটে টেনে আনাই ।
অন্যথায় আপনি আপনার PS1 স্ক্রিপ্টের কমান্ডটি ব্যবহার করেelevate
একটি পৃথক স্ক্রিপ্ট তৈরি করতে পারেন ।
অথবা, আপনি elevate
কেবল পরিষেবা-শুরুর বিটটিতে প্রয়োগ করতে পারেন ।
পাওয়ারশেল ISE% উইন্ডির% \ system32 \ উইন্ডোজপাওয়ারশেল \ v1.0 \ পাওয়ারশেল_আইএসই.এক্সএতে থাকে। আপনি এটিতে রাইট ক্লিক করতে পারেন এবং "প্রশাসক হিসাবে চালান" নির্বাচন করতে পারেন এবং সেখান থেকে স্ক্রিপ্টটি চালাতে পারেন।
আপনি এটি উইন্ডোজ লোগো> সমস্ত প্রোগ্রাম> অ্যাকসেসরিজ> উইন্ডোজ পাওয়ারশেলের নীচেও খুঁজে পেতে পারেন এবং সেই শর্টকাটগুলির সাথে একই জিনিসটি করতে পারেন।
আপনি যদি এক্সপ্লোরার প্রসঙ্গ-মেনু থেকে সরাসরি অ্যাডমিনিস্ট্রেটর হিসাবে পাওয়ারশেল স্ক্রিপ্ট চালু করার বিকল্প চান তবে আমার উত্তরের বিভাগ 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
স্ক্রিপ্টের পথের সামনে যোগ করার পরে কেবল কমান্ডটি "সম্পূর্ণ" করার জন্য উপলভ্য হয়ে উঠল …