পাওয়ারশেল প্রশাসক হিসাবে চলছে কিনা তা সনাক্ত করুন


36

আমি যদি আমার স্ক্রিপ্টগুলিতে কীভাবে বলতে পারি যে পাওয়ারশেল প্রশাসকের সুযোগসুবিধা নিয়ে চলছে?

আমার জানা দরকার কারণ আমি এমন একটি প্রোগ্রাম চালানোর চেষ্টা করছি যাতে সুরক্ষিত বন্দরগুলি খোলার দক্ষতার প্রয়োজন হয়।


উত্তর:


42
[bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544")

এটি যা করে তা ছিন্ন করে:

  • [bool]- শেষ ফলাফলটি ক bool
  • [System.Security.Principal.WindowsIdentity]::GetCurrent()- WindowsIdentityবর্তমানে চলমান ব্যবহারকারীর জন্য পুনরুদ্ধার করে ।
  • (...).groups- groupsপরিচয়টি কোন সদস্যের ব্যবহারকারী তা গোষ্ঠীভুক্ত করতে এটি সনাক্ত করতে পরিচয়ের সম্পত্তিটি অ্যাক্সেস করুন ।
  • -match "S-1-5-32-544"প্রশাসক গোষ্ঠীর সুপরিচিত এসআইডিgroups রয়েছে কিনা তা পরীক্ষা করে দেখুন , পরিচয়টি কেবল তখনই "অ্যাডমিনিস্ট্রেটর হিসাবে চালানো" ব্যবহৃত হত contain

2
কোডের একটি লাইন পোস্ট করার পরিবর্তে, আপনি কি দয়া করে তা ব্যাখ্যা করতে পারেন? এটি ভবিষ্যতের দর্শকদের যদি প্রয়োজন হয় তা বোঝার এবং এটির সাথে অভিযোজিত করতে সহায়তা করে।
slhck

BOOO। এই ব্যক্তিকে আরও উস্কানি দিন
ক্যানিয়ন

4
আমি নীচে @ বিল_সেটওয়ার্টের উত্তরটি পছন্দ করি কারণ এটি যাদু স্ট্রিং মুক্ত।
ডিএইচ

ব্যবহার -matchএবং টাইপকাস্টিংয়ের পরিবর্তে :[Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544'
TheIncorr যোগ্য1

57
([Security.Principal.WindowsPrincipal] `
  [Security.Principal.WindowsIdentity]::GetCurrent() `
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

এটি বর্তমান উইন্ডোজ পরিচয়টি পুনরুদ্ধার করে এবং সত্য পরিচয় দেয় যদি বর্তমান পরিচয়টিতে প্রশাসকের ভূমিকা থাকে (যেমন, উন্নতমানের সাথে চলমান)।


13
গৃহীত উত্তরটি সঠিক হলেও এই উত্তরটি আরও বেশি স্পষ্ট, বিশেষত এমন একজনের জন্য যে এখন থেকে ছয় মাস পরে আপনার স্ক্রিপ্টটি পড়তে পারে।
প্যাট্রিক সিমর

46

পাওয়ারশেল ৪.০ এ আপনি আপনার স্ক্রিপ্টের শীর্ষে প্রয়োজনীয় ব্যবহার করতে পারেন :

#Requires -RunAsAdministrator

আউটপুট:

'মাইস্ক্রিপ্ট.পিএস 1' স্ক্রিপ্টটি চালানো যাবে না কারণ এতে প্রশাসক হিসাবে চলার জন্য "# প্রয়োজনীয়তা" বিবৃতি রয়েছে। বর্তমান উইন্ডোজ পাওয়ারশেল অধিবেশন প্রশাসক হিসাবে চলছে না। প্রশাসক হিসাবে রান করুন বিকল্পটি ব্যবহার করে উইন্ডোজ পাওয়ারশেল শুরু করুন এবং তারপরে আবার স্ক্রিপ্টটি চালানোর চেষ্টা করুন।


আপনি যদি এমন কোনও ফাংশন চান যা অ্যাডমিন দ্বারা চালিত না হয়?
কলব ক্যানিয়ন

1
@ কলবক্যানিয়ন - কেবলমাত্র একটি পাওয়ারশেল ফাংশন উন্নত করে চালানোর মতো কিছুই নেই ; পুরো পাওয়ারশেল প্রক্রিয়া হয় হয় উন্নত হয় বা হয় না।
বিল_সেটওয়ার্ট

@ বিল_সেটওয়ার্ট হ্যাঁ, তবে আপনি returnযদি ব্যবহারকারী প্রশাসক না হন তবে আপনি পারেন :)
কলব ক্যানিয়ন

1
@ কলবক্যানিয়ন - আপনি কেবল পাওয়ারশেল প্রক্রিয়াটিকে উন্নত করতে পারেন ; আপনি একটি ফাংশন উন্নত করতে পারবেন না । এই কারণেই #Requires -RunAsAdministratorদরকারী: এটি যদি আপনি উন্নত না হন তবে এটি সম্পূর্ণ স্ক্রিপ্টটি চালানো থেকে বাধা দেয় ।
বিল_সেটওয়ার্ট

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