Export-ExchangeCertificate
內部部署 Exchange 才有提供此 Cmdlet。
使用 Export-ExchangeCertificate Cmdlet 從 Exchange 伺服器匯出現有的憑證和擱置的憑證要求 (也稱為憑證簽署要求或 CSR) 。
如需下方<語法>一節中參數集的詳細資訊,請參閱 Exchange Cmdlet 語法。
語法
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 編碼,因此您需要個別匯出信任鏈結中的任何中繼或根憑證。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | 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 參數會引入強迫您認可命令後才繼續作業的暫停。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | 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) 的本機執行個體來讀寫資料。
類型: | Fqdn |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | 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
) 。 如果值包含空格,請使用引號 (") 括住值。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | Exchange Server 2013 |
-Identity
Identity 參數可指定您要匯出的憑證或憑證要求。 有效值為:
ServerNameOrFQDN\Thumbprint
Thumbprint
您可以使用 Get-ExchangeCertificate Cmdlet 來尋找指紋值。
這個參數不能與 Server 參數搭配使用。
Thumbprint 參數 (而 Identity 參數) 是此 Cmdlet 的位置參數。 因此,當您指定指紋值本身時,指令會針對 Thumbprint 參數使用該值。
類型: | ExchangeCertificateIdParameter |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | 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
當您執行此命令時,系統會提示您安全地輸入密碼。
類型: | SecureString |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | 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參數使用它。
類型: | ServerIdParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-Thumbprint
Thumbprint 參數可指定您要匯出的憑證或憑證要求。 您可以使用 Get-ExchangeCertificate Cmdlet 來尋找指紋值。
Thumbprint 參數 (而 Identity 參數) 是此 Cmdlet 的位置參數。 因此,當您指定指紋值本身時,指令會針對 Thumbprint 參數使用該值。
類型: | String |
Position: | 1 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
適用於: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-WhatIf
WhatIf 參數會模擬命令的動作。 使用此參數時,您不需要實際套用變更即可檢視可能會發生的變更。 您不需要使用此參數指定值。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
適用於: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
輸入
Input types
若要查看此指令程式可接受的輸入類型,請參閱指令程式輸入和輸出類型。 如果指令程式的 [輸入類型] 欄位是空的,表示指令程式不接受輸入資料。
輸出
Output types
若要查看此指令程式可接受的傳回類型 (也就是所謂的輸出類型),請參閱指令程式輸入和輸出類型。 如果 [輸出類型] 欄位是空的,表示指令程式不會傳回資料。