Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> จดหมาย

การสร้างลายเซ็น Outlook 2010/2013 โดยใช้ AD Information

ในบทความนี้ เราจะแสดงวิธีสร้างลายเซ็นผู้ใช้โดยอัตโนมัติใน Outlook 2010/2013 โดยอิงจากข้อมูลจาก Active Directory สถานการณ์ต่อไปนี้จะได้รับการพิจารณา:ครั้งแรกที่ผู้ใช้โดเมนใหม่เข้าสู่ระบบเวิร์กสเตชัน สคริปต์ PowerShell จะสร้างไฟล์ลายเซ็นผู้ใช้ Outlook โดยอัตโนมัติพร้อมข้อมูลติดต่อที่ดึงมาจาก Active Directory

เพื่อให้สคริปต์นี้ทำงานได้อย่างถูกต้อง จำเป็นที่ผู้ใช้ทั้งหมดใน AD จะต้องกรอกแอตทริบิวต์ที่จำเป็นทั้งหมด ในตัวอย่างนี้ เราจะใช้แอตทริบิวต์ Active Directory ต่อไปนี้ในลายเซ็นของผู้ใช้:

  • ชื่อผู้ใช้แบบเต็ม (ในกรณีของฉัน ข้อมูลเหล่านี้ถูกเก็บไว้ในแอตทริบิวต์ Description)
  • ตำแหน่ง (ชื่อเรื่อง)
  • ชื่อบริษัท (บริษัท)
  • รหัสไปรษณีย์ เมือง และที่อยู่ (รหัสไปรษณีย์ เมือง ที่อยู่ถนน)
  • หมายเลขโทรศัพท์ (OfficePhone)
  • อีเมล (อีเมล)
  • เว็บไซต์ (โฮมเพจ)

การสร้างลายเซ็น Outlook 2010/2013 โดยใช้ AD Information

คุณต้องสร้างไฟล์ 3 ไฟล์ด้วยเทมเพลตลายเซ็นสำหรับ Outlook ใน htm (HTML), rtf (ข้อความสมบูรณ์) และ txt (ข้อความธรรมดา) รูปแบบ การออกแบบ เนื้อหา และลักษณะของเทมเพลตลายเซ็นในไฟล์เหล่านี้ต้องเป็นไปตามข้อกำหนดของนโยบายลายเซ็นอีเมลของบริษัท

สร้างไฟล์ signature.htm มีโค้ด HTML ต่อไปนี้:

<!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>&nbsp;</p>
<p>@DESCRIPTION</p>
<p>@COMPANY</p></b>
<p> &nbsp;</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>

การสร้างลายเซ็น Outlook 2010/2013 โดยใช้ AD Information

เนื้อหาของ signature.rtf และ signature.txt ไฟล์ควรเป็นดังนี้:

Best Regards,
@NAME
@DESCRIPTION
@COMPANY
@POSTALCODE, @CITY, @STREETADDRESS
Phone. @OFFICEPHONE
e-mail:@EMAIL
site:@WEBSITE

สร้างโฟลเดอร์ OutlookSignature ใน C:\Users\Public\Downloads เพื่อจัดเก็บแม่แบบลายเซ็นสำหรับ Outlook และลายเซ็นของผู้ใช้คอมพิวเตอร์ ใน C:\Users\Public\Downloads\OutlookSignature ให้สร้างโฟลเดอร์ย่อย Templates และคัดลอกไฟล์สามไฟล์ที่มีเทมเพลตลายเซ็นลงไป คุณสามารถทำได้ด้วยตนเองหรือใช้ Group Policy Preferences (GPP)

การสร้างลายเซ็น Outlook 2010/2013 โดยใช้ AD Information

สร้างไฟล์ใหม่ outlooksignature.ps1 ด้วยรหัส PowerShell ต่อไปนี้ (ฉันจะให้คำอธิบายสั้น ๆ ของรหัสแต่ละบล็อก)

กำหนดชุดของตัวแปร ตัวแปร $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"

นำเข้าโมดูล PowerShell เพื่อเข้าถึง AD ใช้ Get-ADUser cmdlet รับค่าของแอตทริบิวต์ผู้ใช้ใน Active Directory ที่คุณต้องการและบันทึกไว้ในวัตถุ $AD_user

หมายเหตุ . เพื่อให้ Get-ADUser cmdlet ทำงานใน Windows 7 ต้องติดตั้ง RSAT บนคอมพิวเตอร์ของคุณ ส่วนประกอบ Active Directory Module สำหรับ Windows PowerShell ต้องเปิดใช้งานด้วย (แผงควบคุม -> โปรแกรมและคุณลักษณะ -> เปิด/ปิดคุณลักษณะของ 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:

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 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"
}

หากต้องการให้ Outlook ใช้ไฟล์เหล่านี้กับเทมเพลตลายเซ็นเมื่อเริ่มต้น ให้ทำดังนี้:

  1. ลบ เรียกใช้ครั้งแรก ค่าจาก HKEY_CURRENT_USER\Software\Microsoft\Office\\Outlook\Setup
  2. ใน HKEY_CURRENT_USER\Software\Microsoft\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
}

การสร้างลายเซ็น Outlook 2010/2013 โดยใช้ AD Information

เพียงทำให้สคริปต์ PowerShell นี้ทำงานเพียงครั้งเดียวโดยใช้การตั้งค่านโยบายกลุ่มเมื่อผู้ใช้เข้าสู่ระบบ ด้วยเหตุนี้ Outlook จะใช้ลายเซ็นที่เราสร้างขึ้นสำหรับอีเมลขาออก ภาพแรกของบทความแสดงตัวอย่างลายเซ็นนี้

เคล็ดลับบางประการ

  • ถ้า Outlook แสดงลายเซ็น HTM ที่มีช่องว่างขนาดใหญ่ (สองเท่า) ระหว่างบรรทัด แสดงว่าเป็นข้อบกพร่องของ Outlook จะดีกว่าถ้าสร้างลายเซ็น HTM ใน Outlook และใช้เป็นเทมเพลต (จัดเก็บไว้ใน %APPDATA%\Microsoft\Signatures)
  • คุณยังสามารถเพิ่มรูปภาพของผู้ใช้จากแอตทริบิวต์ภาพขนาดย่อของ Active Directory ไปยังลายเซ็นได้ เนื่องจากไม่มีวิธีง่ายๆ ในการเพิ่มรูปภาพลงในลายเซ็น Outlook เช่นในรายการด้านบน จะดีกว่าถ้าสร้างเทมเพลตลายเซ็นที่มีรูปภาพใดๆ ใน Outlook และโดยการคัดลอกแทนที่ไฟล์รูปภาพในโฟลเดอร์เทมเพลตในสคริปต์ PowerShell (รูปภาพถูกเก็บไว้ใน %AppData%\Microsoft\Signatures\.files )
  • ใน Exchange 2007 ขึ้นไป คุณสามารถใส่ลายเซ็นที่ง่ายที่สุดในอีเมลทั้งหมดโดยใช้กฎการขนส่ง