উচ্চতা প্রয়োজন যা পাওয়ারশেল ফাংশনটি কীভাবে সংজ্ঞায়িত করবেন?


20

যেহেতু আমি লিনাক্সের sudoএলিভেশন কমান্ডের বিকল্প খুঁজে পাচ্ছি না , তাই আমার নিম্নলিখিত প্রশ্ন রয়েছে:

উচ্চতা প্রয়োজন যা পাওয়ারশেল ফাংশনটি কীভাবে সংজ্ঞায়িত করবেন? মানে ইউএসি প্রম্পট।

বলুন, এই জাতীয় ফাংশন নিম্নলিখিত:

function system-check {
    SFC /ScanNow
}

পদ্ধতি:

উইন্ডোজ 8.1 প্রো 64-বিট

শক্তির উৎস:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      0      10586  117

EDIT1:

100% বোধগম্য হতে আমাকে পুনরায় চাপ দিন:

  1. আমি ব্যবহারকারী হিসাবে পাওয়ারশেল চালাচ্ছি
  2. আমি উপরোক্ত ফাংশনটি পরিচালনা করি system-check
  3. কমান্ডটি কার্যকর করতে সক্ষম হয়ে ফাংশনটি উন্নত করতে চাই; মনে রাখবেন, আমি ইউএসি প্রম্পট উপস্থিত হতে চাই

নোট করুন যে মাইক্রোসফ্ট মডিউলগুলির দ্বারা যুক্ত অনেকগুলি পাওয়ার শেল কমান্ড এবং কমান্ডগুলি (যেমন এমএসএল কমান্ডগুলি) প্রায়শই উন্নতির প্রয়োজন হয় তবে কোনওভাবেই সুবিধার উচ্চতায় সহায়তা দেয় না। এগুলি কেবল ক্রিপ্টিক ত্রুটি বার্তাগুলিতে ব্যর্থ হয়। আপনি যদি আপনার স্ক্রিপ্টগুলিতে উন্নয়নের প্রম্পট তৈরি করেন তবে আপনি মাইক্রোসফ্টের চেয়ে বেশি ব্যবহারকারী বন্ধুত্ব সরবরাহ করবেন।
টড উইলকক্স

উত্তর:


33

একটি উন্নত উইন্ডো থেকে একটি নির্দিষ্ট কমান্ড চালাতে:

Start-Process -FilePath powershell.exe -ArgumentList {$ScriptBlock} -verb RunAs

উদাহরণ স্বরূপ:

Start-Process -FilePath powershell.exe -ArgumentList {
    SFC /scannow
} -verb RunAs

একটি উন্নত উইন্ডো থেকে একটি নির্দিষ্ট স্ক্রিপ্ট চালানোর জন্য:

Start-Process powershell -ArgumentList '-noprofile -file MyScript.ps1' -verb RunAs

ইউএসি-র জন্য অনুরোধ জানানো একটি সম্পূর্ণ পাওয়ারশেল সেশন চালাতে:

Start-Process powershell.exe -Verb runAs

ফিরে আসার জন্য একটি ফাংশন $ সত্য বা $ বর্তমান উইন্ডোটি উন্নত অনুমতি নিয়ে চলমান থাকলে মিথ্যা:

function isadmin
 {
 #Returns true/false
   ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
 }

কোনও স্ক্রিপ্টটি কেবল অ্যাডমিন হিসাবে চালিত হয়েছে তা নিশ্চিত করতে, এটি শুরুতে যুক্ত করুন:

If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
 {
  Echo "This script needs to be run As Admin"
  Break
 }

পাওয়ারশেল v4.0 এ উপরের একটি # প্রয়োজনীয় বিবৃতি ব্যবহার করে সরল করা যেতে পারে:

#Requires -RunAsAdministrator

উত্স: উন্নত অনুমতি নিয়ে চালান

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.