সম্প্রতি Microsoft Windows স্থানীয় ব্যবহারকারীদের এবং Microsoft.PowerShell.LocalAccounts নামে গোষ্ঠীগুলি পরিচালনা করার জন্য একটি স্ট্যান্ডার্ড পাওয়ারশেল মডিউল যুক্ত করেছে . আগে আপনাকে এই মডিউলটিকে পাওয়ারশেলে ম্যানুয়ালি ডাউনলোড করে আমদানি করতে হতো। এখন LocalAccounts মডিউল Windows Server 2016 এবং Windows 10-এ PowerShell 5.1-এর অংশ হিসাবে ডিফল্টরূপে উপলব্ধ। পূর্ববর্তী উইন্ডোজ সংস্করণে এটি ব্যবহার করতে, আপনাকে অবশ্যই উইন্ডোজ ম্যানেজমেন্ট ফ্রেমওয়ার্ক 5.1 ইনস্টল করতে হবে।
স্থানীয় অ্যাকাউন্টস পাওয়ারশেল মডিউল
LocalAccounts মডিউলে 15 cmdlet আছে। আপনি নিম্নরূপ মডিউল cmdlet এর সম্পূর্ণ তালিকা প্রদর্শন করতে পারেন:
Get-Command -Module Microsoft.PowerShell.LocalAccounts
Add-LocalGroupMember
- একটি স্থানীয় গ্রুপে একজন ব্যবহারকারী যোগ করুন;Disable-LocalUser
- একটি স্থানীয় ব্যবহারকারী অ্যাকাউন্ট নিষ্ক্রিয় করুন;Enable-LocalUser
- একটি অ্যাকাউন্ট সক্রিয় (আনলক) করুন;Get-LocalGroup
- একটি স্থানীয় গ্রুপ সম্পর্কে তথ্য পান;Get-LocalGroupMember
- একটি স্থানীয় গ্রুপে ব্যবহারকারীদের তালিকা প্রদর্শন করুন;Get-LocalUser
- একজন স্থানীয় ব্যবহারকারী সম্পর্কে তথ্য দেখান;New-LocalGroup
- একটি নতুন স্থানীয় গ্রুপ তৈরি করুন;New-LocalUser
- একটি স্থানীয় ব্যবহারকারী তৈরি করুন;Remove-LocalGroup
- একটি স্থানীয় গ্রুপ মুছে ফেলুন;Remove-LocalGroupMember
- স্থানীয় গ্রুপ থেকে একজন সদস্যকে সরিয়ে দিন;Remove-LocalUser
- একটি স্থানীয় ব্যবহারকারী মুছুন;Rename-LocalGroup
- একটি স্থানীয় গ্রুপের নাম পরিবর্তন করুন;Rename-LocalUser
- একজন ব্যবহারকারীর নাম পরিবর্তন করুন;Set-LocalGroup
- গ্রুপ সেটিংস পরিবর্তন করুন;Set-LocalUser
– ব্যবহারকারীর সেটিংস পরিবর্তন করুন।
Windows 10 চলমান কম্পিউটারে LocalAccounts মডিউলের PowerShell cmdlets ব্যবহার করে স্থানীয় ব্যবহারকারী বা গোষ্ঠীগুলি পরিচালনা করার জন্য কিছু সাধারণ কাজ বিবেচনা করা যাক।
কিভাবে PowerShell দিয়ে Windows স্থানীয় ব্যবহারকারীদের পরিচালনা করবেন?
উইন্ডোজে বিদ্যমান স্থানীয় ব্যবহারকারীদের তালিকা প্রদর্শন করুন:
Get-LocalUser
আপনি দেখতে পাচ্ছেন, কম্পিউটারে 6টি স্থানীয় ব্যবহারকারী অ্যাকাউন্ট রয়েছে এবং তাদের মধ্যে 4টি নিষ্ক্রিয় (সক্ষম=মিথ্যা)।
একটি স্থানীয় অ্যাকাউন্টের সমস্ত বৈশিষ্ট্য প্রদর্শন করতে (AD ডোমেন ব্যবহারকারীদের সম্পর্কে তথ্য প্রদর্শন করতে ব্যবহৃত Get-ADUser cmdlet এর মতো), এই কমান্ডটি চালান:
Get-LocalUser -Name root | Select-Object *
AccountExpires :
Description :
Enabled : True
FullName :
PasswordChangeableDate : 3/12/2019 10:14:29 PM
PasswordExpires :
UserMayChangePassword : True
PasswordRequired : False
PasswordLastSet : 3/11/2019 10:14:29 PM
LastLogon : 3/11/2019 4:18:17 PM
Name : root
SID : S-1-5-21-2605456602-2293283241-3832290805-1001
PrincipalSource : Local
ObjectClass : User
নির্দিষ্ট ব্যবহারকারীর বৈশিষ্ট্য পেতে, যেমন শেষ পাসওয়ার্ড পরিবর্তনের তারিখ, এই কমান্ডটি চালান:
Get-LocalUser -Name root | Select-Object PasswordLastSet
New-LocalUser cmdlet দিয়ে একটি নতুন স্থানীয় ব্যবহারকারী তৈরি করা যাক। এই cmdlet আপনাকে নিম্নলিখিত ধরনের অ্যাকাউন্ট তৈরি করতে দেয়:
- উইন্ডোজ স্থানীয় অ্যাকাউন্ট;
- মাইক্রোসফ্ট অ্যাকাউন্ট;
- Azure AD অ্যাকাউন্ট।
New-LocalUser cmdlet দিয়ে একটি ব্যবহারকারীর অ্যাকাউন্ট তৈরি করার সময়, আপনি পাসওয়ার্ড আর্গুমেন্ট হিসাবে প্লেইন টেক্সটে ব্যবহারকারীর পাসওয়ার্ড নির্দিষ্ট করতে পারবেন না। আপনাকে অবশ্যই ইন্টারেক্টিভভাবে পাসওয়ার্ডের অনুরোধ করতে হবে এবং এটিকে আগে থেকেই সুরক্ষিত স্ট্রিংয়ে রূপান্তর করতে হবে:
$UserPassword = Read-Host –AsSecureString
অথবা পাসওয়ার্ডটি সরাসরি PoSh কনসোলে উল্লেখ করুন:
$UserPassword = ConvertTo-SecureString "H1PH0Ppa$$" -AsPlainText -Force
New-LocalUser John -Password $UserPassword -FullName "Johh Lennon" -Description "Local Account for Remote Access"
ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করতে, LocalUser cmdlet ব্যবহার করুন (আমরা মনে করি আপনি ইতিমধ্যেই SecureString-এ নতুন পাসওয়ার্ড রূপান্তর করেছেন):
Set-LocalUser -Name john -Password $UserPassword –Verbose
"পাসওয়ার্ড কখনই মেয়াদোত্তীর্ণ হয় না" পতাকা সেট করতে, এই কমান্ডটি চালান:
Set-LocalUser -Name john –PasswordNeverExpires $False
আপনি দেখতে পাচ্ছেন, AD ব্যবহারকারী অবজেক্ট বৈশিষ্ট্যগুলি পরিচালনা করার সময় আপনাকে UserAccountControl মান রূপান্তর করতে হবে না।
আপনার মনে আছে, আপনি আপনার Microsoft অ্যাকাউন্ট ব্যবহার করে Windows 10 লগইন করতে পারেন। যদি আপনাকে একটি মাইক্রোসফ্ট অ্যাকাউন্টে একটি নতুন ব্যবহারকারী লগইন তৈরি করতে হয় তবে এই কমান্ডটি চালান। (অনুগ্রহ করে মনে রাখবেন যে আপনার অ্যাকাউন্টের পাসওয়ার্ড নির্দিষ্ট করার প্রয়োজন নেই যেহেতু এটি Microsoft-এ সংরক্ষিত আছে।)
New-LocalUser -Name "MicrosoftAccount\[email protected]" -Description "This is a Microsoft account"
আপনার Azure AD অ্যাকাউন্টের সাথে সম্পর্কিত একটি স্থানীয় অ্যাকাউন্ট তৈরি করতে (উদাহরণস্বরূপ, আপনি Office 365 ব্যবহার করছেন), নিম্নলিখিত কমান্ডটি চালান:
New-LocalUser -Name "AzureAD\[email protected]" -Description " This is an Azure AD account"
স্থানীয় ব্যবহারকারীকে অপসারণ করতে:
Remove-LocalUser -Name john -Verbose
পাওয়ারশেল ব্যবহার করে উইন্ডোজ স্থানীয় গ্রুপগুলি কীভাবে পরিচালনা করবেন?
এখন আপনার কম্পিউটারে স্থানীয় গ্রুপের তালিকা প্রদর্শন করুন:
Get-LocalGroup
একটি নতুন গ্রুপ তৈরি করুন:
New-LocalGroup -Name RemoteSupport -Description 'Remote Support Group'
নতুন গ্রুপে কিছু স্থানীয় অ্যাকাউন্ট এবং স্থানীয় প্রশাসকদের গ্রুপ যোগ করুন:
Add-LocalGroupMember -Group 'RemoteSupport' -Member ('john','root','Administrators') -Verbose
যদি আপনার কম্পিউটার AD ডোমেনে যোগদান করে, আপনি আপনার স্থানীয় গ্রুপে ডোমেন অ্যাকাউন্ট এবং গ্রুপ যোগ করতে পারেন। এটি করার জন্য, সেগুলিকে নিম্নলিখিত ফর্ম্যাটে উল্লেখ করুন:ডোমেননাম \'ডোমেন অ্যাডমিনস'।
এছাড়াও আপনি নিম্নলিখিত পাইপলাইন ব্যবহার করে গোষ্ঠীতে একজন ব্যবহারকারীকে যুক্ত করতে পারেন (আমরা স্থানীয় প্রশাসক গোষ্ঠীতে একজন ব্যবহারকারীকে যুক্ত করব):
Get-Localuser -Name john | Add-LocalGroupMember -Group 'Administrators'
একটি স্থানীয় গ্রুপে ব্যবহারকারীদের তালিকা প্রদর্শন করুন:
Get-LocalGroupMember -Group 'RemoteSupport'
আপনি দেখতে পাচ্ছেন, আমরা শুধুমাত্র স্থানীয় অ্যাকাউন্ট ব্যবহার করছি (প্রিন্সিপাল সোর্স - স্থানীয়)। যাইহোক, ডোমেইন অ্যাকাউন্ট (ডোমেন), Microsoft অ্যাকাউন্ট (MicrosoftAccount) বা Azure অ্যাকাউন্ট (AzureAD)ও ব্যবহার করা যেতে পারে।
গোষ্ঠীগুলির তালিকা প্রদর্শন করতে, একজন নির্দিষ্ট ব্যবহারকারী যার সদস্য, আপনাকে কম্পিউটারে প্রতিটি স্থানীয় গ্রুপ পরীক্ষা করতে হবে:
foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member john –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}
একটি গোষ্ঠী থেকে একজন ব্যবহারকারীকে সরাতে, এই কমান্ডটি চালান:
Remove-LocalGroupMember -Group 'RemoteSupport' –Member john
দূরবর্তী কম্পিউটারে স্থানীয় ব্যবহারকারীদের পরিচালনা করতে, WinRM ব্যবহার করে এটির সাথে সংযোগ করুন এবং Invoke-Command বা Enter-PSSession cmdlets ব্যবহার করুন৷
উদাহরণস্বরূপ, আপনাকে দূরবর্তী কম্পিউটারগুলিতে স্থানীয় গ্রুপে অ্যাকাউন্টগুলির একটি তালিকা তৈরি করতে হবে:
$winrm_ssn = new-pssession -computer Lon-Srv01,Lon-Srv02,Lon-Srv03
invoke-command -scriptblock {Get-LocalGroupMember -Group 'RemoteSupport'} -session $winrm_ssn -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"