Opraveno 75 děr produktech od Microsoftu. Končí podpora Windows 10 v1709

10. 4. 2019

Sdílet

Úterý v tomto týdnu bylo druhé v měsíci, tudíž v rámci něj Microsoft vyslal k Windows a dalším svým produktům nové servisní aktualizace zaměřené na záplatování objevených zranitelných míst v kódu. Opraveno bylo 75 slabých míst v zabezpečení v produktech od Redmondského giganta.

Redmondští dne 9. dubna 2019 uvolnili následující opravné balíky:

Březnové záplatovací úterý: Microsoft vyřešil špatný herní výkon ve Windows 10 v1809

Konec podpory Windows 10 verze 1709

Tento měsíc poslední aktualizace získal Windows 10 v1709. Týká se to edic Home, Pro, Pro for Workstation a IoT Core. Firmy mohou servisní aktualizace získávat i nadále. Oznámení se tedy týká primárně domácností. Podíl této verze už je minimální, raději si ale zkontrolujte, jestli jste už upgradovali na jedno z novějších vydání Desítek. Mělo k tomu dojít automaticky.

Aktualizace pro Windows 10 verze 1903

První záznam na seznamu aktualizací, viz výše, je uvedený kurzívou, protože se sice jedná o vydání veřejné, nicméně stále dostupné jen v testovacích okruzích. Specificky ve Fast ringu, Slow ringuRelease Preview, kde si verze 1903 odbyla premiéru v pondělí. Prozatím je v tomto okruhu dostupná jen těm, kdo ručně vyhledají aktualizace.

Nezdá se, že se Microsoftu touto aktualizací podařilo opravit známé chyby, zato jedna přibyla. Po instalaci této aktualizace mohou nastat potíže se spuštěním Windows Defender Application Guard nebo Windows Sandbox. Jako dočasné řešení je doporučeno v klíči HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Containers\CmService\Policy nastavit hodnoty DisableCloneDisableSnapshot na 1.

Bezobsažná aktualizace ovšem není, přináší potřebné záplaty nalezených děr.

Aktualizace pro Windows 10 verze 1809

Kromě níže uvedených obsahuje aktualizace opravy z vydání ze druhé třetiny března, které nezískali všichni.

  • Problém s nastavením písem, který se vztahuje primárně k asijským zemím, zapříčiňoval pád systému.
  • Aplikace využívající MSXML6 mohly přestat odpovídat.*
  • Editor Místních zásad zabezpečení mohl zamrznout při úpravě nastavení týkajícího se Internet Exploreru 10.*
  • Někdy docházelo k potížím s autentifikací v Internet Exploreru 11 a dalších aplikacích využívajících knihovnu wininet.dll. Stávalo se to tehdy, když dva nebo více lidí využívali stejný uživatelský účet pro souběžné připojení ke stejnému stroji a Windows Serveru.*
  • Aktualizace obsahuje záplaty pro následující komponenty: Windows Datacenter Networking, Windows Server, Microsoft JET Database Engine, Windows Kernel, Windows Input & Composition, Microsoft Scripting Engine, Windows App Platform a Frameworky, Windows Storage a souborové systémy, Microsoft Graphics, Windows Virtualization, Windows MSXML, Windows SQL a Microsoft Edge.

Známé problémy aktualizací pro stabilní řady Windows

Položky výše označené hvězdou minule patřily ke známým problémů. Ty tedy byly zredukovány, nikoli však kompletně. Co zůstává na seznamu? Vlastní schémata URI nemusela spustit příslušné aplikace pro intranet a důvěryhodné stránky v IE. Týká se to všech aktuálně stabilních podporovaných verzí Windows 10.

Dubnové opravné balíky jsou k dispozici Dubnové opravné balíky jsou k dispozici

Ve Windows 10 v1809 a 1803 a Windows 8.1 můžete narazit na problémy při použití PXE při spuštění zařízení ze severu nakonfigurovaného pomocí WDS pro použití Variable Window Extension.

Jeden zvláštní problém se dotýká Windows 7. Po instalaci nejnovější aktualizace může docházet k potížím s autentifikací u služeb vyžadujících neomezenou delegaci po expiraci schváleného přístupu pomocí technologie Kerberos.

Změna v aktualizacích pro Windows 7

Od dubna už aktualizace pro Sedmičky nebudou obsahovat nástroj PciClearStaleCache.exe, který byl určený pro řešení nekonzistencí s mezipamětí PCI. Proto by se správci a správkyně měli ujistit, že před instalací této aktualizace nejdříve nainstalují jednu ze servisních aktualizací vydaných mezi 10. dubnem 2018 a 12. březnem 2019.

CIF25

Jinak se můžete setkat s určitými symptomy, k nimž patří vypnutý adaptér Wi-Fi, nezobrazení profilu Wi-Fi v oznamovací oblasti, ztráta nastavení statické IP u síťových připojení a náhrada sítových připojení, které najdete v příslušném ovládacím panelu, za nová připojení s výchozími hodnotami. Tj. ztratíte vlastní nastavení síťových připojení.

Tyto symptomy by se nejčastěji měly vyskytovat na virtuálních počítačích a na zařízeních, která od března nebyl zaktualizována od března 2018. Kdo aktualizuje pravidelně, měl neměl by na problémy narazit.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }