मैं एक मशीन पर एक विशिष्ट उपयोगकर्ता को स्थानीय व्यवस्थापक समूह में जोड़ने के लिए PowerShell का उपयोग करना चाहूंगा। मैं एक उपयोगकर्ता के संदर्भ में PowerShell स्क्रिप्ट चला रहा हूँ जिसमें स्थानीय मशीन पर प्रशासन के अधिकार हैं।
मैं एक मशीन पर एक विशिष्ट उपयोगकर्ता को स्थानीय व्यवस्थापक समूह में जोड़ने के लिए PowerShell का उपयोग करना चाहूंगा। मैं एक उपयोगकर्ता के संदर्भ में PowerShell स्क्रिप्ट चला रहा हूँ जिसमें स्थानीय मशीन पर प्रशासन के अधिकार हैं।
जवाबों:
यह उन्नत फ़ंक्शन है जिसका उपयोग मैं कई कंप्यूटरों पर Powershell का उपयोग करके स्थानीय व्यवस्थापक समूह में उपयोगकर्ताओं को जोड़ने के लिए करता हूं।
उपयोग: Get-Content C: \ Computers.txt | सेट-स्थानीय AdGGGMMbership -Account 'YourAccount'
Function Global:Set-LocalAdminGroupMembership
{
<#
.Synopsis
.Description
.Parameter $ComputerName,
.Example
PS> Set-LocalAdminGroupMembership -ComputerName $ComputerName -Account 'YourAccount'
.Link
about_functions
about_functions_advanced
about_functions_advanced_methods
about_functions_advanced_parameters
.Notes
NAME: Set-LocalAdminGroupMembership
AUTHOR: Innotask.com\dmiller
LASTEDIT: 2/4/2010 2:30:05 PM
#Requires -Version 2.0
#>
[CmdletBinding()]
param(
[Parameter(Position=0, ValueFromPipeline=$true)]
$ComputerName = '.',
[Parameter(Position=1, Mandatory=$true)]
$Account
)
Process
{
if($ComputerName -eq '.'){$ComputerName = (get-WmiObject win32_computersystem).Name}
$ComputerName = $ComputerName.ToUpper()
$Domain = $env:USERDNSDOMAIN
if($Domain){
$adsi = [ADSI]"WinNT://$ComputerName/administrators,group"
$adsi.add("WinNT://$Domain/$Account,group")
}else{
Write-Host "Not connected to a domain." -foregroundcolor "red"
}
}# Process
}# Set-LocalAdminGroupMembership
सर्वर 2016 और Windows 10 संस्करण 1607 पर और बाद में आप नए PowerShell स्थानीय उपयोगकर्ता cmdlets का उपयोग कर सकते हैं:
Add-LocalGroupMember -Group Administrators -Member username
यह विंडोज मैनेजमेंट फ्रेमवर्क (WMF) 5.1 में जोड़ा गया था।
Microsoft.PowerShell.LocalAccounts
मॉड्यूल 2012 R2 पर ठीक काम करता है अगर तुम सिर्फ एक में फ़ाइलों की प्रतिलिपि $env:PsModulePath
स्थान।
यहाँ एक सरल 2 लाइन स्क्रिप्ट है जो इस फ़ंक्शन को करती है
$group = [ADSI]("WinNT://"+$env:COMPUTERNAME+"/administrators,group")
$group.add("WinNT://$env:USERDOMAIN/usernameiwantoadd,user")
अधिक जानकारी के लिए देखें , स्क्रिप्टिंग गाइ! मैं स्थानीय समूह में डोमेन उपयोगकर्ता को जोड़ने के लिए Windows PowerShell का उपयोग कैसे कर सकता हूं?
तो कुछ नोट हैं। पहली पंक्ति में मैंने स्ट्रिंग संयोजन का उपयोग किया था, मुझे (अगली पंक्ति देखें) नहीं थी, लेकिन मुझे पसंद है क्योंकि यह उन चर को समझने में मदद करता है जो मैं उपयोग कर रहा हूं। दूसरा, ये लाइनें एक डोमेन उपयोगकर्ता को जोड़ देंगी, अगर आप एक स्थानीय उपयोगकर्ता को जोड़ना चाहते हैं तो बस हटा दें$env:USERDOMAIN/
यहाँ ऐसा करने का एक और तरीका है। इसे प्रशासक के संदर्भ में चलाने की आवश्यकता है:
$ डोमेन = "" $ संगणना = "$ env: संगणना" $ समूह = $ computer.psbase.children.find ( "प्रशासकों") AddToGroup फ़ंक्शन ($ संख्या) { $ group.add ("WinNT: //" + $ डोमेन + "/" + $ संख्या) } # इन डोमेन उपयोगकर्ताओं / समूहों को स्थानीय व्यवस्थापक समूह में जोड़ें AddToGroup "" AddToGroup "" # इन डोमेन कंप्यूटर को स्थानीय व्यवस्थापक समूह में जोड़ें। # कंप्यूटर खाते हमेशा $ के साथ समाप्त होते हैं। AddToGroup "$"
मेरी वेबसाइट पर अधिक जानकारी ।
खाता जोड़ना जो पहले से ही लक्ष्य सुरक्षा समूह में मौजूद है और त्रुटि उत्पन्न करता है, इसलिए आपको यह जांचने की आवश्यकता है कि क्या खाता पहले से ही जोड़ा गया है, हालांकि मेरी आवश्यकता पॉवरशेल v2.0 के लिए पिछड़ी संगत होनी चाहिए
नीचे स्निपेट है जिसका उपयोग मैं स्थानीय प्रशासकों के समूह में एक उपयोगकर्ता को जोड़ने के लिए करता हूं जो कि 2016 से पहले Windows सर्वर के लिए PowerShell के पुराने संस्करणों पर काम करता है। कोड उदाहरण स्थानीय IIS समूह के लिए कस्टम IIS AppPool पहचान के लिए उपयोग किया गया एक सेवा खाता जोड़ता है।
$appPoolIdentity = "DOMAIN\svc-acc-name"
# check if user is already member of the local administrators group - using case insensitive string comparison
if(((invoke-command {net localgroup administrators}) -match ($appPoolIdentity -replace '\\','\\')).Count -eq 0){
Write-Host "The app pool identity user '$appPoolIdentity' is not found in the local 'Administrators' group."
# add user to the local administrators group
$adminGroup = [ADSI]("WinNT://$env:COMPUTERNAME/administrators,group")
$adminGroup.Add("WinNT://$appPoolIdentity,user")
Write-Warning "Added '$appPoolIdentity' to the local 'Administrators' group."
}else{
Write-Host "The app pool identity user '$appPoolIdentity' is already member of local 'Administrators' group."
}
net localgroup administrators
यदि उपरोक्त कथन में उपयोग करने का श्रेय इस ब्लॉग पोस्ट को जाता है ।