MicrosoftDocs / windows-powershell-docs

This repo is used to contribute to Windows 10, Windows Server 2016, and MDOP PowerShell module documentation.
Creative Commons Attribution 4.0 International
443 stars 594 forks source link

Update-Help fails for WindowsUpdateProvider #139

Closed joeyaiello closed 3 years ago

joeyaiello commented 6 years ago

From @dsolodow on February 9, 2018 15:44

update-help : Failed to update Help for the module(s) 'WindowsUpdateProvider' with UI culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture en-US. Make sure the HelpInfoUri property in the module manifest is valid or check your network connection and then try the command again. At line:1 char:1

Copied from original issue: PowerShell/PowerShell-Docs#2117

cebulloc commented 6 years ago

I have the same error message. It has been going on for a couple of months now. Has anyone found a fix? or is there no update file for that particular module at the moment? I should mention I am completely new to PowerShell and IT in general. Any help would be appreciated. I am troubleshooting myself but I can not find anything related to "windows update provider" specifically. I have found some forums on other modules with similar errors. Thank you for your assistance with this matter.

dsolodow commented 6 years ago

No, there isn't a fix for the missing help yet. However, most of the cmdlets in this module don't have any real options and just return a true/false or a date time.

cebulloc commented 6 years ago

dsolodow, Thank you for your help. I appreciate you taking the time.

Maverick5533 commented 6 years ago

I don't normally post any comments in GH, but I thought I would since Don Jones convinced me to become a "Master" (in the sense that if you learn something....share it).

Let me preface my comments below that in this case I am strictly referring to the issues with Windows PowerShell 5.1 and other than the issue issue with updating the local Help file content for the WindowsUpdateProvider, all other help content was successfully updated.

I also noticed on PowerShell Core 6.0 Prev, there is no module name WindowsUpdateProvider. My thought was to see if that module was available for Core 6.0 and then borrow the updated URI from the manifest in Core and then replace the URI in the manifest in Windows PowerShell 5.1 (make logical sense?). This was my first attempt in quickly resolving the issue (after skimming through other blogs online where other admins were running into this issue).

Regarding the particular issue, I located the HelpURI that is referenced in the manifest file for the WindowsUpdateProvider module. I then copied that URI into a browser which I suspect may redirect to a resource under docs.microsoft.com.

Well long story short, it's a dead link (which is what POSH was trying to tell me in the console when it failed to update the help file). In summary, I suspect (just 'suspect'), at the moment, that not a whole lot of development efforts are allocated to update the module manifest for WindowsUpdateProvider given the fact that the evolutionary movement is toward POSH Core development. That said, I know folks can contact the specific MS Engineering groups and request edits/new features so that may be a option for resolving the bad URI in the WindowsUpdateProvider manifest.

lmstearn commented 5 years ago

Minor rantovani: Could the error message tell us a little more? Or at least, from the answer to this thread we know where the issue is, and quickly move on? Thanks (violins al fine) :violin:

486DX50 commented 5 years ago

A year later this was not resolved

PS C:\Windows\system32> update-help update-help : Failed to update Help for the module(s) 'WindowsUpdateProvider' with UI culture(s) {en-US} : Unable to retrieve the HelpInfo XML file for UI culture en-US. Make sure the HelpInfoUri property in the module manifest is valid or check your network connection and then try the command again. At line:1 char:1

Unbelievable...

schtobia commented 5 years ago

Same for de-DE:

PS C:\WINDOWS\system32> Update-Help
Update-Help : Fehler beim Aktualisieren von Hilfe für die Module "WindowsUpdateProvider" mit den
Benutzeroberflächenkulturen {de-DE}: Die XML-Datei "HelpInfo" für die Benutzeroberflächenkultur de-DE
kann nicht abgerufen werden. Stellen Sie sicher, dass die HelpInfoUri-Eigenschaft im Modulmanifest gültig
ist, oder überprüfen Sie die Netzwerkverbindung, und führen Sie den Befehl dann erneut aus.
In Zeile:1 Zeichen:1
+ Update-Help
+ ~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.UpdateHelpCommand
jeffreymcclain commented 5 years ago

Same for me.

junkiebev commented 5 years ago

+1

ngetchell commented 5 years ago

Ran into this today

Dbones202 commented 5 years ago

same.

SamB commented 5 years ago

Well, the Module Manifest for WindowsUpdateProvider on this machine doesn't give any attribution beyond "Microsoft Corporation", but it does specify a HelpInfoUri of https://go.microsoft.com/fwlink/?linkid=390794, so there's actually no need to futz around figuring out where the module comes from and somehow make the case that this warrants issuing a patch to WindowsUpdateProvider -- it's just necessary to get that redirect pointed somewhere appropriate.

pdario commented 5 years ago

Same here; I see that I haven't any *HelpInfo.xml in C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WindowsUpdateProvider

Do you think this is correct??

Plus: do you know why I see more files in those dirs within CLI as compared to File Explore???

rcl4444 commented 5 years ago

Same for me. my host information below:

Name : ConsoleHost Version : 5.1.18985.1 InstanceId : 7853b109-f755-4187-aafb-0bced2a37e95 UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : en-US CurrentUICulture : en-US PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy DebuggerEnabled : True IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace

ScriptAutomate commented 4 years ago

My Windows 10 system with latest updates:

$PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.1.18362.145
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.18362.145
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
Get-WmiObject win32_operatingsystem | select Caption, Version
Caption                  Version
-------                  -------
Microsoft Windows 10 Pro 10.0.18363

Every now and then, for over a year, I pop into PowerShell on Windows 10 and Update-Help before looking at something. I continue to see this error still. For those that are new to PowerShell on Windows, seeing this during the first steps of having in-console available help documentation would be a major turn off: that it isn't some kind of misconfiguration on their end, but it is the default and continued expectation of the command output.

I even see people saying that they just run the following instead, as their default, any time they use Update-Help:

Update-Help -Verbose -Force -ErrorAction SilentlyContinue

Yes, this workaround works. But, if people are moving toward running a built-in command by suppressing error output and moving on, that's bad customer experience (and maybe not the best practice to teach people, in the event that some other errors are occurring?). That response is a popular answer on a few sites I've looked at, and even here from 2016 where it is the highest up-voted answer:

Note that the marked accepted answer for the update error related to the HelpInfoUri here says:

I think you will need to contact MS support for this.

The issue is with your machine and its installation and you will need to get support to help you. I think the only suggestion we can make is to re-install Windows. (!!)

Crazy stuff! I hope the guy didn't go through some re-install because of a HelpInfoUri being wrong.

@SamB is right about what needs to be addressed:

Well, the Module Manifest for WindowsUpdateProvider on this machine doesn't give any attribution beyond "Microsoft Corporation", but it does specify a HelpInfoUri of https://go.microsoft.com/fwlink/?linkid=390794, so there's actually no need to futz around figuring out where the module comes from and somehow make the case that this warrants issuing a patch to WindowsUpdateProvider -- it's just necessary to get that redirect pointed somewhere appropriate.

If you run the following on a system where this error appears, you should see the output:

Import-Module WindowsUpdateProvider
Get-Module WindowsUpdateProvider | select HelpInfoURI,Version                                                                                                                                                                                      
HelpInfoUri                                    Version
-----------                                    -------
https://go.microsoft.com/fwlink/?linkid=390794 1.0.0.2

With the source module manifest, as referenced by @SamB, being:

C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdateProvider/WindowsUpdateProvider.psd1`

Microsoft could definitely redirect the link to a working HelpInfoUri, which would mean zero-change on the client end.

On a side-note, people using -ErrorAction SilentlyContinue on the regular are missing that several other modules have their help broken:

$TestModules = @("Microsoft.PowerShell.ODataUtils", "Microsoft.PowerShell.Operation.Validation", "UEV", "Whea", "WindowsDeveloperLicense", "defender", "configdefender",  "appvclient")
Import-Module $TestModules
$BorkedHelp = Get-Module $TestModules | select Name, Version, HelpInfoUri
$BorkedHelp
Name                                      Version   HelpInfoUri
----                                      -------   -----------
appvclient                                1.0.0.0   https://go.microsoft.com/fwlink/?LinkId=403112
configdefender                            1.0       https://go.microsoft.com/fwlink/?linkid=390762
defender                                  1.0       https://go.microsoft.com/fwlink/?linkid=390762
Microsoft.PowerShell.ODataUtils           1.0       https://go.microsoft.com/fwlink/?LinkId=509916
Microsoft.PowerShell.Operation.Validation 1.0.1     https://go.microsoft.com/fwlink/?LinkId=808399
UEV                                       2.1.639.0 https://go.microsoft.com/fwlink/?LinkId=826061
Whea                                      2.0.0.0   https://go.microsoft.com/fwlink/?linkid=390848
WindowsDeveloperLicense                   1.0.0.0   https://go.microsoft.com/fwlink/?linkid=285578
foreach ($uri in $BorkedHelp.helpinfouri) {Invoke-WebRequest $uri}

Welcome to a sea of red 404 - File or directory not found. errors, with all the endpoints needing to be redirected. I do not know how long these have been broken, but #983 documents a user running into toward the bottom of their issue from back in September.

These should be fixable by Microsoft, with whatever tooling they have around their link forwarding.

Questions:

gemzon commented 4 years ago

My contribution of failed updates.

Searched for a solution (after a long time of failures which I've ignored). The only thing found was several old issues, not been taken care of. Why not?

Also, read above about support suggesting a Windows re-installation. Poor guy.

Name                        Version   HelpInfoUri
----                        -------   -----------

- Response status code does not indicate success: 404 (Not Found).

PSDesiredStateConfiguration 2.0.4     https://go.microsoft.com/fwlink/?linkid=390814
WindowsUpdateProvider       1.0.0.2   https://go.microsoft.com/fwlink/?linkid=390794

- A Help URI cannot contain more than 10 redirections.

ConfigDefender              1.0       https://go.microsoft.com/fwlink/?linkid=390762
Defender                    1.0       https://go.microsoft.com/fwlink/?linkid=390762
HgsClient                   1.0.0.0   https://go.microsoft.com/fwlink/?linkid=519076
HgsDiagnostics              1.0.0.0   https://go.microsoft.com/fwlink/?LinkId=760404
UEV                         2.1.639.0 https://go.microsoft.com/fwlink/?LinkId=826061
Whea                        2.0.0.0   https://go.microsoft.com/fwlink/?linkid=390848
WindowsDeveloperLicense     1.0.0.0   https://go.microsoft.com/fwlink/?linkid=285578
MysticRyuujin commented 4 years ago

My results are the same as @gemzon after having installed PowerShell 7 RC1 and performing Update-Help

josephyoung commented 4 years ago

thank for @ScriptAutomate 's solution, this work around works:

Update-Help -Verbose -Force -ErrorAction SilentlyContinue
MysticRyuujin commented 4 years ago

That's just ignoring the error. It's not a workaround unless you just don't want the error output.

vazome commented 4 years ago

How can this happen that they ignore this since the mass occurrence of the issue? Microsoft, ffs are you doing?

kodyabbott commented 4 years ago

So frustrating!? How can this still be an issue YEARS later?

PrMinisterGR commented 4 years ago
PS C:\Windows\system32> $updates = Start-WUScan -SearchCriteria "IsInstalled=0 AND IsHidden=0 AND IsAssigned=1"
PS C:\Windows\system32> Install-WUUpdates -Updates $updates
Install-WUUpdates : Failed to install updates
At line:1 char:1
+ Install-WUUpdates -Updates $updates
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (MSFT_WUOperations:root/Microsoft/...FT_WUOperations) [Install-WUUpdates], CimException
    + FullyQualifiedErrorId : HRESULT 0x80240024,Install-WUUpdates

Without the help files is pretty hard to understand what's going on.

MisotheisticYHWH commented 4 years ago

||EDIT: I wrote the comment below without reading related thread about the issues related to scripting Windows Updates. Apologies if I came across as antagonistic or rude, that certainly wasn’t my intent! I’ll see myself out. /EDIT||

So frustrating!? How can this still be an issue YEARS later?

My guess is that not enough people are actually using the modules listed here and having issues, so this stays at a very low priority for the dev team: ConfigDefender, Defender, Microsoft.PowerShell.Operation.Validation, UEV, Whea, WindowsDeveloperLicense

But with this being open source, someone could tackle writing all of this documentation and fixing the URI, LOL =)

PrMinisterGR commented 4 years ago

It is working if you fo Install-WUUpdates -Updates (Start-WUScan Start-WUScan -SearchCriteria "IsInstalled=0 AND IsHidden=0 AND IsAssigned=1")

The real issue is that it won't pull updates consistently, no driver updates, no supplemental updates, no matter how Start-WUScan is called, there is no way to completely automate this. This is SO disappointing, every single Linux distro and BSD has solved this problem thirty years ago, Jesus Christ Microsoft.

pdario commented 4 years ago

This is the result (after deleting the repeated Start-WUScan):

Install-WUUpdates -Updates (Start-WUScan -SearchCriteria "IsInstalled=0 AND IsHidden=0 AND IsAssigned=1") Invoke-CimMethod : WU Scan Failed At C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdateProvider\MSFT_WUOperations.psm1:17 char:20

Start-WUScan : Scan hit error: .ReturnValue At line:1 char:29

Install-WUUpdates : Cannot validate argument on parameter 'Updates'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. At line:1 char:28

PrMinisterGR commented 4 years ago

Right, I figured it out. You need to run Start-WUScan by itself first, let it finish.

And then you call it with Install-WUUpdates -Updates (Start-WUScan)

image

Still, of course, it's unreliable enough so that you can never be sure if everything from Windows Update will be installed if you use it. You still need to go an press a button manually. Who knows when a company employing one hundred thousand developers will figure out updates. It is truly a mystery.

pdario commented 4 years ago

No good

image

PrMinisterGR commented 4 years ago

This is with an Admin Powershell, I presume, correct?

image

Which Windows build version are you using?

pdario commented 4 years ago

Yes; it starts in C:\Windows\System32 when it is elevated.

Win ver:

image

felixkasza commented 4 years ago

Please supply at least some dummy help. Pretty much the first thing a user will do upon installing Powershell is looking at the help -- BOOM! Big, fat errors. It's been years, surely you can find someone to write "There is no help for this cmdlet"?

PrMinisterGR commented 4 years ago

Yes; it starts in C:\Windows\System32 when it is elevated.

Win ver:

image

I don't think I can help much more, I am as much in the dark as you are guys :(

The largest software development company in the world, and it can't write a system updated better than any run of the mill Linux distro. Shame.

AustiNight commented 4 years ago

My first foray into powershell. I'm impressed. These engineers are bad mf'ers if they get away with this at work. Respect.

MarkIannucci commented 4 years ago

@PrMinisterGR , we're avoiding a second call to Start-WUScan by storing the Start-WUScan output in a variable. This seems to be more? reliable at least for our configuration. Full code follows:

$updates = Start-WUScan
Install-WUUpdates -Updates $updates
PrMinisterGR commented 4 years ago

These tools are no longer integrated at all in Windows 10 2004.

ScriptAutomate commented 4 years ago

NOTE: The following is tested with Windows 10 20H2 (newer than 2004, which was 20H1), seen as build 19042.

PS > Get-CimInstance win32_operatingsystem | select Caption,Version

Caption                  Version
-------                  -------
Microsoft Windows 10 Pro 10.0.19042

In response to the update tools:

These tools are no longer integrated at all in Windows 10 2004.

@PrMinisterGR Do you mean the commands in the WindowsUpdateProvider module, specifically?

I did do a quick test, and I get a Provider load failure error having to do with MSFT_WUOperations by the looks of it. But this was with a quick test, and I currently don't have the patience to try and resolve the issue following workaround directions similar to this:

KingWAR10CK commented 4 years ago

Im still getting the same fault: image image

ScriptAutomate commented 4 years ago

NOTE: The following is tested with Windows 10 20H2 (newer than 2004, which was 20H1), seen as build 19042.

PS > Get-CimInstance win32_operatingsystem | select Caption,Version

Caption                  Version
-------                  -------
Microsoft Windows 10 Pro 10.0.19042

@KingWAR10CK I checked again, and was definitely mistaken. I forgot I had commented out the HelpInfoURI in order to avoid the errors!

PS > update-help

update-help : Failed to update Help for the module(s) 'ConfigDefender, HostNetworkingService, PSReadline, WindowsUpdateProvider' with UI culture(s) {en-US} : Unable to retrieve the HelpInfo
XML file for UI culture en-US. Make sure the HelpInfoUri property in the module manifest is valid or check your network connection and then try the command again.
At line:1 char:1
+ update-help
+ ~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.UpdateHelpCommand

update-help : Failed to update Help for the module(s) 'HgsClient, HgsDiagnostics' with UI culture(s) {en-US} : Unable to connect to Help content. The server on which
Help content is stored might not be available. Verify that the server is available, or wait until the server is back online, and then try the command again.
At line:1 char:1
+ update-help
+ ~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Update-Help], Exception
    + FullyQualifiedErrorId : UnableToConnect,Microsoft.PowerShell.Commands.UpdateHelpCommand

Broken help in Windows 10 Pro 20H2:

ScriptAutomate commented 3 years ago

For those interested, https://github.com/PowerShell/PowerShell/issues/13591 is looking at the same problem, but from the perspective of modifying PowerShell's behavior. I suggest taking a look and providing input :)

ITMicaH commented 3 years ago

I'm running Windows 10 20H1 and 20H2 and I can't find the WindowsUpdateProvider module anymore. I had it and used it in 19H2 but now it's gone. Copying it from a 1909 desktop won't work either because the CIM namespace root/Microsoft/Windows/WindowsUpdate isn't there anymore. Without documentation I have no clue how to get it back.

sdwheeler commented 3 years ago

The commentary in this issue has diverged widely from the original problem report about Update-Help. The Update-Help issues have already been reported many times. We are in the process of fixing these issues but it will be a few months before we can implement the final fix.

The other issues with specific cmdlet behavior should be reported as product issues at: https://windowsserver.uservoice.com/forums/301869-powershell.

Documentation issues about specific cmdlets should be added to the repository with separate issues for each cmdlet.

ScriptAutomate commented 3 years ago

The commentary in this issue has diverged widely from the original problem report about Update-Help. The Update-Help issues have already been reported many times. We are in the process of fixing these issues but it will be a few months before we can implement the final fix.

The other issues with specific cmdlet behavior should be reported as product issues at: https://windowsserver.uservoice.com/forums/301869-powershell.

Documentation issues about specific cmdlets should be added to the repository with separate issues for each cmdlet.

@sdwheeler UserVoice is no longer used by Microsoft. Do you know where users may be able to raise issues regarding built-into-Windows PowerShell modules, that don't have public repos, such as the other ones listed here (outside of PSReadLine, due to your blog entries that address how to fix):

I was able to find this page here, Microsoft Support: UserVoice Pages:

Note: We will be moving away from UserVoice feedback sites on a product-by-product basis throughout the 2021 calendar year. We will leverage 1st party solutions for customer feedback.

How can I submit feedback to Microsoft? We have a variety of channels that allow customers to communicate with us. Including:

It looks like the tech community space that may be most relevant is Microsoft Tech Community: PowerShell. Would this then be the best place to raise issues and bring attention to internally-sourced PowerShell modules, broken HelpInfoURI functionality, etc?

sdwheeler commented 3 years ago

@ScriptAutomate Most of the docs pages for cmdlets have a feedback button on the bottom of the page. You can start there. The core set of modules that ship with PowerShell are supported by the PowerShell team. The product feedback button on the docs page takes you to the New Issues page in the PowerShell source repo in GitHub.

For the Windows management modules, like ActiveDirectory or Hyper-V (and others), the product feedback button on the docs page still points to UserVoice. But the docs feedback button points to the docs repo in GitHub. You can leave feedback in the docs repo but it is better to use Windows Feedback Hub or the PowerShell Tech Community.

sdwheeler commented 3 years ago

@ScriptAutomate In response to your final point, you don't need to bring attention to the internally-sourced PowerShell modules. We are well aware of the problems and are working to fix them. We have fixed this (for 90%) of the modules for the Server 2022 and Windows 11 release. The harder part is to fix this for old versions of Windows. We hope to have fixed this by the end of the calendar year.

ScriptAutomate commented 3 years ago

@sdwheeler Awesome! Thanks for the info, for the blog posts, and for the other work I've seen you involved in across discussions/issues :) It's appreciated, and looks to be quite a lot of wrangling

whitTech commented 2 years ago

Can @ScriptAutomate, @sdwheeler, or anyone else on this thread provide a working link to track the progress of the WindowsUpdateProvider module being unavailable in newer versions of Windows? Suggestions have been provided, but they are either dead links or not relevant.

This thread is linked in one of the top hits on Google: https://docs.microsoft.com/en-us/answers/questions/212035/start-wuscan-cmdlet-is-not-avialble-to-run-on-few.html

To avoid further off-topic posting here, any help with a legitimate destination for seekers would be beneficial for all and greatly appreciated.

nebb00 commented 2 years ago

Can @ScriptAutomate, @sdwheeler, or anyone else on this thread provide a working link to track the progress of the WindowsUpdateProvider module being unavailable in newer versions of Windows? Suggestions have been provided, but they are either dead links or not relevant.

This thread is linked in one of the top hits on Google: https://docs.microsoft.com/en-us/answers/questions/212035/start-wuscan-cmdlet-is-not-avialble-to-run-on-few.html

To avoid further off-topic posting here, any help with a legitimate destination for seekers would be beneficial for all and greatly appreciated.

please bring back the "WindowsUpdateProvider" module

nebb00 commented 2 years ago

A third party module PSWindowsUpdate is not a great replacement for basic inbuilt functionality

kevstar0 commented 2 years ago

A year later & still not fixed running windows 11 pro version 21H2

PrMinisterGR commented 2 years ago

@ScriptAutomate In response to your final point, you don't need to bring attention to the internally-sourced PowerShell modules. We are well aware of the problems and are working to fix them. We have fixed this (for 90%) of the modules for the Server 2022 and Windows 11 release. The harder part is to fix this for old versions of Windows. We hope to have fixed this by the end of the calendar year.

Hi, any possible update on this specific module for Windows 11? It would seem it would be important to be able to update the operating system via the command line, in a consistent way without 3rd party libraries.

nebb00 commented 2 years ago

A year later & still not fixed running windows 11 pro version 21H2

I actually made a powershell script to update hosts without the use of any modules. If I get time, I will remove any system specific hard coded items and publish on my GitHub.

Basically reads AD and gives you a list of enabled windows machines, allows you a choice. And updates and reboots the machine remotely.