हाल ही में माइक्रोसॉफ्ट ने विंडोज स्थानीय उपयोगकर्ताओं और समूहों को प्रबंधित करने के लिए एक मानक पावरशेल मॉड्यूल जोड़ा है जिसे Microsoft.PowerShell.LocalAccounts कहा जाता है। . पहले आपको इस मॉड्यूल को पावरशेल में मैन्युअल रूप से डाउनलोड और आयात करना पड़ता था। अब लोकलअकाउंट्स मॉड्यूल विंडोज सर्वर 2016 और विंडोज 10 में पॉवरशेल 5.1 के हिस्से के रूप में डिफ़ॉल्ट रूप से उपलब्ध है। इसे पुराने Windows संस्करणों में उपयोग करने के लिए, आपको Windows Management Framework 5.1 स्थापित करना होगा।
स्थानीय खाता पावरशेल मॉड्यूल
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 का उपयोग करके स्थानीय उपयोगकर्ताओं या समूहों को प्रबंधित करने के लिए कुछ विशिष्ट कार्यों पर विचार करें।
Windows स्थानीय उपयोगकर्ताओं को PowerShell से कैसे प्रबंधित करें?
विंडोज़ में मौजूदा स्थानीय उपयोगकर्ताओं की सूची प्रदर्शित करें:
Get-LocalUser
जैसा कि आप देख सकते हैं, कंप्यूटर पर 6 स्थानीय उपयोगकर्ता खाते हैं, और उनमें से 4 अक्षम हैं (सक्षम=गलत)।
स्थानीय खाते के सभी गुणों को प्रदर्शित करने के लिए (एडी डोमेन उपयोगकर्ताओं के बारे में जानकारी प्रदर्शित करने के लिए प्रयुक्त गेट-एडीयूसर सीएमडीलेट के समान), यह आदेश चलाएं:
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 स्थानीय खाते;
- माइक्रोसॉफ्ट खाते;
- 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
जैसा कि आप देख सकते हैं, आपको UserAccountControl मान को AD उपयोगकर्ता ऑब्जेक्ट गुणों को प्रबंधित करते समय बदलने की आवश्यकता नहीं है।
जैसा कि आपको याद है, आप अपने Microsoft खाते का उपयोग करके Windows 10 लॉगिन कर सकते हैं। यदि आपको Microsoft खाते में एक नया उपयोगकर्ता लॉगिन बनाना है, तो इस कमांड को चलाएँ। (कृपया ध्यान दें कि आपको खाता पासवर्ड निर्दिष्ट करने की आवश्यकता नहीं है क्योंकि यह 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
PowerShell का उपयोग करके Windows स्थानीय समूहों को कैसे प्रबंधित करें?
अब अपने कंप्यूटर पर स्थानीय समूहों की सूची प्रदर्शित करें:
Get-LocalGroup
एक नया समूह बनाएं:
New-LocalGroup -Name RemoteSupport -Description 'Remote Support Group'
कुछ स्थानीय खाते और स्थानीय व्यवस्थापकों के समूह को नए समूह में जोड़ें:
Add-LocalGroupMember -Group 'RemoteSupport' -Member ('john','root','Administrators') -Verbose
यदि आपका कंप्यूटर AD डोमेन से जुड़ा है, तो आप अपने स्थानीय समूह में डोमेन खाते और समूह जोड़ सकते हैं। ऐसा करने के लिए, उन्हें निम्न प्रारूप में निर्दिष्ट करें:DomainName\jonhl या DomainName\'डोमेन व्यवस्थापक'।
आप निम्न पाइपलाइन का उपयोग करके एक उपयोगकर्ता को समूहों में भी जोड़ सकते हैं (हम एक उपयोगकर्ता को स्थानीय व्यवस्थापक समूह में जोड़ देंगे):
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"