Windows 10 WSUS Upgrade Issues File Not Found

I had problems with updating my system to 1607 version.
Recieved error message File not found.

Found this website with solution
https://social.technet.microsoft.com/Forums/office/en-US/d7dbb851-4e3a-41d9-9072-1f16d7b1bc1e/fix-domain-windows-10-wsus-upgrade-issues-file-not-found?forum=winserverwsus

We were having an issue with the Windows 10 upgrade MS recently released to WSUS server on our domain. To put a long story short the issue is in IIS and NOT WSUS per say. After some testing it turns out IIS was not serving the .esd file (this is the main update file) due to the mime type not being set. To rectify the issue:

under IIS Admin->WSUS Administration->Content-> Click on “Mime Types”-> Add

File Mame Extention:  = .esd

MIME type:     application/vnd.ms-cab-compressed

If you have already tried to pull the W10 update you may need to clear your SoftwareDistribution Download Cache under the Windows Dir and clear out the hidden $WINDOWS.~BT

EDIT:

The actual mime type for esd, accordion to http://www.filesuffix.com/en/extension/esd, is “application/octet-stream”.

Install iTunes with Landesk

At this moment I have rights for Landesk. Not optimal but I can add software and send it to systems what I manage.

Here is a script that I use to install Itunes.

@echo off
cls
echo --------------------------------------------------------
echo .
echo .
echo .      Installing iTunes 12.5.4.42 x64
echo .         Window will close once installed

If "%PROCESSOR_ARCHITECTURE%" == "AMD64" GOTO X64
IF "%PROCESSOR_ARCHITECTURE%" == "x86" GOTO x86

GOTO EXIT


:: Wait for 20 seconds
ping -n 20 127.0.0.1 > NUL

:x86
REM Copy Installer
REM Installer is only X64

GOTO EXIT



:X64
REM Copy Installer
Copy "\\<SERVER>\iTunes 12.5.4.42 x64\AppleApplicationSupport.msi" "C:\Logs\"
Copy "\\<SERVER>\iTunes 12.5.4.42 x64\AppleApplicationSupport64.msi" "C:\Logs\"
Copy "\\<SERVER>\iTunes 12.5.4.42 x64\AppleMobileDeviceSupport6464.msi" "C:\Logs\"
Copy "\\<SERVER>\iTunes 12.5.4.42 x64\AppleSoftwareUpdate.msi" "C:\Logs\"
Copy "\\<SERVER>\iTunes 12.5.4.42 x64\Bonjour64.msi" "C:\Logs\"
Copy "\\<SERVER>\iTunes 12.5.4.42 x64\iTunes6464.msi" "C:\Logs\"

REM Run Installer
MSIEXEC.EXE /I "C:\Logs\AppleApplicationSupport.msi" /QN /norestart REBOOT=ReallySuppress
MSIEXEC.EXE /I "C:\Logs\AppleApplicationSupport64.msi" /QN /norestart REBOOT=ReallySuppress
MSIEXEC.EXE /I "C:\Logs\AppleMobileDeviceSupport6464.msi" /QN /norestart REBOOT=ReallySuppress
MSIEXEC.EXE /I "C:\Logs\AppleSoftwareUpdate.msi" /QN /norestart REBOOT=ReallySuppress
MSIEXEC.EXE /I "C:\Logs\Bonjour64.msi" /QN /norestart REBOOT=ReallySuppress
MSIEXEC.EXE /I "C:\Logs\iTunes6464.msi" /QN /norestart REBOOT=ReallySuppress

:: Wait for 20 seconds
ping -n 20 127.0.0.1 > NUL

REM Delete Installer
Del "C:\Logs\AppleApplicationSupport.msi"
Del "C:\Logs\AppleApplicationSupport64.msi"
Del "C:\Logs\AppleMobileDeviceSupport6464.msi"
Del "C:\Logs\AppleSoftwareUpdate.msi"
Del "C:\Logs\Bonjour64.msi"
Del "C:\Logs\iTunes6464.msi"

GOTO EXIT

:EXIT
REM Return exit code to Landesk
exit /B %EXIT_CODE%

 

Dell E7470 Bios Update

At the company where I work we don’t have full domain rights. There is no SCCM Server. There is an other software deploy program that we only have rights to send it to computers, not to create packages. So I create my own scripts to update computers.

This script I wanted to created in Powershell because it is the new windows script language. And is only used for Windows 10

I created a separate AD group that I can select the computers one by one to update. If you do all at once and there are problems you have a lot of work.

This script is added in users policy and computer policy because the user has no admin rights and needs to give aprove to do the update.

#########################################
##### Created by Daag van der Meer  #####
##### http://blog.van-daag.nl       #####
#########################################

#Check if script is active for policy (remove the #(hashtag) To test script running
#Set-Content -path "\\<LOGSRV>\Logs$\Bios\Run$($env:computername)_$($env:username)_$(get-date -f "yyyy-MM-dd_HH-mm-ss")Policy.txt"  -Value "Policy is working"
#Set-Content -path "C:\Logs\Run_$($env:computername)_$($env:username)_$(get-date -f "yyyy-MM-dd_HH-mm-ss")Policy.txt"  -Value "Policy is working"
 
#Get Computer's DN
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher.Filter = "(&(objectCategory=Computer)(SamAccountname=$($env:COMPUTERNAME)`$))"
$objSearcher.SearchScope = "Subtree"
$obj = $objSearcher.FindOne()
$Computer = $obj.Properties["distinguishedname"]
 
#Now get the members of the group
$Group = "<Enter here AD group>"
$objSearcher.Filter = "(&(objectCategory=group)(SamAccountname=$Group))"
$objSearcher.SearchScope = "Subtree"
$obj = $objSearcher.FindOne()
[String[]]$Members = $obj.Properties["member"]
 
If ($Members -contains $Computer)
{
 
 
# Check Model 7470
$computerSystem = Get-CimInstance CIM_ComputerSystem
$Model = $computerSystem.Model
If ($Model -eq "Latitude E7470") {}
Else {exit}
 
 
#Bios version Check
$computerBIOS = Get-CimInstance CIM_BIOSElement
$Biosversie = $computerBIOS.SMBIOSBIOSVersion
if ($Biosversie -eq "1.5.3") {}
Elseif ($Biosversie -eq "1.10.4") {}
Else{exit}
 
# Start setup
$strFileName="C:\Logs\BiosupdateYes.txt"
If (Test-Path $strFileName){
Remove-Item c:\Logs\BiosupdateYes.txt
Set-Content -path  "\\<LOGSRV>\Logs$\Bios\$($env:computername)_$($env:username)_$(get-date -f "yyyy-MM-dd_HH-mm-ss")SetupStarted.txt"  -Value "User awnser is Yes"
c:\Logs\Latitude_E7x70_1.11.3.exe /s /r /l="\\<LOGSRV>\Logs$\Bios\$($env:computername)Biosupdate1.11.3.txt" /p=<PASSWORD>

}
Else {}
 
#Popup
$a = new-object -comobject wscript.shell
$intAnswer = $a.popup("There is a Bios Update! PowerCable needs to be connected. Computer needs to reboot. And you needs to enter 2 times the harddiskpassword. Then the install is ready. Estimated time: 15 Min. (This popup will show twice when click on no) Can we do it now?", `
0,"Bios Update",4)
If ($intAnswer -eq 6) {}
else {exit}
 
Set-Content -path  "C:\Logs\BiosupdateYes.txt"  -Value "Installation started"
Copy-Item \\<Network Location>\Dell\Bios\Latitude_E7x70_1.11.3.exe c:\Logs
Restart-Computer
 
 
 
# In your GPO enable the following setting: "Run logon scripts visible" to ensure that the logon script is visible. You can find it under User Configuration\Administrative Templates\System\Scripts
}
Else {exit}

The computer Policy

The user Policy

This popup will show.

 

Remove Java and install Latest Version

At the company where I work we don’t have full domain rights. There is no SCCM Server. There is an other software deploy program that we only have rights to send it to computers, not to create packages. So I create my own scripts to update computers.

This script I use to update Java on all computers. Windows 7 and Windows 10.

@echo off
REM #########################################
REM ##### Created by Daag van der Meer  #####
REM ##### http://blog.van-daag.nl       #####
REM ##### Filename InstallJava.cmd      #####
REM #########################################
PING 1.1.1.1 -n 1 -w 900 >NUL

SET JavaFile=<JAVAFilename.msi>
SET JavaLoc=\\<Java MSI Location\Java\Update
SET LOGLOC=%Systemdrive%\logs

REM ############### Create Log Dir ###################
mkdir %LOGLOC%
attrib +s +h %Systemdrive%\logs
Goto INSTALL

:INSTALL
REM ######## Check Java Installed #############
set Logfile=%LOGLOC%\%JavaFile%.log
if not exist "%Logfile%" (
echo Java is Installed on %date% at %time% >> %LogFile%
GOTO JAVASTART)

GOTO END

:JAVASTART
REM ###### Uninstall All Java versions ####
Echo Removing All Java Versions
wmic product where "name like 'Java%%'" call uninstall /nointeractive

REM Java Silent Install version 8111 (replace with your java version downloaded)
Echo Installing Java
copy %JavaLoc%\%JavaFile% %LOGLOC%
start /wait msiexec.exe /i %LOGLOC%\%JavaFile% JU=0 JAVAUPDATE=0 AUTOUPDATECHECK=0 RebootYesNo=No
del %LOGLOC%\%JavaFile%

REM Disable Auto Update
echo Disable Auto Updates
reg delete "HKLM\SOFTWARE\JavaSoft\Java Update\Policy\jucheck" /v "UpdateSchedule" /f
reg delete "HKLM\SOFTWARE\JavaSoft\Java Update\Policy\jucheck" /v "UpdateMin" /f
reg add "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t REG_DWORD /d 00000000 /f
reg add "HKLM\SOFTWARE\JavaSoft\Java Update\Policy" /v EnableAutoUpdateCheck /t REG_DWORD /d 00000000 /f
reg add "HKCU\SOFTWARE\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t REG_DWORD /d 00000000 /f

reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy\jucheck" /v "UpdateSchedule" /f
reg delete "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy\jucheck" /v "UpdateMin" /f
reg add "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /v EnableJavaUpdate /t REG_DWORD /d 00000000 /f
reg add "HKLM\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy" /v EnableAutoUpdateCheck /t REG_DWORD /d 00000000 /f

Goto END
:NO
del %LOGLOC%\%JavaFile%.log

:END

Add this script to the machine policy.

 

When a computer has the login screen this batch file runs and removes / installs Java.