이 내용은 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