Recently returned from long break. When I open warcraft and click on anything in any menu, fps is fine but it can take up to 30 seconds before responding to my input. Another issue: after I start a game, even a small old custom map, my fps is extremely low like 0.3 fps. I had a discussion about this in the warcraft united discord and we think 1.33 is no longer compatible with my specs (I use Intel 4000) however 1.32 was running really well, I had more than 60 fps most of the time. So please fix this.
No one from Activision will fix it. So, get creative and find a way to fix it on your own. Good luck!
Great response, super classy.
Try reinstalling, otherwise provide a dxdiag and your full specs, what gateway you’re using to connect, internet connection and speed, etc.
Uninstall Refudged and pretend like it never existed. The game is dead.
I assume that DirectPlay is turned off, the .NET 3.5 Framework ( which includes the .NET 1.x-2.x Framework ) is not installed, VC++ / DirectX 9 Redistributables are not up to date, etc.
NOTE: On Windows 10 / 11: Right-click on the following batch file after saving it, and click “Run as administrator”.
(1.) Use Notepad to create this file on your desktop or another folder: Dependency_Auto_Updater.bat
@ECHO OFF
SETLOCAL
sc config BITS start= delayed-auto
sc config EventLog start= auto
sc config UsoSvc start= auto
sc config wuauserv start= auto
net start BITS
net start EventLog
net start UsoSvc
net start wuauserv
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope LocalMachine -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-PSReadLineOption -HistorySaveStyle SaveNothing -MaximumHistoryCount 1}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Write-Output 'Remove-Module PSReadline' | New-Item -Path $PROFILE -Type File -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls13}"
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /T REG_SZ /D "0" /F
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /V 2 /T REG_SZ /D "time.windows.com" /F
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /V 1 /T REG_SZ /D "time.nist.gov" /F
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers /V 0 /T REG_SZ /D "time.cloudflare.com" /F
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Remove-NetFirewallRule -DisplayName 'App Updater ( * )'}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Remove-NetFirewallRule -DisplayName 'App Updater Essential ( * )'}"
IF EXIST "C:\Windows\System32\curl.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater Essential ( cURL - System32 )' -Profile Any -Program 'C:\Windows\System32\curl.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\curl.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater Essential ( cURL - SysWOW64 )' -Profile Any -Program 'C:\Windows\SysWOW64\curl.exe' -Protocol Any}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater Essential ( Windows Time Service )' -Profile Any -Protocol UDP -LocalPort 123 -RemotePort 123 -Service W32Time}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( DNS Client )' -Enabled False -Profile Any -Protocol Any -Service Dnscache}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Background Intelligent Transfer Service )' -Enabled False -Profile Any -Protocol Any -Service BITS}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Delivery Optimization )' -Enabled False -Profile Any -Protocol Any -Service DoSvc}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Device Setup Manager )' -Enabled False -Profile Any -Protocol Any -Service DsmSvc}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Update )' -Enabled False -Profile Any -Protocol Any -Service wuauserv}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Update Orchestrator Service )' -Enabled False -Profile Any -Protocol Any -Service UsoSvc}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( AppX Deployment Service )' -Enabled False -Profile Any -Protocol Any -Service AppXSvc}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Microsoft Store Install Service )' -Enabled False -Profile Any -Protocol Any -Service InstallService}"
CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows License Manager Service )' -Enabled False -Profile Any -Protocol Any -Service LicenseManager}"
IF EXIST "C:\Windows\System32\Fondue.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Features on Demand UX )' -Enabled False -Profile Any -Program 'C:\Windows\System32\Fondue.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\OptionalFeatures.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Features )' -Enabled False -Profile Any -Program 'C:\Windows\System32\OptionalFeatures.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\usocoreworker.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( USO Core Worker Process )' -Enabled False -Profile Any -Program 'C:\Windows\System32\usocoreworker.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\MoUsoCoreWorker.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( USO Core Worker Process )' -Enabled False -Profile Any -Program 'C:\Windows\System32\MoUsoCoreWorker.exe' -Protocol Any}"
IF EXIST "C:\Windows\UUS\amd64\MoUsoCoreWorker.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( MoUSO Core Worker Process )' -Enabled False -Profile Any -Program 'C:\Windows\UUS\amd64\MoUsoCoreWorker.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\oobe\UserOOBEBroker.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Update - User OOBE Broker )' -Enabled False -Profile Any -Program 'C:\Windows\System32\oobe\UserOOBEBroker.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\LsaIso.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Credential Guard & VBS Key Isolation )' -Enabled False -Profile Any -Program 'C:\Windows\System32\LsaIso.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\sihost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Shell Infrastructure Host )' -Enabled False -Profile Any -Program 'C:\Windows\System32\sihost.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\SLUI.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Activation Client )' -Enabled False -Profile Any -Program 'C:\Windows\System32\SLUI.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\Dism.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Dism Image Servicing Utility - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\Dism.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\Dism.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Dism Image Servicing Utility - SysWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\Dism.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\Dism\DismHost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Dism Host Servicing Process - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\Dism\DismHost.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\Dism\DismHost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Dism Host Servicing Process - SysWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\Dism\DismHost.exe' -Protocol Any}"
IF EXIST "C:\Windows\ImmersiveControlPanel\SystemSettings.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Settings )' -Enabled False -Profile Any -Program 'C:\Windows\ImmersiveControlPanel\SystemSettings.exe' -Protocol Any}"
IF EXIST "C:\Windows\servicing\TrustedInstaller.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Modules Installer )' -Enabled False -Profile Any -Program 'C:\Windows\servicing\TrustedInstaller.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows PowerShell - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows PowerShell - SysWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\msiexec.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Installer - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\msiexec.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\msiexec.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Windows Installer - SysWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\msiexec.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\svchost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Host Process for Windows Services - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\svchost.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\svchost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Host Process for Windows Services - SySWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\svchost.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\browser_broker.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Browser Broker )' -Enabled False -Profile Any -Program 'C:\Windows\System32\browser_broker.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\BackgroundTransferHost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Download - Upload Host - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\BackgroundTransferHost.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\BackgroundTransferHost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Download - Upload Host - SysWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\BackgroundTransferHost.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\backgroundTaskHost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Background Task Host - System32 )' -Enabled False -Profile Any -Program 'C:\Windows\System32\backgroundTaskHost.exe' -Protocol Any}"
IF EXIST "C:\Windows\SysWOW64\backgroundTaskHost.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( Background Task Host - SysWOW64 )' -Enabled False -Profile Any -Program 'C:\Windows\SysWOW64\backgroundTaskHost.exe' -Protocol Any}"
IF EXIST "C:\Windows\System32\AppHostRegistrationVerifier.exe" CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName 'App Updater ( App Uri Handlers Registration Verifier )' -Enabled False -Profile Any -Program 'C:\Windows\System32\AppHostRegistrationVerifier.exe' -Protocol Any}"
ECHO @ECHO OFF> "%~dp0RFRSH_FireWall_.bat"
ECHO SETLOCAL>> "%~dp0RFRSH_FireWall_.bat"
IF NOT EXIST "%ProgramFiles(x86)%\Microsoft\EdgeWebView" GOTO SKIP_0_LBL
CD /D "%ProgramFiles(x86)%\Microsoft\EdgeWebView\Application"
DIR /B /S "msedgewebview2.exe"> "%~dp0rfrshfrwll_0.txt"
SET /P TMP_FRWLL_RULE_EDGE_=<"%~dp0rfrshfrwll_0.txt"
IF NOT EXIST "%TMP_FRWLL_RULE_EDGE_%" GOTO SKIP_0_LBL
SET NM_VR_=App Updater ( Microsoft Edge WebView2 )
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_0.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_0_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.Getstarted_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.Getstarted_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.Getstarted_*_Arm64__*"
IF NOT EXIST "WhatsNew.Store.exe" GOTO SKIP_1_LBL
SET NM_VR_=App Updater ( Microsoft Store - Get Started App 1 )
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path '%~dp0rfrshfrwll_13.txt' -value (Get-AppxPackage -AllUsers Microsoft.Getstarted | Format-Table PackageFamilyName -Wrap -AutoSize | Out-String -Stream | Select-String -Pattern 'PackageFamilyName', '-----------------' -NotMatch)}"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_13.txt") DO (CALL :RFRSH_FRWLL_2_ "%%A")
SET NM_VR_=App Updater ( Microsoft Store - Get Started App 2 )
DIR /B /S "WhatsNew.Store.exe"> "%~dp0rfrshfrwll_1.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_1.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_1_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.WindowsStore_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.WindowsStore_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.WindowsStore_*_Arm64__*"
IF NOT EXIST "WinStore.App.exe" GOTO SKIP_2_LBL
SET NM_VR_=App Updater ( Microsoft Store App 1 )
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path '%~dp0rfrshfrwll_14.txt' -value (Get-AppxPackage -AllUsers Microsoft.WindowsStore | Format-Table PackageFamilyName -Wrap -AutoSize | Out-String -Stream | Select-String -Pattern 'PackageFamilyName', '-----------------' -NotMatch)}"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_14.txt") DO (CALL :RFRSH_FRWLL_2_ "%%A")
SET NM_VR_=App Updater ( Microsoft Store App 2 )
DIR /B /S "WinStore.App.exe"> "%~dp0rfrshfrwll_2.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_2.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_2_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.StorePurchaseApp_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.StorePurchaseApp_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.StorePurchaseApp_*_Arm64__*"
IF NOT EXIST "StoreExperienceHost.exe" GOTO SKIP_3_LBL
SET NM_VR_=App Updater ( Microsoft Store - Experience Host 1 )
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path '%~dp0rfrshfrwll_15.txt' -value (Get-AppxPackage -AllUsers Microsoft.StorePurchaseApp | Format-Table PackageFamilyName -Wrap -AutoSize | Out-String -Stream | Select-String -Pattern 'PackageFamilyName', '-----------------' -NotMatch)}"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_15.txt") DO (CALL :RFRSH_FRWLL_2_ "%%A")
SET NM_VR_=App Updater ( Microsoft Store - Experience Host 2 )
DIR /B /S "StoreExperienceHost.exe"> "%~dp0rfrshfrwll_3.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_3.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_3_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.WindowsStore_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.WindowsStore_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.WindowsStore_*_Arm64__*"
IF NOT EXIST "StoreDesktopExtension.exe" GOTO SKIP_4_LBL
SET NM_VR_=App Updater ( Microsoft Store - Desktop Extension )
DIR /B /S "StoreDesktopExtension.exe"> "%~dp0rfrshfrwll_4.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_4.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_4_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_Arm64__*"
IF NOT EXIST "winget.exe" GOTO SKIP_5_LBL
SET NM_VR_=App Updater ( Microsoft Store - WinGet )
DIR /B /S "winget.exe"> "%~dp0rfrshfrwll_5.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_5.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_5_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_Arm64__*"
IF NOT EXIST "AppInstaller.exe" GOTO SKIP_6_LBL
SET NM_VR_=App Updater ( Microsoft Store - AppInstaller 1 )
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path '%~dp0rfrshfrwll_16.txt' -value (Get-AppxPackage -AllUsers Microsoft.DesktopAppInstaller | Format-Table PackageFamilyName -Wrap -AutoSize | Out-String -Stream | Select-String -Pattern 'PackageFamilyName', '-----------------' -NotMatch)}"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_16.txt") DO (CALL :RFRSH_FRWLL_2_ "%%A")
SET NM_VR_=App Updater ( Microsoft Store - AppInstaller 2 )
DIR /B /S "AppInstaller.exe"> "%~dp0rfrshfrwll_6.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_6.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_6_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_Arm64__*"
IF NOT EXIST "AppInstallerFullTrustAppServiceClient.exe" GOTO SKIP_7_LBL
SET NM_VR_=App Updater ( Microsoft Store - AppInstaller 3 )
DIR /B /S "AppInstallerFullTrustAppServiceClient.exe"> "%~dp0rfrshfrwll_7.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_7.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_7_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_Arm64__*"
IF NOT EXIST "AppInstallerPythonRedirector.exe" GOTO SKIP_8_LBL
SET NM_VR_=App Updater ( Microsoft Store - AppInstaller 4 )
DIR /B /S "AppInstallerPythonRedirector.exe"> "%~dp0rfrshfrwll_8.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_8.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_8_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_Arm64__*"
IF NOT EXIST "AuthenticationManager.exe" GOTO SKIP_9_LBL
SET NM_VR_=App Updater ( Microsoft Store - AuthenticationManager )
DIR /B /S "AuthenticationManager.exe"> "%~dp0rfrshfrwll_9.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_9.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_9_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x86__*"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__*"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\Microsoft.DesktopAppInstaller_*_Arm64__*"
IF NOT EXIST "WindowsPackageManagerServer.exe" GOTO SKIP_10_LBL
SET NM_VR_=App Updater ( Microsoft Store - WinGetServer )
DIR /B /S "WindowsPackageManagerServer.exe"> "%~dp0rfrshfrwll_10.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_10.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_10_LBL
IF %Processor_Architecture%==x86 CD /D "C:\PROGRA~1\WindowsApps\MicrosoftWindows.Client.WebExperience_*_x86__*\Dashboard"
IF %Processor_Architecture%==AMD64 CD /D "C:\PROGRA~1\WindowsApps\MicrosoftWindows.Client.WebExperience_*_x64__*\Dashboard"
IF %Processor_Architecture%==ARM64 CD /D "C:\PROGRA~1\WindowsApps\MicrosoftWindows.Client.WebExperience_*_Arm64__*\Dashboard"
IF NOT EXIST "Widgets.exe" GOTO SKIP_11_LBL
SET NM_VR_=App Updater ( Widgets 1 )
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path '%~dp0rfrshfrwll_17.txt' -value (Get-AppxPackage -AllUsers MicrosoftWindows.Client.WebExperience | Format-Table PackageFamilyName -Wrap -AutoSize | Out-String -Stream | Select-String -Pattern 'PackageFamilyName', '-----------------' -NotMatch)}"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_17.txt") DO (CALL :RFRSH_FRWLL_2_ "%%A")
SET NM_VR_=App Updater ( Widgets 2 )
DIR /B /S "Widgets.exe"> "%~dp0rfrshfrwll_11.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_11.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_11_LBL
CD /D "C:\Windows\SystemApps\MicrosoftWindows.Client.CBS_*"
IF NOT EXIST "SearchHost.exe" GOTO SKIP_12_LBL
SET NM_VR_=App Updater ( Search Host - Cortana 1 )
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path '%~dp0rfrshfrwll_18.txt' -value (Get-AppxPackage -AllUsers MicrosoftWindows.Client.CBS | Format-Table PackageFamilyName -Wrap -AutoSize | Out-String -Stream | Select-String -Pattern 'PackageFamilyName', '-----------------' -NotMatch)}"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_18.txt") DO (CALL :RFRSH_FRWLL_2_ "%%A")
SET NM_VR_=App Updater ( Search Host - Cortana 2 )
DIR /B /S "SearchHost.exe"> "%~dp0rfrshfrwll_12.txt"
FOR /F "usebackq tokens=* delims=" %%A IN ("%~dp0rfrshfrwll_12.txt") DO (CALL :RFRSH_FRWLL_1_ "%%A")
:SKIP_12_LBL
ECHO ENDLOCAL>> "%~dp0RFRSH_FireWall_.bat"
ECHO DEL /Q "%%~dp0RFRSH_FireWall_.bat" 2^> nul>> "%~dp0RFRSH_FireWall_.bat"
GOTO LST_LNE_
:RFRSH_FRWLL_1_
ECHO CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName '%NM_VR_%' -Enabled False -Profile Any -Program '%~s1' -Protocol Any}">> "%~dp0RFRSH_FireWall_.bat"
GOTO :EOF
:RFRSH_FRWLL_2_
ECHO CMD /Q /C START /MIN PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {New-NetFirewallRule -Action Allow -Direction Outbound -DisplayName '%NM_VR_%' -Enabled False -Profile Any -Package '%~1' -Protocol Any}">> "%~dp0RFRSH_FireWall_.bat"
GOTO :EOF
:LST_LNE_
DEL /Q "%~dp0rfrshfrwll_*.txt" 2> nul
CALL "%~dp0RFRSH_FireWall_.bat"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope LocalMachine -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-PSReadLineOption -HistorySaveStyle SaveNothing -MaximumHistoryCount 1}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Write-Output 'Remove-Module PSReadline' | New-Item -Path $PROFILE -Type File -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls13}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Install-PackageProvider -Name PowerShellGet -Scope AllUsers -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Install-PackageProvider -Name NuGet -Scope AllUsers -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Install-PackageProvider -Name WinGet -Scope AllUsers -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Register-PackageSource -Name 'Nuget Gallery' -Location https://api.nuget.org/v3/index.json -Trusted -Force -ProviderName NuGet}"
DISM /Online /Enable-Feature /FeatureName:LegacyComponents
DISM /Online /Enable-Feature /FeatureName:DirectPlay
DISM /Online /Enable-Feature /FeatureName:NetFx3
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Install-Package Microsoft.XAudio2.Redist -Scope AllUsers -Force}"
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Install-Package Microsoft.Direct3D.D3D12 -Scope AllUsers -Force}"
REM "WinGet Settings" ( https://aka.ms/winget-settings )
ECHO {"$id": "https://aka.ms/winget-settings.schema.json",> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "$schema": "https://json-schema.org/draft/2019-09/schema#",>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "title": "Microsoft's Windows Package Manager Settings Profile Schema",>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "definitions":{"source": {"autoUpdateIntervalInMinutes":3},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "visual": {"progressBar":"rainbow"},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "installBehavior":{"disableInstallNotes":true},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "installBehavior":{"preferences":{"scope":"machine"}},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "installBehavior":{"preferences":{"locale":["en-US"]}},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
IF %Processor_Architecture%==ARM64 ECHO "installBehavior":{"preferences":{"architectures":["Arm64"]}},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
IF %Processor_Architecture%==AMD64 ECHO "installBehavior":{"preferences":{"architectures":["x64"]}},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
IF %Processor_Architecture%==x86 ECHO "installBehavior":{"preferences":{"architectures":["x86"]}},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "telemetry":{"disable":true},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "logging":{"level":["critical"]},>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ECHO "experimentalFeatures":{"directMSI":true},}}>> %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
winget install 9NBLGGH4NNS1 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2005.x86 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2005.x64 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2008.x86 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2008.x64 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2010.x86 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2010.x64 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2012.x86 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2012.x64 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2013.x86 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2013.x64 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2015+.x86 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.VCRedist.2015+.x64 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.DotNet.Runtime.3_1 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.DotNet.Runtime.5 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.DotNet.Runtime.6 --silent --accept-package-agreements --accept-source-agreements
winget install Microsoft.DotNet.Runtime.7 --silent --accept-package-agreements --accept-source-agreements
ECHO Creating Offline Installers on the Desktop... ( Press CTRL+C to END ) && PAUSE
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Vulkan_RT" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Vulkan_RT"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\VB6_Common_Controls" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\VB6_Common_Controls"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\DirectX_End_User_Runtimes" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\DirectX_End_User_Runtimes"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2008_(VC++_9.0)_SP1" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2008_(VC++_9.0)_SP1"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2010_(VC++_10.0)_SP1" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2010_(VC++_10.0)_SP1"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2012_(VC++_11.0)_Update_4" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2012_(VC++_11.0)_Update_4"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2013_(VC++_12.0)" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2013_(VC++_12.0)"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Vulkan_RT" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Vulkan_RT"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\VB6_Common_Controls" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\VB6_Common_Controls"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\DirectX_End_User_Runtimes" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\DirectX_End_User_Runtimes"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2008_(VC++_9.0)_SP1" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2008_(VC++_9.0)_SP1"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2010_(VC++_10.0)_SP1" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2010_(VC++_10.0)_SP1"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2012_(VC++_11.0)_Update_4" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2012_(VC++_11.0)_Update_4"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2013_(VC++_12.0)" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2013_(VC++_12.0)"
IF NOT EXIST "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022" MKDIR "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022"
curl --parallel-immediate --parallel-max 100 --progress-bar --ssl-no-revoke --tlsv1.3 -LZRA "" "https://aka.ms/vs/17/release/vc_redist.arm64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022\vc_redist.arm64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022\vc_redist.arm64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022\vc_redist.arm64.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.3 -LZRA "" "https://aka.ms/vs/17/release/vc_redist.x86.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022\vc_redist.x86.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022\vc_redist.x86.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022\vc_redist.x86.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.3 -LZRA "" "https://aka.ms/vs/17/release/vc_redist.x64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022\vc_redist.x64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2015_2017_2019_2022\vc_redist.x64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022\vc_redist.x64.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.3 -LZRA "" "https://aka.ms/highdpimfc2013x86enu" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2013_(VC++_12.0)\vcredist_x86.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2013_(VC++_12.0)\vcredist_x86.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2013_(VC++_12.0)\vcredist_x86.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.3 -LZRA "" "https://aka.ms/highdpimfc2013x64enu" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2013_(VC++_12.0)\vcredist_x64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2013_(VC++_12.0)\vcredist_x64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2013_(VC++_12.0)\vcredist_x64.exe"
curl --parallel-immediate --parallel-max 100 --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x86.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x86.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x86.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x64.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x86.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x86.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x86.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x86.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/1/6/5/165255E7-1014-4D0A-B094-B6A430A6BFFC/vcredist_x64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x64.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x86.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x86.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x86.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x64.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_IA64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_IA64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_IA64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_IA64.EXE" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x64.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x64.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x64.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x64.EXE" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x86.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x86.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x86.EXE"
curl --parallel-immediate --parallel-max 100 --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\DirectX_End_User_Runtimes\directx_Jun2010_redist.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\DirectX_End_User_Runtimes\directx_Jun2010_redist.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\DirectX_End_User_Runtimes\directx_Jun2010_redist.exe" --next ^
--parallel-immediate --progress-bar --ssl-no-revoke --tlsv1.2 -LZRA "" "https://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c-bb01-af67dc2f96fc/VisualBasic6-KB896559-v1-ENU.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\VB6_Common_Controls\VisualBasic6-KB896559-v1-ENU.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\VB6_Common_Controls\VisualBasic6-KB896559-v1-ENU.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\VB6_Common_Controls\VisualBasic6-KB896559-v1-ENU.exe"
curl --progress-bar --ssl-no-revoke --tlsv1.3 -LZRA "" "https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-runtime.exe" --etag-compare "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Vulkan_RT\VulkanRT_Installer.txt" --etag-save "%UserProfile%\Desktop\VC++_NET_Runtimes\ETag_Cache\Vulkan_RT\VulkanRT_Installer.txt" -o "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Vulkan_RT\VulkanRT_Installer.exe"
ECHO Installing DirectX 9 Redistributable / Vulkan Runtime... ( Press CTRL+C to END ) && PAUSE
IF NOT EXIST "%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1" MKDIR "%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\DirectX_End_User_Runtimes\directx_Jun2010_redist.exe" /Q /T:"%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1"
"%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1\DXSETUP.exe" /silent
RMDIR /S /Q "%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Vulkan_RT\VulkanRT_Installer.exe" /S
REM Microsoft Visual C++ Redistributable latest supported downloads ->
REM Notes: Windows XP Support: ->
REM https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?#notes
REM Reset / Repair Apps:
REM Settings -> System -> Other troubleshooters -> Windows Store Apps (Run)
REM Settings -> System -> Other troubleshooters -> Windows Update (Run)
ENDLOCAL
(2.) Use Notepad to create this file on your desktop or another folder: Install_VC_DirectX_Vulkan_Offline.bat
@ECHO OFF
SETLOCAL
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_8_2005_IA64" MKDIR "%Temp%\VC++_NET_Runtimes\VC_8_2005_IA64"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VB_6_Controls" MKDIR "%Temp%\VC++_NET_Runtimes\VB_6_Controls"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_8_2005_64" MKDIR "%Temp%\VC++_NET_Runtimes\VC_8_2005_64"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_8_2005_86" MKDIR "%Temp%\VC++_NET_Runtimes\VC_8_2005_86"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_9_2008_64" MKDIR "%Temp%\VC++_NET_Runtimes\VC_9_2008_64"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_9_2008_86" MKDIR "%Temp%\VC++_NET_Runtimes\VC_9_2008_86"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_10_2010_64" MKDIR "%Temp%\VC++_NET_Runtimes\VC_10_2010_64"
IF NOT EXIST "%Temp%\VC++_NET_Runtimes\VC_10_2010_86" MKDIR "%Temp%\VC++_NET_Runtimes\VC_10_2010_86"
IF %Processor_Architecture%==IA64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_IA64.EXE" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_8_2005_IA64"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\VB6_Common_Controls\VisualBasic6-KB896559-v1-ENU.exe" /Q /T:"%Temp%\VC++_NET_Runtimes\VB_6_Controls"
IF %Processor_Architecture%==AMD64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x64.EXE" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_8_2005_64"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2005_(VC++_8.0)_SP1\vcredist_x86.EXE" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_8_2005_86"
IF %Processor_Architecture%==AMD64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x64.exe" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_9_2008_64"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2008_(VC++_9.0)_SP1\vcredist_x86.exe" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_9_2008_86"
IF %Processor_Architecture%==AMD64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x64.exe" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_10_2010_64"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2010_(VC++_10.0)_SP1\vcredist_x86.exe" /Q /T:"%Temp%\VC++_NET_Runtimes\VC_10_2010_86"
IF %Processor_Architecture%==AMD64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x64.exe" /install /quiet /norestart
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2012_(VC++_11.0)_Update_4\vcredist_x86.exe" /install /quiet /norestart
IF %Processor_Architecture%==AMD64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2013_(VC++_12.0)\vcredist_x64.exe" /install /quiet /norestart
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2013_(VC++_12.0)\vcredist_x86.exe" /install /quiet /norestart
IF %Processor_Architecture%==ARM64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022\vc_redist.arm64.exe" /install /quiet /norestart
IF %Processor_Architecture%==AMD64 "%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022\vc_redist.x64.exe" /install /quiet /norestart
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Visual_Studio_2015_2017_2019_2022\vc_redist.x86.exe" /install /quiet /norestart
RMDIR /S /Q "%Temp%\VC++_NET_Runtimes"
IF NOT EXIST "%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1" MKDIR "%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\DirectX_End_User_Runtimes\directx_Jun2010_redist.exe" /Q /T:"%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1"
"%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1\DXSETUP.exe" /silent
RMDIR /S /Q "%Temp%\WinGet\Microsoft.DirectX.9.29.1974.1"
"%UserProfile%\Desktop\VC++_NET_Runtimes\Downloads\Vulkan_RT\VulkanRT_Installer.exe" /S
ENDLOCAL
EDIT: Fixed an obvious typo and added a batch file for offline installation of the VC++ Redist + VB6 Common Controls + DX 9 + Vulkan Runtime + Basic Windows Firewall Implementation with Network Time Security ( NTS ) protocol. Also replaced dotnet “preview” tag with version 7 standard ( stable version of the runtime installer that provides access to the latest dotnet artifacts via software interface / API handles. )
If using integrated graphics, then make sure classic graphics are being used.
If using Intel integrated graphics, make sure to update your driver. Especially if it is still supported by Intel as they are rolling out a lot of updates at the moment.
Make sure that Warcraft III is running in fullscreen mode and not a windowed mode as sometimes the desktop composer can interfere with it.
Turn off various overlays and pop-up notifications. Some people have reported that anything that overlays or generates a pop up can largely degrade performance even if it is not visible to the user.
Does not matter as modern Warcraft III uses D3D11 and is bundled with all dependencies.
That “runtime” was for DirectX extensions. Direct3D itself is part of Windows so updates automatically with windows updates. In recent years the DirectX extensions have been provided by the Micorosft DirectX Agility SDK and other such projects which are embedded directly into applications at compile time.
Click to Expand: This is the actual redistributable I posted in the automated installer above. It does in fact have D3DX11, but colloquially speaking, it is refered to as the DirectX 9.0 Redistributable, though it has been updated quite a bit since 2009/2010. It's a version of the same thing everyone used back when WC3 was new. Now we can ALL learn about how it works:
"The Microsoft DirectX End-User Runtime installs a number of runtime libraries from the legacy DirectX SDK for some games that use D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3, XACT, and/or Managed DirectX 1.1." -> https://www.microsoft.com/en-us/download/details.aspx?id=8109
As games get older, they sometimes fail to include the latest redistributables with the installers:
DirectX Installation for Game Developers -> https://learn.microsoft.com/en-us/windows/win32/dxtecharts/directx-setup-for-game-developers
And to quote microsoft…
https://walbourn.github.io/not-so-direct-setup/
The only time running the DirectSetup package will help is if you are getting a message about missing
D3DX*.DLL
,D3DCompiler*.DLL
(#43 or earlier),XAUDIO2*.DLL
(2.7 or earlier),XINPUT*.DLL
(1.1, 1.2, & 1.3),X3DAUDIO*.DLL
, orXACTENGINE*.DLL
(or the deprecated Managed DirectX 1.1 assemblies). That’s it.
As the topic creator is not getting such a message, it logically will not help.
This was an auto-updater for every game made in the past 20 years for Windows (not just Blizzard games.) Your concern with this is irrelevant.
NOTE: This is a public forum, everyone can see this. I didn’t make this for you, but you can use this if you want. Nobody is stopping you. This script eliminates a few troubleshooting steps, has the potential to reduce support fees, but it doesn’t fix configuration issues. That was self-evident from the beginning.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.