हाल ही में Microsoft ने Windows स्थानीय उपयोगकर्ताओं और समूहों को प्रबंधित करने के लिए एक मानक PowerShell मॉड्यूल जोड़ा है जिसे Microsoft.PowerShell.LocalAccounts कहा जाता है। पहले आपको इस मॉड्यूल को मैन्युअल रूप से डाउनलोड करके PowerShell में आयात करना पड़ता था। अब LocalAccounts मॉड्यूल Windows Server 2016 और Windows 10 में PowerShell 5.1 के हिस्से के रूप में डिफ़ॉल्ट रूप से उपलब्ध है। पुराने Windows संस्करणों में इसका उपयोग करने के लिए, आपको Windows Management Framework 5.1 स्थापित करना होगा।
LocalAccounts PowerShell मॉड्यूल
LocalAccounts मॉड्यूल में 15 cmdlets हैं। आप मॉड्यूल cmdlets की पूरी सूची इस प्रकार प्रदर्शित कर सकते हैं:
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 स्थानीय उपयोगकर्ताओं को कैसे प्रबंधित करें?
Windows में मौजूदा स्थानीय उपयोगकर्ताओं की सूची प्रदर्शित करें:
Get-LocalUser

जैसा कि आप देख सकते हैं, कंप्यूटर पर 6 स्थानीय उपयोगकर्ता खाते हैं, और उनमें से 4 अक्षम हैं (Enabled=False)।
एक स्थानीय खाते के सभी गुण प्रदर्शित करने के लिए (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 आपको निम्न प्रकार के खाते बनाने की अनुमति देता है:
- Windows स्थानीय खाते;
- Microsoft खाते;
- Azure AD खाते।
New-LocalUser cmdlet के साथ उपयोगकर्ता खाता बनाते समय, आप पासवर्ड को Password तर्क के रूप में सादे पाठ में निर्दिष्ट नहीं कर सकते। आपको पासवर्ड को इंटरैक्टिव रूप से अनुरोध करना होगा और इसे पहले से सुरक्षित स्ट्रिंग में परिवर्तित करना होगा:
$UserPassword = Read-Host –AsSecureString
या PoSh कंसोल में सीधे पासवर्ड निर्दिष्ट करें:
$UserPassword = ConvertTo-SecureString "H1PH0Ppa$$" -AsPlainText -Force
New-LocalUser John -Password $UserPassword -FullName "Johh Lennon" -Description "रिमोट एक्सेस के लिए स्थानीय खाता"
AD डोमेन में उपयोगकर्ता बनाने के लिए, New-ADUser cmdlet का उपयोग करें।
उपयोगकर्ता का पासवर्ड बदलने के लिए, LocalUser cmdlet का उपयोग करें (हम मानते हैं कि आपने पहले से नए पासवर्ड को SecureString में परिवर्तित कर लिया है):
Set-LocalUser -Name john -Password $UserPassword –Verbose

"पासवर्ड कभी समाप्त नहीं होता" फ्लैग सेट करने के लिए, यह कमांड चलाएं:
Set-LocalUser -Name john –PasswordNeverExpires $False
जैसा कि आप देख सकते हैं, AD उपयोगकर्ता ऑब्जेक्ट गुणों को प्रबंधित करते समय आपको UserAccountControl मान को परिवर्तित करने की आवश्यकता नहीं है।
याद रखें कि आप अपने Microsoft खाते का उपयोग करके Windows 10 में लॉगिन कर सकते हैं। यदि आपको Microsoft खाते में एक नया उपयोगकर्ता लॉगिन बनाना है, तो यह कमांड चलाएं। (कृपया ध्यान दें कि आपको खाता पासवर्ड निर्दिष्ट करने की आवश्यकता नहीं है क्योंकि यह Microsoft में संग्रहीत है।)
New-LocalUser -Name "MicrosoftAccount\woshub@outlook.com" -Description "यह एक Microsoft खाता है"
अपने Azure AD खाते से संबंधित एक स्थानीय खाता बनाने के लिए (उदाहरण के लिए, आप Office 365 का उपयोग कर रहे हैं), निम्न कमांड चलाएं:
New-LocalUser -Name "AzureAD\admin@woshub.com" -Description "यह एक Azure AD खाता है"
एक स्थानीय उपयोगकर्ता को हटाने के लिए:
Remove-LocalUser -Name john -Verbose
PowerShell का उपयोग करके Windows स्थानीय समूहों को कैसे प्रबंधित करें?
अब अपने कंप्यूटर पर स्थानीय समूहों की सूची प्रदर्शित करें:
Get-LocalGroup

एक नया समूह बनाएं:
New-LocalGroup -Name RemoteSupport -Description 'रिमोट सपोर्ट समूह'
नए समूह में कुछ स्थानीय खाते और स्थानीय प्रशासकों का समूह जोड़ें:
Add-LocalGroupMember -Group 'RemoteSupport' -Member ('john','root','Administrators') -Verbose
सुझाव। AD डोमेन समूहों में उपयोगकर्ताओं को बनाने, हटाने या जोड़ने के बारे में PowerShell का उपयोग करके Active Directory समूहों के प्रबंधन लेख में पाया जा सकता है।
यदि आपका कंप्यूटर AD डोमेन से जुड़ा है, तो आप अपने स्थानीय समूह में डोमेन खातों और समूहों को जोड़ सकते हैं। ऐसा करने के लिए, उन्हें निम्न प्रारूप में निर्दिष्ट करें: DomainName\jonhl या DomainName\'domain admins'।

आप पाइपलाइन का उपयोग करके किसी उपयोगकर्ता को समूहों में भी जोड़ सकते हैं (हम एक उपयोगकर्ता को स्थानीय प्रशासक समूह में जोड़ेंगे):
Get-Localuser -Name john | Add-LocalGroupMember -Group 'Administrators'
एक स्थानीय समूह में उपयोगकर्ताओं की सूची प्रदर्शित करें:
Get-LocalGroupMember -Group 'RemoteSupport'
जैसा कि आप देख सकते हैं, हम केवल स्थानीय खातों का उपयोग कर रहे हैं (PrincipalSource - Local)। हालांकि, डोमेन खाते (डोमेन), 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"