하기 경우는 컴퓨터 개체의 이름이 '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
0 comments:
Post a Comment