Wednesday, December 21, 2016

 

[Powershell] 컴퓨터/사용자 개체를 그룹핑 생성 및 삭제, 그룹마다 개체 수 조회

그룹 정책을 적용을 수월하기 위해서 사용자 혹은 컴퓨터 개체를 Security Group별로 관리 및 정책 적용하는 경우가 있는데요.. 그런 경우 일일이 그룹으로 추가하는 경우도 있지만 어느정도 해당 개체가 순차적으로(규칙성이 있다면) 생성이 된 경우에는 파워쉘 스크립트를 사용해서 옮기면 수월합니다.

하기 경우는 컴퓨터 개체의 이름이 'Computer0001~'으로 생성된 것을 가정하해 작성하였습니다.

1. 컴퓨터/사용자 개체 그룹핑 생성(+정상 반영을 위한 로그 만들기)

$today = get-date
$year = $today.year
$month = $today.month
$day = $today.day

$logdate = [string]$year+"-"+[string]$month+"-"+[string]$day

$TargetOU = "OU=Computers,DC=Contana,DC=Microsoft,DC=com"

$ComputerList = get-adcomputer -SearchBase $TargetOU -Filter * -searchScope Onelevel

Foreach ($Computer in $ComputerList)
{
  if($Computer.memberof -match "CN=Computer0*")
  {
  }
 
  Else
  {
    $vmnum=$Computer.Name.Substring(9,4) -as[int]
    $vmnum=$vmnum%3

    $fullname=$Computer.DistinguishedName
   
    switch($vmnum)
    {
"0"
{
add-adgroupmember -Identity GRP00 -member $fullname ;
$Computer.name + " ; " + "GRP00" | Out-File -Append -Filepath "D:\GROUP\$logdate Group_Log1.txt" ;
}

"1"
{
add-adgroupmember -Identity GRP01 -member $fullname ;
$Computer.name + " ; " + "GRP01" | Out-File -Append -Filepath "D:\GROUP\$logdate Group_Log1.txt" ;
}

"2"
{
add-adgroupmember -Identity GRP02 -member $fullname ;
$Computer.name + " ; " + "GRP02" | Out-File -Append -Filepath "D:\GROUP\$logdate Group_Log1.txt" ;
}

     }
 
    $vmnum = $NULL
  }

}



2. 컴퓨터/사용자 개체 그룹핑 삭제

아래와 같이 'GRP00'에 소속된 개체 정보를 삭제할 경우는 다음 쉘을 참고하면 됩니다.

Get-ADGroupMember "GRP00" | ForEach-Object {Remove-ADGroupMember "GRP00" $_ -Confirm:$false}



3. 컴퓨터/사용자 그룹핑 카운트
직관적인 스크립트인 쉘은 정말... 간단하다.. ㅎㅎㅎ

Number of Group Accounts
(Get-ADGroupMember "GRP00").count

#파워쉘 #powershell #shellscript #grouppolicy #securitygroup
Share:

0 comments:

Post a Comment