이 글에서는 Active Directory(AD)의 데이터를 기반으로 Outlook 2010/2013에서 사용자 서명을 자동으로 생성하는 방법을 소개합니다. 고려할 시나리오는 다음과 같습니다. 새 도메인 사용자가 워크스테이션에 처음 로그온하면 PowerShell 스크립트가 자동으로 실행되어, Active Directory에서 가져온 연락처 정보를 포함한 Outlook 사용자 서명 파일을 생성합니다.
이 스크립트가 올바르게 작동하려면 AD의 모든 사용자 계정에 필요한 속성 값이 채워져 있어야 합니다. 이 예제에서는 사용자 서명에 다음과 같은 Active Directory 속성을 사용합니다:
- 사용자 전체 이름 (이 예제에서는 Description 속성에 저장)
- 직책 (Title)
- 회사명 (Company)
- 우편번호, 도시, 상세 주소 (PostalCode, City, StreetAddress)
- 전화번호 (OfficePhone)
- 이메일 (Mail)
- 웹사이트 (Homepage)

1. 서명 템플릿 파일 만들기
Outlook용 서명 템플릿 파일 3개를 htm(HTML), rtf(Rich Text), txt(일반 텍스트) 형식으로 각각 만들어야 합니다. 이 파일들의 디자인, 내용, 외관은 회사의 이메일 서명 정책 요구 사항을 준수해야 합니다.
signature.htm
다음 HTML 코드가 포함된 signature.htm 파일을 생성합니다:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head></head>
<body>
<div id style="font-family:Arial&;color:#5B9BD5;">
<span style="font-size:10pt;color:#000000;">
<b><p>Best Regards</p>
<p>@NAME</p> </span>
<span style="font-size:9.0pt;">
<p> </p>
<p>@DESCRIPTION</p>
<p>@COMPANY</p></b>
<p> </p></span>
<span style="font-size:8.0pt;">
<p> @POSTALCODE, @CITY, @STREETADDRESS</p>
<p> Phone.@OFFICEPHONE</p>
<p> <a href="https://@WEBSITE">@WEBSITE</a></p>
<p>e-mail:<a href="mailto:@EMAIL">@EMAIL</a></span>
</div>
</body>
</html>
signature.rtf 및 signature.txt
signature.rtf와 signature.txt 파일의 내용은 다음과 같습니다:
Best Regards,
@NAME
@DESCRIPTION
@COMPANY
@POSTALCODE, @CITY, @STREETADDRESS
Phone. @OFFICEPHONE
e-mail:@EMAIL
site:@WEBSITE2. 폴더 구조 준비
서명 템플릿과 컴퓨터 사용자들의 서명 파일을 저장하기 위해 C:\Users\Public\Downloads 경로에 OutlookSignature 폴더를 생성합니다. 그런 다음 C:\Users\Public\Downloads\OutlookSignature 하위에 Templates 폴더를 만들고, 앞서 작성한 서명 템플릿 파일 3개를 복사해 넣습니다. 이 작업은 수동으로 할 수도 있고, 그룹 정책 기본 설정(GPP, Group Policy Preferences)을 이용해 자동화할 수도 있습니다.

3. PowerShell 스크립트 작성
다음 PowerShell 코드로 outlooksignature.ps1 파일을 새로 생성합니다(각 코드 블록에 대한 간단한 설명을 함께 제공합니다).
변수 선언
$User 변수에는 스크립트가 실행되는 사용자 계정 이름이 들어갑니다. 나머지 변수에는 파일 이름, 확장자, 경로 등을 지정합니다.
$User = $env:UserName
$FileName = "signature"
$FileExtension = "htm","rtf","txt"
$Path = "C:\Users\Public\Downloads"
$PathSignature = "$Path\OutlookSignature"
$PathSignatureTemplates = "$Path\OutlookSignature\Templates"
$PathSignatureUser = "$PathSignature\$User"
$AppSignatures =$env:APPDATA + "\Microsoft\Signatures"Active Directory 모듈 임포트 및 사용자 정보 조회
AD에 접근하기 위한 PowerShell 모듈을 임포트하고, Get-ADUser cmdlet을 사용하여 필요한 사용자 속성 값을 가져와 $AD_user 객체에 저장합니다.
참고: Windows 7에서 Get-ADUser cmdlet을 사용하려면 RSAT(Remote Server Administration Tools)가 설치되어 있어야 합니다. 또한 Windows PowerShell용 Active Directory 모듈 구성 요소도 활성화되어 있어야 합니다(제어판 → 프로그램 및 기능 → Windows 기능 켜기/끄기 → 원격 서버 관리 도구 → 역할 관리 도구 → AD DS 및 AD LDS 도구).
Import-module activedirectory
$AD_user = Get-ADUser $User -Properties Title,Company,Description,Fax,HomePage,Mail,OfficePhone,PostalCode,City,StreetAddress사용자 서명 폴더 생성 및 템플릿 복사
사용자 서명 파일을 저장할 폴더를 만들고 템플릿을 복사합니다:
New-Item -Path "$PathSignature\$User" -ItemType Container –Force
foreach ($Ext in $FileExtension)
{
Copy-Item -Force "$PathSignatureTemplates\$FileName.$Ext" "$PathSignatureUser\$FileName.$Ext"
}템플릿의 플레이스홀더를 AD 데이터로 교체
replace 기능을 사용하여 템플릿 내부의 플레이스홀더(@NAME, @COMPANY 등)를 Active Directory에서 가져온 실제 사용자 데이터로 대체합니다:
foreach ($Ext in $FileExtension)
{
(Get-Content "$PathSignatureUser\$FileName.$Ext") | Foreach-Object {
$_`
-replace "@NAME", $AD_user.Description `
-replace "@DESCRIPTION", $AD_user.title `
-replace "@COMPANY", $AD_user.Company `
-replace "@STREETADDRESS", $AD_user.StreetAddress `
-replace "@POSTALCODE", $AD_user.PostalCode `
-replace "@CITY", $AD_user.City `
-replace "@OFFICEPHONE", $AD_user.OfficePhone `
-replace "@EMAIL", $AD_user.Mail `
-replace "@WEBSITE", $AD_user.Homepage `
} | Set-Content "$PathSignatureUser\$FileName.$Ext"
}
Outlook 서명 폴더로 파일 복사
이제 완성된 서명 파일들을 Outlook 2010/2013/2016이 서명을 저장하는 폴더인 %APPDATA%\Microsoft\Signatures(C:\Users\username\AppData\Roaming\Microsoft\Signatures)로 복사하기만 하면 됩니다.
foreach ($Ext in $FileExtension)
{
Copy-Item -Force "$PathSignatureUser\$FileName.$Ext" "$AppSignatures\$User.$Ext"
write-host "$PathSignatureUser\$FileName.$Ext"
write-host "$AppSignatures\$User.$Ext"
}4. 레지스트리 설정으로 Outlook에 서명 적용
Outlook이 시작될 때 이 서명 템플릿 파일들을 사용하도록 하려면 다음 작업을 수행합니다:
- HKEY_CURRENT_USER\Software\Microsoft\Office\<Office 버전>\Outlook\Setup 키에서 First-Run 값을 삭제합니다.
- HKEY_CURRENT_USER\Software\Microsoft\Office\<Office 버전>\Common\MailSettings 키에 NewSignature와 ReplySignature라는 이름의 문자열 값을 두 개 생성합니다. 이 값에는 템플릿 이름(서명 이름)이 들어가며, 이 예제에서는 템플릿 이름이 AD 계정 이름과 동일합니다.
여러 MS Office 버전에서 동작하도록 하려면 다음 코드를 추가합니다:
#Office 2010
If (Test-Path HKCU:'\Software\Microsoft\Office\14.0') {
Remove-ItemProperty -Path HKCU:\Software\Microsoft\Office\14.0\Outlook\Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
New-ItemProperty HKCU:'\Software\Microsoft\Office\14.0\Common\MailSettings' -Name 'ReplySignature' -Value $User -PropertyType 'String' -Force
New-ItemProperty HKCU:'\Software\Microsoft\Office\14.0\Common\MailSettings' -Name 'NewSignature' -Value $User -PropertyType 'String' -Force
}
#Office 2013
If (Test-Path HKCU:'\Software\Microsoft\Office\15.0') {
Remove-ItemProperty -Path HKCU:\Software\Microsoft\Office\15.0\Outlook\Setup -Name First-Run -Force -ErrorAction SilentlyContinue -Verbose
New-ItemProperty HKCU:'\Software\Microsoft\Office\15.0\Common\MailSettings' -Name 'ReplySignature' -Value $User -PropertyType 'String' -Force
New-ItemProperty HKCU:'\Software\Microsoft\Office\15.0\Common\MailSettings' -Name 'NewSignature' -Value $User -PropertyType 'String' -Force
}
5. 그룹 정책으로 스크립트 자동 실행
마지막으로, 사용자가 시스템에 로그온할 때 이 PowerShell 스크립트가 한 번만 실행되도록 그룹 정책 기본 설정(GPP)을 구성합니다. 그 결과 Outlook은 발신 이메일에 우리가 만든 서명을 자동으로 사용하게 됩니다. 이 글의 첫 번째 이미지가 바로 생성된 서명의 샘플입니다.
추가 팁
- Outlook에서 HTM 서명의 줄 간격이 비정상적으로 크게(두 배로) 표시되는 경우가 있는데, 이는 Outlook의 알려진 버그입니다. 이 경우 HTM 서명을 Outlook에서 직접 만들어 템플릿으로 사용하는 것이 좋습니다(서명은 %APPDATA%\Microsoft\Signatures에 저장됩니다).
- Active Directory의 thumbnailPhoto 속성에 저장된 사용자 사진을 서명에 추가할 수도 있습니다. Outlook 서명에 이미지를 추가하는 간단한 방법이 없기 때문에, 이미지가 포함된 서명 템플릿을 Outlook에서 직접 만들고, PowerShell 스크립트에서 해당 이미지 파일을 복사해 교체하는 방식이 더 효율적입니다(이미지는 %AppData%\Microsoft\Signatures\<서명 이름>.files 폴더에 저장됩니다).
- Exchange 2007 이상 환경에서는 전송 규칙(Transport Rules)을 사용하여 모든 이메일에 가장 간단한 형태의 서명을 삽입할 수도 있습니다.