正在尝试使用powershell将域全局组添加到域中的远程计算机本地组

正在尝试使用powershell将域全局组添加到域中的远程计算机本地组,powershell,active-directory,perl-module,Powershell,Active Directory,Perl Module,我当前正在尝试将域全局组(Desktopgr)添加到本地组(Localgr)。 让我更详细地说明这一点: 我在一个域(GermanTool.com)中有一台machine2008服务器(LDAPCLIENT,ip 10.112.252.222)。 我有一个AD(Active directory)服务器(Vcenter,ip 10.112.252.218)。 GermanTool.com是AD服务器中唯一的域。 该域有许多全局组,其中一个是“Desktopgr”。 此组包含可以通过RDP登录到域中

我当前正在尝试将域全局组(Desktopgr)添加到本地组(Localgr)。 让我更详细地说明这一点: 我在一个域(GermanTool.com)中有一台machine2008服务器(LDAPCLIENT,ip 10.112.252.222)。 我有一个AD(Active directory)服务器(Vcenter,ip 10.112.252.218)。 GermanTool.com是AD服务器中唯一的域。 该域有许多全局组,其中一个是“Desktopgr”。 此组包含可以通过RDP登录到域中任何服务器的用户

通过GUI服务器管理工具,我可以将域全局组(Desktopgr)添加到计算机本地组(Localgr)的成员中 我已以域用户“GermanTool\rohit”和密码“%%”登录到LDAPCLIENT计算机

我已将该组从Localgr中删除。现在,我尝试编写一个Powershell脚本来实现同样的功能。 我已经作为域用户登录到LADPCLIENT计算机,两台计算机都可以从任意一侧ping,并且都在同一个域中

我运行我编写的脚本,但出现以下错误:

使用“1”参数调用“Add”时出现异常:“访问被拒绝

在C:\script\a.ps1:44 char:20


  • $LocalGroup.Add我建议使用组策略而不是脚本来执行此操作。不允许执行脚本的用户在计算机上修改本地组。也许您只需要以管理员身份运行脚本。@AnsgarWiechers,要求是自动化的,所以脚本.group策略只是另一种自动化n、 在大多数领域场景中,它可以提供更好的控制。您的业务需求是什么,即为什么您认为需要使用脚本执行此操作?至于管理员权限:如果启用了UAC,您需要以“管理员”身份显式运行脚本。
    #######################################################################
    
    #
    # File: Add2LocalGr.ps1
    # Purpose: Example of adding a Domain group to a Local group
    # Author: Rohit Basu
    # Date: 12/05/2013
    
    
    
    # Get List of Servers from Flat TXT file`Servers.txt`
    $Servers = Get-Content Servers.txt
    
    
    #GermanTool
    #"LDAP://ldap.company.com:389/$($dn)"
    #$credn = New-Object -TypeNam System.DirectoryServices.DirectoryEntry("LDAP://10.112.252.218:389/GermanTool","rohit","%%%%%")
    
    #Initaliaze the Domain Group Object
    $DomainGroup = [ADSI]"WinNT://10.112.252.218/Desktopgr,Group"
    #$DomainGroup = "$credn/Globalgroup,Group"
    
    #Name the LogFile and Initialize it
    $LogFile = ".\Logs\ServerLog.txt"
    New-Item $LogFile -type file -force
    
    ForEach ($Server in $Servers) #Loop through each server
    {
    $Server
    $Server>>$LogFile
    
    
    #Get Local Group object
    $LocalGroup = [ADSI]"WinNT://$Server/Localgr,Group"
    
    "Hi This is to see Localgroup">>$LogFile
    $LocalGroup.Path>>$LogFile
    "Hi This is to see Globalgroup">>$LogFile 
    $DomainGroup.Path>>$LogFile
    
    
    #Assign DomainGroup to LocalGroup
    $LocalGroup.Add($DomainGroup.Path)
    
    #Determine if command was successful
    If (!$?) #Add failed
    {
        $Server + " fail: " + $Error[0]>>$LogFile
        "">>$LogFile
    }
     Else #Add succeeded
     {
        $Server + " success">>$LogFile
        "">>$LogFile
        $Server + " success"
     }
    }
    #####################################################