OSDeploy / OSD

OSD Shared Functions
MIT License
144 stars 59 forks source link

Update-MyDellBios Creates an Object that ChildPath won't accept as a parameter #2

Closed mcsephoenix closed 3 years ago

mcsephoenix commented 3 years ago

I believe the issue is that some BIOS are supported by multiple models and you script tries to categorize it, it creates an object with both models where the script expects only one.

This is what occurred on my Latitude 5580: updateError

VERBOSE: Filtering XML for items compatible with SystemSKU 07A8
VERBOSE: Filtering XML for BIOS
VERBOSE: You are currently running BIOS version 1.10.4
Join-Path : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'ChildPath'. Specified method is not supported.
At C:\Program Files\WindowsPowerShell\Modules\OSD\21.3.4.1\Public\Dell\Update-MyDellBios.ps1:46 char:36
+     $OutFile = Join-Path $env:TEMP $DestinationFile
+                                    ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Join-Path], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.JoinPathCommand

Test-Path : Cannot bind argument to parameter 'Path' because it is null.
At C:\Program Files\WindowsPowerShell\Modules\OSD\21.3.4.1\Public\Dell\Update-MyDellBios.ps1:48 char:25
+     if (-NOT (Test-Path $OutFile)) {
+                         ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Test-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand

Test-Path : Cannot bind argument to parameter 'Path' because it is null.
At C:\Program Files\WindowsPowerShell\Modules\OSD\21.3.4.1\Public\Dell\Update-MyDellBios.ps1:52 char:25
+     if (-NOT (Test-Path $OutFile)) {
+                         ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Test-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand

Test-Path : Cannot bind argument to parameter 'Path' because it is null.
At C:\Program Files\WindowsPowerShell\Modules\OSD\21.3.4.1\Public\Dell\Update-MyDellBios.ps1:58 char:25
+     if (-NOT (Test-Path $OutFile)) {Write-Warning "Unable to download ...
+                         ~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Test-Path], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.TestPathCommand

I believe this is the same thing that was occurring when I tested your previous script code that downloaded multiple BIOS versions and categorized them. Certain models created an object in the bios group. bios

Here are the bios versions available: BiosVersions

Desktop (please complete the following information): Windows 10 1909 Latitude 5580

Please let me know if you need help testing or if you need any more information to help recreate the error. I appreciate all your hard work on this. Obviously you are pulling more then enough info for me to get what I need but i'd love to help you get this working.

A nice feature add might be supporting the /f option when running silently. I have had to use it before to get some installations to work.

/f - Override a soft dependency error returned from the Dell System BIOS Update. NOTE: Requires /s option. https://www.dell.com/support/kbdoc/en-us/000136752/command-line-switches-for-dell-bios-updates

~Jim @UTBlizzard

OSDeploy commented 3 years ago

Jim, is this still happening with the latest version of OSD? If not, I can make a change to resolve it.

mcsephoenix commented 3 years ago

David,

No, you helped me resolve this one via Twitter a few months back. I think it was just a matter of selecting last 1.

Thanks I appreciate the follow up.

~Jim


From: David Segura @.> Sent: Wednesday, May 12, 2021 12:37 PM To: OSDeploy/OSD @.> Cc: mcsephoenix @.>; Author @.> Subject: Re: [OSDeploy/OSD] Update-MyDellBios Creates an Object that ChildPath won't accept as a parameter (#2)

Jim, is this still happening with the latest version of OSD? If not, I can make a change to resolve it.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/OSDeploy/OSD/issues/2#issuecomment-839927698, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANSDPX7TPIQR6OEBT3XKHZ3TNKVFLANCNFSM4YVICC2A.

OSDeploy commented 3 years ago

Thanks. All good!