ChrisTitusTech / winutil

Chris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates
MIT License
24.31k stars 1.48k forks source link

Sometimes stuck on Running script for WPFTweaks00 #2035

Closed genesis224 closed 5 months ago

genesis224 commented 5 months ago

Describe the bug A clear and concise description of what the bug is.

To Reproduce Apply tweaks

Expected behavior It takes too long before the tweaks to be applied or it just really stuck in that certain command line .

Screenshots IMG_20240605_175022_049.jpg

genesis224 commented 5 months ago

However after restarting windows and tried to apply tweaks it can now continue but idk if it's the tool that causes it or it's just my windows. My windows are pretty clean.

IMG_20240605_182849_890.jpg

In my end it only works on fresh restart for some reason but sometimes still not.

Marterich commented 5 months ago

The logic behind OO downloads the executable on each run of the tweak. My first thought on how this could influence the issue is download issues of the executable due to a slow or unstable network connection or DNS settings that delay or block certain domains.

A second possibility could be some weird system configuration that blocks some of the. Changes oo tries to apply

This nevertheless would not fully explain why it seems to work after a restart.

Does winutil show any kind of error if you simply wait and do nothing when winutil seems to hang? Does the problem also occur when you press the OO button under advanced tweaks and open the tool to configure changes manually?

genesis224 commented 5 months ago

Yeah the powershell freezes when I use the OO tweaker to do custom tweaks under it so i need to download the app itself. Also right now even after restarting it just gets stuck anymore. Ill try changing dns. Also there are no error that shows while I wait for that WPFTweaks section. It just really stuck on that certain command. If this problem persists maybe ill just try setting the shutup tweaks by myself considering maybe its just a problem with my end.

genesis224 commented 5 months ago

image So I found out that it applies very very quickly if I just leave the Run Oo Shutup only in the tweaks section but still I cant press the customize Ooshutup in the powershell itself or else it will freeze

Marterich commented 5 months ago

Okay, this definitely looks like a network/download issue. This is the download request that is started in the script, with the only difference that the script also disables the download progress bar to optimize the download speed when using Invoke-WebRequest

Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile OOSU10.exe

You could try executing this command directly in a Powershell window. My guess is that this will not work either which would affirm the possibility of network issues

genesis224 commented 5 months ago

image I dont know if it works but this is what happened after running and waiting for it for a minutes. I think if you think this is only in my end I will be willingly to close this issue. If so, can i just apply the reccomended settins for ooshutup provided by default after downloading oo in my local machine?

og-mrk commented 5 months ago

Okay, this definitely looks like a network/download issue. This is the download request that is started in the script, with the only difference that the script also disables the download progress bar to optimize the download speed when using Invoke-WebRequest

Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile OOSU10.exe

You could try executing this command directly in a Powershell window. My guess is that this will not work either which would affirm the possibility of network issues

It very much seems like a Network issue, as it happens to me when the Network isn't stable (I have to simulate the Network lagging/un-stableness through the Router or by throttling my PC Network heavily using some sort of Software.. but that's just to test/simulate this issue).

But I do wonder.. how much does it speed things up? when considering how small the File Size of O&O Shutup Binary is, I mean.. if it isn't that much faster, then In my opinion, displaying a progress bar indicating to the User there's something happening in the background, which would provide a better User Experience.

Nevertheless, I'm not that deep into PowerShell.. yet, so I don't know much about Practical Tricks like this one (the not showing progress bar to "boost"/speed up the download).

genesis224 commented 5 months ago

Okay, this definitely looks like a network/download issue. This is the download request that is started in the script, with the only difference that the script also disables the download progress bar to optimize the download speed when using Invoke-WebRequest

Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile OOSU10.exe

You could try executing this command directly in a Powershell window. My guess is that this will not work either which would affirm the possibility of network issues

It very much seems like a Network issue, as it happens to me when the Network isn't stable (I have to simulate the Network lagging/un-stableness through the Router or by throttling my PC Network heavily using some sort of Software.. but that's just to test/simulate this issue).

But I do wonder.. how much does it speed things up? when considering how small the File Size of O&O Shutup Binary is, I mean.. if it isn't that much faster, then In my opinion, displaying a progress bar indicating to the User there's something happening in the background, which would provide a better User Experience.

Nevertheless, I'm not that deep into PowerShell.. yet, so I don't know much about Practical Tricks like this one (the not showing progress bar to "boost"/speed up the download).

Should I just close the issue considering this only happens on my end I guess because it's just a network issue like you both mentioned.

Marterich commented 5 months ago

@genesis224 I'm actually a bit intrigued now to find a clear cause for the problem and I still have a few ideas on how to debug this ^^ You could try running the following commands and post the results here so we can maybe find the root cause.

# Reset $ProgressPreference to Windows Default
$ProgressPreference = "Continue"

# Try to DNS Resolve the hostname
Resolve-DnsName dl5.oo-software.com

# Rerun the download command with the $ProgressPreference Variable set to "Continue" 
Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile OOSU10.exe

# Try copying the URL into a browser of your choice and see if the download of OOSU starts that way
Marterich commented 5 months ago

But I do wonder.. how much does it speed things up? when considering how small the File Size of O&O Shutup Binary is, I mean.. if it isn't that much faster, then In my opinion, displaying a progress bar indicating to the User there's something happening in the background, which would provide a better User Experience.

@og-mrk Fair question. I played around with benchmarking the Invoke-WebRequest function a bit in regards to the download speed of large files. Everything was tested on the same machine only a few minutes apart. The test file I downloaded was 512Mb to really show the difference.

Running in PowerShell ISE Debugger: Silent Download: 41s Normal Download: 62s

Running in Powershell 5 interactive Window: Silent Download: 42s Normal Download: 880s

Running in Powershell 7 interactive Window: Silent Download: 41s Normal Download: 46s

I reran the Powershell 5 Test Multiple Times because I knew it would be bad, but I didn't expect it to be this bad. Furthermore, Powershell 5 to my knowledge is still the default configuration shipped in Windows, so Microsoft seems to have really fucked something up with IWR in Powershell5

Regarding if this is a necessary time save for this small 2 MB OOSU File, most definitely not. But on a usual network, the difference between 3.4s download time and 0.2s is definitely noticeable.

og-mrk commented 5 months ago

But I do wonder.. how much does it speed things up? when considering how small the File Size of O&O Shutup Binary is, I mean.. if it isn't that much faster, then In my opinion, displaying a progress bar indicating to the User there's something happening in the background, which would provide a better User Experience.

@og-mrk Fair question. I played around with benchmarking the Invoke-WebRequest function a bit in regards to the download speed of large files. Everything was tested on the same machine only a few minutes apart. The test file I downloaded was 512Mb to really show the difference.

Running in PowerShell ISE Debugger: Silent Download: 41s Normal Download: 62s

Running in Powershell 5 interactive Window: Silent Download: 42s Normal Download: 880s

Running in Powershell 7 interactive Window: Silent Download: 41s Normal Download: 46s

I reran the Powershell 5 Test Multiple Times because I knew it would be bad, but I didn't expect it to be this bad. Furthermore, Powershell 5 to my knowledge is still the default configuration shipped in Windows, so Microsoft seems to have really fucked something up with IWR in Powershell5

Regarding if this is a necessary time save for this small 2 MB OOSU File, most definitely not. But on a usual network, the difference between 3.4s download time and 0.2s is definitely noticeable.

Woo.. that's a noticeable difference between silent and normal (with progress bar) downloads, I'll be sure to keep this in mind when doing PowerShell networking, really interesting how PowerShell 5 implementation.

... Maybe there's a workaround for displaying a form of progress (even if it was a simple one) when downloading any file while maintaining compatibility with PowerShell 5.. Will look into it when I can. Thanks for sharing this info @Marterich 😄

genesis224 commented 5 months ago

@genesis224 I'm actually a bit intrigued now to find a clear cause for the problem and I still have a few ideas on how to debug this ^^ You could try running the following commands and post the results here so we can maybe find the root cause.

# Reset $ProgressPreference to Windows Default
$ProgressPreference = "Continue"

# Try to DNS Resolve the hostname
Resolve-DnsName dl5.oo-software.com

# Rerun the download command with the $ProgressPreference Variable set to "Continue" 
Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile OOSU10.exe

# Try copying the URL into a browser of your choice and see if the download of OOSU starts that way

image This is the result when I paste all the command from what you mentioned and also I tried pasting the url into the browser and yes its downloading

Marterich commented 5 months ago

@genesis224 This is actually quite weird and I'm still not sure why this is happening on your device. My best guess is still some kind of unusual network problem or maybe also a temporary server problem on the end of OO. Regarding proposing a real "solution" I'm still at a loss, also because I'm in no way able to reproduce the behavior you describe.

genesis224 commented 5 months ago

@genesis224 This is actually quite weird and I'm still not sure why this is happening on your device. My best guess is still some kind of unusual network problem or maybe also a temporary server problem on the end of OO. Regarding proposing a real "solution" I'm still at a loss, also because I'm in no way able to reproduce the behavior you describe.

Maybe it's just my end I'll close this issue I'll just apply my own oo profile and use chris tool WinUtil for applying manual services thank you very much guys!