This is enforced by Microsoft by adding a SKU-exclusive CBS-package for every Windows edition.
In the past (up to Windows 8.1) updates requiered "Microsoft-Windows-Foundation-Package" to be installed, which is available on all editions of Windows.
update.mum of a Windows 7 update:
- Code: Select all
<parent buildCompare="EQ" serviceCompare="GE" integrate="separate" disposition="detect">
...
<assemblyIdentity name="Microsoft-Windows-Foundation-Package" language="neutral" version="6.1.7601.17514" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
...
</parent>
With Windows 10 MS introduced for every SKU an EditionSpecific package.
(Core = Core, Professional = Professional, Enterprise = Enterprise, Education = Education, EnterpriseS = Enterprise LTSB/LTSC)
update.mum of the last Windows 10 (1507) update, available for all editions:
- Code: Select all
<parent buildCompare="EQ" integrate="separate" disposition="detect">
<assemblyIdentity name="Microsoft-Windows-CoreCountrySpecificEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-CoreEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-CoreNEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-CoreSingleLanguageEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-CoreSystemServerEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EducationEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EducationNEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseEvalEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseNEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseNEvalEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseSEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseSEvalEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseSNEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseSNEvalEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-PPIProEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-ProfessionalEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-ProfessionalNEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-ServerDatacenterEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-ServerHyperCoreEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-ServerStandardEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
...
</parent>
By simply removing everything except for "Microsoft-Windows-Server*Edition" and "Microsoft-Windows-EnterpriseSEdition" from the dependency-list it's easy to enforce, that this update cannot be applied to a non-LTSB/LTSC Windows 10 Enterprise.
update.mum of a LTSB/LTSC-only update
- Code: Select all
<parent buildCompare="EQ" integrate="separate" disposition="detect">
<assemblyIdentity name="Microsoft-Windows-EnterpriseSEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
<assemblyIdentity name="Microsoft-Windows-EnterpriseSNEdition" language="neutral" version="10.0.10240.16384" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" buildType="release" />
...
</parent>
How does this apply to wsusou?
wsusou supports the LTSB/LTSC editions of Windows 10, that's why the TH1/1507/10240-support is kept. (It's just the LTSB/LTSC, which gets updates now, as the updates themselves enforce that). The support for 1511 was dropped, because there is no LTSB/LTSC.
Is it possible to modify a LTSB/LTSC-update to work on nonLTSB/LTSC systems. I'm sure, that some person will achieve this in the future, but it's not that easy as adding one line to update.mum. You have to do this for every CBS-element, which should be applied, agian and check, if that on can/has to be installed. And if you did all this, there still is code-signing. WUA will refuse to install user-modified packages...
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
WSUS Offline Update „Community Edition“
https://gitlab.com/wsusoffline/wsusoffline/-/releases