이 내용은 Technet의 PowerShell 내용을 참고로 내 나름대로 수정했다.

( https://gallery.technet.microsoft.com/scriptcenter/AD-and-hMailServer-account-638691e5 )


동작 방식은 Active Directory의 사용자를 순차적으로 읽어, hMailServer의 COM Object들을 이용해 넣는 방식이다.

PowerShell 로 구성했으며, 당연히 AD 접속이 가능하고, Remote Administrator 객체가 있어야 한다. 

또한 hMailServer가 설치된 서버에서만 동작한다.


Import-Module ActiveDirectory


$hm = New-Object -ComObject hMailServer.Application 
$hm.Authenticate("Administrator", "관리자암호") | Out-Null 
$hmdom = $hm.Domains.ItemByName("knoie.net") 

foreach($acc in $hmdom.Accounts)
{

    echo $acc.Address;

}


foreach($user in  (Get-ADUser -Filter * -Properties EmailAddress -SearchBase "OU=Users,DC=knoie,DC=net")) 
{ 
    $hmaccount = $null;
    $name = ""    
    $name = $user.Name
    $mail = $user.EmailAddress
    try 
    {
        $hmaccount = $hmdom.Accounts.ItemByAddress($mail)
    }
    catch
    {
        $hmaccount = $null;
    }


    if($hmaccount -eq $null)
    {
        $hmaccount = $hmdom.Accounts.Add();
        $hmaccount.ADUsername = $mail;        
        $hmaccount.ADDomain = "knoie.net"
        $hmaccount.Address = $mail
        $hmaccount.PersonLastName = $name;
        $hmaccount.PersonFirstName = "";
        $hmaccount.IsAD = $true;
        $hmaccount.Active = $true;
        $hmaccount.Save();

    }
    else
    {
        #echo $mail;
        #echo "NOT Exsist!";
    }
}


728x90

+ Recent posts