$list = @()

$Groups = get-adgroup -filter * -Searchbase "OU Path"

foreach ($Group in $Groups){

    $members = get-adgroupmember -identity $group 

    foreach ($member in $members){

        if($member.objectClass -eq "User"){

            $item = new-object PSObject

            $item | Add-member -name 'GroupID' -value $group.name -MemberType NoteProperty

            $item | Add-member -name 'Member' -value $member.samaccountname -MemberType NoteProperty

            $list += $item

        }

    }

}

 

$list | export-csv "C:\GroupsAndUsers.csv" -NoTypeInformation


1. AD OU 조회

Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=TEST,OU=TESTROOT,DC=test,DC=com' | ft Name,objectGUID

 

2. 출력한 엑셀을 저장할 폴더 저장

 

3. AD OU 조회 한 내용을 엑셀로 출력

Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=TEST,OU=TESTROOT,DC=test,DC=com' | Select-Object Name,objectGUID | export-csv c:\test\test.csv -NoTypeInformation -Encoding UTF8

 

4. 생성 된 csv 파일을 xlsx 파일로 변환

 

5. 문자열조합을 활용하여 아래와 같은 형태의 명령어를 생성

Remove-ADOrganizationalUnit -Identity 'a8ea9646-b306-4a5b-b8b6-d329f8b22fab' -confirm:$false

 

6. 필터 활용하여 데이터 분류


Function Test-ADAuthentication {

    param($username,$password)

    (new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null

}

 

PS C:\> Test-ADAuthentication "dom\myusername" "mypassword"

True



$photo = [byte[]](Get-Content C:\test3.jpg -Encoding byte)

Set-ADUser TestUser1 -Replace @{thumbnailPhoto=$photo}

 

TestUser1 변경할 사용자의 cn

 

C:\test3.jpg 변경할 사진의 경로

(사진이 AD서버에 있어야함.)

 

삭제 Shell

set-ADUser "username" -clear thumbnailphoto


AD서버접속 > 제어판 > 관리도구 > 그룹정책관리 실행

도메인 > 도메인명 > Default Domain Policy 오른쪽 클릭 > 편집




컴퓨터 구성 > 정책 > Windows 설정 > 보안 설정 > 계정 정책 > 암호 정책



다음과 같이 변경




암호는 복잡성을 만족해야 함 : 사용자의 비밀번호에 특수문자가 포함되어야 함

최근 암호 기억 : 이전에 사용한 암호의 경우는 다시 사용할 수 없음.

최대 암호 사용 기간 : 해당 일자가 지난 후에는 만료되어 비밀번호를 변경해야 함

최소 암호 길이 : 최소한의 암호 길이


No

Subject

Script Type

Exchange PowerShell Script

1

메일주소 정책 업데이트 제거(그룹)

Exchange PowerShell

Get-DistributionGroup -ResultSize unlimited | Set-DistributionGroup -EmailAddressPolicyEnabled:$false

2

메일주소 정책 업데이트 제거(사용자)

Exchange PowerShell

Get-Mailbox -ResultSize unlimited | Set-Mailbox -EmailAddressPolicyEnabled:$false

3

메일그룹 이름 변경

AD PowerShell

rename-adobject -identity (get-adgroup '기존이름').distinguishedname -newname '신규이름'

4

메일그룹 주요정보 변경

Exchange PowerShell

Get-DistributionGroup '기존이름' | Set-DistributionGroup -SamAccountName '신규이름' -EmailAddresses '신규이름@test.com' -alias '신규이름'

5

사용자 이름 변경

AD PowerShell

rename-adobject -identity (get-aduser '기존이름').distinguishedname -newname '신규이름'

6

사용자 주요 정보 변경

Exchange PowerShell

Get-Mailbox -Identity '기존이름' | Set-Mailbox -Alias '신규이름' -SamAccountName '신규이름' -UserPrincipalName 'A_001@test.com'


Get-ADUser -Filter * -SearchBase "OU=users, DC=test, DC=com" | Set-ADAccountPassword -Reset -NewPassword (Read-Host -AsSecureString -Prompt "NewPassword")


해당 OU에 있는 사용자의 비밀번호가 NewPassword 로 강제 변경된다.

Get-ADUser -SearchBase "OU=IMSI,DC=TEST,DC=COM" -Filter * -Properties * | Select-Object SamAccountName, DisplayName | export-csv c:\test\test.csv -NoTypeInformation -Encoding UTF8

: 해당 OU를 기준으로 사용자를 조회하여 SamAccountName 과 DisplayName 을 추출하여 c:\test\test.csv 로 csv 파일을 export 한다.
특정 사용자를 지정하거나, 다른 원하는 프로퍼티를 지정하여 출력할 수 있다.

Get-Mailbox '사서함을 지닌 사용자' | Add-MailBoxPermission -User '권한을 부여할 사용자' -Accessright Fullaccess
: 해당 명령어를 통해 특정 사용자의 사서함을 FullAccess 권한을 지닌 사용자가 열어볼 수 있다.


전체 사용자에 대해 FullAccess 를 부여하고 싶은 경우는

Get-Mailbox -ResultSize Unlimited | Add-MailboxPermission  -User '권한을 부여할 사용자' -Accessright Fullaccess

AD 프로퍼티 중 DisplayNamePrintable 값을 설정하면

조직 외부에 메일을 발송할 경우에는 DisplayNamePrintable 로
내부에 발송할 때는 기존 DisplayName 프로퍼티로 보임.

+ Recent posts