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.
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 😀
No, this is simply for those NICs which I Need (from HP Devices). But with the TechNet article, you should be able to extend my script.
Top post thanks very much!
At what stage during OSD are you running this script? Just prior to application installation?
Kind regards
I used it when Installed Windows booted first time, and again after the last step, to step the NIC back to Auto.