To give you a bit of background to this post, Nickolaj and I sat down back in February and discussed some of the pain points in relation to OS deployments. The main theme that community members had was around the area of driver management, with conflicts over driver package best practices, performance issues and general overhead for the ConfigMgr administrator.

Back in late March of this year we released our “Modern Driver Management” method of dynamically managing driver deployments as part of your OS deployments (http://www.scconfigmgr.com/2017/03/29/modern-driver-management-using-web-services-during-osd-with-configmgr/). The process works by utilizing a number of tools we have developed to fully automate the process of driver management from the download step right through to deployment at the client.

Modern BIOS Management

Since then we have been thinking about some of the issues and points raised by the community around the area of BIOS deployments, and how best to handle them. Dell has been pushing their Flash64w flash BIOS tool recently allowing for BIOS upgrades during the WinPE phase of your OS deployment. Now with additions to all parts of our “Modern Driver Management” engine we are pleased to support the automatic deployment of Dell BIOS updates in your task sequence using our “Modern BIOS Management”.

Oh and for those of you who were looking for Lenovo and HP, we are working on it and we should be publishing a Lenovo update shortly and hopefully following up with HP at a later date.

How Does It Work?

The process is broken down into three key steps;

1. Automate BIOS Package Downloads & Creation (Driver Automation Tool)

This initial step uses our “Driver Automation Tool” which currently supports a number of manufacturers (Dell, HP, Lenovo, Microsoft & Acer) for drivers and a subset (Dell/Lenovo) for BIOS downloads.

It is vital that the tool is used in this process as it standardizes the naming convention of packages and includes tools which we will utilize later on in this process.

Note: Version 3.8 should be used as a minimum as there have been changes to the BIOS update process. The tool can be downloaded from Technet – https://gallery.technet.microsoft.com/scriptcenter/Driver-Tool-Automate-9ddcc010

  • Launch the Driver Tool and connect the GUI to your ConfigMgr environment by entering the name of your Site Server and hitting the Connect To SCCM button
  • We now need to select the Deployment Platform as “ConfigMgr – Standard Pkg“, then pick “BIOS” as the Download Type and pick your OS/Architecture
  • On the Manufacturer Tab select the vendors you wish to display models for and then hit the “Find Models” button
  • Select the models from the list you wish to download packages for and hit the “Add to Import List” button
  • On the Driver Storage Locations tab enter in UNC path for the Repository Path
  • Click on the Distribution Tab and select the DP’s or DP Group’s you wish to distribute the content to
  • Click Enable Binary Differential Replication if required
  • Click on the Start Download and Import Process to kick off the BIOS downloads

Once downloaded you should end up with something like this in your ConfigMgr console:

Download Tool – In action:


2. Automate ConfigMgr Data Retrieval (ConfigMgr WebService)

Modern BIOS Management solution requires the ConfigMgr WebService to be installed in your environment, with the minimum of version 1.3.0. Detailed installation steps can be found in the documentation included in the package, downloadable from the following link:

https://gallery.technet.microsoft.com/ConfigMgr-WebService-100-572825b2

The web service is a key function to this process as it will be used during the task sequence to query the available packages from ConfigMgr (using the GetCMPackage function) and through logic in a PowerShell script, match available BIOS packages to the model and manufacturer of the machine being deployed.

3. Automate Downloads & Installations

Adding the steps for Modern BIOS Management could not be simpler. Download the following scripts required from the following:

BIOS Package Detection Script:

https://github.com/NickolajA/PowerShell/blob/master/ConfigMgr/OS%20Deployment/Invoke-CMDownloadBIOSPackage.ps1

BIOS Update Script (Dell):

https://github.com/NickolajA/PowerShell/blob/master/ConfigMgr/OS%20Deployment/Invoke-DellBIOSUpdate.ps1

The Invoke-CMDownloadBIOSPackage script will automatically detect the computer model and manufacturer, calling the ConfigMgr WebService for BIOS packages matching those values. In the case of multiple packages that match the criteria, the most current package will be selected based upon the SourceDate property of the package object.

If there’s no matches at all, the script will exit with a return code of 1, causing the deployment to fail. In terms of logging, the script is writing to a separate log file called BIOSPackageDownload.log located in the same directory as the smsts.log file at the time of operation.

Follow this four step process to implement the script referenced above:

  • Package the “Invoke-CMDownloadBIOSPackage & Invoke-DellBIOSUpdate.ps1” PowerShell scripts and distribute them
  • Add a Run PowerShell Script command after the Apply Operating System phase, calling the “Invoke-CMDownloadBIOSPackage.ps1” script with parameters for the following:
    • URI – URL of the ConfigMgrWeb service – example: http://configmgr01.scconfigmgr.com/ConfigMgrWebService/ConfigMgr.asmx”
    • SecretKey – The secret key used to connect to the ConfigMgrWebService site
    • Filter – In this instance enter the term “BIOS”

BIOSPackageDownload Log: Starting detection method
BIOSPackageDownload Log: Showing a matching package
  • The next step is to add a Download Package Content step. We recommend that you select a small package here, a determined value contained within the OSDDownloadDownloadPackages hidden task sequence variable is used to add the BIOS package to this list. The package selected here in the UI can be considered a dummy package, and will not be downloaded.A custom path should be specified for the download path, in this example we are using the built in package variable %_SMSTSMDataPath% with a sub-folder called “BIOS” – %_SMSTSMDataPath%\BIOS – and assigning it to a variable called “BIOSPackage

  • The final step is to use the Invoke-DellBIOSUpdate.ps1 powershell script to apply the BIOS update, using the %BIOSPackage01% variable as the path to the flash BIOS update (01 indicates the first package downloaded which in this case will be the only package as the newest package is selected and downloaded)

Note: Some older Dell models do not support Flash64W, so if a failure code other than “2” which indicates a reboot is detected, a task sequence variable (SMSTSBIOSInOSUpdateRequired) is set.

You can then use this as variable as a condition to re-run the powershell script in the OS section of your task sequence, as the script will detect it is no longer in WinPE and attempt to update the BIOS using the legacy method.

See Modern BIOS Management in action

Below is a capture of the Modern BIOS Management process running on a Dell Latitude E5470:

BIOS Update Log

The BIOS update log is also written into the SMS log folder during deployment so you can review this post deployment:

Things To Note:

  1. For those of you running previous versions of the tool, the individual script created for updating the BIOS has been removed as this is superseded by the Invoke-DellBIOSUpdate.ps1 script.
  2. For Lenovo downloads, please select download type as “All” and select an appropriate OS to get a model listing. I will be changing this in the next release with a different XML method.
  3. Windows 10 1xxx downloads are for HP only at present. Other vendors support for the new builds remains in the standard Windows 10 download packages.

 

Nickolaj Andersen
Principal Consultant and Enterprise Mobility MVP. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows deployments and Automation. In 2015 Nickolaj was awarded as PowerShell Hero by the community for his script and tools contributions. Author of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService and a frequent speaker at user groups.

(10610)

Maurice Daly

Maurice has been working in the IT industry since 1999 and was awarded his first MVP Enterprise Mobility award in 2017. Technology focus includes Active Directory, Group Policy, Hyper-V, Windows Deployment (SCCM & MDT) and Office 365.

comments
  • Jack
    Posted at 15:05 June 6, 2017
    Jack
    Reply
    Author

    I’m having issues with getting this to work and was wondering if you could lend a hand, the package is detected and downloads the BIOS update to the client however it appears to fail before it runs as the DellFlashBiosUpdate.log isn’t created.

    Downloading file /NOCERT_SMS_DP_SMSPKG$/CC3001EA/sccm?/Invoke-DellBIOSUpdate.ps1 range 0-4975
    Downloaded file from http://CC-SCCM2.consoto.com:443/NOCERT_SMS_DP_SMSPKG$/CC3001EA/sccm?/Invoke-DellBIOSUpdate.ps1 to C:\_SMSTaskSequence\Packages\CC3001EA\Invoke-DellBIOSUpdate.ps1
    VerifyContentHash: Hash algorithm is 32780
    Content successfully downloaded at C:\_SMSTaskSequence\Packages\CC3001EA.
    Resolved source to ‘C:\_SMSTaskSequence\Packages\CC3001EA’
    Command line for extension .exe is “%1” %*
    Set command line: Run Powershell script
    Working dir ‘C:\_SMSTaskSequence\Packages\CC3001EA’
    Executing command line: Run Powershell script
    /b=C:\_SMSTaskSequence\BIOS\CC3001D6\OptiPlex_9020M_A13.exe /s /f /l=X:\WINDOWS\TEMP\SMSTSLog\DellFlashBiosUpdate.log /p=5at0r1

    • Maurice Daly
      Posted at 22:07 June 6, 2017
      Maurice Daly
      Reply
      Author

      Hi Jack,

      Could you zip up an export of your task sequence, along with the SMSTS and BiosPackageDownload logs and email them over to me. My email address is maurice@scconfigmgr.com

      Maurice

      • Jack
        Posted at 17:05 June 7, 2017
        Jack
        Reply
        Author

        Issue resolved, many thanks for the help and for your website 🙂

  • RL
    Posted at 00:07 June 15, 2017
    RL
    Reply
    Author

    The script only mentions Dell in the name–will it update Lenovo too?

    • Maurice Daly
      Posted at 21:50 June 19, 2017
      Maurice Daly
      Reply
      Author

      Lenovo support is coming at the end of the month following some more testing.

      Maurice

  • Sebastian
    Posted at 06:01 June 23, 2017
    Sebastian
    Reply
    Author

    Hi Maurice – I’m having issues getting the BIOS script working in my task sequence. It appears like the path variable is not being passed to the BIOS update script. The below is from the smsts.log:

    Executing command line: Run Powershell script
    /b= /s /f /l=X:\WINDOWS\TEMP\SMSTSLog\DellFlashBiosUpdate.log /p=***
    WARNING: An error occured while updating the system bios. Error message: The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.

    I’ve confirmed that my settings are the same as in the post, and even tried using a different variable but I still get the same issue. Is there something that I’m missing perhaps?

    • Sebastian
      Posted at 06:57 June 23, 2017
      Sebastian
      Reply
      Author

      Never mind – my own fault on two parts:
      1) Didn’t have quotes in the variable path
      2) Package wasn’t deployed to a DP!

      Silly me.

  • Josua Baril-Aumond
    Posted at 19:21 June 28, 2017
    Josua Baril-Aumond
    Reply
    Author

    Hi – I am having an issue when iam not setting a password for the bios upgrade.
    In :
    if ($Password -ne $null) {
    # Add password to the flash bios switches
    $FlashSwitches = $FlashSwitches + ” /p=$Password”
    Write-host $FlashSwitches
    }
    I think that the password variable is never $null even if i do not put a password.
    P.S The bios package download correctly and in the command line i see /p…

    • Maurice Daly
      Posted at 23:31 June 28, 2017
      Maurice Daly
      Reply
      Author

      Hi Josua,

      What do the results of the DellFlashBiosUpdate.log look like?.

      Maurice

      • Josua Baril-Aumond
        Posted at 13:10 June 29, 2017
        Josua Baril-Aumond
        Reply
        Author

        I didn’t see this log when i got the error so i comment the password line in the script and it didn’t work either. But then i check the content of the bios package that the tool did and it didn’t contain the dell flash64 binary. It was weird but when i check the source files the binary was there just not in the distributed content. I think the content was distributed before the flash64 is copied. Thanks for your time!

  • Dean Buen
    Posted at 22:06 August 11, 2017
    Dean Buen
    Reply
    Author

    Maurice,

    This is an awesome tool! Thank you so much for building this for the SCCM community. I do have one issue i’d like to report. I have a Dell Precision Workstation T7810. Using your tool to download the BIOS and packaging it, it pulls up the model “Precision_Tower_3420_2.3.2.exe” It tries to download the file but it never makes it to the \Repository\Dell\Precision Tower 7810\BIOS folder

    On dells website, the Dell Precision T7810 model is currently at version A19. I simply downloaded this BIOS update from Dell and created the appropriate folder structure on my share to place it there. I packaged the BIOS update manually and it still works during the task sequence.

    thought i’d give you a heads up on this.
    Thanks
    Dean

    • Maurice Daly
      Posted at 22:32 August 11, 2017
      Maurice Daly
      Reply
      Author

      Hi Dean,

      On the surface it looks like there is a bad link contained within the Dell XML. I’ll investigate this.

      Maurice

      • Thomas
        Posted at 13:07 August 22, 2017
        Thomas
        Reply
        Author

        Im experiencing the same issue, on latest attempts to download Dell BIOS, it only downloads the Flash64W.exe file not the bios itself, so TS gives error with unable to find a payload..

        • Maurice Daly
          Posted at 20:47 August 22, 2017
          Maurice Daly
          Reply
          Author

          Hi Thomas

          I have been onto Dell about this as the XML is referencing files which simply don’t exist. This is unusual for Dell, hopefully they will resolve these issues soon.

          Maurice

          • Thomas
            Posted at 20:50 August 22, 2017
            Thomas
            Author

            Is there any way in future Versions of the script, that you can verify the files exist, instead of just checking the package is present?

            That the completion of the package is not done, before the actual file has been verified downloaded and placed in folder?

          • Maurice Daly
            Posted at 22:36 August 22, 2017
            Maurice Daly
            Author

            Hi Thomas,

            I’m already working on it now due to the download issues. Expect an update in the morning.

            Maurice

  • Suresh
    Posted at 21:40 August 28, 2017
    Suresh
    Reply
    Author

    Hi,

    I’m having issue with matching multiple models example Dell Optiplex 9020 and Dell Optiplex 9020 AIO. As per the script it “Determine the latest BIOS package by creation date”. But it won’t work in this case, because either of the package created before or after. Let me know what needs to be done in this scenario.

    • Maurice Daly
      Posted at 13:29 August 29, 2017
      Maurice Daly
      Reply
      Author

      Hi Suresh,

      Do you have copies of the logs you can send over?.

      Maurice

  • Suresh
    Posted at 15:11 August 29, 2017
    Suresh
    Reply
    Author

    BIOS download package process initiated 1/1/1601 12:00:00 AM 0 (0x0000)
    Manufacturer determined as: Dell Inc. 1/1/1601 12:00:00 AM 0 (0x0000)
    Computer model determined as: OptiPlex 9020 1/1/1601 12:00:00 AM 0 (0x0000)
    Current BIOS version determined as: A19 1/1/1601 12:00:00 AM 0 (0x0000)
    Retrieved a total of 21 BIOS packages from web service 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Precision M3800 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude E7240 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude E7440 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell OptiPlex 7040 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell OptiPlex 7050 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Deployment Scripts 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell OptiPlex 9010 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell OptiPlex 9010 AIO 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell OptiPlex 9020 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell OptiPlex 9020 AIO 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell OptiPlex 9030 AIO 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Precision 5520 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Precision T5610 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude E7450 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude 7280 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude 7480 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude E7250 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude E7270 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Latitude E7470 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Precision 5510 1/1/1601 12:00:00 AM 0 (0x0000)
    Package does not meet computer model and manufacturer criteria: BIOS Update – Dell Precision T7810 1/1/1601 12:00:00 AM 0 (0x0000)
    BIOS package list contains multiple matches, attempting to set task sequence variable 1/1/1601 12:00:00 AM 0 (0x0000)
    BIOS is already up to date with the latest A15 version 1/1/1601 12:00:00 AM 0 (0x0000)

    In the above, you can see Match found for two model like Dell Optiplex 9020 and Dell Optiplex 9020 AIO. So as per the logic it takes the latest package creation date and it returns the version is up to date. But actually it is not.

  • Christian Jacobsen
    Posted at 13:25 September 1, 2017
    Christian Jacobsen
    Reply
    Author

    There is also quite many bugs in the BIOS driver download regarding proxy usage.

    Maybe proxy settings should instead be changed to something like this – i tested this in the beginning of the script and then almost everything I have reported works nicely without changing the original script 🙂 :
    https://joshcodev.wordpress.com/2014/02/07/powershell-set-a-proxy/

    So if you do that instead, then all the Proxy problems futher below the line are fixed.
    There is now only one small one, that the BIOS flash utility could not be downloaded – it fails with Proxy authentification is required. I have not found the solution for that yet.

    ——————————————–

    Otherwise here is what I found regarding proxy until I gave up 😉

    It does not use the Proxy entries in function “DellBiosFinder”. I think this if is not true – maybe the check is missing in the BIOS part:
    if ($ProxyCheck.StatusDescription -eq “OK”)

    The easy fix is just to use this check instead :
    if ($UseProxyServerCheckbox.Checked -eq $true)

    Another thing is that it does not save the proxy settings in the settings file. Or at least not reading them when opening again. I Need to enter them every time.

    third bug is double “-ProxyList $ProxyServer” in these lines:

    Start-BitsTransfer $BIOSDownload -Destination “$($BIOSUpdateRoot + $BIOSFile)” -RetryTimeout 90 -RetryInterval 180 -ProxyList $ProxyServer -ProxyList $ProxyServer -ProxyAuthentication NTLM -ProxyCredential $ProxyCred -ProxyUsage Override
    Start-BitsTransfer ($Flash64BitDownload.href) -Destination “$($Flash64BitZip)” -RetryTimeout 90 -RetryInterval 180 -ProxyList $ProxyServer -ProxyList $ProxyServer -ProxyAuthentication NTLM -ProxyCredential $ProxyCred -ProxyUsage Override

    Also in Lenovo 😉
    Start-BitsTransfer $BIOSFileDownload -Destination “$($BIOSUpdateRoot + $BIOSFile)” -RetryTimeout 90 -RetryInterval 180 -ProxyList $ProxyServer -ProxyList $ProxyServer -ProxyAuthentication NTLM -ProxyCredential $ProxyCred -ProxyUsage Override

    This does not work with proxy:
    $Flash64BitDownload = (Invoke-WebRequest -Uri $Dell64BIOSUtil).links | Where-Object { $_.OuterText -eq “Here” }

    $NewRelease = (Invoke-WebRequest -Uri “http://www.scconfigmgr.com/wp-content/uploads/tools/DriverAutomationToolRev.txt”; -UseBasicParsing).Content

  • Christian Jacobsen
    Posted at 15:30 September 1, 2017
    Christian Jacobsen
    Reply
    Author

    OK, I was too fast about posting above. I actually ended up needing fixing all the bugs above + Replace all “-ProxyUsage SystemDefault” with “-ProxyUsage Override” as posted in the drives section + use the proxy settings in the link below to get all things to work.

    https://joshcodev.wordpress.com/2014/02/07/powershell-set-a-proxy/

  • CMaurice
    Posted at 20:33 September 11, 2017
    CMaurice
    Reply
    Author

    I ran a new install of the webservice, and am getting errors when trying to load the webpage. I ran the exe installer to install. I looked at the manual install instructions, but the files referenced dont exist. All the files in the download are in the iis site folder though. I also made sure all the necessary items were in the website application settings. It all looks good. But I get the following error:

    Could not load file or assembly ‘Microsoft.ConfigurationManagement.ManagementProvider, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified.

    The full output of the error is here: https://pastebin.com/HRhjA5ZX

    • Christian Jacobsen
      Posted at 15:32 September 12, 2017
      Christian Jacobsen
      Reply
      Author

      You probably did not show the installer the right folder where the two files are located that it should copy. (See PDF documentation) Look in C:\inetpub\ConfigMgr WebService\bin and see if the two files ConfigMgrWebService.dll and Microsoft.ConfigurationManagement.ManagementProvider.dll are missing. I guess they are 😉
      If they are missing, find them in the SCCM _console_ installation folder and copy them here.

      • Nickolaj Andersen
        Posted at 10:41 September 13, 2017
        Nickolaj Andersen
        Reply
        Author

        You’re exactly right Christian, thanks for helping out!

        Regards,
        Nickolaj

      • CMaurice
        Posted at 20:05 September 13, 2017
        CMaurice
        Reply
        Author

        Totally right! Thanks!

  • Fredrik Warberg
    Posted at 08:46 September 26, 2017
    Fredrik Warberg
    Reply
    Author

    Hi,

    I have some issues updating BIOS using Invoke-CMDownloadBIOSPackage.ps1. My problem is that even though I have a BIOS package generated by DriverAutomationTool the script returns 0 packages.

    Package: BIOS Update – Dell Latitude E7470
    Log:
    BIOS download package process initiated
    Manufacturer determined as: Dell Inc.
    Computer model determined as: Latitude E7470
    Current BIOS version determined as: 1.12.3
    Retrieved a total of 0 BIOS packages from web service

    Parameters: -URI “http://MaskedFQDN/ConfigMgrWebService/ConfigMgr.asmx” -SecretKey “my secret key” -Filter “BIOS”

    Webservice: 1.4.0

    The webservice works just fine for OSDFrontEnd and the service account have proper access in ConfigMGR.

    Regards,
    Fredrik

    • Maurice Daly
      Posted at 16:36 September 26, 2017
      Maurice Daly
      Reply
      Author

      Hi Fredrik,

      The query returned 0 entries for any packages with the word BIOS. Can you please check that the account you have set up for the service to use has read access to the configmgr environment.

      Maurice

      • Fredrik Warberg
        Posted at 08:00 September 27, 2017
        Fredrik Warberg
        Reply
        Author

        Hi Maurice,

        It is working as expected now. After checking everything several times I noticed that one character was missing from the SecretKey.
        I really look forward to stop handle BIOS and drivers manually. Keep up the good work!

        Regards,
        Fredrik

  • Raphael
    Posted at 14:11 September 29, 2017
    Raphael
    Reply
    Author

    Hi,

    when a device needs a Bios Update the script works perfectly!
    I only have an issue with the Invoke-DellBiosUpdate.ps1 Script when the Bios is already up to date.

    For example in the BIOSPackageDownload.log i get “BIOS is already up to date with the latest 1.5.2 version”

    After that the Invoke-DellBiosUpdate.ps1 Step fails with error FFFD0000 (Unknown Error). In the smsts.log File i get following red lines:
    —–
    The argument ‘Invoke-DellBIOSUpdate.ps1’ to the -File parameter does not exist. Provide the path to an existing ‘.ps1’ file as an argument to the -File parameter. RunPowerShellScript 29.09.2017 14:49:28 1264 (0x04F0)
    —–

    —–
    Failed to run the action: Run Bios Update Script.
    Unknown error (Error: FFFD0000; Source: Unknown) TSManager 29.09.2017 14:49:29 1700 (0x06A4)
    —–

    Thanks for your help,
    Raphael

    • Raphael
      Posted at 15:19 September 29, 2017
      Raphael
      Reply
      Author

      I found a solution by myself –> in the “Download Bios Package” and “Run Bios Update Script” steps i check if the Task Sequence Variable “NewBIOSAvailable” exists. If not it doesn’t run these steps.

      This is a working solution, if you have a better one please let me know. Thanks 🙂

  • Jeff
    Posted at 00:29 November 14, 2017
    Jeff
    Reply
    Author

    I am running into an issue when the invoke-cmdownloadbiospackage.ps1 runs it is finding a match for each model and trying to install the incorrect bios for the model.

    BIOSPackageDownload.log
    Computer model determined as: Precision T1650 1/1/1601 12:00:00 AM 0 (0x0000)
    Current BIOS version determined as: A11 1/1/1601 12:00:00 AM 0 (0x0000)
    Retrieved a total of 13 BIOS packages from web service 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell OptiPlex GX620 (PS100054) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision T1500 (PS100055) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS UEFI Vendor Tools (PS1000A5) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell OptiPlex 7040 (PS1000D9) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision T1650 (PS1000DC) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Latitude 5289 (PS1000DD) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Optiplex 5050 (PS1000DE) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell OptiPlex 755 (PS1000E0) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision 3520 (PS1000E1) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision T1600 (PS1000E3) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision T1700 (PS1000E4) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision Tower 3420 (PS1000E5) 1/1/1601 12:00:00 AM 0 (0x0000)
    Match found for computer model and manufacturer: BIOS Update – Dell Precision Tower 3620 (PS1000E6) 1/1/1601 12:00:00 AM 0 (0x0000)
    BIOS package list contains multiple matches, attempting to set task sequence variable 1/1/1601 12:00:00 AM 0 (0x0000)
    Current BIOS release detected as A11. 1/1/1601 12:00:00 AM 0 (0x0000)
    A new version of the BIOS has been detected. Current release A11 will be replaced by 2.3.5. 1/1/1601 12:00:00 AM 0 (0x0000)
    Setting task sequence variable OSDDownloadDownloadPackages to: PS1000E6 1/1/1601 12:00:00 AM 0 (0x0000)

    I am only seeing this issue on this one model of hardware.

    Cheers,

    • Maurice Daly
      Posted at 14:10 November 14, 2017
      Maurice Daly
      Reply
      Author

      Hi Jeff,

      Can you please obtain the system SKU value from WMI on both models for me?.

      Maurice

      • Jeff
        Posted at 16:47 November 14, 2017
        Jeff
        Reply
        Author

        Hi Maurice,

        When I look at the SKU value it is showing as

  • Leave a Reply