আমি যদি আমার স্ক্রিপ্টগুলিতে কীভাবে বলতে পারি যে পাওয়ারশেল প্রশাসকের সুযোগসুবিধা নিয়ে চলছে?
আমার জানা দরকার কারণ আমি এমন একটি প্রোগ্রাম চালানোর চেষ্টা করছি যাতে সুরক্ষিত বন্দরগুলি খোলার দক্ষতার প্রয়োজন হয়।
আমি যদি আমার স্ক্রিপ্টগুলিতে কীভাবে বলতে পারি যে পাওয়ারশেল প্রশাসকের সুযোগসুবিধা নিয়ে চলছে?
আমার জানা দরকার কারণ আমি এমন একটি প্রোগ্রাম চালানোর চেষ্টা করছি যাতে সুরক্ষিত বন্দরগুলি খোলার দক্ষতার প্রয়োজন হয়।
উত্তর:
[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-match
এবং টাইপকাস্টিংয়ের পরিবর্তে :[Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544'
([Security.Principal.WindowsPrincipal] `
[Security.Principal.WindowsIdentity]::GetCurrent() `
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
এটি বর্তমান উইন্ডোজ পরিচয়টি পুনরুদ্ধার করে এবং সত্য পরিচয় দেয় যদি বর্তমান পরিচয়টিতে প্রশাসকের ভূমিকা থাকে (যেমন, উন্নতমানের সাথে চলমান)।
পাওয়ারশেল ৪.০ এ আপনি আপনার স্ক্রিপ্টের শীর্ষে প্রয়োজনীয় ব্যবহার করতে পারেন :
#Requires -RunAsAdministrator
আউটপুট:
'মাইস্ক্রিপ্ট.পিএস 1' স্ক্রিপ্টটি চালানো যাবে না কারণ এতে প্রশাসক হিসাবে চলার জন্য "# প্রয়োজনীয়তা" বিবৃতি রয়েছে। বর্তমান উইন্ডোজ পাওয়ারশেল অধিবেশন প্রশাসক হিসাবে চলছে না। প্রশাসক হিসাবে রান করুন বিকল্পটি ব্যবহার করে উইন্ডোজ পাওয়ারশেল শুরু করুন এবং তারপরে আবার স্ক্রিপ্টটি চালানোর চেষ্টা করুন।
return
যদি ব্যবহারকারী প্রশাসক না হন তবে আপনি পারেন :)
#Requires -RunAsAdministrator
দরকারী: এটি যদি আপনি উন্নত না হন তবে এটি সম্পূর্ণ স্ক্রিপ্টটি চালানো থেকে বাধা দেয় ।