Export-ExchangeCertificate

內部部署 Exchange 才有提供此 Cmdlet。

使用 Export-ExchangeCertificate Cmdlet 從 Exchange 伺服器匯出現有的憑證和擱置的憑證要求 (也稱為憑證簽署要求或 CSR) 。

如需下方<語法>一節中參數集的詳細資訊,請參閱 Exchange Cmdlet 語法

Syntax

Export-ExchangeCertificate
      [-Thumbprint] <String>
      [-Server <ServerIdParameter>]
      [-BinaryEncoded]
      [-Confirm]
      [-DomainController <Fqdn>]
      [-FileName <String>]
      [-Password <SecureString>]
      [-WhatIf]
      [<CommonParameters>]
Export-ExchangeCertificate
      [[-Identity] <ExchangeCertificateIdParameter>]
      [-BinaryEncoded]
      [-Confirm]
      [-DomainController <Fqdn>]
      [-FileName <String>]
      [-Password <SecureString>]
      [-WhatIf]
      [<CommonParameters>]

Description

Export-ExchangeCertificate Cmdlet 會建立下列類型的檔案:

  • 憑證檔案:當您匯出憑證時,命令會建立 PKCS #12 檔案。 PKCS #12 是 RSA 接著所指定的個人資訊交換語法標準。 如需詳細資訊,請 參閱 PKCS #12:個人資訊交換語法標準

    若要從 Exchange 伺服器匯出憑證,憑證的 PrivateKeyExportable 屬性必須具有 True 值。 若要在另一部 Exchange 伺服器上匯入匯出的憑證,您必須使用 Password 參數來匯出憑證,以在憑證檔案中包含私密金鑰或信任鏈結。 您在 Exchange 系統管理中心或使用 New-ExchangeCertificate Cmdlet 的預設設定建立的預設Microsoft Exchange 自我簽署憑證或新的自我簽署憑證無法匯出,因為私密金鑰無法匯出, ($false) PrivateKeyExportable 參數的預設值。

  • 憑證要求檔案:當您匯出憑證要求時,命令會建立 PKCS #10 檔案。 PKCS #10 是 RFC 2314 所指定的認證要求語法標準。 如需詳細資訊,請 參閱 PKCS #10:認證要求語法

    一般而言,如果您需要將憑證要求重新提交給憑證授權單位,您會匯出憑證要求。 您無法在另一部伺服器上匯入已匯出的憑證要求。

您必須已獲指派權限,才能執行此指令程式。 雖然本主題已列出這個指令程式的所有參數,不過,如果某些參數並未包含在指派給您的權限中,您可能就無法存取這些參數。 若要尋找在組織中執行任何 Cmdlet 或參數所需的權限,請參閱 Find the permissions required to run any Exchange cmdlet

範例

範例 1

Export-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -FileName "C:\Data\HT cert.pfx" -BinaryEncoded -Password (Get-Credential).password

Exchange 2013中,此範例會將憑證從本機 Exchange 伺服器匯出至具有下列設定的檔案:

  • 要匯出的憑證指紋值為 5113ae0233a72fccb75b1d0198628675333d010e。
  • 匯出的憑證檔案是以 DER 編碼 (二進位) ,而不是 Base64。
  • 出現提示時輸入密碼。
  • 憑證會匯出至 C:\Data\HT cert.pfx 檔案。

注意:FileName 參數僅適用于 Exchange 2013。 若要在 Exchange 2016 或 Exchange 2019 中匯出憑證,請參閱範例 2。

範例 2

$bincert = Export-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -BinaryEncoded -Password (Get-Credential).password

[System.IO.File]::WriteAllBytes('C:\Data\HT cert.pfx', $bincert.FileData)

本範例會從範例 1 匯出相同的憑證。 Exchange 2016 和 Exchange 2019 中需要這個方法,因為 FileName 參數無法使用。

範例 3

Export-ExchangeCertificate -Thumbprint 72570529B260E556349F3403F5CF5819D19B3B58 -Server Mailbox01 -FileName "\\FileServer01\Data\Fabrikam.req"

Exchange 2013中,此範例會將擱置中的憑證要求匯出至具有下列設定的檔案:

  • 匯出的憑證要求指紋值為 72570529B260E556349F3403F5CF5819D19B3B58,且位於名為 Mailbox01 的 Exchange 伺服器上。
  • 匯出的憑證要求檔案是以 Base64 編碼,因此寫入至檔案的資訊也會顯示在螢幕上。
  • 憑證要求會匯出至檔案 \\FileServer01\Data\Fabrikam.req。

注意:FileName 參數僅適用于 Exchange 2013。 若要在 Exchange 2016 或 Exchange 2019 中匯出擱置的憑證要求,請參閱範例 4。

範例 4

$txtcert = Export-ExchangeCertificate -Thumbprint 72570529B260E556349F3403F5CF5819D19B3B58 -Server Mailbox01

[System.IO.File]::WriteAllBytes('\\FileServer01\Data\Fabrikam.req', [System.Text.Encoding]::Unicode.GetBytes($txtcert))

此範例會從範例 3 匯出相同的擱置憑證要求。 Exchange 2016 和 Exchange 2019 中需要這個方法,因為 FileName 參數無法使用。

參數

-BinaryEncoded

BinaryEncoded 參數可使用可辨別編碼規則 (DER) 為匯出的憑證或憑證要求檔案編碼。 您不需要使用此參數指定值。

一般而言,您會在匯出憑證時使用這個參數,因為當您一併使用 Password 參數時,可以將憑證和其私密金鑰或信任鏈結儲存在一個二進位檔案中。 如果未使用這個參數,匯出的憑證檔案將會以 Base64 編碼,因此您需要個別匯出信任鏈結中的任何中繼或根憑證。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Confirm

Confirm 參數會指定要顯示或隱藏確認提示。 這個參數對 Cmdlet 的影響取決於 Cmdlet 是否需要確認才能繼續作業。

  • 例如,具破壞性的 Cmdlet (例如 Remove-* Cmdlet) 內建暫停,可強制您在繼續之前確認命令。 對於這些 Cmdlet,您可以使用以下確切語法來略過確認提示:-Confirm:$false
  • 其他大部分的 Cmdlet (例如,New-* 和 Set-* Cmdlet) 沒有內建暫停。 在使用這些 Cmdlet 時,指定不含任何值的 Confirm 參數會引入強迫您認可命令後才繼續作業的暫停。
Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-DomainController

DomainController 參數會指定此 Cmdlet 用來向 Active Directory 讀取或寫入資料的網域控制站。 您可以透過網域控制站的完整網域名稱 (FQDN) 來識別網域控制站。 例如,dc01.contoso.com。

Edge Transport Server 不支援 DomainController 參數。 Edge Transport Server 會使用 Active Directory 輕量型目錄服務 (AD LDS) 的本機執行個體來讀寫資料。

Type:Fqdn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-FileName

注意:2022 H1 累積更新已從 Exchange 2016 和 Exchange 2019移除此參數,因為它接受 UNC 路徑值。 若要在不使用 FileName 參數的情況下將憑證或憑證要求匯出至檔案,請使用範例 2 和範例 4 中所述的方法。

此參數僅適用于 Exchange 2013。

FileName 參數可指定匯出之憑證或憑證要求檔案的名稱與路徑。 如果憑證或憑證要求位於您執行命令所在的相同 Exchange 伺服器上,您可以使用本機路徑。 否則,請使用 UNC 路徑 (\\Server\Share) 。 如果值包含空格,請使用引號 (") 括住值。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013

-Identity

Identity 參數可指定您要匯出的憑證或憑證要求。 有效值為:

  • ServerNameOrFQDN\Thumbprint
  • Thumbprint

您可以使用 Get-ExchangeCertificate Cmdlet 來尋找指紋值。

這個參數不能與 Server 參數搭配使用。

Thumbprint 參數 (而 Identity 參數) 是此 Cmdlet 的位置參數。 因此,當您指定指紋值本身時,指令會針對 Thumbprint 參數使用該值。

Type:ExchangeCertificateIdParameter
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Password

Password 參數會指定匯出之憑證檔案中私密金鑰或信任鏈結的密碼。 若要將匯出的憑證檔案匯入另一部伺服器,您需要知道密碼。

您可以使用下列方法作為此參數的值:

  • (ConvertTo-SecureString -String '<password>' -AsPlainText -Force).
  • 執行此命令之前,請先將密碼儲存為變數 (例如 $password = Read-Host "Enter password" -AsSecureString ,) ,然後使用變數 ($password) 值。
  • (Get-Credential).password 當您執行此命令時,系統會提示您安全地輸入密碼。
Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Server

Server 參數指定您要執行此命令的 Exchange 伺服器。 您可以使用唯一識別伺服器的任何值。 例如:

  • Name
  • FQDN
  • 辨別名稱 (DN)
  • Exchange Legacy DN

Exchange Legacy DN

您無法搭配 Identity 參數使用此參數,但是您可以搭配 Thumbprint參數使用它。

Type:ServerIdParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-Thumbprint

Thumbprint 參數可指定您要匯出的憑證或憑證要求。 您可以使用 Get-ExchangeCertificate Cmdlet 來尋找指紋值。

Thumbprint 參數 (而 Identity 參數) 是此 Cmdlet 的位置參數。 因此,當您指定指紋值本身時,指令會針對 Thumbprint 參數使用該值。

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

-WhatIf

WhatIf 參數會模擬命令的動作。 使用此參數時,您不需要實際套用變更即可檢視可能會發生的變更。 您不需要使用此參數指定值。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False
Applies to:Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019

輸入

Input types

若要查看此指令程式可接受的輸入類型,請參閱指令程式輸入和輸出類型。 如果指令程式的 [輸入類型] 欄位是空的,表示指令程式不接受輸入資料。

輸出

Output types

若要查看此指令程式可接受的傳回類型 (也就是所謂的輸出類型),請參閱指令程式輸入和輸出類型。 如果 [輸出類型] 欄位是空的,表示指令程式不會傳回資料。