Surface Pro 3 的進階 UEFI 安全性功能

本文說明如何安裝和設定 v3.11.760.0 UEFI 更新,以啟用 Surface Pro 3 裝置的更多安全性選項。

為了更精細地控制 Surface 裝置的安全性,v3.11.760.0 UEFI 更新提供更多安全性選項,可讓您停用特定硬體裝置,或防止從這些裝置啟動。 在裝置上安裝 UEFI 更新之後,您可以手動設定,或執行指令碼來自動設定。

手動安裝 UEFI 更新

您必須先安裝 v3.11.760.0 UEFI 更新,才能設定 Surface 裝置的進階安全性功能。 如果您是從 Windows Update 接收更新,則系統已經自動安裝此更新。 如需如何使用 Windows Update 設定 Windows 自動更新的相關詳細資訊,請參閱如何設定及使用 Windows 的自動更新

若要在 Surface Pro 3 上更新 UEFI,您能以 Surface Pro 3 韌體和驅動程式套件之一部分的方式下載並安裝 Surface UEFI 更新。 這些韌體和驅動程式套件可從 Microsoft 下載中心上的 Surface Pro 3 頁面取得。 您可以在 下載 Surface 的驅動程式和韌體中深入瞭解韌體和驅動程式套件。 韌體和驅動程式套件有兩種格式:獨立式 Windows Installer (.msi) 和封存 (.zip) 。 您可以在管理和 部署 Surface 驅動程式和韌體更新中深入瞭解這兩種格式,以及如何使用它們來更新驅動程式。

手動設定其他安全性設定

注意

若要進入 Surface 裝置的韌體設定,請先將裝置關機,按住音量提高按鈕,然後按下並放開電源按紐,當裝置開始開機之後再放開音量提高按鈕。

在 Surface 裝置上安裝 v3.11.760.0 UEFI 更新之後,另一個名為 [ 進階裝置安全 性] 的 UEFI 功能表便可供使用。 如果您選取此選單,則會顯示下列選項:

選項 說明 可用的設定 (預設設定以粗體列出)
網路開機 啟用或停用 Surface 裝置從網路開機的功能 (也稱為 PXE 開機)。 已啟用、不可開機
側邊 USB 啟用或停用 Surface 裝置側邊的 USB 連接埠。 此外,可以啟用 USB 連接埠,但不允許以其開機。 已啟用、不可開機、已停用
擴充座連接埠 啟用或停用 Surface 擴充座上的連接埠。 此外,可以啟用擴充座,但封鎖以擴充座上的任何 USB 或乙太網路連接埠開機。 已啟用、不可開機、已停用
前方攝影機 啟用或停用 Surface 裝置前方的攝影機。 已啟用、已停用
後方攝影機 啟用或停用 Surface 裝置後方的攝影機。 已啟用、已停用
內建音訊 啟用或停用 Surface 裝置上的音訊。 已啟用、已停用
microSD 啟用或停用 Surface 裝置上的 microSD 插槽。 已啟用、已停用
WiFi 啟用或停用 Surface 裝置內建的 Wi-Fi 收發機。 此設定也會停用藍牙。 已啟用、已停用
藍牙 啟用或停用 Surface 裝置內建的藍牙收發機。 已啟用、已停用

自動化更多安全性設定

身為具有系統管理許可權的 IT 專業人員,您可以使用 microsoft 下載中心提供的 Surface Pro 3 韌體工具 (476 KB) ,將 UEFI 設定的設定自動化。 這些工具會安裝可從任何自訂的應用程式或指令碼呼叫的 .NET 組件。

先決條件

  • 此頁面上的範例腳本會套用先前提到的擴充功能,因此假設工具已安裝在受管理的裝置上。
  • 腳本必須以系統管理許可權執行。
  • 如果範例腳本未經過數字簽署,則必須在執行範例腳本之前呼叫 set-ExecutionPolicy Unrestricted Windows PowerShell 命令。

範例指令碼

注意

範例腳本中使用的 UEFI 密碼會以純文字呈現。 我們強烈建議您將指令碼儲存在受保護的位置,並於受控制的環境中執行。

顯示所有可設定的選項:

# Load the extension 
[System.Reflection.Assembly]::Load("SurfaceUefiManager, Version=1.0.5483.22783, Culture=neutral, PublicKeyToken=20606f4b5276c705")  
 
# Get the collection of all configurable settings 
$uefiOptions = [Microsoft.Surface.FirmwareOption]::All() 
 
foreach ($uefiOption in $uefiOptions) 
{ 
    Write-Host "Name:" $uefiOption.Name 
    Write-Host " Description =" $uefiOption.Description 
    Write-Host " Current Value =" $uefiOption.CurrentValue 
    Write-Host " Default Value =" $uefiOption.DefaultValue 
    Write-Host " Proposed Value =" $uefiOption.ProposedValue 
     
    # This gives usage and validation information 
    Write-Host " Allowed Values =" $uefiOption.FriendlyRegEx 
    Write-Host " Regular Expression =" $uefiOption.RegEx 
     
    Write-Host 
}

設定或變更 UEFI 密碼:

# Load the extension 
[System.Reflection.Assembly]::Load("SurfaceUefiManager, Version=1.0.5483.22783, Culture=neutral, PublicKeyToken=20606f4b5276c705")  
 
# Must supply UEFI administrator Password if set 
# If it is not currently set this is ignored 
[Microsoft.Surface.FirmwareOption]::Unlock("1234") 
 
$Password = [Microsoft.Surface.FirmwareOption]::Find("Password") 
 
# Set New value to 12345 
$Password.ProposedValue = "12345"

查看所建議之變更的狀態:

# Load the extension 
[System.Reflection.Assembly]::Load("SurfaceUefiManager, Version=1.0.5483.22783, Culture=neutral, PublicKeyToken=20606f4b5276c705")  
 
# Check update status 
$updateStatus = [Microsoft.Surface.FirmwareOption]::UpdateStatus 
$updateIteration = [Microsoft.Surface.FirmwareOption]::UpdateIteration 
Write-Host "Last Update Status =" $updateStatus 
Write-Host "Last Update Iteration =" $updateIteration 
 
# Get the individual results for the last proposed update 
# If the device has never had an update attempt this will be an empty list 
$details = [Microsoft.Surface.FirmwareOption]::UpdateStatusDetails 
Write-Host $details.Count "Settings were proposed" 
if ($details.Count -gt 0) 
{ 
    Write-Host "Result Details" 
    foreach ($detail in $details.GetEnumerator()) 
    { 
        Write-Host " " $detail.Key "=" $detail.Value 
    } 
}

將 UEFI 還原為預設值:

# Load the extension 
[System.Reflection.Assembly]::Load("SurfaceUefiManager, Version=1.0.5483.22783, Culture=neutral, PublicKeyToken=20606f4b5276c705")  
 
# Must supply UEFI administrator Password if set 
# If it is not currently set this is ignored 
[Microsoft.Surface.FirmwareOption]::Unlock("1234") 
 
# Get the collection of all configurable settings 
$uefiOptions = [Microsoft.Surface.FirmwareOption]::All() 
 
# Reset all options to the factory default 
foreach ($uefiOption in $uefiOptions) 
{ 
    $uefiOption.ProposedValue = $uefiOption.DefaultValue 
}

狀態碼解讀

下列狀態代碼可協助解譯 UEFI 組態變更的結果:

  • 00 - 建議的更新已成功設定
  • 02 - 其中一個建議值為無效值
  • 03 - 有一個無法辨識的建議值集
  • 0F - 解除鎖定密碼不符合目前設定的密碼