2014-01-17 5 views

답변

1

이렇게해야합니다. 이 일

function Remove-DomainGroupFromLocalGroup { 
    [CmdletBinding()] 
    param (
      [Parameter(Mandatory = $true)] 
      [string] $LocalGroupName 
     , [Parameter(Mandatory = $true)] 
      [string] $DomainGroupName 
    ) 
    begin { 
     Add-Type -AssemblyName System.DirectoryServices.AccountManagement; 
    } 
    process { 
     $LocalContext = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList ([System.DirectoryServices.AccountManagement.ContextType]::Machine); 
     $DomainContext = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList ([System.DirectoryServices.AccountManagement.ContextType]::Domain); 

     $GroupPrincipal = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($LocalContext, [System.DirectoryServices.AccountManagement.IdentityType]::Name, $GroupName); 
     $GroupToRemove = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($DomainContext, [System.DirectoryServices.AccountManagement.IdentityType]::Name, $Remove); 

     if ($GroupToRemove) { 
      $GroupPrincipal.Members.Remove($GroupToRemove); 
      $GroupPrincipal.Save(); 
     } 
    } 
} 

Remove-DomainGroupFromLocalGroup -LocalGroupName Administrators -DomainGroupName TestGroup; 
+0

감사 @trevor :

$GroupName = 'test'; $Adsi = [adsi]'WinNT://localhost'; $Adsi.Delete('group', $GroupName); 

다음 코드를 참조 로컬 보안 그룹에서 도메인 그룹을 삭제합니다. 대단히 감사합니다 ... –

+0

환영합니다 :) 변수 값을 대체하는 것을 잊어 버렸기 때문에 코드를 수정했습니다. –

+0

그룹이 관리자 그룹 인 경우 ??? –

관련 문제