SCCM 2012 R2 – OSD Error 0x87d00267

Hi, here’s Martin again.
Well, as written in a recent Blog Post (https://blog.hosebei.ch/2013/11/21/sccm-2012-install-windows-7-on-ssd-fails-with-error-0x87d00267/), I was thinking of, that the Problem should be resolved, but we had still the same issues.
Cause of we had nailed down the Problem to the Network, someone came up with the idea to set the Network Speed of the NIC instead of using auto configuration.
When searching for the method to set the Network Card to 100Mbit Full Duplex this by command line we ended up on this excellent blog on TechNet:
http://blogs.technet.com/b/networking/archive/2009/01/08/configuring-advanced-network-card-settings-in-windows-server-2008-server-core.aspx
So we wanted to set this Key (“*SpeedDuplex”) while on OSD to 4, as it means that the Network Card will set up the Network Connection with 100Mbit/s FullDuplex. The Import of Registry Keys might not be a good Option, because the IDs can Change, as far as I know. So I wrote a small powershell script to Change the value, you can download it here:

and you will find the code also here:
# Description: This script set the NIC speed from automatic to 100 Full Duplex
# Usage: powershell.exe -executionpolicy bypass -file "Set_NIC_Speed.ps1 -NicSpeed Auto/100MB"
# Author: Martin Wüthrich, itnetx gmbh
#
#Exit Codes:
#1: No startup parameters defined
#2: Wrong startup parameter. Only Auto and 100MB allowed

#-----------------------------
#Check Input Param
#-----------------------------
Param($NicSpeed)
If($NicSpeed) {}
Else {
Write-Host "You have to define the new NIC-Speed with a startup parameter Auto or 100MB."
exit 1
}

#Set NIC Speed Value
If($NicSpeed -eq "100MB") {
$NICSpeedValue = 4
$NICSpeedValueOld = 0
}
ElseIf($NicSpeed -eq "Auto") {
$NICSpeedValue = 0
$NICSpeedValueOld = 4
}
Else {
Write-Host "Wrong parameter omitted! Auto or 100MB are available values."
Exit 2
}

$GetNICKey = Get-Item -Path HKLM:SYSTEMCurrentControlSetControlClass"{4d36e972-e325-11ce-bfc1-08002be10318}"

ForEach($SubKey in $GetNICKey.GetSubKeyNames()){
If($SubKey -eq "Properties"){
#Do nothing, because no access to this key
}
Else {
$Nic = Get-Item -Path ($GetNICKey.PSPath + "" + $SubKey)
If ($Nic.GetValue("*SpeedDuplex") -eq $NICSpeedValueOld) {
#Write-Host $Nic.Name
Set-ItemProperty -Path $Nic.PSPath -Name "*SpeedDuplex" -Value $NICSpeedValue

}
}
}

We are still seeking for the issue of this Problem, and we use this script as a Workaround. But as so far, we can stage now our Computers with SSD again.

If you ask yourself, why I didn’t use a VBScript, just because VBS will be more and more unusable for Scripting. Change now to powershell, or learn “Would you like to get fries to that” 😉
Hope this helps.

4 thoughts on “SCCM 2012 R2 – OSD Error 0x87d00267

  1. Hi, will this work only with one set of NIC-drivers?
    When setting this with VBScript, some NICs have their settings at different regkeys and different values for 100MBit full.

    If your script could replace this I would save some time 😀

  2. Top post thanks very much!

    At what stage during OSD are you running this script? Just prior to application installation?

    Kind regards

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s