शक्तियों का उपयोग करके स्थानीय व्यवस्थापक समूह में उपयोगकर्ता को जोड़ना


16

मैं एक मशीन पर एक विशिष्ट उपयोगकर्ता को स्थानीय व्यवस्थापक समूह में जोड़ने के लिए PowerShell का उपयोग करना चाहूंगा। मैं एक उपयोगकर्ता के संदर्भ में PowerShell स्क्रिप्ट चला रहा हूँ जिसमें स्थानीय मशीन पर प्रशासन के अधिकार हैं।


[विंडोज स्थानीय खाता और समूह रखरखाव] [1] भी देखें। [१]: serverfault.com/questions/31058/…
नाथन हार्टले

जवाबों:


4

यह उन्नत फ़ंक्शन है जिसका उपयोग मैं कई कंप्यूटरों पर 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

20

सर्वर 2016 और Windows 10 संस्करण 1607 पर और बाद में आप नए PowerShell स्थानीय उपयोगकर्ता cmdlets का उपयोग कर सकते हैं:

Add-LocalGroupMember -Group Administrators -Member username

यह विंडोज मैनेजमेंट फ्रेमवर्क (WMF) 5.1 में जोड़ा गया था।

Microsoft.PowerShell.LocalAccountsमॉड्यूल 2012 R2 पर ठीक काम करता है अगर तुम सिर्फ एक में फ़ाइलों की प्रतिलिपि $env:PsModulePathस्थान।


1
सावधान रहें, समूह "प्रशासक" आपके लोकेल के आधार पर अलग-अलग कहे जा सकते हैं, जर्मन प्रणाली पर यह "प्रशासक" है।
पनकी

16

यहाँ एक सरल 2 लाइन स्क्रिप्ट है जो इस फ़ंक्शन को करती है

$group = [ADSI]("WinNT://"+$env:COMPUTERNAME+"/administrators,group")
$group.add("WinNT://$env:USERDOMAIN/usernameiwantoadd,user")

अधिक जानकारी के लिए देखें , स्क्रिप्टिंग गाइ! मैं स्थानीय समूह में डोमेन उपयोगकर्ता को जोड़ने के लिए Windows PowerShell का उपयोग कैसे कर सकता हूं?

तो कुछ नोट हैं। पहली पंक्ति में मैंने स्ट्रिंग संयोजन का उपयोग किया था, मुझे (अगली पंक्ति देखें) नहीं थी, लेकिन मुझे पसंद है क्योंकि यह उन चर को समझने में मदद करता है जो मैं उपयोग कर रहा हूं। दूसरा, ये लाइनें एक डोमेन उपयोगकर्ता को जोड़ देंगी, अगर आप एक स्थानीय उपयोगकर्ता को जोड़ना चाहते हैं तो बस हटा दें$env:USERDOMAIN/


मैं इस स्क्रिप्ट को वर्कस्टेशन पर इस तरह से चलाना चाहूंगा कि स्क्रिप्ट चलाने वाला व्यक्ति किसी यूज़रनेम में टाइप कर सके। इसलिए पढ़ें-मेजबान
रिहान मीज

1
तो उस मामले में पहली पंक्ति $ userInput = पढ़ें-होस्ट करें "स्थानीय व्यवस्थापक समूह में जोड़ने के लिए उपयोगकर्ता नाम दर्ज करें" फिर $ userinput का उपयोग करें जहां उपयोगकर्ता नाम लिखा है
जिम बी

0

यहाँ ऐसा करने का एक और तरीका है। इसे प्रशासक के संदर्भ में चलाने की आवश्यकता है:

$ डोमेन = ""
$ संगणना = "$ env: संगणना"
$ समूह = $ computer.psbase.children.find ( "प्रशासकों")

AddToGroup फ़ंक्शन ($ संख्या)
{
     $ group.add ("WinNT: //" + $ डोमेन + "/" + $ संख्या)
}

# इन डोमेन उपयोगकर्ताओं / समूहों को स्थानीय व्यवस्थापक समूह में जोड़ें
 AddToGroup ""
 AddToGroup ""

# इन डोमेन कंप्यूटर को स्थानीय व्यवस्थापक समूह में जोड़ें। 
# कंप्यूटर खाते हमेशा $ के साथ समाप्त होते हैं।
AddToGroup "$"

मेरी वेबसाइट पर अधिक जानकारी ।


0

खाता जोड़ना जो पहले से ही लक्ष्य सुरक्षा समूह में मौजूद है और त्रुटि उत्पन्न करता है, इसलिए आपको यह जांचने की आवश्यकता है कि क्या खाता पहले से ही जोड़ा गया है, हालांकि मेरी आवश्यकता पॉवरशेल 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यदि उपरोक्त कथन में उपयोग करने का श्रेय इस ब्लॉग पोस्ट को जाता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.