Scenario: When logging into the UEFI BIOS, you can see the asset tag's current value set as 0, but are unable to change it.
Solution: To change the asset tag on a Surface Pro 3, you must download a utility by Microsoft.
Note: Before beginning, please ensure you are using UEFI firmware version 3.9.150.0 or later
- Download a copy of the Surface Pro 3 Asset Tag CLI Utility from here (Surface Asset Tag.zip):
https://www.microsoft.com/en-us/download/details.aspx?id=46703 - Extract the files from the zipped folder
- Open up an elevated command prompt
- Navigate to the folder you extracted the Surface Pro 3 Asset Tag CLI utility to
- Execute the following command
- Reboot the machine for the changes to take effect
About the tool
The utility comes with a readme on additional functionality. This is copied directly from the Surface Pro 3 Asset Tag README.txt file for convience:
This tool gets or sets the proposed Asset Tag, which will be applied on next reboot.
The current Asset Tag is an SMBIOS setting which can be queried via WMI:
(Get-WmiObject -query "Select * from Win32_SystemEnclosure").SMBiosAssetTagGet proposed asset tag:
AssetTag -gClear proposed asset tag:
AssetTag -sSet proposed asset tag:
AssetTag -s ABc-45.67Valid values:
The asset tag can be up to 36 characters long.
Valid characters include A-Z, a-z, 0-9, period and hyphen.PowerShell script demonstrating way to get proposed value and interpret errors.
Note that stout contains the Asset Tag and stderr contains error messages.AssetTag -g > $asset_tag 2> $error_message
$asset_tag_return_code = $LASTEXITCODE
$asset_tag = $asset_tag.Trim("`r`n")if ($asset_tag_return_code -eq 0) {
Write-Output ("Good Tag = " + $asset_tag)
} else {
Write-Output (
"Failure: Code = " + $asset_tag_return_code +
"Tag = " + $asset_tag +
"Message = " + $error_message)
}
Update: Microsoft has posted official documentation on these steps here: https://docs.microsoft.com/en-us/surface/assettag