From 0667e1e1fe4a1dbd03f6e4218b3650f1e78f087c Mon Sep 17 00:00:00 2001 From: Brian Lich Date: Wed, 25 Jan 2017 14:45:35 -0800 Subject: [PATCH] Revert "reverting changes" This reverts commit ecd000f39a712dab62dcc117494c8be802a18637. --- README.md | 1 + .../deprecated-document-modes.md | 8 +- .../ie11-deploy-guide/images/docmodeflow2.png | Bin 239681 -> 0 bytes .../ie11-deploy-guide/img-ie11-docmode-lg.md | 11 + .../net-framework-problems-with-ie11.md | 2 +- .../user-interface-problems-with-ie11.md | 4 +- devices/hololens/TOC.md | 2 +- devices/hololens/hololens-enroll-mdm.md | 1 + devices/hololens/hololens-install-apps.md | 1 + devices/hololens/hololens-kiosk.md | 1 + devices/hololens/hololens-provisioning.md | 3 +- devices/hololens/hololens-requirements.md | 1 + devices/hololens/hololens-setup.md | 1 + .../hololens/hololens-upgrade-enterprise.md | 5 +- devices/hololens/index.md | 3 +- devices/surface-hub/TOC.md | 1 + .../surface-hub/accessibility-surface-hub.md | 2 +- .../admin-group-management-for-surface-hub.md | 2 +- ...ix-a-powershell-scripts-for-surface-hub.md | 4 +- .../surface-hub/change-history-surface-hub.md | 9 + .../connect-and-display-with-surface-hub.md | 22 +- ...-deployment-surface-hub-device-accounts.md | 2 +- devices/surface-hub/index.md | 5 +- .../manage-windows-updates-for-surface-hub.md | 2 +- ...-deployment-surface-hub-device-accounts.md | 2 +- ...-deployment-surface-hub-device-accounts.md | 55 +- .../save-bitlocker-key-surface-hub.md | 2 +- .../surface-hub/surface-hub-wifi-direct.md | 121 ++ ...se-room-control-system-with-surface-hub.md | 2 +- devices/surface/change-history-for-surface.md | 6 + ...and-system-center-configuration-manager.md | 2 +- ...tomize-the-oobe-for-surface-deployments.md | 16 +- ...ace-app-with-windows-store-for-business.md | 19 +- ...irmware-and-drivers-for-surface-devices.md | 87 +- ...-windows-10-to-surface-devices-with-mdt.md | 95 +- ...and-configure-surface-devices-with-semm.md | 9 +- ...-adapters-and-surface-device-deployment.md | 3 +- devices/surface/index.md | 2 + .../manage-surface-dock-firmware-updates.md | 20 +- .../surface/manage-surface-uefi-settings.md | 2 +- .../surface/microsoft-surface-data-eraser.md | 24 +- ...icrosoft-surface-deployment-accelerator.md | 12 +- ...-by-step-surface-deployment-accelerator.md | 53 +- devices/surface/surface-diagnostic-toolkit.md | 106 +- devices/surface/surface-dock-updater.md | 6 +- .../surface-enterprise-management-mode.md | 2 +- .../unenroll-surface-devices-from-semm.md | 12 +- ...-surface-devices-to-windows-10-with-mdt.md | 10 +- education/windows/TOC.md | 1 + education/windows/change-history-edu.md | 10 + .../deploy-windows-10-in-a-school-district.md | 38 +- .../education-scenarios-store-for-business.md | 4 +- education/windows/index.md | 7 + education/windows/school-get-minecraft.md | 45 + education/windows/take-a-test-multiple-pcs.md | 4 +- education/windows/take-a-test-single-pc.md | 19 +- .../windows-10-pro-to-pro-edu-upgrade.md | 259 ++++ windows/deploy/TOC.md | 16 +- ...gn-applications-using-roles-in-mdt-2013.md | 12 +- .../change-history-for-deploy-windows-10.md | 20 + .../create-a-windows-10-reference-image.md | 2 +- windows/deploy/images/PoC.png | Bin 97482 -> 139787 bytes .../enterprise-e3-set-up-work-or-school.png | Bin 27370 -> 27557 bytes windows/deploy/images/package.png | Bin 4523 -> 11050 bytes windows/deploy/index.md | 4 +- .../provision-pcs-for-initial-deployment.md | 38 +- ...rovision-pcs-with-apps-and-certificates.md | 71 +- windows/deploy/provisioning-apply-package.md | 119 ++ windows/deploy/provisioning-command-line.md | 68 ++ windows/deploy/provisioning-create-package.md | 148 +++ windows/deploy/provisioning-how-it-works.md | 184 +++ windows/deploy/provisioning-install-icd.md | 106 ++ windows/deploy/provisioning-multivariant.md | 322 +++++ windows/deploy/provisioning-nfc.md | 153 +++ windows/deploy/provisioning-packages.md | 57 +- .../provisioning-script-to-install-app.md | 222 ++++ .../deploy/provisioning-uninstall-package.md | 98 ++ .../deploy/troubleshoot-upgrade-analytics.md | 15 +- .../deploy/upgrade-analytics-get-started.md | 88 +- .../deploy/upgrade-analytics-requirements.md | 4 +- windows/deploy/windows-10-poc-mdt.md | 634 ++++++++++ .../deploy/windows-10-poc-sc-config-mgr.md | 1040 +++++++++++++++++ windows/keep-secure/TOC.md | 23 +- .../access-this-computer-from-the-network.md | 4 +- .../accounts-guest-account-status.md | 4 +- .../accounts-rename-guest-account.md | 4 +- ...schema-extensions-to-support-tpm-backup.md | 288 +---- ...apps-to-protected-list-using-custom-uri.md | 25 +- windows/keep-secure/allow-log-on-locally.md | 4 +- windows/keep-secure/app-behavior-with-wip.md | 3 + .../back-up-files-and-directories.md | 4 +- ...ackup-tpm-recovery-information-to-ad-ds.md | 553 +-------- .../keep-secure/basic-audit-logon-events.md | 2 + .../keep-secure/bitlocker-basic-deployment.md | 2 +- .../keep-secure/bitlocker-countermeasures.md | 8 +- .../bitlocker-frequently-asked-questions.md | 6 +- .../bitlocker-group-policy-settings.md | 1 - ...tlocker-how-to-deploy-on-windows-server.md | 2 +- .../bitlocker-how-to-enable-network-unlock.md | 2 +- windows/keep-secure/bitlocker-overview.md | 5 +- ...ange-history-for-keep-windows-10-secure.md | 14 + windows/keep-secure/change-the-system-time.md | 4 +- windows/keep-secure/change-the-time-zone.md | 4 +- .../change-the-tpm-owner-password.md | 45 +- ...oose-the-right-bitlocker-countermeasure.md | 104 +- ...ows-defender-advanced-threat-protection.md | 48 +- ...ows-defender-advanced-threat-protection.md | 40 +- ...ows-defender-advanced-threat-protection.md | 63 + ...ows-defender-advanced-threat-protection.md | 6 +- ...ows-defender-advanced-threat-protection.md | 4 + ...ows-defender-advanced-threat-protection.md | 2 +- ...ows-defender-advanced-threat-protection.md | 2 +- ...ows-defender-advanced-threat-protection.md | 2 +- ...ows-defender-advanced-threat-protection.md | 9 +- windows/keep-secure/create-a-pagefile.md | 4 +- ...reate-and-verify-an-efs-dra-certificate.md | 18 +- .../create-applocker-default-rules.md | 4 + .../create-vpn-and-wip-policy-using-intune.md | 4 + .../create-wip-policy-using-intune.md | 35 +- .../create-wip-policy-using-sccm.md | 36 +- .../create-wmi-filters-for-the-gpo.md | 10 +- windows/keep-secure/credential-guard.md | 13 +- ...ows-defender-advanced-threat-protection.md | 4 +- .../deploy-wip-policy-using-intune.md | 3 + .../enlightened-microsoft-apps-and-wip.md | 5 +- .../export-an-applocker-policy-from-a-gpo.md | 2 +- .../guidance-and-best-practices-wip.md | 12 +- ...n-on-sso-over-vpn-and-wi-fi-connections.md | 94 ++ .../images/atp-intune-add-policy.png | Bin 118996 -> 0 bytes windows/keep-secure/images/status-tile.png | Bin 10357 -> 8592 bytes ...microsoft-passport-in-your-organization.md | 8 +- windows/keep-secure/index.md | 10 +- ...lize-and-configure-ownership-of-the-tpm.md | 196 ++-- ...gital-certificates-on-windows-10-mobile.md | 22 +- ...-information-when-the-session-is-locked.md | 2 +- ...ive-logon-do-not-display-last-user-name.md | 2 - .../interactive-logon-require-smart-card.md | 4 +- ...ed-security-and-code-integrity-policies.md | 2 +- ...ows-defender-advanced-threat-protection.md | 10 +- windows/keep-secure/limitations-with-wip.md | 11 +- .../maintain-applocker-policies.md | 2 +- ...y-verification-using-microsoft-passport.md | 2 +- windows/keep-secure/manage-tpm-commands.md | 40 +- windows/keep-secure/manage-tpm-lockout.md | 48 +- .../keep-secure/mandatory-settings-for-wip.md | 9 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 1 + .../keep-secure/overview-create-wip-policy.md | 6 +- ...ion-for-bitlocker-planning-and-policies.md | 23 +- .../protect-enterprise-data-using-wip.md | 7 +- ...-the-health-of-windows-10-based-devices.md | 4 +- ...nd-storage-area-networks-with-bitlocker.md | 45 +- ...recommended-network-definitions-for-wip.md | 39 + .../remove-computer-from-docking-station.md | 4 +- ...nt-planning-guidelines-for-device-guard.md | 2 +- ...ements-for-deploying-applocker-policies.md | 2 +- .../requirements-to-use-applocker.md | 6 +- .../restore-files-and-directories.md | 4 +- windows/keep-secure/security-technologies.md | 26 +- .../select-types-of-rules-to-create.md | 2 +- ...ows-defender-advanced-threat-protection.md | 54 + windows/keep-secure/shut-down-the-system.md | 4 +- .../shutdown-clear-virtual-memory-pagefile.md | 4 +- .../keep-secure/smart-card-architecture.md | 2 +- ...rt-card-smart-cards-for-windows-service.md | 2 +- .../switch-pcr-banks-on-tpm-2-0-devices.md | 18 +- .../keep-secure/testing-scenarios-for-wip.md | 5 +- .../tools-to-use-with-applocker.md | 2 +- windows/keep-secure/tpm-fundamentals.md | 148 +-- windows/keep-secure/tpm-recommendations.md | 271 +---- ...ows-defender-advanced-threat-protection.md | 107 +- ...ows-defender-advanced-threat-protection.md | 8 + ...bleshoot-windows-defender-in-windows-10.md | 2 +- .../trusted-platform-module-overview.md | 58 +- ...m-module-services-group-policy-settings.md | 121 +- .../trusted-platform-module-top-node.md | 33 + .../understanding-applocker-default-rules.md | 3 +- ...nderstanding-applocker-rule-collections.md | 2 + ...restriction-policies-in-the-same-domain.md | 2 +- .../using-event-viewer-with-applocker.md | 2 +- windows/keep-secure/using-owa-with-wip.md | 35 + ...dential-theft-mitigation-guide-abstract.md | 67 ++ ...ows-defender-advanced-threat-protection.md | 9 +- .../windows-defender-block-at-first-sight.md | 3 + .../windows-defender-in-windows-10.md | 2 +- .../keep-secure/wip-app-enterprise-context.md | 55 + .../working-with-applocker-rules.md | 3 +- windows/manage/.vscode/settings.json | 3 + windows/manage/TOC.md | 20 +- .../administrative-tools-in-windows-10.md | 6 +- ...istory-for-manage-and-update-windows-10.md | 21 + ...changes-to-start-policies-in-windows-10.md | 2 +- .../manage/configure-devices-without-mdm.md | 9 +- .../manage/configure-windows-10-taskbar.md | 24 +- ...-windows-telemetry-in-your-organization.md | 1 + windows/manage/connect-to-remote-aadj-pc.md | 2 +- windows/manage/cortana-at-work-crm.md | 62 + windows/manage/cortana-at-work-feedback.md | 24 + windows/manage/cortana-at-work-o365.md | 72 ++ windows/manage/cortana-at-work-overview.md | 64 + .../manage/cortana-at-work-policy-settings.md | 44 + windows/manage/cortana-at-work-powerbi.md | 138 +++ windows/manage/cortana-at-work-scenario-1.md | 58 + windows/manage/cortana-at-work-scenario-2.md | 41 + windows/manage/cortana-at-work-scenario-3.md | 86 ++ windows/manage/cortana-at-work-scenario-4.md | 51 + windows/manage/cortana-at-work-scenario-5.md | 57 + windows/manage/cortana-at-work-scenario-6.md | 37 + .../cortana-at-work-testing-scenarios.md | 32 + .../manage/cortana-at-work-voice-commands.md | 64 + .../customize-and-export-start-layout.md | 9 +- ...-10-start-screens-by-using-group-policy.md | 35 +- ...-by-using-provisioning-packages-and-icd.md | 5 +- windows/manage/images/wufb-config1a.png | Bin 70038 -> 61203 bytes windows/manage/images/wufb-config2.png | Bin 65192 -> 55670 bytes windows/manage/images/wufb-config3a.png | Bin 67958 -> 63108 bytes windows/manage/index.md | 3 + ...system-components-to-microsoft-services.md | 3 +- .../manage/manage-cortana-in-enterprise.md | 83 +- ...-in-your-organization-modern-management.md | 4 + windows/manage/start-layout-xml-desktop.md | 492 ++++++++ windows/manage/start-layout-xml-mobile.md | 392 +++++++ ...troubleshoot-windows-store-for-business.md | 2 +- windows/manage/waas-configure-wufb.md | 2 +- windows/manage/waas-integrate-wufb.md | 35 +- windows/manage/waas-manage-updates-wsus.md | 2 +- windows/manage/waas-manage-updates-wufb.md | 4 +- windows/manage/waas-overview.md | 15 +- windows/manage/waas-quick-start.md | 82 ++ windows/manage/waas-restart.md | 2 +- ...s-servicing-branches-windows-10-updates.md | 4 +- windows/manage/waas-update-windows-10.md | 5 +- windows/manage/windows-10-mobile-and-mdm.md | 4 +- ...ws-10-start-layout-options-and-policies.md | 4 +- .../windows-store-for-business-overview.md | 202 +++- .../working-with-line-of-business-apps.md | 1 - ...tory-for-plan-for-windows-10-deployment.md | 5 + .../windows-10-infrastructure-requirements.md | 10 +- ...ts-new-windows-10-version-1507-and-1511.md | 8 +- 239 files changed, 7528 insertions(+), 2468 deletions(-) delete mode 100644 browsers/internet-explorer/ie11-deploy-guide/images/docmodeflow2.png create mode 100644 browsers/internet-explorer/ie11-deploy-guide/img-ie11-docmode-lg.md create mode 100644 devices/surface-hub/surface-hub-wifi-direct.md create mode 100644 education/windows/windows-10-pro-to-pro-edu-upgrade.md create mode 100644 windows/deploy/provisioning-apply-package.md create mode 100644 windows/deploy/provisioning-command-line.md create mode 100644 windows/deploy/provisioning-create-package.md create mode 100644 windows/deploy/provisioning-how-it-works.md create mode 100644 windows/deploy/provisioning-install-icd.md create mode 100644 windows/deploy/provisioning-multivariant.md create mode 100644 windows/deploy/provisioning-nfc.md create mode 100644 windows/deploy/provisioning-script-to-install-app.md create mode 100644 windows/deploy/provisioning-uninstall-package.md create mode 100644 windows/deploy/windows-10-poc-mdt.md create mode 100644 windows/deploy/windows-10-poc-sc-config-mgr.md create mode 100644 windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md create mode 100644 windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md delete mode 100644 windows/keep-secure/images/atp-intune-add-policy.png create mode 100644 windows/keep-secure/recommended-network-definitions-for-wip.md create mode 100644 windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md create mode 100644 windows/keep-secure/trusted-platform-module-top-node.md create mode 100644 windows/keep-secure/using-owa-with-wip.md create mode 100644 windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md create mode 100644 windows/keep-secure/wip-app-enterprise-context.md create mode 100644 windows/manage/.vscode/settings.json create mode 100644 windows/manage/cortana-at-work-crm.md create mode 100644 windows/manage/cortana-at-work-feedback.md create mode 100644 windows/manage/cortana-at-work-o365.md create mode 100644 windows/manage/cortana-at-work-overview.md create mode 100644 windows/manage/cortana-at-work-policy-settings.md create mode 100644 windows/manage/cortana-at-work-powerbi.md create mode 100644 windows/manage/cortana-at-work-scenario-1.md create mode 100644 windows/manage/cortana-at-work-scenario-2.md create mode 100644 windows/manage/cortana-at-work-scenario-3.md create mode 100644 windows/manage/cortana-at-work-scenario-4.md create mode 100644 windows/manage/cortana-at-work-scenario-5.md create mode 100644 windows/manage/cortana-at-work-scenario-6.md create mode 100644 windows/manage/cortana-at-work-testing-scenarios.md create mode 100644 windows/manage/cortana-at-work-voice-commands.md create mode 100644 windows/manage/start-layout-xml-desktop.md create mode 100644 windows/manage/start-layout-xml-mobile.md create mode 100644 windows/manage/waas-quick-start.md diff --git a/README.md b/README.md index fa13a55593..8864d2a10e 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Welcome! This repository houses the docs that are written for IT professionals f - [Surface](https://technet.microsoft.com/itpro/surface) - [Surface Hub](https://technet.microsoft.com/itpro/surface-hub) - [Windows 10 for Education](https://technet.microsoft.com/edu/windows) +- [HoloLens](https://technet.microsoft.com/itpro/hololens) - [Microsoft Desktop Optimization Pack](https://technet.microsoft.com/itpro/mdop) ## Contributing diff --git a/browsers/internet-explorer/ie11-deploy-guide/deprecated-document-modes.md b/browsers/internet-explorer/ie11-deploy-guide/deprecated-document-modes.md index 0be45f20c1..e624e6db2e 100644 --- a/browsers/internet-explorer/ie11-deploy-guide/deprecated-document-modes.md +++ b/browsers/internet-explorer/ie11-deploy-guide/deprecated-document-modes.md @@ -10,7 +10,6 @@ title: Deprecated document modes and Internet Explorer 11 (Internet Explorer 11 ms.sitesec: library --- - # Deprecated document modes and Internet Explorer 11 **Applies to:** @@ -25,8 +24,8 @@ Windows Internet Explorer 8 introduced document modes as a way to move from the This means that while Internet Explorer 11 will continue to support document modes, Microsoft Edge won’t. And because of that, it also means that if you want to use Microsoft Edge, you’re going to have to update your legacy webpages and apps to support modern features, browsers, and devices. -**Note**
-For specific details about the technologies and APIs that are no longer supported in Microsoft Edge, see [A break from the past, part 2: Saying goodbye to ActiveX, VBScript, attachEvent](https://go.microsoft.com/fwlink/p/?LinkId=615953). +>**Note**
+>For specific details about the technologies and APIs that are no longer supported in Microsoft Edge, see [A break from the past, part 2: Saying goodbye to ActiveX, VBScript, attachEvent](https://go.microsoft.com/fwlink/p/?LinkId=615953). ## What is document mode? Each release after Internet Explorer 8 has helped with the transition by introducing additional document modes that emulated previously supported versions, while also introducing support for features defined by industry standards. During this time, numerous websites and apps were updated to the latest and greatest industry standards, while many other sites and apps continued to simply rely on document modes to work properly. @@ -41,7 +40,8 @@ The compatibility improvements made in IE11 lets older websites just work in the ## Document mode selection flowchart This flowchart shows how IE11 works when document modes are used. -![Flowchart detailing how document modes are chosen in IE11](images/docmodeflow2.png) +![Flowchart detailing how document modes are chosen in IE11](images/docmode-decisions-sm.png)
+[Click this link to enlarge image](img-ie11-docmode-lg.md) ## Known Issues with Internet Explorer 8 document mode in Enterprise Mode The default document mode for Enterprise Mode is Internet Explorer 8. While this mode provides a strong emulation of that browser, it isn’t an exact match. For example, Windows Internet Explorer 9 fundamentally changed how document modes work with iframes and document modes can’t undo architectural changes. It’s also a known issue that Windows 10 supports GDI font rendering while using Enterprise Mode, but uses natural metrics once outside of Enterprise Mode. diff --git a/browsers/internet-explorer/ie11-deploy-guide/images/docmodeflow2.png b/browsers/internet-explorer/ie11-deploy-guide/images/docmodeflow2.png deleted file mode 100644 index 63df4ea8ff1de379c7249f3f87451baedcb116ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239681 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

Sf}*2G)S{5^KUwxD>)cq&)su!;g z?3ar6bmFFVpXN=E=4=Ko)kKPWzo8q2P8x^uDRTPwOro_5!Tj|ETX#xRg-g*qvp4QB zXa&vlv(p7yXMsSNcmiHcKW_kE*8jg|8mZi zO$K5b8rpsnPH<{#@N;xVZ=Y3T9PF0*Nq08cogo> zeZa%1WI4&2Zh`BBJQJTNsr5WW$rmq~H7ZuJ&V})}nJIF$iy)GbjiB3CpQhgmIr8z?Ji6Z6*c}%vmt>r4W z(Ru_Tl*xI{Y_j@3r7b(&*0wU$S>A~ZrQvd^&W-n~%w9r^crpGVF?;zB6F`9ChBh)K zw3Z@U;33`g@?-V!0jsyP1LTh9{-p9z>Q=Qyy1A7{i@GlojA84MJ=9zhAHQZIC;+sP zniZCRmvN^Rh6;{h5CVoNIW@f!$~dI z<|`zF^xWj^rk;-JoE^XY?$`%KG)+jc$|pJD-t}iRsSFe)EIkw>NV7V>dd@kSS^A zH7%d#Fe~P79tChJ{A$_^I{Yc6)2C2gh8J;6je?VlZ+;=RyHe zp)@l_F_6;UcJ*y^BByzChHN8b#&b+F!Cc**`^PUe8aj>1rG}yWueYLn=-`~xuh3kk zsIPGI6rEh2UV?(W2_8;gEpL$BAI{#=dA#~e2M0@xsMnSi>u3ngB#*JP?f&U}xylQ- z+(!Mdvb^oI#F8`;T%td2WhG%M(XPVfbJ5|8>*5wt%3t|=ce)mlGOMZ<(GQNbCsX=+ zEgHMm^nQS=i%}ecgagQ0#q!Lded9`Gay=b$>QOL~l5(5*&g8gVE5=b6qt)tdVzndV_}! zj;Z5O`W8I($kzC5S0^`IYCCLUBN-|VZ%8@I)iEJZEuw8NuIk}P?uE+H?+65F+Nz7s z>_=$qq@S;A`G~Gxb6@EGq`Iw40qCicn#68uQM{`d*Ef*MSsXj53&<PAQI9oDIwi0BHi5~h;&ITuyl8Kckj|H&A0d7?{Aj# z{@yd^otZQ9%=6s$TRzZ<1&o~JjVPWTWL10{unTeyT%w=T5$^_&zp|k+0Q+FYiVM@I zN`p2qKhtA;w^O`!zpvg}z9d-VY7$#tS=Y^Pe^~QnA-M?=2Tq^3FT4 z1YcaVOCB-@PU%IN&ud&37zx0`I7J2yMS2lcsJ%~I3{W05_xGS!@=l^Ox>C{WKXEM^ zli^fkqTr7<(eVmqYzoxR2l8YS+~*N&m||K(IAy~7*qwR`b|oS@0cLWdL~>Zf8uW_<-ecs-$lSbKnrEV!d~*vxU~@5XVfah9c@Uz>{qOqEN@zCl7eZZl$; z?}JNPJjclfjQ_w}^qq1j{>LCn?(l{~L#xh2lYOCygH82S+k?&6dOTv2#LfG-lBfZA zx?{gJHZtfHlu`)c{MOfr^bRlu5d)WJDuuBn2+-#*9|Y%UG>PrklHWLrVL-E2ZxNn1 z2@q&nZ-x?SSP2g2O?mtqXu;$qidH!OA>`E*i|DG;L^>}D#qO%%}J zWCSHJ8skW_mkn=qd7|SPTljx9jV^RjZ9ViJzqrh1VR!X+OL-a%9<$SZ`X!17^;R?+ zaHaYwcQ~K>ul|inSp?RvUCe@oJbj_9&@|$%)py0iSRP3pky6&xgV#DP?XHHFZSdNj z5fuIV!uLe5Hn*a``sLlXs>q#=hdZ9@uK!gi2E#}Z9?IH z4q?m2jYGK-dNT&jcokL0n7)ItZ}xNj)g5Krk&z0PrzI11ELM^JE2g4^PPLqc4IczL z!PLn0ITdvXzUxxO7w&3FJn@$ed_oK4AdB`?IRtprWkQZ77MV|P|1G$G`o8v6328sD zm%!QG0=u$h;oa5!P^6(fv~7pi7CO4gBNxLLGH%l5DW5*cABw|;jQzrG^Ax!}{AtmQ z!em+jv={Ws?JNI`TiC4$eS#zEhG9B8+)?x3q7ro zzg!HH2qUPhX3~;nGY4(JO{g~?NPZF9io3nh#6Xez_Z2-z)1>35`L%J;PN4T~0dl#7 zA4^|?{)l{%9# zMb)}@tH_q%E~Fkbu}hMCJcelZiJyZsz)v>A;CVfdHLGYr&DPh5q2-b)5o~Q(^J2^M z1dm%c@~pD1|Gy8n(sV1wy4=_q=xyhBkgV5#3KY)yc8c8v2qBH-3ItiZ{FaAn+P=92ysR-IBju-^tUj*NANQ zBns*S`>f~o>6x^*BmwpG&#p2WIm9VkkwkvNPQrlZKhY5RZ0JTfq=>6CZ4o_)=0@*& ztLN2A67Xo?wa|ZfejaIS8a}=DVXxP!M=N$GjzJEm>KR7XU^}>gITBa6!!z^eL=X4W zY1@BEo+VLeegg98uLj6qsMO zXJwb$%`r)Y+QP(oIl}c{0JGQO`5trhC-yHl^3n|B^FLC4JTws|$=)a+h9aq0m8g-g zPqABf!i~^=y=e?Why%AN{ECIg^XSmq+b(a_g$6DM%yh&U7ZOqq*~K5)ZBV|UjI=LO z6A!@1etmJ!moH?jwCdLSWR6W4EYU^GxgYs4y(^{U?!NjOBXk$#+NPxZG1UK-M(utgHkl^* zecSi7DvWDb3^AD47p=Y=6VgQPPGl+5MRDG(B)kbj%02BfbvYPu4_;%QTda!HW#Nt> zqDzTsrfYh)(uEMx__Jnb1^g0LkAQ>ab9tfM{EmEm{tt-{Q-cSz$Ggm#JXp!QgupwE zoY1#7uAKU$zO%WwxXQZ|$b-tSRBPx;)8LrcXt_U$EUF2weT%Iyf9Hw&W>8i9tVt%py1(II@ReD}`Zuz*i z(x6AmN4HOR`_u{tU%bK`ief5UX~ANWpKI+~UCleNDPMX-qH+En;`!5+IP+yC;349t zv!dvqIfA=sfv3L@TQU~AR@=hN|t4GS|UHI57Wf@&%%!Tr9Yj&@c)@5xSQl}?G^G? zT{QYbD-Az+pb_!?UI%&)n)TCvGy4sGVD2`zsemeu z+UcfCXL%Sm26(HSIA?&~Ea3#+?o@>IPE=(Re<^V@kxfzUKRwd*`O}5%zMxKMF+)+h zk3-fBH#pq?_?qlSEx)V~xw{*+HYB7X;Q)V%NZ|f}`!2d=O*T1bdWJmh9-*(!Slh+Y z;0O)OFIE1ava1DkUs%Ng#+YpgqQl&{SBt4&%EWxVmh9_IKS=rglKlNBgG`Lpj)k2J zSc(Y@h4Zu;G3hQ3d^~L2z7M9;ek_x4c0et%NtUPv{q7P7=X97K%_kfSn?g8ye4#Q*D=N^5zSAj!b&z_4XE^Yq zq1JdNb*8G>hiSPzSj%Rn2Fg(>q>nv{Nhdwy(=MZz;u&Lo=~biDJn?lPqQwXV7?^J; zBBK;w2Sv_&-7ou^Iw2-tY;?st89FV0$*n&u^wDQnnq6YN9}o%&oS9 zbkRclR7U7|zQ4Pb9>R;8uM>4Mjd`mv|6BSYEJ`VB ze$ai0FveCDs{iP6m}<+Vr}3cu0^Yw7A@Cw|G0yKzTCYD6v)XJwU3nq#c{n98ap2*$ zPrs8(KNiL1O^O&Fw_VTpK5OvJ?!I5%BKh&JG2-7lO%`TSEitt)OJTm~>g=a;d%lwG zIvCsz0>vh^AwCV?=D&kk#xO{&x|2d4XD#N0Muiwyfv#n8kMHsH8<8E)-+e=*tmLEx zhNZPb(F>KA=D7!1073kEPcKD#so1x&HuHKKjd02Z;%F(E7WS_}IM{s1s5)fdxsm5Y zY4zhXP>-04YY^jZ`pU`SSK{nCboNE=WLM}e0=yy$2uMe2_=8RDQnoh+f)w27&(lRm z8l(-aS8OU8O1QhavVdL^IeiBf=^d`(40nCL!Jy#9378Lb7DPRw>GHF$oEfxvsq!l{ z3h$9&Qq4o{Jcz?b&<3=mZP9u8B9&bZV{)rPjr#SSZ!`L)_EZ`K>YGNs#U!{V-tE4l zX!98wzjS@0Jus?VUb3sIC7;uZ*zN-FF63 zglR;IHDV1;3-;@^{Z?IIB8=LYLNjNYEqtXtB=ukCE4B_=yvYgTjaFSaZ*v&DSN za_URfZ!IN1yFJy>>I?K7XC}kMCnn@SD|MC7Ok;5%+|eT|ornN-GU~!Sr*s5K-Q+Ie zs-;YdEy_cXahY^scnEA5A;ScM}{SAS4F&0xOVVYh*v;a09cC4$C+*n{O!i_%Ln+@ zqk1&%>^69)sfnAYonuGxa*WJQe|*k2UgG@IhhR1H1X#`)MzmA%ov@#(=pYxAlC zHeG1f_b(5nzDS-chC(t+>g?s#`S;M0Mpo`5L%INe+hRF(QO5*5>Q31uy|!^pdd5~? zHCz(~QyBEfK7MXYJDtEg6UlpPa}~J?u^BlX{1}44H&U61A&6mb$pO*K%}Q>=Z&gQc zWL6G1(-%x=+4AIyh?PcL(xUU{Y;>Q$^p%R27*UJu&$_T{uFf-x9u6;Dk@W@o5O#jp zlXXyYDY;#dJgV&G@3y-+(nXeevlOE)#f4_$hbrdH{4k;^(hm5;nkpFGb9a^I8dPKK zyW=8(r>_sGbvdpha!*d5#^DcYJj7;?222l9@bmbt28usYIfOZ){veA%&aIrX3cf%{ z(5>4NOoh~w;+@R%>Tr_n^=vHA{Q3F53aDdf0;a??`3+vU)v$3cWXwi(J1dn~1a?*784xt@usK~Ypv6)ktDsH~B5>N3M* z-2_Uzh{mIns2SU z%rNE3%cVu`*dJ7MOQ&f+cvyyK<4uOb4j)uDq77Yx3K>q|zt_)E9T#y=`Nvs7U8%Rk zlBDG^1lyfKEsW2_L`9ps?IEfhVP&@7?$FV6{PLDel&OcMW%kGRSN@{juX`SNbL07P zBM8X`w2u#%D5ypDcgLyvIhol;~Hp`jKHz2&)}<7|Ho2N$&2G+5>&|~T?#Bx(&HUUmkx40&_|$`w=P3{@am5l?hywcNC=Lvuv5tfH z)-^zus_)|lwVOaS8$Yohv6V;8kZ-|HXsy`rDS}J+d?41}I_U?(B{lxLLz7c&(PBrMng7Rl?$r$oQ|e!CP~}0OWBRKhuBZ9 z&2r0Bg;6F!ttS8bNJuy`R2lo3&F#sdgv|dFM)qJ>#%FB*%;sk{VRG6wi5`u!_~vIj zy#pV3w}f)x8x=F@(LbTeg`wl-(#i-WX!JHy=@z-=*9qPjD*J;;`<#;N!3uU+(y^Xu zVnD5#tY){w5;=jz*Q;0+GuC`U6LlqFMH|t$F!s=zf6cK2JV7#(fm~==3^s-m zM=oSvSx*ZO;lX|)#aEEhh%)^`Zcs9+(fC#I8nS9VXQC+jFa;}}J+1EZC!9UEFCTTu zKnQ9m=-C|Dx-;Kl1uX^Y#?x?YS$lT>g23iRhXRZ?5sIM_PUk4mN9kus2$dL}H!Sd^ zU-jZmW8V*&7wE}Eej~(VJXbe{=FoU6-?@-hxF;huoATc%@{_Y05og1d@RDNw5l|@$L9SgOw<$2J z?7x@3U$C8BoAhcVySHk3EI`qKz~5BL@>SDTY|{7deGD1)Kewt`PsbVxx>Gc)q*NTe zw1!g&ve=}bK7%Zv25n39GdkzLi_>PY9^8$O1?7v7Ye8%%Map{`=b)-yjo0n#IHK8i zeIBiHqb9N=K6xs)<@SkeAxJXmT3>VjnF7;9y3WvhFr1S*`a z%<91e1<#-5qi1QW#f&S$(b@JOWJ?5i|KJ;aPjUyt|0`QEnz>$ogOBRFXxJ@mKr;&g zBS_=60SDKxAL>-L2=@6g`l*E&qPqLO9fUf2?yMckTaT(s@}_bJCp|Ow2gg0HsnZ6c zM?019`6o&^Hhkx0e$qcMnW(;KD4dqXCxO450dw=l6PR;3(KPpG}H0ksfNPA9r0=j zAus}J!xJNnc0H>yGbEwmKu1`spS z@J}>7(td{8W=Cd0Hj)9xV1H-zGoOmi>EAK2Su&Ano+ueW3X?N@J;}8)W3hV6?UDOd zqnT|JQk22Moh5`+3j%C=nB~qwF3Bb8kKgla;~hS%-jwCNbP17-se_yQPuotaFu`>Z z%y!M}wwW)nSz$QasQ;BZQ8o6;iuaQ%i&anlx;SW3)yxhs#^S5RnvbYI@Q)FX;>p`_ zZ7wIatQJf{$?V&ro(>hDWJ1)VJ-wmN#g6TZB}a!uJ9SY>bCaob@rbztd3sg|5A`N? zr2>r@rrf0~LI_2#THshoK`vF5q2rs(Yz8Mr<>EPjJEztY+R-AI=kB3%m8KQKBx^8) zV`h9Qzo>iDyGju{#|MMkE!5^YPmh$webns48(|h0EnPlW+ZN4js3RD0Sw_8#Ew+BG zG_xItxnM!A#Nq~+#ad#Mucyh0M||VUnhdp&p*N1jKyZ`Op&AO_jh2wmaEUFufE`3H zAkaoKhda#aSNy|uyyyX@*<2PxqqT~#d8qMw2xz`k+t~h=zYL-lb-#=gcK$X_Puyvd zs|e9u!gLQtvOU5(ZP()oFdmB?sq|i_M2FY)onWmE9%};oQ`mYmAGR&%Y{!+WP~enrh5(iS+yY~0zJ4t?b?dFZwZbu*%ZScO%#XrgLj6EB63 z=fN_|N1z@PLnPFu<+qNOx0WCY&1jZe8K8(c(|6hVr=>NQI?9WAQbJ)!gO#|Z-i6(! zu2i!zp6qL^n=t2tD1M$0V-zgN7u)M7cxSm}a84Dkgyt{tC}5U*`drAocG05wtd4MJ z$BE^1m=Xuy!XyQvt2Hi2j+M7M${)I9ju1HWGd0|*Xm0X>q5M_zuRC7d-ewQ&5-Hk# z8D9$s1v?d@HQ%m@-FU%T+aXTw-@dt93N=C-R%<~Z5uR0;Jxe4Bt%Z#KKiW_K^65S@ z@h|{r>C`^%OGkVR92of+2uO1gr;2w`Zg)YCV^zmZmWg;Y3Ye3^M^AP{zn&{O&EoOi z652P$CK!$Ub4R!7zy9=v^iXO`eV$ofp?tr*7h7cyrH`OOVaV)Uwtt2{yswmZ<2?DS zxY$a+hGx9S7{BFnBLXO@m^p0YN~Wp2`b+BLo<>w-+};qX;f2Ii)dQk3GOA4S;h1~N z!Brri!h)&!W@_HhN&*+-69;o*j0S;Bdx_@ zyf!0L1GmCY(snwHLQ5EM3HcCuKx`W7@iD#)VnCGYZ%IaL`p)t(vHu#zX~ zv&nC5NZ8tMDd7|9Lr7<{(l4+g?@ zmWrgSplzfcSM2Fcv@tjrzH>1t@A0z}UBNcu_6b&Jw~CEL?x3+)iI=;E3&S6`Ts=}o zCP5xcBFd=t5NmK-cVNT1Nxv?a@|9boBQPuPq@#>$xd+kl*=-nr@kOmyCQ=T-RLo*6 z`9H4|$D>P6lu>fx9VQX0-ANZ-(SE~BUeI@&x(Ycjw@g<;9pwUSWFs}DfkOt&T}m8r1$Z*dXQ#XDHznWOc!l0`#t&oz8sxm)|soLo&;o{*D*<0MW7wFmm zzUE)^VD@h~UlRjtxN$D`P(0~Tj8R~M*mV4r8~02fN-v?qW9U*UXdye6>*N5=#P?+t zf2Ln)C~D_8$kDm?e*D1P`ta{wP2pw~3D5xn;PRZn*ujf?Gigxf#9FC8;Vo*1z<3Hp zOHuljD!Rr%u3)m*sVNpA225ph1k7&Ks#5`aJGgqnEn^zGM(4Zy4p5b;o3_2iTmGm7+}kBT_s$y0r;gp>)#fqA=CGVvrAl$u$*uF`8G6*_Zynn#68tED5hKfQ+cQtP zPh}i+H1G6$&`5mu<6f062c}2r*h#?CjSafM8Mf>Vr=L$RTM@4Z3X7D_todkwf@ne2 zh4VFx9IZ_pMCHBi`$t4>cpZ+T%qwH)EqL5vf#o30Hnq^_hAk`8t3cW|3IKf7;s*8l ziQ8j+>^1giGQ0b@S#MKbkZRe3)m4rEZ%>73LpS-hr>MhKn^UAedRh9@pL`D0pv03*(p zMU6CAyO>nA>+X;u4|3kOX@{6hBOrTt9RAyiGDTWs(j&I!?K=!l-vX%cbw z*jt1_3{{bkMm#6@5CR;Kw48v(2A5{?oUgQ6AEUoP*d5($j!hs@w{rMPZ!iASxkvXyi(t|C>qt+5FDW zY7_^RfEUyyEPzW0Vo~l2lT&MNHN)6bKETL#;%Gmgu?afo0~Hj2C0XNO@vxaoGbZ86 zFht(YE|EG$#4R}Og!DFu(jyfQ zyOp;jnO1%bj1=hd5kgi4fCyW@5g5xl*P&ohZQUxc0-79wQ& z*o5XHzN*U+6sP^VtAJ#^_wV5+IERu6X)L&xDtmJhLm!Pqm#We!-bi*?Tlb6jJCosS`|8Jh;F|fO&)?U{m7M6udX*A8wMKMUtx)vSCVO2Yy!ERsMXg>-Oi#S9 zO*Fc*Axwo?V|vT`-YFxl-^byBV?R66T7E5Cpwy0nMFD^{KXF7#n3mxowGv8OTJ_}u z*%ZC2xaxz*UN}z92-@%JAet!`W{|J#n;)r#)y*ut%rt3_OUz5a*lKfo@$Z``Humte z6|fd!C8z&iNqogtNER8Z2$f#gEoyL{V4%iP#?pK)JWD8%fSEfmwbRBUi_Ho%Vu)76 zSOr>zdl2ng%FvB>oz?yYPAq3A|7}t_BMcdLSI=45(f52fCgR@v z6^V{KE{ib#gHY=t*aC1y3#(a9>HQW;%k_77sWoscb;EOMecVfmu}-=wU@ z)P|e!hfPb>SMGU-vs4aoj3+XowF4eQqZ0-Mo|t8${#X9HUES%lLs5*CR%AbMNphbZ zGbbmGm!$`;Uj6Vu{of9ughP6d1{fV)F0sKr{P$SN*>RHtP8~70jIC1U;u#9s1gp`sZjJrt0_QwFB5io zzWd59IpF)|o|z0El%|a>hihTfyUeH}73;7ES!i&B^=(D*xaG{^Xh`}>p^8iF?eTW+ zGZzAi*K;ppE@Q-jH(1}sh64E7hrERa=$ILKi}3g93w{|0*TmVX098lj{=M;V7I-T(kQI5m2*hOXuH+IO=bwR-CD8++WHq-OWn{Kdh-^l z4NWoD^nLQ*-R$_wv%VO`Q?R!HZB}-m@7;+@NQ4G(4Pzm{X+_+hJ);is;mAa~pJL5J zM3<^#5&K*Nw!p+>N}h=v@sdM-anwFKXN;AeluG!>5|iSeqt%=>LQ7X5HZ(`R8=|g5 zi~fz^85x_SojN(F$HEK!+uh_pj+oR+dD&A_ysj;OfBA|N!?yN~b>+IbNONs_t$19Z zt}?FQ+Ms>C^-0-4!dG+_!SH%kg7)h>CoHD$;JF8q4^kiSu`)ouOoQ3JeWiI=ZTBPPHv zR^ivNEF!aZ{I2MPGLxd8SwV9ZWcJVn;&FqNE?p-~f)Dn@>DMIe%@$<|iysEs6Pwn4 z-s>`ZcyYH87^DvwhVKav$>5!{Q72PKSIC#(6Z|7X#wL8s&7_XCFqgs?Ax^eich*5t zIB5;uvTXY*gGuuX0eLa45{en}U5vp0e#D}F7N=yTW~HwE+wC{xGqcBGeEI3vgf9pg z&=DnV>%@<}EdfDPF>(g3!XADtosABfzA&y-pH3D%ZfdwYDte)-OlxQX$-6NXOxcC9 zfNCO?E~Q%<1*TnAvkS>`>O*4@tCY3Vywzr!sCNpD%ytF)TSSbjmx!Q$%i6@!hj5G$!9?Zf4>Hu`%!NUQM-=pOVjGowkec zbI#PWS0r;;PGv%|Vws*yKktPl>wY01*2Mi%eic`3np*Zi1*Ca5gt?xBS490-{VM6a;MT$A(X4TgB>G zd9+$zS)sL;*K(J4w#pbGSIzc?ex85Cwlb=XcI(naVCQQb32BhXeu&RfH@4Fl=26)N z^Utd2CXqh-rf#ztgTYFKBRXIe-^wxI((16m6g9YgNc5wh9!SNZvpsd=_erIJA}EZT zSRCs9`K8U#x25ZX?_t$*)&hbj`JKNLdkbjH@`1|LPl<{pc70 z)5D64Q&g2bMpe>H_K@vjl9p4xrkds&xx3&??0he!dcbW?{_0gt$XpCx5$I1y%{w_o z{vr>q;3s_*-udIY`SFxTrkV!F5l=Y(v{-obi48(ysMXLdbk3_%ZE034!84>Dz}7!O z)KFxFtv<6b)pqY1Dh+zvzW)7p?3pFm)Lq8qth1#$Y7^bPyWuB}zr)Ml#)uXt^-hr( zy_VI%-Ht2|Y?#X#wI2D({eWOScT*PF)v}mC^N;-;AXI+_ z=dzH?G~X?}&V`v6YJ(I{IopSD>fgRL30;r_X-1V_DND@H_ovaK zV}yg6oLkIPU9;D`{;F4PT}t8(O=nnG7_?-Okut#fUDU^{3LP1X{28G}DiA3j;ij|1 z*X+TIK%d&XHjREo4s1dC_cnat)^&NPAK?d4m$6JMu621O`a8=ah_s1>p}qMoGLnKq zX8{VH9&+wPB#NFw4*DyId{BUr4J)cZL?c&@CTj>wflbABT7%p6G5N>=AkbEO;6QZFehEc!{xgIUgg ze?FMLTHdKQK+xb~kxo>K(>qCYVs#zNL{dZ~);vm!&cMk0;A+(R1&$J6A52m*ySzrU zftjwr4gyOy!ncn`Una5|MoqlQR1*16E}MS##VwFeZI4QYzg01Py?%5^Lj2J&fg-6V z!aRo4XSUT)3dG)U&DiHo$C*N2CZsKvqpf4mKyb7jjZ#DJr(}^)Oh14^$+4 zdvtbYwf`+NvitP9;oJwD`!#Vueq}h3nc-e~dr>pUE4o#THkDOK%jLIGMxyq0>cCGL zyPUaKd)m6c8t30puuxJazHvN!z6ty19m_x#?i0jbTpTePX{`fSf$S*-ho0@C2srN0F%?eR2@C&1NDv;Gk z@~R6bMcUZcaHj!__2usY2un}-p%fu(zVg7XtvFPwCyBlH^z8iN=;7n(x_Hj)l&e18 zvi@G#a+7r@*TJ1J`EvxvibwoM=4ns(jH$-AWLI>cb<2{LR)9~KC*l2;RS2k*`lp_I zi;B5Vz(T_lQ46$v^YmWx`0vZwzs)K={zvc}!p03`K6c9u?RJY{e;?sPqwGd&g& zE7ST2mQ}k;d@obwr~=L#3HO}^eBYj2BueNJ|7QAF!M$Gj3czV6c>DM~TnC%J{!+1= z;!)GQ@RNQiV+f?49#miO^bmWo{2Rmw08pOY^gMOkCHy$>-4R!*cPDQIMyYZ?$Ss{6 z1g#|QnWg~i_m~}8(qsULe-?`dK0xd&rS$tdZW2c|yZ^aU zhkG;z6D18`UhXv-le+1J@JsVZh7`yWQZFbS>JS+c0@D7= zn=JqRRwVY^7oCMFrtMJ+UTjXi_eGbp`Q7az%EK%8DvoiB&! zN0}cUvro~mSP9{tRm93g!)9!T+io7BMqLh`#!m{|HYwTSAtKgyz)Sdhj`q9vtv$;> ziafOyN45Jq-QklcD9Y{o zqw6B}uU+wkPfvDaKC#NlGCmYX2oKrx!XuZNS`?8syKY+9LR;sGt;}6wArW$C9GZ40Pb2y^@^293`i|xI@DC;TEH-OjvSyxz3lJm<*b3&i{gbJEQ>lHE zPk6e&@wFVOc^J{=-OVb(i#Q}sw=(3nEXdDsM@h7~Pt)=Y>4n5CMq+wao{VBl0Rcl8l37fGR%w~S}p4No?^LhnRDhe=<=e}2-< zqeErje!hZ6e^~?6tP{%0z(tUpZ7o(7{mb37{AAsCyR4Sl4G(47N3dF1L%!6}HVEEY zp620T90WT%ebrkAAGX?=q0A%Gx#f{1u%Oz4pGo15VZBeWK~2HTOCfW&_;L^D4Wj|G zEt~E2{!haVtH3k<0A@;PZrB5)&+Vnc?YJr+VQ=;Hvi-^LAyBOD<*fYCYcuH=o?+kA+1QPl^!zmerirWf!83p8avEO8GoVLy%XJ5RJRCZ#M z>bQ)sYj>2WB!Ag-CS`L^>_(^ot(w#cv0@v|c|<*0pSn446sqe%1XMRo-q3B}h7BtT z(=ehDF}w)UhcjCKHop>Jw=Ndn8Z#PT)lhZnj4XWUP5re_PVlK&45ZP*h~@WQA2j89 z+hGH`?X&xZ$Qt#ujR`Z*F^li)dQA@MC6`J?1+@ZQTJm3w6 z^_%g6Eb7e|0@i)0W;aQ>qlVv&Dj4cN%MCw2$yytY3$z~%+1BtgTvI+dZ|q!P{kd(- zAfL~^Z1CgMnETU=H*+)UGtjl{{@ieU|E6GQ51)^8g!1nEg-SkrLP;lEHrD6LVBe$N zewj>IYx=OdG@CLT)|ZNKs`b$4X;q2nQC99l;mRD>-r^Mteye|v`iS8LhFtsk19I8e z5@)~V6k~V8c5@Bg?0l3UG`2gjb5oDur3bqsCvei5--f`zYU|e8`ReIEsb`?89Rgo$ z_{EId&lS$JTXy@4l638Q@)Lvd0>d zcxBZ>CGS$_e-Y56JQV(?+n`buP}INfePuzMUUQ=8P%nP#Med}1SKT9; zwO>-^sfbA0#=*(qtTB~0!RJc6yPN&FxGNpE3FCuJD=89i-kUgVfD4hFtqc56aiz98 zW?u00D-(wCyYKZYG21I@znukP#O=FuwXBE&ZE%Z(lSlK4wxXU?er=JWO#oEFs4)7#a6vQl7PQ|Ast;&bi%qn zc>Rcr$=;mL->VX)b0}{Ij#w^(xTxPKKw{ zwJZclKK9RUH7%9?jk$pJf4ka`tL^sJ5f7Ed?z7(X~vNgB}8GoV%Rv;Mr~y*Mp@@tE&Kj`KXH zd(-9cOBtVidxn#0^?p!;!?U1{L1o!O_i~%jwE*l{LyogYLK)JGBhm}kwV zU_lD}ghlSamY8$@$C^gL?1H^%amLGb=TU31v0pKBy%`D?by|OLI&W^T+Pp60mdQ0f z(Qz_rym3YqvNtw3T5y6Cwa6J#YveN$G9ICZooiM6o$AXmTZASvuZ-A6jjub`*ZQi) zd*wn}B~MB4QH-H>$;F=8r3LVepzX_C&T1GL#tuv!bMAp#!sNa;g*D8N(zZWv?DH2~ z9zmf8l*DfyO3R)d08VYEn3$;4YmzV*6_2Vs@ai)0Z1Lzedd!MFvv*lgFaW?g?G?0z zkeSPONMaXCBDtX^#Sa+){WV8RIURHmd266@2ppGoLFq|mjq0lrOrca7QBgE!4L?^l ziK7oVW0J6VL;qe^Kmqe~O7)hm`i!b1{3=wPu%C1;`9`7*zBz^DoPy{U0dn^cDVIEA22T>BhQhiH~oI*pHN;+Na4K4nW}%(iZ88){!%y;}!U+)1pv z)-znZoHe{er#YlIwrgqS@Fkt84c`Zdt?a28+*^f>3V_!WC&uJ28EN|W&fTABVRak< zGG&DRJ^@sZtp2ir_HHexcFPqo>Ne_H-4N;mr~GpL=-Af&0@x9KY7EXAjKtdN`O(Nj z0{YeR>8+gkwdV+5eQS+}O}onJN6D&`J+t&Jd_SG`lO=XS6~=_W`b#-@89 z$@DCu;;PqJh|(s2CsBY7X1{e*HIXsxd>oWtD>XR2`+lHT45XLJ_Rk&T0iNrf523OB zRtZ^D*H~3jtbk0FzGsT2PPUe34Ob~ZrR8ieznP1OGOcfND1TYrck(cY${n+7Uiake zvp27SN;&i6Y_1L5hnJ+6`V!FU$9PL8u%nKb^+Dj=9pUNK?!-?-ayvU3Zr-uos&;1I zqqT`du$oR*R*$ZUN`H>myB~=N)zEG#9)bl(1#%sR$omWx){5gR1sM!{O3W5X9#6CH z&z-Uj8Az?7UdktzgC1y|h$wgM?yC?6w;kSVw_QG`<1dtdsW_`y`I$nMFFjD5hxK zir=M*)qKGu@8u#(XY*gN&RScIq;TZ+uQH9$F}$9opeV!rgq^B5Ii(t&Oj1uY&iyk+ zJDcdh+-5t?V4j9gi>nOr+sStTA*m9QdNcHb(M|Uz$BpjS|2d2unA@Y_kp4|qGN^KJ zr++ll+ZcIlFDwu2&-s4tZpD7p@G{T7t+cInY5ein-gintcn28yRv6Tu9usx`NcZ)9 zcM53dycMiM(BG%1fj5P8wx(H9rPCG!2b@8`j?1+zqEIpzE0wjb_au z3O?rRW*X_`qKnLrAd;SzVq|SM8y)dKPcJLHtliDoj7hd8FwU)7O4DloKc?O?Dz2vK z8YTh+5+Jxka0_n1gS)#2cbCBl?(XgoJh%)J+}+(B26y`o_w}rIeScxCKGWUR)m7Dd z@A|SL3@G6>%GE)%rZV0+X=bbs32BYo@59K3%29(RI>HI*|2kpl%H&R2v(I};@cmUU zLp7iBAGodPF~yln?z?tA#lxiOerIMS_VbiAvNXIcQ`VB&>@wu!ddcfD+wL$cFjTTG zy|Sv2?~JCX#hLWQMzi7Bxi-Y5-O=<#;YsrPGUiUx@mu{{_+F&Yi86v*XmKD%cQ>z z3s4^1Ie1OVx@#2);4>O<-p}MU9%34BS*2w{Je__&6C^7aPdA#}C(|@w` zoCZnLQWS0Z)wSlhO7D!qRoQ&aYcoX8MVIN?XgE{+T1loKr2lcx-7P$Pln_W{Zdhf| zkMAk>YF;;IrCri7NSDde;%0KRyz7|nKE8s(dAVN=#1JsvXXi5qJT}POV)C#^13qSpE~@wm_;J@ zE{{mH*NRqO0z(9SEGidPQT?U(`r!R}`S4)-a)L`Y4^8CO`K&!o*x*Uaa^_Rx zgNGVr+(`+(%bO-4mS5Ll9c0d4Uq&C{C3DB3@@d0!X+ul`W3eyCu5iPQmtSq3DU zMl57itXt*k*aFZ~ht=H+-5#4lclH1{&(MfLS>K~?I$Gn=K=9Qi%W86O2@|IjTM}w5 zK2#x6aj(WW%m5=46n6qUIfO2%Ylm$qL+odQv8rp4q0{p7@5WfF*sq<%!(qMY^@{Dp6hm({^;Puv7FvI%rYIh@zl{!g z8itdVP4h-E8DWH67_vdeKbT2#d#*U~X3+C`_y*P>d$o-qeUL^H*M}A{)S|RTH?!m{ zl^xLy#+{iwnn3{{#c&&7>d2_xoKHr0iw1L9(=OI;CAHw6UV@&Rorc!xt?#oaT{OKH zZV=9A>)ZPj+g{vrNt^{7?DiPit(G2s0eRy^`#tOFk?uxdQ5(qHuW(BTv*A_y$oTaA zYh=S#LtAe#n9p=6k~cuttpNKLrRGw#rSkl}Ci^SGXz#*x<}I1clKYPg7|(7nwkZeK z8b#veuQb96i#>YRrE$+5Ai8Kbz4pSWJU=JPyMIM&e|o?~a`#7rJZq2a>ar=!Hajsj zjBNG>^%tcId-UYs*(CAOhb=`sDO)>g>wWSiW*P@QT%imhiht)(qa=4Tot}VRYOK~*4kthQHfnI zuW($E+Fo*|5z`=C$MW!!f)K@mro3nPV3Y4rZGFh$(pc#V8Om1G>hc>7TXC3Bzs+)h zD$93*^Zy<%*^{>b6bhb9!-7a7cw&K`*()KP@N35DN$zLSL&TuU~$QkD{LPjj*(lM zcu{kVIyijalZmu|yG~@Z-1Lj5+h>98pZw=NLt75jCGMneGy~SJn-KCdf{3K99cSW* zSk@_;wr7K*3M3EWm+do+YgxsX%;$Mgf)h*|JH_2so@{|3=`y#cTF^p?} zGTDc0&`Bo`Va@ETU$Xm@fn4*6*s|{RH$M30B^EV2ct89mOQ4z8pug7D2rrLoMpLkY zLxJ@-DjVBj&X=x^&h?rM>5Fs0q9aK|&c)VAKEfPmMYR{C?&mS~@oOwhhCH1#&E>z` zk-V?QSuScTCe@mCi`*JrOz>W9XadIGLov74@J}E{S%d@JFlyh5NJ=TxNBzsa9%NRa z5knNcq!qJEx^uvUwQ7{LXb}uVIS|>gB7=|3ZCi;-V{{6_Ij-?u|1%ru-se7+EzZZr z*%HPDTIZsvkVrBBP%4Gnx+Nk3clGiK>Yt)(-ezQ+QOq0Pqi!N+e94{SO0*&&uy-%6 ze^{J+BVt_W;UT{>)bLs5+LI*6$%NX3hOm^iQ6oCt(&X#F;Ly35mw% z^DlXLT4b-mjbmf6uKp3P7Ty!SrfyIb<~>eXrLycvvZgYbCeYkg;vq#1*WM@eT3@v{Po+(wik^uAz=yUQv6n5ry)k#6 z%YHF&`42AW=Ab3cdZ4J^X*bFAmw##EQw z-(VSUXcbOU7tB(6UJ~FT-JW{$_bn+2wPFg6AC7mAh>x0ebamKtwrSS09CS6mO@=H)xkExGK^gHV2*0Ls|uPdV!nu%xK&K1kiLcJz% zu0`-^U@|wu6Z?#jUrzIQbXqfrgNRU5|KYwajeAzYJ~x4fj6jW!#zCE?go^4HN3bg0 zCeYmzi3Lx?D>02W!-lp(e@?thlHOL-~{}g;fuU?$*`ads9XQn zst7Hefs!F)k#t~b3Trn)HbL8G5%cZTGiu5BCV6`E!u@!Ja6LwpaB86m#htfg@j`N= zfDms|C&~IfA%@al0xOg=&Y!w?4=>}sw9ZMr+j2M=JPOY}D63D;x8v+DHB7(rpG*av zgRVrJ1*J-73z;GY!h3p*UPLu<^S8{Bs693#cMtGn$0~rJkzg--`P+orM_O(7sr}E2 zr8GNq#e+Y{6W0dIwZ(fD)bBXPj0iN1=ZcSWecA*m4)W88>#Dt11nmHg^V%q{OgXQT zsc`GVz@0!lzj8{ygRFm7TvH0OWUbLU0q$8Ij*52cRf&l`hP$&jNc|%U<g z`otEuCjba`3jTlay-T)k{EZRpDvlL^GGbI4b!1uYH)zC&?Zeo!5j73os&_0l(#>2C zRQO>bt7-*Sdp3e+4j$IAE3-VYv;F~b_|WiA@Uo0z_x{OnXKt^wVe^kh+8}V0I~9l6 zGD=sSbBw#>wOkK0zXym*(27bf*%x|12VhI>c)6BXLNiX1T7MSX@v_UcREFmwEwH?7 zqHd}E%$g>fxOr2Ic4N{O+>asbiM@*m0b!nxNRc zXMez0At+rbX62e#DHOA4Ra~uG?_26N)kl)}PRE_jYGzcbs75qkq^tYq<-xK?Lg^pn zavjBx3d#<404S5S_&9odQre^yy3B3ppc;LjjwR%NA>{A`v!o%jSS>+{MTU$w0DiRu zweiVD$S7(UUXp6bwmP2j)ukY3pa54kDIn*PxP0@-q48~digkBJt!(3rPxm1Vx zaa#oGdn<=u-y_gmD|2KSbF0NzRSG(cJ7*)2)-Bra-$AYK{D*X0jcp`pfm@TwZ7S&n z8j+kZ`8gO!=!i)XphRYU`QQpS!6!l)5D*XDzEek7S+{=H_Bh48dS=YD9@0G|niNvx zz9(etXY77vw+8O+jM>koLP`=D{=IflakODCmwiA4S4-dD^nEp0=``B3Tq1A962ytu zP0$un@7Yg;uTsRn!$?Vrek;-Tkga#*{$#_8_RBMC1ttm<-Tv6MYjw)l@KSN|1R^M( zFTis?NLYO_JkuV*{m?LB+jJt6G;yeejSnA}m#f{9n2sAO_oTQu+|?;~j!t0n?ov9P zWsC&+3%amP+8l!}b}#c?qBxqtspA`btuxDfoDgjtHj8Zc%Im44*~0*N}Be26UYl0>P!kjc{dfV{ehu%DKg)p zivjEtktuXzH>b8xUm;?`zyfFfqIU=?8ng1A7&Eol{&46RNzvRl3rw@JH`X9g>>?2W z5;7+E4@0_y0iu^lS~|1^6xRbfcnj-SH|r~929d(^Mr=Vy1%DF>2FTY+H>1o+HF8mT zYF0M?T~{|&tTZ^-z$6X%;ohfeX{2b9I1j+|4xQF#u4u}>v^=cGmJsf#o@g?ZZuUXX zJYvp~d9KFSTO~V>k{vh>!Qx#IC8&6fHzyzDNV)XY1Al9a2 zVNn0YJ4Fi%OY_cj@KFjLKohlH^*>MD({@pZeFWv2Od+!-sVy+JX}c?Cqc;*Zg82^= z!d6P;quhp<*Rn0YD^2fE9bWF-tu1^t6_umJg_q{3t2npLKOPNv7i2yh;*59F)^#p& z5tE6?d-J29J7QVe!k#i5v1-<>Dc@=!CpI z+Bzu5X%~XN(9iM~*n55pA6?@ZIAbEYVAZA?dw<^BXS`#6snO|OH|zyn*3jVp~q1ZzIY$F-3CAVt?myG0=?caB zWP&SYqKo%q?wu8sj0ea?%ei4?*ICU@l;#G+H?EWY6YS?aXy(8%j@W!QIvVb#?=ij7 zXjIg*p@1qI8n|89r8@5w!@=jo$}H_Ois?A}5pT4y(-e1Vz6YmNAj+MpM_S%a8f=3J z1(jU&yYT}Q1M3t$TG%-;f?bkhV*N*e41+4@jV;Ipr@@49z!*u)xZW%tez7KQ7s9XZa_@kj6ASz}!$G;O88!)qt zNg(j@uOw{z`0&H%WIQ0QQ=oFQ@G0lDaZ z`D(>WB{18zZL2ap68fNX@4rek1Bj)k_3RR(G-r3e{|El~pMm=UA13_}0z+^bXj)Oi z!U=0w2n2ecZ`M4yJdJ^SHA!UWgkz}e5QmVAGg>~)7Kr;o2v|-&Wd2?fj#mStuB=BK zoglQLu4S0eMhqjkmpQhEd?KsCz-t7tfO9l+lgwM;wA)@H|1G{-&-n1)a;tAbpgF3C zcB(cfl<_6}1oNwxX-+jf&Sb<;o+EB92oklLx6htiO|W?s^2FZa6(L2Xq^St@Pf(d3 z+X@`EX0y6i3I(nI=7C2%F&F-PCjxmpD4&`RlfbKFhw1qu#+WdJRA zBW6R}dKo{+CJ$=8I2$EwFk}QG&;tXyw7Jxx-T=_;0E*70b7eyP_h^9AG`Gl5zkkPp zwE1mB<;NX#s8#jJmAfXx&3rvNtZ3?lYvH2YcgibBIcP9Hv)xy@LK(qH<1D|9Z} z;Z*f{aD=XEv4mwlLP&wj-udshbq*qlvOW>V$o%moM-^GG=XK2Z<=>5S9t|Ob-aj2* zZZVVVcu=>56u^tY?&cuhI)GX7e~!zc2j8a!yNOvw;4hek9Nf8&rIeLUS6}i$0OXb z)^**oRW4JM#7k_Kx?Ka!qoGLgESpas#$Qd#AF8l#i+uEdi>$GX+&G#B9H*56)-9b? zGL6TDTw@dnbJ|O&;7E`>2Y|4Dq_e|$+#!ze)H3NpH0-;F>G#eyBRoUN*7sXpS^B48 zRXgK?UtoB|N0V21gX%2^TudojEs6G#Omyy#13iY|0q4 znfT}1&wn&ODQj_?xSHXnlg}DIwkkZQbS6gs8I~KA1aq-7RNOg8@QWCY1rJJ)I^OrH zy4j||1zhV zv-8_-r*{%R7NFd=pmaX}!OPh+tO3_yfIEL-T9m8Lw0`z#M3ypcJB!OjtI&1qfRP|j z{YId?K-#|;!4@~NL7EOYEcFlnr5|)5U|f*&^WQZdQo%_1gzI(To5}uk2I@zSYkW{& z%+JqZ5|yV38;s<2LLfX9Vjh^Hox53Rs7gd?nf@|-8Fm?0c1|U73U4)Z3|IOenK$Vp z%JRh`M($>Y5F`_9KlmCYi$3uaav)g%Yx{1(L)CowFB;TF0ezJDWa}Pn0K|jk19a^3 z3FNYqtr7~B0CnJ83WSvRS6~yqAuF2|fwD&fm$5hBPt2SG;|syZ7VDNB_!W#)OBq(W zs>mDpkx|9k=sRDzLFQgG!JU-&ZXqMCLy?8XRkB%^KGkYXeE(Y1I~4$@Uk3F**WudN zz4G}2eH)?zmXu{tomt>fO?h&n66Uw-iJRV=_!gtSaeg0iTXIi=6Ee%o&vIPDneGpL zpZEpJ=Dkw49AnMAwip;)#H2w<$g->yEuwijrprtB$-=M=Z#nj!~1*Sg9tw?BDP4kkj+ADamx`C zCg_+sHG&fKCa@dhQ6Q0nCzD;+d^(0V1L4FGR$3-AsrV{fqp={tAW|VxC@e5J&WTpNbDtu+(18 zMMJ(2wvk4MeB=VMLpOCfM?~tX4&>X4Du44Z(fs;N9SK^*vrV%8d1QlnokBW>y3cYQ_*d)uIae@FhVVkC z06njot$0EF2?6Tg^2h&fUFFTlvrvu)Q5$ES@>mvxqx9}GcA*tAKn|m9(<#XGanW*L zmfvY_N2F}1`S}jbipmC`dfSq9t^&h=X!S2?@5^-)sgUb6$7@$ue_uYVt9^q!Fk8YX@ zR>RGvmh$_4h2mr@NBJ7${H)2Uk0u+D0BZN^|LqXQEpDB{yI?McIL0U|@DIbYd78t; zN+!1{SN}#(Z3XpI4ts*OHiZSLxtKfbZ;t;w;~T|pD#+FH=$;?k$Nb|5ie1SCx2%!y zChs?`B;LqXJTpt#QoK3-tuIi?%>S(}@Hqz0O-Hq;c@zqSHX&8!l{)2% zs`EHWE9#u)A8cTMH~s%VF|c&L9`KlAIKk{22t z1Rj%AIpxd1%RVo3$kd)Tz>nsB^SXtoO{+Hx>KlWXCx9A;w;h~r`Gn+YjXe|~NdP+R zo6|Y`IT#5@hahHi-P<*~zpUj{-;Uc>e9PkbeqoLIqd^AhbkW2k|lsz0{^zD&tGVU z!H}!K42<;6$b0g4Pz<;I)(Iz#Qx?@6o|ORY%j+#-8ircVOk74?<=*Ad>r7aT7JT;vK?T;XC;mss_8M_p4pG<3^6uspq2skfi?_ ze%(+J+@s7N1FC4yZgEpH-RUQTF#!ec83^dZFE}Fg7d!v&tTi@cVELGpNtiwvnXHj%g9!KAGo|yFz zH_bMD1I8hJ8|P*mTbf4y6t)LFK)xzTwwaBO;D6c(4Ak@wI7AmP4PXX1TgYc&m=F=eD1!V>SRH$Kjz{J-h4C**0hy3}G4@fUQ ztJd&*s_?d)C^QI|=|l$N3Md!QK3-ygknu;dr?St*NuRf$ePYx_nJpqPOe^4_91wwf z+@%Jvk?ru*==tSwOz$5rrrAfHwgTd&mdF zugAGQ+fG>F1x;J5RVzCyzF-0xER%5dP+%%NJ^>ss%yp{@VwX2#{B;hEt*g5prvB2TZds=3O%o}L3%4`@A&gVlw$>psm z=0dWq?Bw6KjMOVFPoZnA%hUNMJ-actyzjG{u>INtFpM~sbmHHB@ap3Y`#H%vLhbff zCK^)CBLO`>n;zhRnZNxQ)-C%cMW&KOyn#=iHJFyxa{2?4g15=io^9yB31a?piblH% zBB4BBCGF>79*>ezvp?7*S>Vewz{+l-h8lK$8^bAg982Fio;IT2we^5eHjDw@V#DW( zE1iui<^s{R0*aw^9xpPjj7`CDSMqB5g&J98=X=QTBS1&cEjzOUj$sY*+kC9f9?2f* zs>gSjkE@0b)4~|2-8+09DIAXCIrD4)rGR9_X&7d*R%%MlJ#=874n74_Eyt=1n-QE@ zeFet&-(K@D;JC9FV%+zkNjJy01^n~u65hja8$7{EJ+nf9g0e}PfV;lkOZJi;&CLYVm}?Ddr|<225>w~uRuHowdaC-sh6p4zZv}}KVn`l#f>+Gl z#+{NvWFM`45^l&Z$O8m{nREgV73uhN=WL*H_;kf~`XGus$K>%Wy4ngQgG zijS>z-pkM;ZSE-_yTBR7pf z&Lf7Cy`9H*P^==2qY0$G6#exb58wznu;>#p0u&Y|;@3$r>>W|gL2@WG{=+YAhArSC z18Ka=l!Z%DYWJ5m_W|q~I!qQN=-=#NLnjh4m0I?senPIZ^uO6Z*|krSHmiySbLpMX zR9=+Ub#Ick>dK|Oi?_FLjdVF#UoPiZmPl?G>NHe(WlUM4!o+t$v=ariHLkD8oS63br3X;%N=IMtdFsGuagqa$A zci0OH=7O(P21;i~iWks+atkm}m05`d6MzO1kep}TV*bO83VWOgonEw4vAfP9`HaZ6 z5I}a!nnJ7>Wb4Wjho<}F9ZRiP+HHlu#T}AU1a{wo%lvsGuo>wmWc-~w+Rks{aK(O~ z1*im=y?KKk+h#5HeOgJ9YO!t115Ewc#=NAY2dTv>dXmu2(fWkQ{ydqv#Nch!%7oD{ z>IFye7GC+5!pWzMB02YA)hOor?bhVRyq`-LSfZMuw7-#4q1LZEEswQDN07p4ynJ+_ zY+QO;?T$56u5$q>K(1*Pd3@}V;q^?!)uxO_MtWj8HARDc9YwsUSw}>Xzl_J3w6r&cImzUb45Owaq(}z1rt(q@6%`# zoE!J&_>8o-Wl1pe1rh*9Ml(9I_em*)9ajRjcXKomNXIaHs%~tBrDdeiF~7j~WAa__u8U6R<7M=iugL-*yG`O$c=CZ05LlWCBKWnHHO=kGd-0 zEfNsJ21rgI^QnVhBr14&rf|ws68ioD)za%9z3AjAgVeE+$4%XY;}N2Go_c_xi|l;t zLw~W&TwsSGVR`qD>kHsFxasqlMn+M4I?jdnQGOic-W`AI)-K1@dNJ5&*^dpFsO2L( z#k&2YkBI5%TqXM_0U}#A9DBf_Zsg6a)zY-Qex7`~YV>-c2AVtsn5&;6BVlk+bsnL8Rbe}{q)XuG31;L{5 ze|zEecrFfQr7HUh59nOLOVVkBO7x!xs*OU*cKU|qvM66S)eZ*pmTjp`uB#@;f-?)r z>F+t-gK*M*YNkZ@9HBlse*#q6-m-reIvlWY*v%Te+e`k9IKLhp_XO|u1?`A|LNq<2 zpF{9R$2iFLf^QF8xNJYI6AX8d0Jm7{VibKju~F-acIwCzwL@cWNIU0CKo34N)0f&2 zuPWjEE>NuqvknRH%+VjM^gKef7~9`s0wQ8{`UWccD@aua>qCn-!1;oU%aQp``n)aR z``RrAhTCa6z1az6aMpVnTjI;HwUxo*|-|QdzNBU@PY6YLScbJf| zbo19XH9)f@*YuJ&%uZ;^um5=bx z3N1&0*Cf>+Njeb1Y1FZ^7M4jaP5_San5f{~JdVBfS3oPO`0)lCLr-bc_rt+nSn3yJ znpGY-V4Xm32~)A$fz;k-Tuj1d!UvQCMrOLkj*zRF?WeK}#GUX=O{CTiOy4eFK?!bDOf6|@Jws|esZT(boowcY z5pnw9)hks}20ogqFUHH+%3spnO{~RSHIaQkDtfei99d%KE>!qG2g+<*jR4*%V89$K zZgU>h4==7S!s#qq@dmzw(O{NuA->gl^h8t99Q(7Vlg!qJ3{796I>(o(D2 z61O&<5fMlvs+oc$NfQeH+WthE@{rE#%7mwwt=7g3YHgy9m@DjW5X{$G^khE5C#XLyb%V@^LgVG4j=KQMhjL`q$8u3rJB{v*GDz$U89zksq#!(0L9UiXVG zuihALaZVp(0^6IAaWFkML4%15Api*3UPVFl4W%OP?LrXV`x>FIb#{DFSymjWK-u*o zY;esrw;%Bu@HJ@hoQjwwo%`(0{Tcg07VUHJ^%pJdwmRI;^D#*Wc#PC@?>5@S&-G`CO{*H>^wYR`ym$+ z(|uXs6H>;&M02dKdH;u+ximGt9{^RTWLVQCs7r)W^U3ZI*C0veZ++y}=jd*>UGcyQ zsAH+`CX~*}jre{}!KX(*Udb=VZDk~2&0+JeVF`#AEq^YX5T)|^czf(zd!_Yl>8}=p z$)N3Cu_gRyb4-)jIhDP8XMA)12_69UMxknyBl$h$y2sV4W->lS6FYu>aldL;S1(V} zz!YVQzTQw?Y9LpQym>Va1v|_@LN2?s4)ieT0!S{caM|g7_w%o)G)&|>pY6mFkrNOf zFUZleo4X((+h2^T=##uaC(wQ^`NTPS^&5*#*c98!@)J>JPEbtBi(NNt$j&#UvoMp~ z1z*&CQwgk9u|jX|54XJc^R2L{o0zICY(x%*0$WQaKyl!kf@woOhCg@BXDWDyi7K`> z0i3K}9kf2R3>Ex@iR$x@G(QSW@l}H`4JUP4I_?DFD+^VZ{pm#MGz~m;xl(!OFYkLI zbwX-Kw$B?8QaBRC7F03Zf+QW3Cd?Z!!ckh;25$ggLRpsm(c1AIt0w%FEC4yae>s|W zne&G|*mB)oM%%@4g5p4dyK*HuM)`)G%2(!~pMZ(^$`IY5TOnHaK8Yl~rmJ~VbGfL= zT?~bplIaq@9FG3u{~paAzYB3pdhbh^7+*&BZ&8hzHgZMwtW-qfgNKtbwXtG(Is3RU zCX$brtgr8i>Q0*G!md^h(mf0ua{e3uu8UYcYZX3X5Rs_nc08Y(APP+!Ng~(VsoJ#< zUB&jj!-%vVs$J_%FlQG^GS}x`T7oe6ay_Zx*rkc>o54WJ8~;VKzFUOCDs)4)yM~rLr?W65MOWKDaDpO0%0L{GWM7-U?qZ1CyeMuB-N!g3Epuig~T(%{V_E1W=A8Qi0 zf(<4FQEn{UAwKm*r41H48=HO+p_o7C62>0D132$`PAwbC@qn&_i)qL3k;e^;<}fd3#c9&s zr?ltZm$n_M)ks~n4)HPumUF4B5t6lY>6eFaqSgNOdejkGHjA4k;#aOsxa;}Z{Lu7@ z3ID4OxF`-9w+dp4~Dt5_tf(BgqpoDjYt1hH;y*<7PQ?IS$A zI3ca?nkZeviZ1Xq=CW+TkR9bQz6ldhFuQ1irPOK3K}s<9=nr1Y?NvQmE*^%BX>|Lv z_fhb$J9+Nom9tYoCqXg?48qY>r`TO`L?$4kOnj38rMNRLuhlfaYR#1V6X>QGDx!Xp z$7-M)mna(pR4 zeWV(;t;oyM%E&K(PLGG*AB_$4@SqfdnN?6HO%EUaBK0d4Wk1VU zjQhEBO>}ZrXKzYFh)>6CLtLbtjCsx^5{?tv2kx4ThotI2aO*HIdSZe|yO2Ng6^Rhmse2 zgL#9RtA2z$d%x`Ry+_6H=wmo-)uTcbbw%wXb(Pl?96J+Q`t(8gv}(eEv-oP^Am(;1 zOXJCyS|&sEX98}FOrS$*V^A^;Zx2w~ z_n%BuYXJE5TD6gHGx;l)u?rxx5edoq_k~-{d}Cm_GW#sF)~3m2KC4x=d{8+t`1}6h*`LO}Ff856 zDFzQoxv`m&xJczfka(q$(kRzz-Xub~1f{ISj8w2unKM-yyEAL6hn>Vs0Ovp}26EC& zV>|y$w615HYL=bfP7=$^3=W`z*t$RNX^%*sRMhW!9PIi*x_ynsu5u%yJLAF57(D2s z)bX7!WoF^q++;~$GwU5|&_w1SM27b3D*7L873s;9#G&*GgL~S?YBJTs0(Od!xp*JQ zHozgjHMu@*T&ZDiy$#qRc)9&`^Uvq_rI@&sj~KLWp0KU3gBwy~l*?Q&g<&$(eT&l@ zc0WkmrmvBkEiJ!LiX4u8XG41B5%X>(3vZ+ZA##9Bdgj|Tznr=xB?4Yk#kbaDq##L^ zbZg!*WQdHx)4|~1J{G(O&yK~Vl^Grq@K{4_MA(gdOk>z0I3Qn0VEGh5;w02F#d>^+ApWxvzj#|mrU0tsta0SIraxw&B~OphYoeM1 zLWsNdOiP#`!L#Xn)IwHlDPjS;jYNTW>U1ajK#CR9Vb5TklzgR(*N(L^7J#dt@*0oI z^mgo+MI|e+BH3r!u;;_Ge-GSVJ!R;isJ<00J!%X}QwOTE7kFju6YUV;#?;n|90T@( zD*_CVyLQ5vDS}MrFI{>*u4BEkoj6`DQC~VGV%Qb?yd@e4K&mc#<0m#o|%Am9s6$lKKWAwh@7xW=dyfsY?bcztH zWOVU6<-zm z36SI!K#|B)J{=_|t7coqNmO%k;u$1}X)93vyYs_BT))StN`1D-5?5(=occrLXBd`A z!GYn3rpbBr4bjDqPEWU-pCL*Gpr6hJSysztM`)W%XbYw#?}nDmB= zXRyO5hy%{ZzFec_6pwxTAY%-;CKH7WUu|Qi#<}zyTmkCWtszjNf?*2l@q`c`9dSof zb+{sNPE@FklEJ;eu}Kt&Rwk5l4!qQxYH>7FzKE4LuN`SSRCxj~EaOwYQ(DLhoTVS; z7zS#0r;i`Vf+o8%C$O2h0LNLNL{ORK5jD6~OmCr$FZy_OoIS-@&*)3w)!M3HUX`3d5ND~1!%XSZ zv@0SSHIVMzZmg#yUDGwCt+<8Bem#G@98KC=J%5~rmoxb*4Q|dnO~k#ZF`%*U$|Z1V zuOKQ?)|8X1S)NCxuu z)Sy1nOg5{o#KVud7nZgKVZN3Ygv(@3>be zSLReF6)B&#DG`WJtvKiSI#!qna5-<=D^9Nj(wZIrb{Q?Sh>*uF7p0qnH0m_arL;l> z1eM%YFqOEyNS)&I8n=g;AMr_bRTB!4@W2@yW+6C`pos2H1kebEM>OV>lBlR z##r!LG>{YfHJqAv!IH`}iUf4qCO%$xoyF+|qSc$HN_7#Yz1Pll$Scmx=`w$SR2UmR z_|dX^r+TCILwFa&nokNNl|ILqj|%xke2bvzwDe(CiF?D7E}ukq|cZcWf5*|X5s-N zO?>096JVO)gg}KRi*Yboy5i%4d`m^0==sbd`_jbZj!PrP?8TN*={TXHQJwvVO^HO& zqA88Q0*$muQ)c2Sr@YNAu5VMm>IH3@lNzU1>lS!A=-O)mZK)F-HODa(voZ<<5T33A zmCP1hRZ_2wT+3PxdR6fUa;dgCs56IUYpn&#>SiU8NB_}PwtNlI(ep4m7nKJ*f=MDQ zSnJ%w3^5iZvcl||Oc#-$Y3!`}Rl-oAhoT}kTA6`f5|&p|54x>@=#Z#rb)q}PyYIcy z+TPCakK~)WFi#eKszE!C9nHZ2*hWUFYU`$&sJnzvJ(zwRRvayHZ6kbZ0l^O*0OBiR zS;B;^K;cFYT*GQM(fC zJ22qk?T4E$BYf0I8Afq3xvB{826`+jX~?%XAD(}Iq)7CLNls9nDP;fyK;KDIK&~9| zH0t*$pl{Ex^@htQq-z+0IOa$u4gONaN@vyH(ws6C5*@9)_KkQ{H@TzuTeyF)1BfZ7 zpyMR9-{N@+nW3ANp>hHm?teMc`{zw=p>ezMUC8G(R;-Jrtg5)``d5Hc(Sr{HdkE|E zixGQH7GH%T%jj*KClJW+v)@Fuk-lF!f#qX6NB{6#crT3Z;o0)1!bE?0J>K*?bsoa= z6_E+71#p_)9*OV%IgMDePpWDy7(4!v8m-qe8ZIAPpI@HST?nighm+!VYdR(4`VkW{ zrA;vU`-5zE-34FTT`2H$N~s=`oRzo)NEU^$ssyZ>|K+qoY(PC}ITah$__^$}_c7zk zkF}Kz7PWNvRx1IUcE!b}NR8iFozlETI!w`ZLFuNPip!0YM?3rM8!lUQOskktrkvHz z3JM4*vyF$>P3~9$Cxi*$Q{o`L+(Z=G5>}uwC;%||r{}3y&NSOfPk|6u`dP(zWQ_DA0zjJmLS8Y+_;d_AYY|Q;uxn{PNPFp&0 z+^R3(tP#|+4X&$CPi=$dTO}um=PNDh--Cm9IJeWu5Q}xI!ejrIw|P@|G^XU`n!ZIS zn1-p&O<&SY@530i+>ebF!a0E8F&=YSD&zvsPFc8rnZG=Ucn}OU=~jyg`$|=Ay?nW} z+^FN%2;d_p)f+w+wd64iTUE>MpOgy@TAB3#`06pNyc3T1VUGnwO}X9~s>^_2f!R|@ zMMY&l>pd!>Uk~r{Y!!L&)pGFERu#KaLq)G3m8?#G*hlssK2_YjdoV?L-krf-vuH55 zoFvCCf7Rx+?%%p~5Wdxc-|w48&@BM8%wKkt5&OO;fA+u9hYgSt#J5+2N$mJ$H8{TK z>YRmg(R{0eh+Li(TR54m2*s%vacs#P=oEegh3;qGk^3AR_1_zjd`~$7tc8f9!DRW{ z`__wlNGk0OyMT;#CWE26AY zg|pU>b|T{_yV=X^pFyaAoynSz_n%nH`3>*1G}U>2EwG}DcFNU{A=3Q{V=BlZbBB$H}J zoN24Rgppk1kb7sx3g8*61#e%9-`T>Uc|3#L9@IMGP*as&k<>NOr+hkAQ* zSKkee0;<5M|EmIbs9G$yf0S`mO~V5~v#RFV#!3K4pjBb;5#Sm^be8s0EH@C^r1UR- z2t9L+#mC98Bq8x6n@pl)(vKJUqDZKa?P{CA^(r|7t#OEpS0dvU_w?Clg1OEn*GV~v zckr9Q0yc5jcsW;^OKBN_CLU*$k40X$c+8`2G~7lmFugA@(#3S8seWjWZypH@{$d8o znL((UU>l%X@6z}7L}2o}(ypy-BY2R_5AcEj!LMAb9}sIVjt5mX4oMlHC{O+NU88A= zo^wv4Z|*zTzBx#Jq`-kOw94>XQarlshFRGES181tKD8Yng}p&l;4|S09%C39Kfz;gvM=*WaV)e=~b} z((o#H`%c?bmORQz&uGis{uTjOwSlN#O1(ZmHw-^oGrFZHF7gAeMN{d9bkv}g&c-d~ zoz~Q)b^>-hRMb^7F3+XCWlR8&!vA*p!rs;Ma~Ve_r!R|fGZqYR7?#D8b(Pi(6Glxw z$4N`jK0ny^M0?OgAJR;^q&TP1tlO5mdr?~4Cp{Ei#}|4?ucy+$MeJKP&U|&Mu)c{k z%;dq-A6mJ8JQG7JUUghtGtY|EC25vX#{Xj96^C zspUN{pJQQ2i=L14eM}!(qX%L0Dt{rVn-X*d_r`uY+ZYBK!Xgu)YMj;~Sen;v3Nq63 zy@kU7qFZ@QUj9P%UAf=+DFCNB`}WVZB%9qUl6B2$9t#I4Y=lho?S?WaTTnfVE_o+p zC2bU1#sH~HAi;zynF7giT?p;Ve%*HP!P$Ppdq*>}=%g#}Rxg0Bq-KO_QP!AY9NH6D ziVMcuTn=Rqojht)q5ypcG99L6r*-7)p~!y1)CR`F<`bmpl>Z35ShK|iwZL!_b zf<3@KiLeg9t4?E_s$f5?cBdI_(gc0SeCL|*hVwyxXY%)}8IuYmUY58%fd0lUN@6CE zXV3bvcdb)dRYw-GaNmr(l(0`IYiiv1s?He6h|9l)T}l|zwVGz?{@nPqRGizY zxpIpbhpOJvKtUNj1OJ8=esgf z!!pU5I&?$~SpP(`p0)I9BSl|jTg~W@2vC&XLxR%AY(QVl2ArIe#`2jAEnGHnR+>Ee z>NT%nWkl=cBw>Y*FT@~ROu(@G5wPbFd<97(r}m9p2d&e|(JjjZN_)$BxG>;#5)y{^ zwoT6aa{!_*bemo?IxJK4281r9jOj6O>6&JFml*f9B~bD0v~Z@;*1R!gf4F-j2%) z_Y*QkEubStzsav{_}M?%az)fr60|g$LGj|ut0_aI3?13(83nZyd15@eXIr2!H_f`B z9K@B?XVK+IhrXCo8KhxfUb9|pCx;F0*`%V=J2`J5zdNtqV1j4;)WDf4k^<1AN3J89 zbr$Ql`vBx(#p){H|HbIg73o4d=>}wgUH6tX%ZA0taYRRg&+lr`-rf){ld2vWAqd2> za2^$+Q4+MqRm;f3L|?umJ<}2-zv#>G*<(CAjyz8z2=I^!?Fr5Zf2@Z(CnzgkQwuR# zHDqNlWe!DB8v*bPD73<+%;C3IlH~UZwegg}Nr~tH!s&q8kz>_3JHaJxa*>8vNM{#9 zWIwRIozpFw!hGn`KXoggzi5nLa>*85L8Sn9y)lOq>dh&t?rn;X-)qyQSts-y-ogi! ze`m*r+`(3adCGz5*0mV+08S}i z@dNa5dcc#c+;pFUBZif$9PC73RL^b~k_rO?pt139@aGD+)cqq|_|-kR?Y(07&BDFT zxT%eU)_JAHeiD)?zwBz+UDog-tKJ^Flr@6}fHCmJGvxzUW$LJ1NmN|w&k!-R%g6m7aN9VKFpIV3B&2CZwYh$OS9t^YH;6~H| ztJ}aqykdzJhn2ki4#vDIty(6!pLS9$R-|R}sMhV#lUS&$0kMR z^!kHa`$2YoLKZ2V+G6aby7Te#ORr7{ zXSkPd#xL7!7>d`PLsm9iL1>t2=cYC5N{-(JRytPTG640q_{RThMbr{oTLo%*7Bw77 zKY$Wta}@V@+JX61(j)7Iq&rv*DY^y>t4*JcSX8#nkvbI;v$Sar2l(S0a0#1~EbdJu z*!h9u{m8Ho`uUXj_@*KKO1BUP|Yp%*Qun=SP$TKAl);xlK?Q!e_$i5 z@XejsFl8=c!U2;E(z>!}w45>PAZ0o%Pu@*GhBLfR{FGpF(aa4F zDZ9XVB>)B31Ltdz|4w?r0G2tlZ{Ttp9LE4B#GaC+R2`Rw(C>5I{l2JQ*t;%j2Uc;_ zJ@}Mf8uk}wwYLf3WXzOPPS93lnVOIM>N|iVaA)nd6VU4j7&EP#1Wfjp1LGh8>0e=E z-ei9CubPcKb$8b431Sw=7SyIJeyF@wJ^Q>*pWb!iyis4*APy9yxt9A+hoX3j!y>-4 zwH3*>1HP^Fq`X{B*PEXKcoSUMAeU>M5`8hQqUJyyAPx|LAHiE_az%sa3fOb`CcS%M zux(1EjqC%>B;kq;LmKrPvcnNfs%Np81Reukfz09kh`;-lSc2#Fyp{r6qJCY(z0(_e z%TP97N>}||kP(J)u?TkobIcWo_)YX^)c8?2*}cq>`q!+M0vJu;;27OcIj?zxRsbi? zS?z3qxF-Cb4oE=shMi{Or)}RcST2`{BdY4YUzpSy zAOgI5E03-G$~$BL*Tn{(FF|UCk|P$d!DC;3Q+tO92M6Y>VR%tuIZUCr9E(JcKp9f&;)_F4qU z+s4#7!e^MQ3X&od_yA4M6o4hiyruKQ9>OK(dOE*F%4^q$qn3&W@>Y>W0lMeytn72m z)m4Zs=JS8PnXOH2Mf5`V+bKYO_yVNbM4o?`K=9@+kYzChdjj_Kc6^=jzKliRAwOt`E}EsNlc~)!gbdU z+u?FC_;>+ZI@7-_-rm9^A7T0&-K>obv%i$xrRhWrwcHN8aNSU@3Tj@*h@Mra2(&iV zAp^z|_HE#P7X529jIg6MgEzmfx|fL?JGz$4m$_>{{&p8L^!uJP5A*ghz|R0XI$&(Kpw@7nvr!K!htX)D$CZ{IB) zty5|HMEg@JeSq%(7o-m7|NXI9AgxkhI+CYb9&#Vx%u6-?rO&+3+K1@v3sPx=3G($8 zz<@vDzsW!H*r)6HU_d`SqSvd>O`j6^Xn76g?STU)ws2ILo*&+wEB&)N^<5|vGLXyL zRuH{KG8_16W>`N1WAw2~(@LYp1s1YlQLhRa`EBljbpV(EA-gYcu6R#TbT!#W+aR4o zyiGISSbcH+O+riaMdi@#@_?j6rYrDx$G69eM2*MTG|n;ScdOcLzyXPNlq)r@HG*zB z83ytOFOurmQ@JWB(UL)>4pz(930-mn5$D}I-uGKP=tajrsgE#4U;Ph7`YM;<4C&i| zL$+^Hkl*-OhuVTuy?pW2!WFFwI@M_5U zLaFAc$~v(ggkBZLpEK1m@zG&w^smT#>+4X!aE$g$&MkSg$iZ> zS8>1u+BJLh;r6>#xyS&|`wDLI7b|}R!P0!o|0$$@FS-|X7Tc2P?E>*_9+MTgvl>7R zh+5>AXOC7@Z)g2E53G6mE55BYhb)zCyJ17N9`Lww!U7jw$sSfi3ax!+gXWbPS*DK| z5cBW0cvMYK&;Xlom@qnc*}XtA2jEgkSQKD^7)YXUtmAY#PB2qy)}A@*2?T>ZzDVxT z29GVLrdF`HB5V831HEPXE8AKYmy9B%%nqe+Cm(jTei48;7ta(xMwMrfLYzLO1)~lG zBEWa@l8I7XZQ7A@wF%D z1UKMN?I4JG)_kY{Qik5%CJxTm1ji%oJDbzIYxwjAUNOH18M~{oD`qg+?*w3=K79k# z-~e2dm`O$(ABf;lcO^J{puO7uL*3I_$0_LSW2Yv68LKXZ*_YrU0{Qg2Hro%|X4nd$ z&=$>J`0sQe-!cZ^9RUa2or#oAkgn2zLr39qWNy2I0DwI~bdoos`urhHd*pi?j3NP- z1LzXiLfY-pTn)L5+>n->U3I4DixsaVrsCtM;)r+^*Li$w@&NR87Ooh5IJ)|RwZ z1%P4vC%#O`lz(kT4TeR1a=&v>YhjIA2iQs=F8S{qS+_KwU01(5hTr413Vvrv^nA)d zJHWnSS>T89y3c0&3@Qk%GgIBhwS?^~_}py!i(=UUVlwB;-^$^wHbTg#yWV z)b^je4NU4HpS%@#_->`sAKmowj>~t2o4DQ7(A?M7cBO%IL%6ZeTr(~f*q0B&W(L+T~H<{Bj5WW)J0Ls4zIjiHVl zuos-l^2kAq9|hQo9vh4;hNj&OxSfjsXP8Qm-W{D9yhI zPQ>i0a`@sr5aU`hL&wN^^7p&2S32J@oXijZzP%k4Xs_i@K&brpgD}I4 zkN3Y|O6I^samXg%^1vbm;9?};LZWFV+()G&*Tfs9(p`Zs(@y)6oDrCqV9(E^_0D>1&8{h+gOh?V|IDON+`NxD!j-DP} z)O5J$2r76CRy=zg#{vwol>T#}`#kY+m1rXD&g6e1WY4Wno9Za->s*-99&CaMoNDG^ zzfbEl|4Fx)@EBW%0MSuWQt)TAl4l_qZVHwJA!8Yjw-@^sacd-@Z|4X<#lmt8D+uw4?4uwW-k;uYS2Rw2 zc^RoY$}(JoK9wa35tC2R(TeIYM8k};y+R2T9hL5OTufozT1cA8f>KQ35qKQxPy4mB zm=~Aw9HuAtcBS-N{Tq)8_nklYHr03xaog6TLSJ1i7Qjo}(atv@aj#!3Ip?92E2*hD zGh<_u%2WY@S(9Kv0IVh17+t5h-~la6Be0pwW(*Y&fWzTGN+_@P{zBQL_(9fWHjsqz zA{G+ykH0bBIuShAZkJ?jA$+as*=E;~xlg@z@_ zM)r+O{GVmw_N%c)Ypk9sNOJxep$ia2X{q4F!-oNTE45vmCCi*tVpo3X*j;fcn05-D zYu&Mhm}(Js{{4xTEjYTjK?%L`)mEd^27e*0|8D-{XDUzxY*FvymLyuQO74jE)NrxS z69eyo6qC)0EmO(m^zUMYf&!9+iwp4RAfugA&N-F&(9`d1S!79BR*Leq%-4~uY@hpR zH{nga6=RxU{U~eaIv5WX-J@u8$ONyHM_F;^L+y~Q)+1S)aJL87j(jZ%aMY9-WoX`*>8@vnOHNJM>z{ z<8Y06jahF8yEXEE2_t#5hJnm$*G`W4uXJRx1v-6bB0KvI9_g@J_bc`KGcy+V74+O_ z(DRD2_FDig9z4CJ=S#R9guYsoggWOovyZGe}QinCGBtTp&_83$1A zO56md1kiAcu~?}yQ>w)Jv_#f)Cd%vY7B>%>`CWte>ep= zyyqz2dq4y6P5TY4G(J7cH&?+GBsv3sG+o+c*I&lhdM@(^vPyRltk_j{@HM{&z!4z| zv9zWWH2DPI?mO_7*mbOCbwpUKv#m2Cs{n%LRS4`a?NpQbOkG2?sq(iNuuA|1bA9}^j!&tBH2~$_t`c`ZsxL1D z+LW}+gZBWYDR3)2PnE-hqnE^LJ58c=v)sE&Rm_$fZ?;p9vP{-st~X=bC41huukVq@ zv*`BVZ}O^(2E}4)*+9}h=sAX?A>ARtr01~*~pQ6#ch(?>~!F%;*&7o{`$dCvAj^d6M?&zXQ{}*C_Vs%g3C}a zH~`ly;Md*pZs^!`(RB}Y4(52wHn2sYql*A%?tL$xbc$&V&qsC>zAf)Jz+TtCB7zs$ z#m$4pVwtyH?GJ4Atsms|^Zs(jOJ+mmm>Cnhl}dvs4evz-;38_y`IUTgL~C%7qX=8aC{cD!}r zOTe&OMbaTwd-j}I2l9zf`H@X@)#$jCMjLc>;~1HyOske2h5hHQ)XwuaODMrm>NwH? z3>_5yUL#!x6IUk6nJl^bS4}rv5DwJnMKd=rWic*8L?w=s+bJn*-D~_VngA0I zwC)rlmXt^gLYW(8s$=JFW=fFwfQ)%1dqWP_qx(%-R*z5`;LyG9rY}s7zupb}a*OU0 z;$@1oT8jbbjzC{^&8fQ5>wJ;uJ3-Oq^9@&+6V2H3;(@?YU~`#tBibS{ZinI|nFAzq2m`+~4dgTHd=y&U_Z&oWS zJw!T}6&kEG@>tx+qLY6B1B-yQzEF38xYwF&w?~iEkM9o#8}Tu_MXYMc&=3k3MQQ3Y zNM&FV@{H?X@RfF&X!fv^;=q9!`nR+R#{&G%TY^cs1qETeu$HGkNR{=hGUL4Mi_1h_ z`08qtJ1~oa$5*Z)_lGJFpXT};LDj#?w(38O7OD((^mUQM2Boq?PS%{gw7RB(O8-i z${XXw40z_8MJYjT3&W)GMT(tm-&-mu)W`#m-PQsgFF@s);j`dH0Iw7IwahdLvt`F@ z&8E5N9p+{q^g8?d|H$F)k=ePl;N;1VxN>@58E_Bj*~!)(R&%mEJO9)vG4xr-M4w8j z6>8k?0bJ*bz)MD-$*La*q3x(Nlb`5Xweg{EJ!k5-pUXXxSV9NNOy{U*6pnmQ(q)*x zh4U{@V9(a?o-N&$#ePRX8nckgrQSQeV?Jxqvr|v&%dKzWDzBf0{$3+Y-NI4fG+p6- z@YlLv;MCSERKP98XEH8*TeG^GIPb+oXN&(PYUR+@wb$j2^M%X@Y`Dy81O+%4S3Sx) zGq?A1u9n-C-DoAT(U;L&*KV*`%z*Ba5+pex$KxWTzt;8R8vRAIYE+ReV}_SL2)uTc zX_(HEI|?GbMnX;(&z=CP0}V&wZOcd!HMx*+i$pO1W;f_!calE;7vmRZ~vo&Fdc z=G;pD=FtlRIv*RbA#AneTO<#Ixl&;n4|YDjSS~i1Rxp6hDBftJ#*}&8>kLuW^e$dh zN+hGGpX_DN1c6cH{hBM@4iTV-?j7I#g^bB%4-P)@;(JUbJAIbpb`gj9-$8&^ebJ9> zlp=dI-B{)%@}mtoh&DckJoV#W#XJ{m>iX3JQ^|-Of06{5rD$~c?2C7xfwXQdEJ*~y znw|-C6h$N<{m=bznRK+|(Gd|$lcc^8oMVysG-1>_f9@*5F3x&5t8|DykzIBq2gffc zUi0DyBo2r#XgX_4_z)aeFNk2-y*UmXUT%;r+p3?v1GM3FO^txkOwsjXCSsa`p<`Dj zaKos`Th6jr@=$AblGLVaJ>WmJ<+Y&CtnM_|uq20YMtb6fWsk>K8~R#oA2Oy}zHEIfO2^oyB> z(^-?t&`PCiS!xA3oVB@8j}I@y)W$Y;~aia6$-A1UV?D|5P{S1YUdzf1nt< zPMP8(#fTAfKX+`m8trT8{_a3r#LBG3hsJklb%641_pzJ0)zk>#d(U29~&|B(F$P z1%{deXs}yKUCdPab1(t3>}e@M$~O?+@B&c0Bl;|DhX0o`nj-y{``8Wb8kj zoZ;P|d=-Do72v1%mdD8XkfZk2HFR&0%3FnjW~ww@ox`Umg8?x35ugUz%!aR*#_5#A zS94YsdB7HX7-acE4{kitv7 z$``U&y8&B2+_5E}=%m?fEhqj)Slp=*+ymDKcry`Qk?l_$=`mY?gkPz5aPAKaL#K6h z_x*tCE)|=HiCD4kbD>5#C4VlT4MXDpR-KWA4GV*nVm*{uEr_Y;YUwzsJg+?#Q(kt? zcC|yW%mgmJKE&gnDhIOWM~>mQDn`m~Vxk@dk+dl9GDMUTu@WbQt8wA+s}DH&_G>=U z9$|Bdo;6b`9s0P7d>F<1pZNTCRKkUHEwLp-rM#xIa(53n1>UXOEj@sJ@QMznRuC*T zZqGg)a><(f7>U>2!~*|bE%uHezwluWqyy+wyt9o#Pt*RZM4{l>MibNC3!PFmUhUKJW^j8fVa2S%Y=KJ$&1!NZ$>a-Zdu zrb}D#r-U9N+eYo_oj0oAy(=UU7vfj4yIikr)8l1QTLC{+)tA4>tls4xYiDqOO`b(x z+J+9&5V;nJ=Ksc68;%9BD^wmhz|>2#ye^>>o^<1){xnk^Es>R5Ez54{=ut{a&~erR z!wdNvcKkOUAp427Zi#Dhhmpu}Fg%f6rJCyy= z_X+XzXU~OLLzwEguUqs61X*k;!T$dIP4=Z{p29C{xrB@>FFHWGP;>|GW@PlA=yc6- z4|tyu7a7vh6M+ACK0rFob?VDfWYK-Z0B_SlueQ1v!)tzA0utJa5L(Up3W$ugEi-vO z;qeyCe;Q({LHJh_jm)mWYf@j8Yu=^ANsdIvCN7kwN1`jK ziw2h=24%+D9V6GFnE98~xBI2vG?q@Q_+X) ze3%ZXBT9$Ug&(a0<fZ z9(&yIJkcYcxXtb>khESCx9VbFc|Bg=qs>Qy9=pLFAcr%sCpfj{jED1YSdRU9dK;N* zKb}XwI1(X|sJaULx9U>8&q8D5`~LOeIh5QtQ_avn9nj_awzSx+~4cMl)3CwG4mjTi|HK8)~Y z`{w0ep@7zKoiJBzJsDT2oflId*JJEl>*ro8Y%VnHHRtQk`N7wf1;L*ak2#NaFD2sC zp+98a1RJ*F0CunuBbn-G%jbhHJVGFKuVK>@8I2=>+$jPf3vGV48pB2{$+_?W;nR9v zE$$h+VMiwsL1@v2;-;itDTc|@K#=aH`zBX4lt`lQI@BMHcabd${kom8U7z_noH3k9 ze-M5|S|QI04XN)qqc=MtotW;SX4JGID`{LSFbx_J4a4AK48${##yRD`;|kw7uRH1x zMR~blL2sQ7?hP)0<_)EIUPjcYSj?Kzl;jM0HmKp+k|aGngul^(o}>!iKvPVTn!9Fc zsE`P>oAXlG;JK$iF*FZQMViEJm8N_>k%QF#>9S>>rb^g_oGy3`u}_T19RsB^^eqkg zjs?>jtzGP%eOIX(Ef+SYLso+EmxV0^JQ>{3XG*DJW^8&YykB3B;PU{VgF!o9{%2+1 z1)WL9(*4bu7LskPL*c{A(yfJK}N@}?9o0}y>96>$i zRYl<{No!LpR9aQw+u?n3fU6{76_wG+7uZwn8a0&plM8A1sobHlbxpY{yrFRASpBcg z#i#v@)B-n7-pj#`F-9-%Q+R8*g^+_M8qrHroIF0Gcyord!+lDc*+f~TuyPJbN%C~D z+Kj`$qeuYe@KU#ld77sA>_#LZ^o>|e@3}u36hjSvH?A)qS4vPf z?t>&eT58!^^G}8>Ocy;?w(YKEK=yY;L<$Pj7N7h!a%VWben+)0f`juyV39IrSc)+ROQw~~~aDg;j}mvFH9 zc1uaY3zug#_l>{m=sif@oB*viyBaha}hsdk2QTGGJ1tSU>@PcA^Ws=%a!g^FhnnvGN{pq!kwF5pCcw! zWn=fF_+S~sJGh|A&C@RhDwXdZI=RrsYHxLcHNqokln{z-rEO;8lqY0nMoQsB#maG! z%mPT+1SXFDa$vMim&;>O!%K>)zSa%5?>vUJ@;82oE={m29C`O*{#_H5gTA(MLL?S@ z>atC*i7R7S$~-_+LE79;Eo|``EvUW1!pM9&051*hN43IN@79-c6i?p%%^`Nupq_6F zUWUDb;RdfBy z$--DQ{ZPYw@DjU|8wG@MML$2#**Vk4__tV__AC;}9ib7}tY=j(&=$^1dphs9iKOsH zCrP)7&+~|W^iRzHwi&_qE&VT1_o_Kda3E9{zMLRhM090E!K7dUN`;3i>w?+*(5dlu zj``mG`(o4s?|?DtX?093qm?p_hC&?tgLDQJJ?@^T4NLd?NM(B!)X4sbXE@m`Z_tG=n9cln>0S- zFaG#%7p^x5WXs4k9AKm9>@#NTaiotIDe7}+t1ynd&fBiiO)J7qaM~5vkwP_$D z+!6H4`&9p9D^f3m_F*tZwrufr}wiR}JwDmvY<(Ln&#gs+La*FF0>S9jy{LZHU zaX-4lOZTGP-HbJ^{o?!z+9lF|>g*3p#E*tA%qr#Gzn~6|a|81lQjcP{bJTh*KYnrf^x?u156Y!wH82Usx%BL1a~R*7 zb5k6wZgPE|7p}QxC8>EvPie^!uxbFozB61>^e)%f*Y3bl;v?y-evbWi(XWVINXE99 zkpa_E6O6B*bn)FF%>3ro;SOQ602K*N%H)+xVfZ|@oN&bn9#5u@zU>c^`362dm9VA< z9lgx^&JGcIsugUK!`WYsmKuqx^7AD-(cyx~kP~o=C6DEx*ng$M%jhsYj-D=k3dv$Y zmu=EmQlIAG#|Kk_6T9I=L(Y_3LLF7oyNN#*ul@*dIF+lFRleiqXarE4+U9szc3wT8-!ZcrI^uZEsZQfV{Be{i`~t6If2F-Tv% z$u2OI=T;~-LfBgrf=3iB6g6{qSf)%kFa0R*8f*}MQT}L?s@7Cf2Uu`Si1;q+wZo|L zO<5+xRE0U7al)C5z|MeIcq?8axH=dw>1TT@PbpDxNVL7|6dn3yJ`l$$eCK(WNLq@Y zTXG6+{*0eBk<%&lSMnN+)yffQtxZ&1s-`J7P?=HhUH7Y{hG7{d6!>LyFDoYCInCaa z|ChY3lJL+T-~7iET&>)mA5|scXhmb)%88enkgK=rH&Wy&z4ppcX1dx3joPa<_olN5 z=$aC{@HuM3dh{zkqsvjevC+!gUS2@kwuR`K*X#>&NpCy>c(ft<9eRnUh2AzQko5uUsths$#@s0h& z&1!6qF_YZBC-M4v0-O5kZth|`ugwob*+7jlYqYRS#8L)pJQDjb#MWh!=IiW|NTX8r zWgbKs#@5Zj7^QLAio@G3DSPZM3sZiXZA#;(a{wYX{XQl?8sZN%3 z=Zma%nNIvv8H9ndwGsvmY{am^&Z%_CxftPt4q<|w9YG2DXIvuJv~I7Ji&){ZZ6uKG zkfHf(h#$MhbcvW?wS0hh=64FXL_~*TLC$tOCnPaKLo>^B-B1pqgm?x$d$!7}AtTm% zcnKo*`VU%phCe4ft=~PNTbyAHQX2)LRd2$!|WhY}XkguFE zS4X14-)_J|p_P%A!>31O8M$sVAm9lmEBO-^(UqEb|(GA#bg zl_O|UyYT%9UzSA|@0045EkBD)gshn$QCX>Q%Lj~Xw9w$lLRL9GW7^Yg)H=Km0QN*DgXo2@oKS57%zR>MCgw1 z7$Loo2%opVxby+ktK~<2B~0?hiv`j#S5iKZM?t44VAjgC!Hid!`yrC)qi&}wBmLOu zHpQz3J#yxfmjaav-l$aLDjOk_T^woFa4CZZK3g5{{6+zLN&D9XO_r{MmuVw>;aM9_ zO?Nm`htP-H=jKQv=vP;_ue^vB7AC8?=b_Ncp71C>(b7DQh3#Ue6L7Hpc$81ehvl&_ z(sd$`O)*ZPgyh3k4<3wgx%x_jAXIpPtg{bjtQbamDvjZJ0+BI(_ zE%Pn2bqTee^TNTpE;?&)Z8#{9O z(Pf%3#je0P217T*yxX`#@exA`Z8=VaNAqaONgslL{|Fx0Sk@K4cUmv>CdgR+oyw;V z47*{7AeNRsgLx`ktSax!oSTV!%2$%p_g6z*p{Dwhhpw5Z?rg3MBd`+A_Ji4Do%gfL zXw1EydATZVC^;&a1LdmAr5K)Q7lgZTV%Uizby%iCG>+rHo8*r%X)E!7YpGYd=IWXu4dfvlQkBsw&`NGc627Q<2V%!w974^pv!p>jntAs*6OB zvy3&`wR9etab?A)ia#l#y^G6ZzCwNauy3*n?^~0t(y|EkEEwzA;`m$9zMaBO`gyEl z*2cZTx+g_ibH5gX+BAs<0+hGtqx0O~V9wg6jsM_nIGRxELBXQaAkAnR7r9hxpRx$G zAFSKj>WehIdugqVU8X=oI=wuG=KRpV>&l-1t}?f5#+3d4|P&$?}F zW>=B~o`}kq;z~m%Rl7RK3a3S=cvS(%2&i#Ra9450?NhlEUEdziu<>p$n4?eGcypQB zWaT@!Bws-vR@8>U-~T?Mlr=+I8-FL#Bi!UEp~x41mYL?O`xNJJBOJJnnfz!cA++|* z)LF~q8!${`+uf@at69#h3y$_FfA-~UX}Iz$Uv$9Xnwm%;#}$Xg|oREOCF6@ z#(Z0(5klSM`+Su~;k{EfQA_>cd-HEr;Sz0qdi83h6RMv1C4z-En>FMqiywwRo4V9U znT*(As-q}?}5_dWntx z^`FPi#)xAKaSlzzLWWrp z3I=b#6Ke&o^hXJN&netNa3yT~@d506;4=_RuUyuSb-jEqdPw#HOIDSc1|ng6`C6sY zNmtSqaGg_njP2Ba&r_Hr`KEkmfUus>XXr`sY63CHenRN}KqeY)yk9LQ zm0L$_!qOzV2A1(1fg6CTORxcUe}klfc118XHFKpW!fy6MNq>(joDq&1ee^>H2H)ZfRt}4r z0rUdU!E(*Wo^)d}YsUTQ|9H%26!`%PY%|8hC;Zu}=$QO%rFGW?aN?OmuukkQm#SdU zO@;hr{K)#*8ZINm|5&bIT#2C(UW;g{RwPu&uZTfZMR2`%!2|D$QH2VTK*4QdH?uf9 z&^61fI^Xys3QOx&D=?pE7UM(rsr6SUB(!mfv>zRjO7e+|MPf;e{igk_>Vw#)*iaYG z$+?^WIPPvpnNwrWV0!P#8do-EYbDf+E(~LHcP8r0Ebmxe(d93>4on z_o$mMQIH{)@mR6U8-2AOwU8%%C(f4palTL5fzYJ!Yq+=F98MJIuoH6gLEMWGxDFm) zck>m)mA{NL_Fc-I(hS46Hp{4AWZUH;N5`f{$DIJde=zHPb*<8L>?)Z8@lc@ZRJldZ zTeJl32-FD!+HV`}s(MNsUV+&ac=U4;H2cngYXEr^0)O{2bC!cp0~t1mIf(DuSJ@w} z-MAOUouX3Cp|i%erxX5lRYIKOs_y+^7D4$%%oVwp%3tn99hN;@&D)V4)-A#khkl*O z-6R(Y7Oq}ErH`f6pg>sc|GX}cj2nU9YxPWU$@tL?Xg--hb6{%K@dX6WlESs4p#F9y zUd9(Lnj~AZD9MZ5Ix|)n`?mR#EGLNfbf|%B+~ra!(kdgSv^3I}Rx9fALFilhC&0At z-M5gef7k%qmpnV7I2)Ch5Pjp9w|%Md}^h5-rt z%`@{ML57q>ye-ki zL%gd8xWaT_wY+7g^bNeUnipGn72F;t$H0FUpEJ#Ni9c85LaYC>6Iaoa6UqfvCnANw zc&xYcH;?VCZjmK=Z`iuk-(-INkFf92^;jB_qqMC$e>&qwV_GXQb=)1ss}8F%uWm+IQ&6+`6&SKj)8|-J{nm&D2UAQ65kD)0R`+`e$U| z$960>IeO$mwhfZKWOHDXL=E5lV7sa<^=Ddm=4V4Qx zvj}tF4J(l2zHRP9k{6=EdHsXG;t`m067M z;{%tXTG3qYW56d5cAKkQw3t+9V+qykQ*zv*3togflTQl4BRVJXPW^yb&sSkW6(|?X zjPI|63g%J3fa-iQ?)-VdQcfwMCbb-E0C&muCoz{2O!}- z^MDQzuH~v0h2A37S(sd9)Qx)IxP0&ADRix_@=PdQm5_g-gbdUnPhpm5%+PrnU-F35 z;V%K10x||<4=fiQCedMo65Z~LM6Z}UpD8UDuf#H+n4GhPoudjfPic~9Od6xrRW4vu zhj;+!^P+FmEI;`4oy$@ySHu);Ia*v#bvl(!UyyL0m9%zqRvyT}ADKRR17_dUs!#W3 z9M5TytM#tWAZ7&|u`>F4_2&^ezE5#>1@e7Gbivl6MdSg#>oW)h4ifG&6(G{AR+|a4 zsq_|^&eAW`o-gk5iOum!B8>U{Pr{({bX@UQ3AtHKeH^)or-Z6qXSQOv^E6V2PXixP z*+C{5F{|1Lml2Q1^v81AzD&sXN-7(Z$&<1w_qf6zQVTO`d-!S?L0_hY`zt}!?)+{v zqIy90uz2@H!t$v6r>b_`Kvf3=p|2A1u9kPYJ~=Hx!hM!uu~_r!8E{X%WYA(iS+zUO z7qrGP`Fk!^^o~kgA4be@TDm#m=gL<^tuGL>+{nOB;02c8olXMZi`QB-Z-C;`lVL7 z#};imT-4e3(B&O5Qz>ZZ{w@i02jg0q2F~$HEb~jqKa|nn`aI&b2MPBX3=nHDPNdz2 z!R4wJnI02qu;yNo$H5GbI3QUjqY?d5tG+mJf9FLaX;>jpV?vc#sl$wBs|EUSBXKxh zpp?dU&e9q!avd1_m>U@UFJm&?Vv2xvA5VKd#(YyNK99)Sn_k()mU0zlp$hJ=WWuag z7}W=r%VXRuCw(2C>zP=u0lJe)Thw%OxE?G4R3o_**A%rcVlSWpv)|b7;9L0)mA5YygNv3m)Yix>jo~ zy#jUcsZ#go+-Expj4{wUcqb87L}Z>S=opk3obE9iBizTwYKK$%hzWtaoI5O5yWVUA zgCDU5<0;H*lXKmp^FX;wNK^VGSGY%JC1o^mIKy$ZVgK ziRG}C~TrrD%>J6lke8Kl0(cK zGUb(nU;r z`nl4uGo{NS^CmH1duX6_0zega6i&uG*-K#GLRc8Rr%n`qs`yO${ zlk;DF)Zi3bQn^=5_N__^=$~C*fOyS7!hQCDYi#KBZgwtL)na0;CBK!mHm$%twrJI% zCpQ^DwJ$%Iv-@IYW3LdXc7f8Q(BVr_K|;{i12F}FF%`&6%xcr(+8vCk3R(x&q~v?R z)ss&vmkPJ2yqy;-n)^h2H6~CR6?)8ofzcF94He9zWYy5W1DOd2LeJYTJ~W?{ihu0Q zJeAWdnI3VJk#L{6@TIDl8?~OXxjs|3r2`OfD`Sf`9xkfr?00<)Vme|kZ0>PCnCX>N zK2@y~D0-h{;_`#phcX+CW{c~45U&$RxX&u!)F9CAc017SI+Ind$7Fg7P=0|Y%9b6> z{$<1AlS2G#|Gk8}jg%23Uu_nu%_@9XRI3dxMMdgxs=!B7&}YVCb(M=)jWzcPHyQsEJm9euNbI-=w$o#ld=ELN-2tsNE2BU~xzSQe4x4g1B%^6>c$KJkdo z-*>sPXBxP?BjG+nVU0=xPnLSb7QTp$*gO)-zD+K;R5Yz4nZC9dOxT5@HqV&caXPF{ z$Y8jFgSiKIQr3ntZB`bC;u7l@zl&-8obd5CvP zrPslXv&G~=F)SA`zC;+73;tjfsrH9x^roa+H7lcYClsAyLgtrR>6K8jCONmg=M{@) zB;02rZQY!2@Ol#7a ztY9n!-D6w{ARrvEGVDyTTXezmEJYoUfkN?0DqptuZc&Rf3?JYX6a^CQGmgw!`sY90 z@xp)CV=C1Y8b}=2@~DDshw@Zfv|M#sFu;?oiplhdE1GBkv5A_qb@Gh7U(nR;`fkK) z021!A89Uqw2)b6|%OWwU&UU++`F(Ppdwl8k6Ge61d=cEo$E46(jAoz?ZD`5k%fUIO z!Z4fG1j|LFwq!Td+8;e1`}+ZUWeYoY|xtZ8l9B)(6kcnj4;;) zOSndr%&b#eEtBa`kZ_;nI5i(;vFS_}xz?;U+jCmjt4}lxh%^EfCQzAFdbqz55Qk{V z+f_vHR1X?oMb2 zlPNL3LsefyWPvi`Nz|@Od5Iw5K2sPKD|ekIu8hg^eOaT*2Ug{oSoTdqZgxEr&cPsF zI(m~i3qEGK>zy*L4RNQ?d{Zhu-+w>pPQ65_1y?d#dknKqCFyA!s=C{8Vtd=6O_hQF zRki*1Rp8&5W|aZ&HAZ-}rmbh(P2zPBl_Nc_I~*TKxX*sTPZ%`gPK~HCS{QuYzMLWO zLaa7x;O?6+Qad;asl%6yQ;%CfxtO5KJ17pJ8sjNUuw0B5ST0cAqeA%^nM!}Tq~o)F znLf!c%5C)7=9gCG9#gRGcnM`d;JT)l1rqKvg3dl}(8YOYQsGP0hccTyV_x8rn`awnot8!B?zvP!ed(>!OTccmvMX-4p9rei{+~4) z-)`ReZp+p=q~L`!)X2dL+XLpcY<;(J>)eXUx?XA+J|x_yKX)pr>kbvV#}~ikXF+4kH>F}(RPO#u z1cUi?ah!PNum$qaGi9DHCU(&H4QO}JI;~ABs3s4(u54Do?;8-|n%iB(eyYBg!AmRSn04I2%Mjw$G_vgZ2HPG&8 z2ZvYB!!eb`W;9z(7MlfVb{jnCIsxHuFouNd({jBMieIg2cN&moo(biv;&QJO#ydgs z{2<{z%{iXc;1QGa@;$hoXkd8h7E=^-qJT9jbzL9gg+U$Ue;uC%_mP+;ty5x|PfS*J z4c&EpGn~HS%eA5Jcly6e4P877#QIY$Y$+I%G;eydE^f6+@hcmvA>sbo!B?0fa@pVo z9`zBa!)XMX8G9mil)=w`y6urr2KuDwpo*O4lUm^(l^c5MC57Qb!hPCeGGjlUEnN|r z_o73HOvu2McqEp86_;Jsj&^8zft0kdKHqc8E15X0iry!=Vp+uflex_n%gpZLX}1z; zw#=i1E~JGo9jkO_p)I9{FYOF?w|egv@GeNPJlN%8 zqsjFeU{}kGde`g6uv;xMr9uA!w59EZrTh@H*^-vg@cF)sm%a*lTn0*i*} zC+7VOpga3m&D!76LKpo);6AXhCDh;rl#s>L(1n!kbI7<+f)-N4TqjV&7Eyv0P=Ef& zB1+(+Zy(xHYRCdg@XsHdI-79HK)ZJZ%xl=cLe~G(C%QA9zzZj5kpN3R)4Q@D8xH7hA)im&tc$)d9RD7~G^LTc%Tn&epQ{wW@ z>+L>}FLIb92d^~-U2TuJ-4T~Jz;dmIwF^f2xBk@0aK3Zc72=T{2it0&^tCpP@bHzE zYNhM#6k<^e4_|GmRk+?xIb5-7_XVO`R4y33kIC@qW8m6W#uk1PpF?L0UDrKxU{~C% z**cFJ@=Vnp{->Ul?^$slQ1*BYUyI;o#&Pe*jhy?AxdRGiYS>&#;IjVoZy7G_KA*hl zZv(eBGRJCnpsklOV!s_EE4Xo z9Z0y3htcMuj*}rZLH}L7;jQ{DbLzLk1>m#Cw#{kWI=5l#+?tJVS8ZL;n!2{X?7B(& z!g{%h!yFcco+lsVxLn$~Dn8FEvFz8STPo2#f#CUsotTI#;|M-u z5029+ypstYiR1Fn0Ox!Wk#pcmW$y^?JNw+yT{zH}P$~h!J(4h@avgJGAMN92)swfx zQu^?>;!#myJ=H(Hvl;*M&nN_!2t5~SS*PxIHG=_#PIkYh_jGA*o!t3nj7%9iU&=UJ zA$092WixiNBy}yUbHu(XzP7%Gak*10#%J|0{>X_UW_mN1?L1X3xIpNIDQ9;zYk`DU z-LLIERob0BJY`{aDE<7vlcg(T3LkZ9_f00OOd$BAR)A*8*;W8^OC&y6mQ&%AL|E=T z9!CI;nDe0bgC@%@sbW zs=N})zD~?7Z(~i#nC<1D<_!?HEhYy)U9|%XTSVEhe6*4v%lf7(CEcNAiYl*3>Te0| zZtwnaJ~eDUY3(OG`jAPL$=dW5C42#S84x1_CaQGyr46GG>cxBiZ_<##0ixh}a6j`+Vr-U`lnlN|648Jrw2j~WKo zm{J1XfS>iBLk)$FJ$TA*_1((X&@RA~1K-6{ev=&Z%=^NP9=^10;~SIf&>(UC`V~Zc_7n91rzt>+uY+I37vAuY-A3mU04@;$&E>I=~ z^p2qG{rXhnxn@Z%ok!-Y285d4p^=}GiatBua<)}8AXI}ReO!M0v0rL;xPRf7i3Nu< z8(sG>)ga+MovCU+b3llx*4eU!_61!dLu8?`aGuHiEgnicWBJ@lhN)K-bt0g z*C@w|+P)sIcCT`eE82Xtuz@z@x{2q&CEPJt%AMxzms@vVYmKj#n&DsU60XkZP#lS; zF!8raiC*haTslc@daO~=-b`;l%@CB zBPw~$_K>5HpFK+)qus%Eg4XG)g#0U|ofhkKcX@aAK6No)w{DvYx~DO6_Avv(J^Tw! zS-vD=RaeSIM|V_<&;QZ>-T%`GWO~?QivQn6+KMHag&N7NzD;kCxBrD*enWU8U+<_M zctp5Uw*Bv(yOoCFW;KhZYChJt?P_eo}0kKjsvN5IAA(94ZKq&=KP``JM6=#x_65nHhJP@d~frW7RH zrwKB(?!cvTx2S^g2L4MSEJ??33uy&mxQe9#!g|Q1(G8L!=x2c2Cjr zgtE_~N z=<;#uekkA)OTUcE&27L%^>g47?q*3$VQ)QK&68@mD(sOaLzx=u6z)#67mraM748;x zPgpS@9?&SS7m}zPc}!tH3)km)cWTO{7D81|ULXD*GxD_fQXH%DOlEhJ5`1JR?COZ! zft6IV3fV@7xNrGwKKQ$i%ezuFz+m?8EP-zwYQ?oe5{;)gbgjncQ1uVTs=ZQ(X9u2F zwjRD$_ho$UFJlM!CY7(g&+cXR2OcicYSbdJtB-9j? zw}aN{+K^4%)%ihW`L;VO22Xk+w`Ierz9EPD)UmQvCmKU8HSVjIEBjeNmzskvwjQn- zDQjYEPA>C^FLBQjXxQu%jlBBK?wx1qH&jR+yxvtwb>})Ib#>&e=bOT=Hg7mo;q#=L z>77jUjW5`9q0C~P?n|3A;?dG|@6yATjOnMw+M~if;g|)p!F|VUGG$p1JzyR+yN^tRMur2ygqm`UOSXCxMu(#YmuhG#xdhlCbr_e}G=#JQ?9LZvZE$unJL)@4go&k2ley3gcYyxZs=SMCKw`E|*ZuBDUnKs0^_}Upj|+Fr7~yW}V}w4~9L9xuX;xLS5G$+hD;ju^uJeOd<>_ozm&)!?4DPtib2yCom3>7+ zCWoNsvn;qoN5|)1s~I4Z`*v32DeJXaWnI)^>A_Mq*X3>VyzD+#x;!e+=Si`HfN)=v zHCRzY-IP-7Q!Ld{J3oppbBih7)u?9FwysPdgckBhG}@O@WgbaoA0OzXJ7fnUE0Y>{ zrBxliF=cM?W#LyDA(vq5+B4z)F5)zS8Ho-F2SM+Idh@mh^L^n0KN9Y~O||&xG$s~;(?>|B;icj4`N#db^gyv$A z)O7{6~KL@tcv6JdfSvXhrB=N+9;6x zImF)lejv$Zu_^5(YISWR^K6CK?9iS*(Q#L#rZSkj&UTU2=F(e-bPeR%1LcWAXTaifIT`yzS zHh&5m9OAO5+I*Gq!ljzyErPs)MtngIY@M7dZNR5~C>9E-RL>+R#C;RXe6Mxab@UhW z)fbMJ{3E$GwT|D=)w}OfQ$UT(!Rhf!s69dha$4e&P}Dp(Oy2>O*Voz2gdRQ~zB;pT$6FOq&1 z?q0FQK`mx(P0fcXjhEW^_Y0a<#zW!mbEvCUCfawZt%SxobiK|4E)gTHj4$_0hF#j@ z!W|~QGO{4D*TJi(_$ZdJ;&98I9wlFeNdO*O_Xu zL`fczclPoxWi;$9AFXU6eH~Bm9rKOjFuz09D`N`QrWW*Y@cHQpq7?FT$!dpHTU^69 zaHlikc1Ls$qwVKqs=9*g;YXq@87fPL`^F4n#Us&oI-~D(-|8A3G{Y26=XUMA)!FQ7 zbxidQ-I2H2_GOH?9$ndVgf{-59%xh1jRqjV&7E|9m%s>59qQe6wf#`#FvmG^5RF9L z?u^c4f|LhL@ZrXV0y0SXLLcsgKXK|P!`qIRxWyKa$-~DinXvp?_x<9IEh!}rg}Zlr z$)<7%r<3HCK>V>%Ol@vo5liq(BYt|Ip~9j)daU|zGe5t$88lhopnH6|dlGD&#t3(C z#3QCCyip_W==?mM;GR;OR4eu7}?E;#5vWnbf&BRo=k49m&0)#7W=Sy=MW??m)OR z_8(Il^BxiIJ9Umu_Cr^h(0N_qThtg&b|p$o=Nr0@_3ZN!%ZC*=qXiXp@`h06*1xc8 z>(z~iIGHKpZi@WQ_q2dFy7s4Frc&mndHwgxRE?pO&_E5ZY-rySYGRy9N)}%`En^Y{ zmpIQx8Q{(f$ux)HoF}O_tzLC z+<%ElBX5lIX%AcgWb4?U&7>`K9@&2`HEb~@;7!uz-{STLB?P8V4W19zq{Aa`QNkYk zM#}a#;llGRZ;%5Q!Xt1=`y1pS{8J$d$lKl`2Q8$6*FkSTNb`5(z;TV;$8Ad~p^NK+ z|G;f2208N*7OECD_pVEWi@nD5E@Lf)=zgYo=dlX66d>HiEyTw6_ZR&oy1rbGWuGbi zETKB4ibtmPZcHlqaDV>pN{xWa^gUQ}mLh3wAbCa?eIDO(l{A!kr3z^GUkZ1R*y5x< zM|)1m7YW1_N7}L(qbIM`es-|ri`a6{B*LkCc9Rpy1oPB8ze8+XKV{1TLA$ z+LB!Sm%TNoDZKPM)j+%dQn-7@m+oy=Q>&Uh5()09b%*Ola|x|(2Z}$7Df37ot~}Os zp@pB3UHd^q$>+}KG-IyqN#>nQ@QKSy%WP6=U)}`GuL1j-))T=kzq%~dX)qk*U;9pm zu+#oQ-nWKVd{I(+Q&N{9%--F*Zyprxp$llcz8}un&fGp94+yh}65z=p?CA-Z_b?nJ zb^C9aXHG~Pt_aIdjh_9U5&Cb`qzFmVJyAhS-|pX1g6EQgJx5EgNb7I%GuF{JzXJot z@A`(D6HMQ}usbbe_^dlM)NSN;Nbm07Q-T-tUOp>r%HUu5iXJwH;{O}w*^|WhJPK^lD_?q133kH4nxQ3F-SW{ zV-}JF=Q85giO4^!$2+n>_=T&-X!l@C#IA5N8TcD zpGS@Smfw=gKkiQR{~h)8MIB7D+aRKfZ+uH1-*dNd8fY{dHowETonW($oud+}O!?%e z?Z#~Br4MD3<#_&DYD#;kj+vz2ZMgl|sMo5Y$SshTY`5A`wwPgZ)T zK;gcv6*F}-KPuc04Lf=YOQCQ-+FsHxyq4MQ3p!5l*JNC{^NebhmL*UR@D%4Sk4w7) z^G&T-9+e+V$iZz?1qAp%(h55q1{|wRXk%n+>a+6?NhUKINHM_GNtD-Ad}~ zwu^Q~yGX45l@==HPMv#HF3`BY-Z~`{zPrK5uc2*DEA=i@Ivl2M&^pQWeayZek5s^Y zRSz{BZ4mY=bbSJ~NiIpgQnNgP@a55ttUe`It?3h3wEV$cXDYptp>SVUF4gtWy&e(n z5gi70V~Zyc?rHTWT7*>%q^}e3CoL&JxHq2f);o;)UcPEXZpgVy7^imkNg=w&oZOVcDa@2G~5-C9P}spEIUQdaA(b&wH6sp`dH{aH!*t+gPxGN0J@{(4+0!Bl zbk11q+U&~*Ax%+VW2w(NsBq;T2Wc`+RrZS97$U9vJ&tTfy zbpOAN);24OgS%tg`%=7^KZ1s1ao?pQvd)a5)aAV?Zj4a4k_LQ)vi(1L@08etWxeq$ z`p@mwaEACN-|yJDTPLw$)PRolb9&FG=^QHQxz)7I|3b^4*qHIm$Q6Cb-rf8D1lzBv zoOFM$Jz#!I{MS0cpeuv$cJ^A6!2d>1c*fIqP{-P9TR%HVqbouCi(Nm}K=`$Z=Ah$+ z9x?e(TkAQ-{8B2uJkbz*wgxEguTM0Dq&J6NZVA8Av_6gKl?q+heUgY@9;*wy+!A)B zHRx2OTO#f`nppAuna0p7En%0N)*mK%;I1-$DMXNz{|PAKor(LV5WhR!wCN}jT#RpO z)w(AAHcc>E7!_|i?eUd9ToNxF(mEfLIwfwxz??Dg0dZ%0zr2 zDXa zH`5(2Mzif0k+b$P^IQ!Nd+5Dwv(zPi-?@F>nEvQ>HhTDy>a7chiMK%RI36r0N5cKJ z0|@uXyjLgOP2Av%>^wqytIaXg$-34qQsakP3o8F|pvdboqf7AuJCDl^f^W_Wd)L7$Em{ z-h0}Eb*!apFy(63Z5HSQtar{eRpOxwES%vTC(1wGpC62m)|^O`+I30UD`JX3-!p#A z0s1N+wVl17SF+1|plWxX0FMI|0uDY@c!YPSDnHdD;MUjq`!dkF!RlR(Qiu?y!P6^&F^I;K+keMUT|gWFk2K;ivGokJLk0b)Bi<^?%IQP0+x{ zLE>&Pg{u?qt8_2Oal(%MJfZ&#d1wc%&9h6<^% zVh)QpAI@JHJCWEyARF=W0{?=x#aW239N`h?39jh3<)Bviv9wgVMzag~eR z3SK`Yay%%z6BV4V&eB15{PlVI^(Ma7Xmwz^=7jIMw$GmupH*t;LeM!resBpjc=5RV z%B9qhMO4^9k2(HJTS^UH;M{cS5u4C=J=N&pOKZ2z>$#f@^3!GmLnD~CNVvat2vw#X z87zU)G$=N_OdAmE2c%|)jst`{N5wl|FJ_SkuD6TeQ#xVK+7oarG0@C7O61d|X0}*A z=Ht(AV8n8iIQso1=Gt^7Xso|EPhWMG4vq}TjD(;+lY+Tq z5p$^W`U2;YcYQKcRA-cN&1TFY$m`xUmjZt9q4P*T1u6S-hhjdU1kZ=F@|RCZYm=A< ze$;WV50^Fxj=VpZS*Y&4#yz)|zWIMsZ+8GWg&B-?Z3p-GN?P!usTJ8E8_2z|yDYB4G$?s2Z~Mgtv0UBKF_70adb)C0WHn}7XsQImBD?D9 zJz6#g15)f%Ty=)jAyAkIUBlnTXS>IjK5HrJ>@v_hf)4fb{h7zJTLel&RgYrBm2ThD zv^99H0`opam1wX>v-D9Lkr~Sw^5_CKsKbvQXNiq=gE;O-xWsKG)V%M2Yh05sap0#Q%_+XD5eznbP6yV`S>_+3T3Lm=JtxAOf z>OmDRlHl?P0^c+m@{bw6|Mg+Z~+uGMP#z$Gd0lrfV~ z1uxa0H7dY=wZlP|Si}xSdmZ@juOWqM9DcF+trpOh-MgZGc;v~lEP+xDj!s0l+d6Q)vR7q-Qgk5UEjN7`E6 z{QZgAZ!VAu2Y9zK+BP1m*>sjvDz^_m-l4N4h8}?~v3U5q3k+v>jCV2Jx7$QHi9wyg zi=RKX8#QDu^?)xc`j3xj_a)Szzw{)1N*kA+2C982Ubi-Wlcf^qY0crbUxCk|DlZ;(F67?5K@CVF2e}Kze>Y^EYcIt&U`_eKLH5-SruM5kM z@h+~XZ}}J6-F9=`>bCFxSJ&n@poia>Z-0IZT|x}_ujAK?x85A^J3|MV267B$S~_#% z)gF+ONhOcvZCugt?S|p5u7TS$gPPTMvR9UOsksuUE1mRc6{{8RrQ7pMch&3CN=E|D z)vt`n^G%(?ei6<&c_g~xsXf`?Y$d^C!rs8+NO^n)bbwoI@#>`9(*#z?-F~3jzrX0J ziom`(&p1NhJes9rEVXpx7;$vW!H9wp8>eSyu@wHW;ZIwy(!ge2!xx^o(ez_R^VaKq z{YHn0+r92^>!GX`|J&p<`Ly_JRiPD1b`Nv=skYRd_U|r|y5O9(JUyc=Ie$E!okR! zY;b&_rEBFGrrhqpl>9^28AA>SqpCZb?Yut4rEB%UIn;v}s-l`;8Vy9sfgH-dd(X~L(lO)M?0HY_w6}aH6M-; zI`6gbX_hA!4UNgA30TQ6sMxVtw3YjAP0d{U1gyd<2~NBEr4l_7;B>oJ5&=%ljy>%K znr~Xw7ZKSZmzqICJvL_^vACik_Cy}-*agE;)v$_cg~C$0Ag{bDt(p%XyBHJ&?VJ*Z zWLO7E)yAXHzdcTE7zN3Hx2hWQB zRq1_nj;y@4=X_q*@m79ax3E*`pt69_!-LRUeF;$c z@If~`XC4sW&|7``n_cS`u&cXu%|9}C%%g0_|LXrPB?NTV3&;U;V4B6C^U9ymgI)TQzcE0XgKk?u8z?1%Y6bW--3#G*lW_G#IKKb-938Y5Kq@s2s4N&( zwf*;9&L}QZWseE>GSQ`fbgcbX(&pci0~b+t{e9r#0e1X*9jpIOdOpWk{0S*w5iNW% zWy>E&C^SP^VCVYxMjM)x_S;i7*)9ZL!ulG79-B({^?7siBC#sglmcAQZKzLzyi#v86 zYpDl~45qx0%Pi$V;eO*dF&AG1H7ryl-EH)U&Kalw=&u>n*599PKUT&JJMk2S4ODw- z<(BKzW7#cVO+dTDr_y-JjL_rHrQN|du8b|(e6+ZlI&8LBhh(PPt-{c|ERd`CBcSe; z$A86D=4mLpIycvWJbx4`rInso2j?x@vKx=EYz{%+o|{8v2bPsby*C8Pf){jgkj&~! zEfD}|ByMO4ZPJ61DsCLQ-`I2TbZa`x;IMH6uRIda51{BBQuE<(2JlEaJ?Inyt!8g*; z5kZ8P*IC&X*P?NVSu2yR+ze`td6X5E zCj_6ORMD^Z>KwX}@T)`A;i0R|t{GZoTSH8@^X2nW*wPOQ%RR1WOgX+VtME#!J($}S zcBa}hq4`8r=T}KJk@<{-8x5;omUj0^srYRF{gjMGp6m(B_n!l6Lm@p6H0oB>>GMq~ z4gH61)bA&Xj8+4oyytS;$o0ye8y!Nu!`9bK`R+*j=^}c3J~OkkZ_gEGm)ho#_4{8Q z0i(z6#-5AqQiqWrdZ{P3vUO8Bvrz;)ioTMLTdr~I#0bw|fsr$4(^j3OZ@bZRsh-c| z!Kn6we8t}MDi1ibFgA-OXFyx~rZpU{9yoaBsR|pYcE7XaD};`3C!*aSrW|qlxwJcc z*b-Z~@latMb;OxD6T!mlV&AD3!@L`&e{hao+BuTlGE~DgJ9HXi=g@fqv*jrTbh>Kv zTijI%bjO>n_FSyvF+^DF$>5f4?>^^@J2mik%*$EY@{OIF-lp&Wid&s8Z_gE7`o6!6 zPynz5p_iX zefvK#FQkK$WyGZZnExj2_=cOgXOx&PF7RjmxE!P-D?K8SIuz%YvP;1i#vnY$NL z0)I<8lCEsu&)72ed1lraVT;QG|D+k{a+nQh#vSpB&=0RU+6RS(NqzNt-TrD3>?Lf* z%p0}quQlz-WH#_8_7HYLT&foUsRZmWfkWbGbS5Y$9d=8@LC@B$bEbH4YUCxW`92ix zonnV^R5!vfNcf`D^GQL!@4t0XE0XGYeLB*`zWsAuF(O0e(jt7t-8?;)i2=ncWEyCP zyOWbl+Ooc&Kl7P#`8Cgh@*BddTcE4V{a%MdrX8m1g(HfBjf@|sSi6&g7Sx9PQBJD` z7h<>BdWE_x4g9s2nZBoKKi+%F;#9k-y1x5jE51g7$8_6UR}G(?+PP%bPuH76uT;lZ zslg!4X0@BG4vtKpUP}J#r#rr>uDC9fHlKvDk0Xk{zSPsnmmj`R>XA_Xd34DqQ6Bt3%j-Fc(N(-Hj4fz0l$?ae~s>WH$Rk zJw934OWRVbc5vD8*}Y}MymQyv&Qf&_Bgg;J@Z(+x_Inqqi7IO@ftJ~8bl3%fXIVfx zQJP3Q%Q#(qqSirKj}qLPl|C`g7qJ@fQ8|@Zmo@;a ziI_q?PS!XE>7U(ZGX_LWED2p=gtbOH6nvT8%NjgVGEl`CO*!6lQ|Q3Btmu3ZNWZR# zlFop_J?sj*vw!e>oy?h`%C_d9mggGv+wgtG%@&)^Y-{Z1g`6QQkIbD!l=P<=P+BYS z%K2$b8QfAJ$yE=R$CrPe)LPgxl6bD-!_*$GjODw(eB-6&fYa4}N#$R}m3@I%OSs-T zneYWnq0B9zY~^GtB((jV01WfLhkfIU$u1R)kZ;|Q0H`=x7zGRi=8dfrrc}x zh@5Ny&_~P%G&PY$e~)cx(%CYum$)SmmdD@~AdUb}NF}<*m3|sk^7jLUo;OFu;{LTU zgNE(+VKylgh!FpMckJ!zNeC|A=n|Dc`wP;+8b_tH*1Hs+J$j4n0fg z7?3FRR;|fuwoYh`Dn@GQyHFv3MQb&ly;~oV(G_urdXdnboJ)$x==||STltg9$ArPf zsXnJ^tIp6b)$#hpddvd5V{Tn$ZP0(yo@>T^5qa|`{NWZs{9j2y@AYREYMPQ+htt$T zB0s0mqN^H8UNxM3OInjQka9$CBlfPJ!@5^x7`Z=k_Ow=2J-l}*B_Tm0CkfIM#v3mH7MVL11my7Ttv)pWhxp=!9S?K;6a6e%C9 z;-B-TZl6ot`T1yD6DR7ol#nr3I02&sFDMQAi$gEB8Fk3V9r22=TO?`>Zx`%FgIQ&? zI@<`V(J&&`igb@GVR``^E+5^SJ-`y`Ev~Nx|Jof^Y#{Gs^`_??cus^u+v) z8nT3bU|DaXcVCiEU&@!=KP`sqU3UDjJI=Q+WmRv)e^Y|-#i{tGs6p@2_O0kk_UVcK zjJf~sy)mEAcfQ{p^)W4EA$|Yn%$@Ji_I}9N{Re8uLh7DRTxlk+>OJ^A^r)Lk;l8wO z`+|b>%qzRy&Q+LBR*i1I>D-0=m)MO)OamWp1FTYo(bZhrEi$DJ6fW*0 z;lQkRFkVvVEqt{(r?Kyo-8a2pw6#gP&G^I>uY$9%c9lfl(I-kiRq*>WJv=>>kL1e6 zkD|-|p46H%0wt_kHFES0yP=EvRb-JgopW?u-P6Y#H*RdSL1X)dO=G*UZQG3+J89h5 zZG#)5v7H;+w(&dd^S*!HweC7+WA@&&=gfS*_B%i4P=;Dde;8}L7!*q)n5@<17v`95 z>Mcp{M`Up3s^}!6ukfkhQfFrrI3R%Qk2;K81UbN=U2j^W3(ONm zu{bq9y>e2LiJ>U&OI0TnUx8m}EGp1X)3u#3Qp%AfD)ifRI0}SMi#86;JU*&%bsZ32 zm`>&ZpW|r%{&Z+JxE)OcOkyZZ=E9mv=3hYDs<6*;5iFgK$Ar2zq~+Rp+Z@UBlc8X_ zmdyUoM;qP3%85F{uy4<5m~hfgql#XP8gHc)xUrq`+J6N56%e(=9}BKH=pJ>1Ho5C< z27yLLEkN>9FzcjFo{n$P+3Kh?pY$5v%O$co!*H_H?du|1G@K zlLJ<@*<02Yje#~Sg`Lo|%w(T81$T+etc=cPE{z?9`$Xd#QSOI27uRcD@|&FI)w3Q} zzPjK=q!`O2Znm@K}23?#C-|`~w&t{kn%9|fDo z$_5)I{7T1ALLO}u)sC|2qMYTJ)>p=eWa(Xb2Z(4%GDL8`^H@(2n3s716e>d+oHKog z_oK6xs&*}!%g_5&L}ToUsNyee?(hETJb5eYKX@+X94_6vv0`0jSTxV%iwukCxRU5=YBt?UIjexOJ+RF|WUz zkL`I~BAaN*D9uS|H#48U68{V!Y>9i=)aQ*}PLS~@^`E|B6-W24cH7jhz4Aq?SumTO zS5hVDwhn(uwJx*a3R^BBEx`7DtZs0~Q9dSx78Ur!-LM8H@64nZDDOH79*tv*^+7s0 zee+uTPJgT|obZ7>Uh&Ke(Fge@q?qx6cf^s=J0~E}r)2(4{dSo$OvI9#$OfGd`D5tr zA`*7(xNx(zoO=2w!>rLYN@wb?bkcLNLIl@h!- z@7=5c$2@LVIb42sX0UxL5gvc%mjN&RsDF#+>(WwVgPqFyJui-kBG|}n{N+b%b)8rt zMuG*o<c5R9 zFDn`X=?+L$8qOW`Y`OJwdts%q#w*}a&=`uP!NI>rTIHBAjM1(g3A2xsR}&8r}~RF`&U+|6RRy7;cDE3}JhgQo|_%Y@ozBqAr{M3%wB z%$r2^2@=&NoPK_}ky~+kZDT|jjyIHez7A2WW$PhSN&e1x`2`x;9+j0^w9T$nPCce^ zzt1nW0ZW|YqXOuTCVG{*04YQ9N;w*FiN_+d*k<@fR+!@LVrO4KBJG+`bi^w7UP!{l zjC{#GtZeT7C|sy3o5RCS<4jtQsDkRCiJ0P*a^w}u4qYY@9Mdug$c|r9temu_7grz` zznpoaWl{4sC8^O*nfOiLcM08^rO-sqDlw(-5f`@l+5h^Dj1%p>_jp5~=DAGt5=_{t zzNFkE@RXBf{nGcYC$Hshj3ndr50fQ=zKPA5`PX)t`E$s`j^4mFIyK`G!Me<4+jDe; zDA?LGmpRl44gt}<`w-Qlzy?>AHdl9UzQI-cogNBS^M8< zjP;1}7Oga1G_A!44u~%oidhT<29jhX$g%`pbk69A^1DJp4Q^l}My}|I4>JaY!;a10 z&eeQwwqTb;FJ+kY{en7Kv^vR43#**BQBxF6)$t8$G)+v3s`UmbNs~$}2CmG7WKG4}i?k`B& zQmX%arAr(%U^P^y$8YF(p3!YQf0DFl-NhdVB`i-i9Vm)gcnwJyYBsw=>){yUb$nfbR zi^GBKujMD2;NSXe7=ev(iQ=xEvNVfo5<*Qf(C|F^@a_dMGadPNGF02BGvrPW<{b)_ z7=Q7%LVWi9RN#jU>I~>8sFO=;E;5YEB_iqgd^X>bD&3Q1nmT*=5jlGJYI>j}NjC;#Qlpp6>UbEa1;R9&451iZ5{y!D+u~X*8v_;@!k_7B zuh8==pBElVPM-Y`V|z{^d&c+#!ovOBq@;se36bw#Q4s`nA+oBRi(3SzAknREU*ndK<>O&m5^Q`pUehKc~!v$^N# z%sk>NXyY2bR++23s{+qG83OwnPh4w32P~c+A&i!9zbyIEk5+9gx*%or*n~-&(LoIa z!oRh0A1>oaE7X#y7WSnnpQqsK19?I-owfnwHZv!jpqJ`f9ADQ!JrK=;f7s;6`U$V{ zlfFLx>qUJ^)%I>P6`z!>PUmBvCJel*@sJ{Q-e!4P zLahBciP7vXs76St6utS&ZP&9>NWk^>%8zR1iNnxtS}ez8sIp~>dWWHSBWTaB)x93l ziJ!s-ihU$LJf*kBfs3 z;wqzRety}ExHn$nvw9vhORf}$Xi0D;H(M%&0u(Kg+}47Ein?V#&Gm9x9B!qUZo>y7 zn$?8LI4)JG;};4-%a(b|GB4=LTD2y%Dbg;WGO`rRNDAeit8#Mp7`ZYq>gDk*vMh+j zrmy*O?tF3(>*S@j{UBZgNAWNcL$4T9iqx#S{T2XrooTu3q53T78eA&UN4IHx$H}`*kR46 zZReUe*X13X;!lX6+-s+o72tqSIW@TVG+xtR@LTeJh7d?jA@0)bmGE;?}9$D|@GRo@?iVg%an29aOP{E96eJ z*}>=NOU!P-1SC^YZCLB+2B+wfTidKrz7REkD>6>3t(Ad^KUIPD6P4jDBJW}69!p=^ zP_^3I_#J(jG%ek%Wy5ZDtWLkeCKBf$(X!GZKWN5HR3Qy@_>$L~ySfSU3{h>K>PoGL zAGTL`?&OjERr=Wt%Z8z-2`?;w($=kEplQMg?wd$i506t<9nu28BWeMn21Kg@$qoFa z>qrWq&xDo6)`dn=PmP1ijLPS6xk2wY9U2Y8-Yz=L9osmfnkJDeB8N_I$^Z6NHfNVm zpBgF8EvMv)nqg1Sn7>!^xxbj+Ipj~wO_d>4n&DPzlPzr>hIA%{84PaXoe0l0N^Fz1 z=q*mu!@cu+b9B%ruC18MK^TVRbrefhzlbxjR1L0NL zTwMWpX03eA@sMnT%Bmm@juityMJw!!x(h&kIBjHGONM%YZN_mprj+{;GXudxmK>uH&=@ zZFPq^c;imn8EMGVAHXf8y+R(?4$oBZ=NO~2Z(qU{lj~epu1x2X zI4B_Ro=Ia!I<~*$_G6M_{Z|q@e(BqN(9h+Rsl_GE#=Gh-LCAqZkOkhONwF!_`17u%gy zUtqH?&ZntlXR5?6nN4g(7F~HkODRxjRSTwkHE3R3n`I>DZ+L8idrnz2ZLIReis~G; zivHYmnm(R*e2j88>ts$}bN0z@Phwv(Mj`U?WOc{>HrRT=~yfW8LbiNSn&~` zb{%G|{6}p}(jp%lolYy?govEeW_PyseEkBfl3}B|`%YtAo@h3bK{EOKE>Dhp-QqRK zQYE5CEHT@FTG{lPdx;}dSE+v?zdru;z=DzV_(dnO-t-$5QvA!}^SQ~Q%2OB86$_I@ zTcoO)lE8BlQrh=_l?%=yf6fhiHOs?`gImEy(vUVOwC_UuyDsb_DStGh&LpP^aC zD0Q?qAE`RQ19!DFZSklchw+kEp+v!5(c7(w9oj+On4MU!*h|;&3P@KmqXn7t7`|jJ zu7ywise%J#9eBP?kFz6I)Y?{Cw1({^te=YAXrPO_TyTvr*IcKq>R^u1dJTk|WBXB3 z2TSO0ma{+W_&4ke=n-YP4xftX!p%4(mum%m7k5#U@gedNI^&AiLk3D17-Fl06f~?z za_gL~z_nh~?|Oy&-f%84S0X)CaFLAKpI}7~%0U-u=5(0|recN&Lh6=%WphLG37aI+q+Faz&)DXRXW**3v2 zQrUppDnQHAGLfZWF^a_EZ6j%-)i2U)z76SQZPk-4A56Wr!0Z|JyzY+&dIS+&Y6hRE z02CWLNR*?)QXAs?!HoK+XUAr(HV4`&DU+JwdbV!3&uL&ld$$CKiSjBl2nC4R1{; z)lOW?U(WLv)`X^EN5qkzP8ZJ5>24S(a*(-EYI#k%)X#I(-v1=va4RP;38y#LyT#aqLxMl6g+QQIfq|(nf{%P27XVl3jn93fCd4 z{d8sfGbb|D#k&*H@zP<%PIRP|-j%ziwpy{+T;Vwc+KTH*bn(o&5l0Ub`2m8#o3_h> ze6R0(e*%^Ytw3s9e*0jAaur>b=?U=Q-hM@%i`4`?W6c?(a+~fv{5qL=Bxzpo23;x- zQM7~DlFKUfk#m1&#Sg!7lew~>a!6j^tBn2BdJ9?A@<^H*OfYYnsn;Us2b{NPv3Ciq ztrJ(QIZ1$8PUcq-s;($oAR$)S`Lp$~gA}v!aSe(&4qO+jfSKB!FiuFk?5%FqMKt}H zRJw3We5xhD?mGD;X03vJGJW-ygQX*0)_9hHu|WlNu|mjv_Y+kx>&=3$?N4b}e0|F{ zW%=vKA%L1nbZYdFY9~1GbsM2(!+r)m{2Dr06E7u|3XAAnh1ocs3^8H+ zccn!q3(>9^bV6{;6qH6J6BH6DH;t$H@6P5oFbV3fp00~K+{9N$jRePWK_?#LWn1&8 zbYU|npdNi}oPR@gclmQZSF~Kyev00PE>DfmC=qRuN|b9LSB~ER3w^;nB#SR>Bn zSE4R^3PegtUABNuoBdfvFB&jn?oNUkoC#`n{mbb^JKVIE-*Ug}Hu0vC10AE4m3YhM zy$&dU2w^V^kWuRNfO(MYXmnE*`UrnS;_wk|jxT*p1utUuJ7lt*nrcKP-$3~O104%y1Sabj^j7K(BMB3(l*FB)VT39 z075QYhgC}+I6N|MYBmh-&bG@K836s6K~t65%O`BjWOt(od)e8n1v~Nx54sxF$iS1O zd1gMxWppDqs6m{VlVh%Y0&%wFeTFVJQ9G5_Z_n;6y<`JdJsJ91$=<4Ncf6k-1Cok4 z5dCiA9m@U=7MxE)D8gMI-qg_5Y^Yu54VEcDPnZ38thY_7QA^D!RFh}_8D6bf$GSIb z;e7uqfy&jIvaMTrPbh&cU!z)Q-4HK+?E8<&=XBLIC*AQ1cJ?xN^^A_!!?mXiiEXEC z_5Li6KTF=LtU^q1ZZvyfa0gg)qOGPE7}L7!d>3E|0n6&%SEMsiHU&Kqd z0%!ZQG zG1S<*4aZ(0&%B)s_3NIt<^h6{=MN+bP`4URC*Q0bnIt}6U*5lAr0SOno-Z5kBCqF& zVLK2%E`DVHSgUgfM^NH7ln*HQ0Wf0>Cu|nCI308N)Nh@;0ab@NN&&y%`|WB*a_h@_ zxZohvM8Blq8S`Z~6^k8nM|j2!_Yhv|#~7UT*n8h=d&*`skV(2_xXhJdF1SdKQ*_Og zjG^p@0y3EAE(Y8Peb3{$NjbVZEzC5cMY<9vnb@$t(Gy0_C*zbe+6voskDtw-i2-Te zG<&PKO1IYeB91SVEGyxIuU~#?9BsL4 z`1-*Jp;mtmT5Mb7F30~+865^dJjL;F?-)>L#%Winn3+eLFa5^MYWB3dQNm%7fU?8Z_htE!+Gi1Q4`;iZHct`1jUn3F@Un z8I0=XhU-Te5>Yx2!?=u;&TI$~qXI11cq&F)Rs0HTfh#LH^_!z7GoCeE9d7nxC_JR@ z`1x`E#8XIIYfQ-YvQsbik{E1Py{^l*q0$*`3;+&4sVw z;J2E4Y&eOIsI!1c-cNS0OpzCak%N*Thff~K4fO6epl&c_V4%PAhcF6}{Pje;uX;+C z8P%K7R$;`CrN>3Y3fBatG-)f;p@wgH`*WZ z*H)`IyJn>z8WEl{Qx^Bi}pnB``^whkvQlTI<==W97PgL%foC$mNgvuRpc$wPv~Q zun%1Z_0WtTCJd6^&j-@ikpd-;^eFl>gL8kP0pYuuTWMFWZ0J?}0Ta%yG%v|_ttSD5 zZ<0VvYc>GxT12*_^Wytsd(7B%l)u!uxQ{X&f4(y&8zBh35ID<9oW!iaxo6_c_&Uv? zH6yP?vAiy9ciOK;{T$46G<)Yovczz5@z zGbg|?tZ=i`rqsEIV*zU=Tj6)c&`*o00}1y~3iyNIiJDrzL8`)5Sr=9;-vnvdSo2-Q zHuz!Tv0a7BP)s} zT~}4RVVfi8RsX)j5KDJ}eQ%2J+b#R!q=Z^N(m1mbU5kFV+9S#>fmq8MhgA3GPMg3k znXF_shF99wi<;+K5ivrQx}xr<$-hiFp=Hq+q14f1(`#(H+9o%UjOSe>fp)QD5wW2!@lGxR$#4XhB>p!!-f40npIi zH~Eiqw&SJKCdt+#M$v^CRx72emt=@u2bmi$w)Q7c@lN}WPP$q&&J-#VX5 zJMf`P-MSN@yb#}h%*{EokW5huIXBU3UhHHzEsf#c$k5uy(XZuuU+yYAtYQchL{@d7 zP~%q-1;M8HI&)+742me?^{+-sq13)r*@_~t-*6q9XI{UMG-AIqZw z?611`?z2bUk4A-V6(i_m442mNQj*lqCEA~($P_g*W3ariGJVwWZAV)FET_`7h4-gl zZPB|}DKK1yxA-@I=cVL4%UW;B^NvD2;QAt=yBgyW(oqC$pM{d97Ba?w^6g5(d9f{O z%sV?BZgpCEEG;wKy6zZ8IU5P9Y?w~K%t`#IyM5~VI(!~beE{rJ9J+~?r^muMt&#;L zM>Z0QL}iwDi^zACz0Cy^h!fTQVdn#_+hO^tj;MSWv#MDzVAT=^hd+pQ7X;9MK1U76 z0&!R}qEykb=3CCc3`;e*Ld~2Y-f9doS{QHER8sSjreFuxRF2|1mwc0_I7^3X1|kUf zjBJ%56x?Rh*FK4Hn;1gr>2NvIgFwI~oA$uSX$HDZ?8)Gko5w`d?zo!ZznMoS-;W0eGB!YCeNMoYmwik0K|z#ZUWj6sc0 z3G1b=ZIz4t=nO6FO}roOOSCqry;`!FEL2=$#% zU)Fwx08mTl)kx3q4$<#f(kIa7kDo0aq%VEiB(vWFqoE8%LF15u-U2vcY*40}aEsYL z*Mjb?wr*s^48B5irQG06_`oem-$|K4#}0x17GC1~TkdW+7%qI!+mq_A z%%4MQj>92<3=rpxN-{H+{)YIut2O6XJ{4doN7Sb55xM%E->*o0Wu?0sGg$Z-vPYET ze`bYhs|xoZ7QX;1XwiL^7RyuRf)QT&MwLcUj8V8b!xl+^dP)=ib5quC1R!veOBYj` zDeoLhua~IoQ1ku$q~`sd8MIbD-1Hd&C$`!I0SpbjqMaGaD1#&izJ_6ws`LvJ@9HJ3 z(h6WPdaRAKx8E)Dr2`3j(Ugf;uymY)rJr4akI#UBp-jLhcqWZHV|9L%99*nJhV6oN zK;d@D7)gVq%nxA4N`JWP+0JA-I@l?Nqiay&Kbf}c5{su7fi<#n{AL@8!=#}`;Bd?| zQE0;D-M15y?gJ+}f}`ZwSv)A+ES_1W8v}^hNceu{bP)%Dvy@tXDB_?jH4&$MuFjyzZ-_e_w8)W zxla3HY)9hryELjVZ~vS3?j47K zm5H~v!ks336&ksMnKKUq3Iu`&mJ=1JQ?~Z((8o*_(AByXu{j8e>$x4QWbx3}z#vC}AEUR=Ht;TjG@I zoGTynxpJTuaV$6VRXV1HJ8G|nA*TyzoTE=6#`G8bJM`5*h-wq_2sElZHE(WXgOyeu zdwRRJDe4#sC8MRL%^cprL}R(cI%dTR^ZeIqyIgmuJ@UXeY?{X|Rq&D@V9cCt`NByB zDfBqG6oro6@_UN742+^R3j%8@kpM?T+$!us3rtI%E95sc16rYly}w+wN0EoUZlML_dtsidj4PTQ6dH{lsfZwAzYM>-Vj+pajl6KUL z)6cub?sC8Bn7he|r)a`%whF7eJ+mMljxY;Hh$v8)T#rS4m?3UY$Igd`uu<8_tyP>n z`#+~SMU?&nG07i&0-R#x^qCKL%A6mzENr_z)lC@g7ot8VeXofP%?bY72>g6;KkghI z9t#&ayb>xU_l2^vBE&!suK${YMqA92z3pSU9p~jYm`hCi-o90qV0=MaJKgbiV1K3} zI8_^ovcDW35HqB#K-!;CR!=470O7xnbkndvVCEZm4!bO&C86^OlG0F;5=v5Nm(}>L zwE5NJZ~PI~C?y|5ChV#Tg4W!aLt%M@>o#~+%2X54gUfaE_RwDt=5H6_^Ic}+-8}7) z?}heZk=O9MjAtJXL=d zV9~P3l+Q;S>j)}{ZYtK^3ezOyQ#fapIOUZmQNw$DUxqP$7}Wh0A&U_vH{;bx4C#d2 zL|#oR9V=~EsKxpy+U#NMg;F|vq=p3)8Oi^Og95fRuh22FG7hR3Z>|`Dcm>(rhAf+g zES=C7<`<6v;<15gQvW?qDE06jNR78f(nd=mH~_Qp(aw` z8)Q?)TqctwjW- zF19uK6pu$e-62YU-wI!XnsO)?B=}y7FZK@SpA%gTXH>^~=eBwfi2~?1Vs8C=8kS-M zH^q9)o$G&pLFUccP&3~XZnKtiDE{>KLDWF=@d0KO&{YUr)$A_;bwDK&UNST;gh(!#FjdD}B@Fr(`>ljVK?HRYmZy$lrG&SPj*nd70-Z8I4z zu5%mlSC6sJsBYO7%h80U3}r*(zX^vvLPIFugMNQk-MIP$GTdw_yS7)ad|r;MKd5Uj z*MDvP?rI#{PEJwbUu?3Rd8GE*d^s#1EPc@A3^dlGBYfJSSk0wb%%f20UHp)sS`XaC zvlC3t@I=F?FgfWz=i*%Xmywy?$G~@Yecw^--C;+KPreMk)&GR9FOBYhN`=3PC!v?g z`sZ95SzEb%KRV&sd5_x|73mi}-d{1`+AwwRJ>8U3%LT~pUO6)xP_TPL3(7}9>rhyU)p_GeEW(W;G%Zt=!dkk8M>toy%< z&;2{Rs(w~*ycItKBjbx_K!1F*|J+s*#pi&2IN#ReXDt7`!LjPVoK zLw}j32K226RM)?DZG=8%;Om^d?qB0B9QEPThipLG1lSHt6@OhOa=p6efp6~^Z7`@j zFgR@hVh9wK1*zR-siDkz{MtQw3?Ns*KyWEyHD_dX25mKGj8NQNL}_X^w~=7m4vB26 zst_T6S1nM05xvMdSc#i=C;)wq{m(v`iGx+++8^A95l8A^W?nXTD{7fb-oFk+J-VG; z?Q~9Q&+T$wKk?)|Z02~Q*_!1nvw2uOcbv;rqzMU@E$7vvy;|EJK$e?}zBF&r`ky_~ z0?8^s%zes_j@S(Ky9+Rmx$!PMOm%c$oFLk;|96DxQ8us?uF6`>u_3&jWyQSF#J!N$ zxWXx4$Mt>u*us>pCapesz!Cg)-Pc~lPiyqOx}{ec&Xr$W!^4I|L5J9=f>Q8qLj4mF zl})5_K3>5yg6E^p@7D}~f1ePH+lAF(VDJdqs$A;_C9ymib;Nh@n!JJm${Z!apTvO| z=gh7*R^!cQ!7rzZLFZtWZU4ffGYu;amhBF>HI=ik$H<0!ST%*ZBFJSFEsXG-C>F7= zWWYJ0<${?VK1)unh6>q5RbMvNXqO#=U6o{NoYIbGRn5AOY;Sud{LWaH=tUi#(f=U55@OgYXW=1CZ#b+w(#*k|*@ve%mDM}O)t zK&FN12W-oH-N|cF_VDC&FB^BeXpb5X=boI^hMkmk>5qrsJ|<~IuR@X-L~xvN(&B|{ zbN-3YJMp4|ge|^$@};WEu{SmziO?Uf+YO3OH!)8Ko2BnR`tqQ1I(;IhzYzHLYF`qj zl5~aSxvc4Sgn3cVT@v9rof4 ze1gNn9IIRrhC|o{T%c&X6(+UEWIS_Fp4V1kB>MBpzfxdtF9Y0iR5O9d#Jj%r9YUP< zwtL;Wt&Kk97V`EFrf}Cxw;Oy+GUk;FpB8SoJa^rHocP(wAU(SAnjNjJ@{n6rW3QZ1 z!ab97qe#gkI7OBxZ{drVWH@{+YiV_+sUD~}T&H|BE!itubK{|(P?_x7?0zMpy2FFK z%EB1OF08$hRt^R6n$&difBNeXy|1g3nd*bjZ`*S0M7jH%0hw6p*{^+~;JQCV$56=P}u*oG*w1EL5_k z1-kub)Tr<=?;k=%Aq=61D&W`pU9FT~kIJ{%RJo^6yDGsec{zwN5Vg04N&n0^e%-Am_Oyj#BSjgy?$wKZi%9e_>uwVTK-T>j0v z9?gK3%={C`>Fkt1h&SZX%F&zjw!1IuQQq(Z`AW`zJ83ua^ud)%-wh>aPwTeb@?4wB zwlMQif|Jp5_$PQEkL)c$S0-|~sod?{ugC?BS1ekG_oU`#M!JHWE=sy*rxJAbyhpf1 z*HL1n-Mcm6gx;Xt|}wKb2iRjl&g; zSBvSCZHS+(g%IaQgT6n#NNQ*OrgUSuF6&j~z~=|5z+K_4;dief6=il3_JqbmL}c6LniLk?n@LAop|&& zrSg-HmoY8K-F&96srl|VHAXA`4DU?VGN!j+*qmCwIZ7mXn;E>e$K}_5`%cFhe4Nkv zD!b4YKzzXpy8QmTSZvC_&3xIOCNGjks0np7nppM@*;65|fGrdEtT^zhe_e%iy7E<8 zz)fd)^@jyNGitu;E{|QHL}{{hq%Ly6v8q>>oRlhk$4ofm*Wv9vN3iOSX=;kfr#a9x%gU7 zyIjQ;?gm=TQuY#pe`m3?Ai<3k-2z$XE#+OB{&qEy;&Gl#6Z-MC-fP0|Mfcjfm>|_6 zax4?qut#^^x<{SK1=Gx;uX?F&ITBj0x9eq})%$-))PcrlryaQEEguY~v8~gf(m9?TOF3 zaa^z3kWharxHS>*C%gpkGj7ZA!Wjr6(Sh*_mdtoM(Aq!B=dr$>e93C@WqQKqFO_R*IQ-Qf2Bb3Av< zMZeP##pYzX4tX7Zo1>b_8yQ9VqIWn8wnq2hb5YKaH>*jrwctVy^fay2Yn$=rnfJU`~{A(hKXL-#({@&hJv>Jqy5XrgJfxsAC8h9Ppwtaub%{bdr;(q zXk#z1UfONFgOhv&?wTt-MIUuPrgUrm2s6*&@U+_uDQDR97h!6lYK6@pu?-|^0=p@kVa@eUcE$1?yzyl8 zSpFYh{h!Jvj?^~$a)vfp!QNNTMb0B!$@!-5MpFT^Xq%|pAxf__rnC@zcQPI4xh0TC zXNq9|x-_~slorkHwdV{~BbRwHyZ>A`n74bJK9!?ZMcKm&c_vE&VI$C&Ss!X|k@$V0 zmPy`RB*2Z}{Y+tKkG8cVbqPuEkK*8^IXZofNbwM->Nga#QKjMYd|WyH)*7nGn;({f zxQG}eBbapk%Iw~q*KkL+)iJ=`I7}jg-2Q-vlL3E8jEJO-Snbd|gwRwYaN>@GK=y2c~b}svNfC`mvk}1m^-oXscGi&^dNwm*vFZ z=ybOBsMio~mPm0E7z zjSpVgQQlgTDW|Nv4U6@eu3LX4%mY#G;?-PU^k^PhEbb^hz1A6bX*(bu#p)ww)HD_g z9xpfp3f>CZuYGwNK2o#bf@x$oGpp2BqN_CK5INWU`>>grh$!7lnoj2iO2pfs)bQS# zz0cGk<1CX*O?Rxk@0zA$NB7oGIc@!#pH<%uO8`PK|9u<7i(E#VF2$+(Gd(!%J5rFp zNEp0wh@{1mUV_FxB|Ij9sykV0E5F&c9rS%seIh`Ps+ORRs~pZGhCTxbR3M8kKs4)j zz*kZgQoa_(U%erP*~^#BT(2=t2G4vt(GN8a2==>)WH=|C&Ly-F2W?TE0;evvnzT65 z4aNMQNnlq7Vu4g98fD(k1IX~sGA7CIYf)cooX6l_TIH^ePd}}%B#eO`dH0L+&9>DZ ziiFT$*0Y~UXfMLW9CLo%ycYHx#a+J(8$DLJULu*h=CaHPQzhTZzQ6`+T*SQQjqLin z<;3m@o!wkksiA7B)?N#da3P=U#C)&N07TpYtL}lWrByuPDxWt~1l3}0vP8QwH}c(~ zUu*BU!7-YAWrlG>)&sXZhI;gKifh`X_oFO7EYw$B1$Y;Mq}Kp+{u@^>d^Qe&DYzM_V-9o zL;qyq)`t^ctt+bJ2P&15Cyt17GH)NZWirU=XZ%jgFFf8y%oJ7Nr7^9wDiK3EkE3?R zVq7D+7(MN#{IT{2X|kBS^)b8B+PlE}w(j z^0h;mLQo3BP_q`7E~k9xP!Jl^Ft0EUmmnyRDhHVo5&vV*Gb+2wFKhSRIM3LFEL)*bBg+~QARQ=~)_G61%Yhp=puLtrvprkhAyTMzO*T!i;Rq^cB8`HPx z_LI z5K#HmAq5kb&-T<6b38^8gKKpg;;@L&u-?TlO>QS558#3wo;vkL#{=B-*Hn+?gUQ0k zG8GU*bAE&}ITd1k%YjMqI`iS5zpqjVq}+Vc!o=M6DDgU8ikUx6&L zuS1B(QU5OB=MsU3sj^lP*|BZ$Z_EDM5;@i=Yr2en5xD{>vt?_G1;iO&ZSm0OKEt3P zdaI{xz?dRO4HTL;|tv`)L} zPrBCA!)#slNPDiq%SKLLD&5L)GzK-Hrf9Tvj4mIocdzQwl~Njf9gHFWgzYU-`>3j zMRlHW0H1#Aht4Fa%~VqaS4CJ%o6aO@lhoWy#>Pn}No!4l5m;{P0t>_nqQq#bp^A+` zyd;_^YLt`!;w^~cg-ZlVcK4jKH+I=wZoBM-J$t`j&ZXxpv@@mCDZx&m%k!J(!_HZF z&%FBq{^#s_-sc6WU>TB|Ajw=j@c9*wXs0Y|u_SL9d#<9D2s{3dCAkSm&NI56Z|ujO zlnCzks|NPrR31nDRW(h7=x7vz``m)y4gi=_vHto>^v?RM+OLbgFmO^QhH(&(2pR+-3; zn5rTT<*zmAEMcd~*ITXLo+uLVT@wwejD*Ud`Z9S+dZ2>d~tTM*m< z0000GpV;h961cSM+V2<1N~TBB?^0Y$kUVhUBfI8^a!a~H)u2687pD7%3Z5Ie+Kk^U zl9lcB+iqyL{Y-Vd&e2^i%lwh9O=7SA6}rDZN-OkxS7Y0a!VkrVU@a zhPS+p2)FuazqRHWO?|T+IcILF)z?0c<}Z<+?~U~FMHw%SBkk66>DcCnv^}`>&?0u^ z>C^cRB`Z#C*}Q`GOt8H;2zWSkjzMq-0000$oT5mkeByUT8uWGmYFRhj2uR`+{>+TG>8lRKoESBzAH!gAq z2J7@ke~qL+YxS7)72KgKm#ociBE@9^YlAZL5#{MS%vs!5i)6e6RFELucOt@`)@Z4F z72$Kx+(nuWn=dx<^y$pFWW{N{Im@~~*g%K9M9>4f%FHGfRS*#Fx1 zB=0`2+?s$Ls1J<%S)Tc@cu%EI-Kg1~EY5vuLT}gaUt{dKY5sgY^5%m&aoGEp$0hs} zEPsirMda_wMl%*kD|r)xuE5X*!{KK|Zwq|1QD6R#;9efUTU5Cm)v0=y{GzR+X{_cc zl%FKq^SZKRmEy>;07*xY_vL~g=r> zTifu7VkoUSOZ@K#X*Y2*}nlHZe%8sc^5(h3^3=ZGcU)XNxzwK<>Ddi;^O<~in zMF=zU^y$o~nCqOr{FPlhUZK4cgvZ8ikVQe~)Hw#h9RL6T0P!jIa5zatf|M7R)m3(9 zCrM|!Jt9_=jFr7)__}fQ@T;05>B`DYW9K(X^H$0~*r+@FhK&D&rv8BWt1K)(dEoFa z^Nkah^BGd%3alby^z;VlmSn6T3EQ>VaQUdY^^j)U17hJDrp`;&j+3UVpBRt7AjzM) zqQLk|@k#|IC$=arR})+QklA(BdR#)SMQZ)CHkkhpv2E8pfXpXGuXAr~u1Q6AoB?>(idOhpCD z*$zj=T&!>_CCCa4s*a%qR3ifz@5?Zhl*}8E; z(r!HQ3d&o8{PW^__SbV3OW%9bs!)%9ut<`_48=kD9CpLU$p%cqWVQp;WCJF_D&~q} zvLO_6YIciB_7n*c-fzugclDKAq;R(DWQ5$#%%!rEe~6j~NspBb2Pk%5d@#o#xB~zH z03fbW1QqsEKD$TVb5rm*6Mv_N)R`5N&avX3%FCXVm2&T^u@RHGg^$X%JuWL<&F1fE z@3JRi27gpm_6un-6Vs=^JA+~_7#>sXU}ieYhEVciZZ~hKi?DYsBG)gSOe5)$NygJTkH=^ zKR)A{8vkF8&!B{$H@iUdioopPDnimtw@w>tAv`|_5_in$Qq<;7`eVahkzNu7m{VJEf`CKZ8? z5Ka>rbW?1%R1$*wJORNS000003qY)kDisb8UK`~!21k(Lt4I6xymoVQ!Z$e_v0#;= zgk9S`nd28mahdrliqrb|D>^b0Z|9~+YVyZ#ouMYQgmsv3nW+Gq+L_M{Qv3V?!5shq z000XBlRhbuV%N+BNuQl^7)gBCr@CjneHN|VawB*3<=_4ARwm~bkJFiz*cIos^lnzt ztt`%sjHH&=ALuS$J8K>s0000B21T*! z-NQjD;EX!Wq)ksuXd`1-P}}bix9YEdGSqw!sV$Jy@Z-3|ALl7f?-;pq#CY?RUv)32 z>5uAVgk_MhXrnd*;l|03kB&xZ68fahI}qFf00026fROC1cZvz7RM=1Y9i)4LuoRLDm~LKGQc z8!f@|nE48VI{*Lx02U&4vy{mvR+;!74O8I&74$Mi20c`~7dyugGgBWKW-1t4&Q47B zMukUF=Q9ZI00000SfJRD8Y>pbKDtVgQF37vGt=07*}Oh^mz^>7xq$f!f;#{J000&` zHnYZJYb?Gl6q7TD$o_u>f;#{J00000^BztA4O` + +

+ Full-sized flowchart detailing how document modes are chosen in IE11 +

+ diff --git a/browsers/internet-explorer/ie11-deploy-guide/net-framework-problems-with-ie11.md b/browsers/internet-explorer/ie11-deploy-guide/net-framework-problems-with-ie11.md index b17d3b59ae..93d825a26b 100644 --- a/browsers/internet-explorer/ie11-deploy-guide/net-framework-problems-with-ie11.md +++ b/browsers/internet-explorer/ie11-deploy-guide/net-framework-problems-with-ie11.md @@ -17,7 +17,7 @@ If you’re having problems launching your legacy apps while running Internet Ex 1. **For x86 systems or for 32-bit processes on x64 systems:** Go to the `HKLM\SOFTWARE\MICROSOFT\.NETFramework` registry key and change the **EnableIEHosting** value to **1**. -2. **For x64 systems or for 64-bit processes on x64 systems:** Go to the `HKLM\SOFTWARE\Wow6432Node\.NETFramework` registry key and change the **EnableIEHosting** value to **1**. +2. **For x64 systems or for 64-bit processes on x64 systems:** Go to the `HKLM\SOFTWARE\Wow6432Node\MICROSOFT\.NETFramework` registry key and change the **EnableIEHosting** value to **1**. For more information, see the [Web Applications](https://go.microsoft.com/fwlink/p/?LinkId=308903) section of the Application Compatibility in the .NET Framework 4.5 page. diff --git a/browsers/internet-explorer/ie11-deploy-guide/user-interface-problems-with-ie11.md b/browsers/internet-explorer/ie11-deploy-guide/user-interface-problems-with-ie11.md index 5178b33d1f..a4a2db0dae 100644 --- a/browsers/internet-explorer/ie11-deploy-guide/user-interface-problems-with-ie11.md +++ b/browsers/internet-explorer/ie11-deploy-guide/user-interface-problems-with-ie11.md @@ -41,8 +41,8 @@ In IE, press **ALT+V** to show the **View** menu, press **T** to enter the **Too ## Where did the search box go? IE11 uses the **One Box** feature, which lets users type search terms directly into the **Address bar**. Any text entered into the **Address bar** that doesn't appear to be a URL is automatically sent to the currently selected search provider. -**Note**
-Depending on how you've set up your intranet search, the text entry might resolve to an intranet site. For more information about this, see [Intranet problems with Internet Explorer 11](intranet-problems-and-ie11.md). +>[!NOTE] +>Depending on how you've set up your intranet search, the text entry might resolve to an intranet site. For more information about this, see [Intranet problems with Internet Explorer 11](intranet-problems-and-ie11.md).   diff --git a/devices/hololens/TOC.md b/devices/hololens/TOC.md index 38959bbbb4..a1e744e8fe 100644 --- a/devices/hololens/TOC.md +++ b/devices/hololens/TOC.md @@ -1,7 +1,7 @@ # [Microsoft HoloLens](index.md) ## [HoloLens in the enterprise: requirements](hololens-requirements.md) ## [Set up HoloLens](hololens-setup.md) -## [Upgrade to Windows Holographic Enterprise](hololens-upgrade-enterprise.md) +## [Unlock Windows Holographic Enterprise features](hololens-upgrade-enterprise.md) ## [Enroll HoloLens in MDM](hololens-enroll-mdm.md) ## [Set up HoloLens in kiosk mode](hololens-kiosk.md) ## [Configure HoloLens using a provisioning package](hololens-provisioning.md) diff --git a/devices/hololens/hololens-enroll-mdm.md b/devices/hololens/hololens-enroll-mdm.md index 24912f3416..87c565d59e 100644 --- a/devices/hololens/hololens-enroll-mdm.md +++ b/devices/hololens/hololens-enroll-mdm.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Enroll HoloLens in MDM diff --git a/devices/hololens/hololens-install-apps.md b/devices/hololens/hololens-install-apps.md index e5298640a5..0bd99695b0 100644 --- a/devices/hololens/hololens-install-apps.md +++ b/devices/hololens/hololens-install-apps.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Install apps on HoloLens diff --git a/devices/hololens/hololens-kiosk.md b/devices/hololens/hololens-kiosk.md index df5b610c5a..5ef67cb981 100644 --- a/devices/hololens/hololens-kiosk.md +++ b/devices/hololens/hololens-kiosk.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Set up HoloLens in kiosk mode diff --git a/devices/hololens/hololens-provisioning.md b/devices/hololens/hololens-provisioning.md index 94024a8e86..9debfeb7b8 100644 --- a/devices/hololens/hololens-provisioning.md +++ b/devices/hololens/hololens-provisioning.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Configure HoloLens using a provisioning package @@ -100,7 +101,7 @@ When you run ADKsetup.exe for Windows 10, version 1607, select **Configuration D Provisioning packages make use of configuration service providers (CSPs). If you're not familiar with CSPs, see [Introduction to configuration service providers (CSPs) for IT pros](https://technet.microsoft.com/itpro/windows/manage/how-it-pros-can-use-configuration-service-providers). -In Windows ICD, when you create a provisioning package for Windows Holographic, the settings in **Available customizations** are based on [CSPs that are supported in Windows Holographic](https://msdn.microsoft.co/library/windows/hardware/dn920025.aspx#HoloLens). The following table describes settings that you might want to configure for HoloLens. +In Windows ICD, when you create a provisioning package for Windows Holographic, the settings in **Available customizations** are based on [CSPs that are supported in Windows Holographic](https://msdn.microsoft.com/windows/hardware/commercialize/customize/mdm/configuration-service-provider-reference#hololens). The following table describes settings that you might want to configure for HoloLens. ![Common runtime settings for HoloLens](images/icd-settings.png) diff --git a/devices/hololens/hololens-requirements.md b/devices/hololens/hololens-requirements.md index 959a0c2402..c141d31509 100644 --- a/devices/hololens/hololens-requirements.md +++ b/devices/hololens/hololens-requirements.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Microsoft HoloLens in the enterprise: requirements diff --git a/devices/hololens/hololens-setup.md b/devices/hololens/hololens-setup.md index 134a4bd36d..711052c786 100644 --- a/devices/hololens/hololens-setup.md +++ b/devices/hololens/hololens-setup.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Set up HoloLens diff --git a/devices/hololens/hololens-upgrade-enterprise.md b/devices/hololens/hololens-upgrade-enterprise.md index ab3a5920df..12546b5f31 100644 --- a/devices/hololens/hololens-upgrade-enterprise.md +++ b/devices/hololens/hololens-upgrade-enterprise.md @@ -1,14 +1,15 @@ --- -title: Upgrade to Windows Holographic Enterprise (HoloLens) +title: Unlock Windows Holographic Enterprise features (HoloLens) description: HoloLens provides extra features designed for business when you upgrade to Windows Holographic Enterprise. ms.prod: w10 ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- -# Upgrade to Windows Holographic Enterprise +# Unlock Windows Holographic Enterprise features Microsoft HoloLens is available in the *Development Edition*, which runs Windows Holographic (an edition of Windows 10 designed for HoloLens), and in the [Commercial Suite](https://developer.microsoft.com/windows/holographic/release_notes#introducing_microsoft_hololens_commercial_suite), which provides extra features designed for business. diff --git a/devices/hololens/index.md b/devices/hololens/index.md index 401b51e645..7e12977ae1 100644 --- a/devices/hololens/index.md +++ b/devices/hololens/index.md @@ -6,6 +6,7 @@ ms.mktglfcycl: manage ms.pagetype: hololens, devices ms.sitesec: library author: jdeckerMS +localizationpriority: medium --- # Microsoft HoloLens @@ -21,7 +22,7 @@ author: jdeckerMS | --- | --- | | [HoloLens in the enterprise: requirements](hololens-requirements.md) | Lists requirements for general use, Wi-Fi, and device management | | [Set up HoloLens](hololens-setup.md) | How to set up HoloLens for the first time | -| [Upgrade to Windows Holographic Enterprise](hololens-upgrade-enterprise.md) | How to upgrade your Development Edition HoloLens to Windows Holographic Enterprise| +| [Unlock Windows Holographic Enterprise features](hololens-upgrade-enterprise.md) | How to upgrade your Development Edition HoloLens to Windows Holographic Enterprise| | [Enroll HoloLens in MDM](hololens-enroll-mdm.md) | Manage multiple HoloLens devices simultaneously using solutions like Microsoft InTune | | [Set up HoloLens in kiosk mode](hololens-kiosk.md) | Enable kiosk mode for HoloLens, which limits the user's ability to launch new apps or change the running app | | [Configure HoloLens using a provisioning package](hololens-provisioning.md) | Provisioning packages make it easy for IT administrators to configure HoloLens devices without imaging | diff --git a/devices/surface-hub/TOC.md b/devices/surface-hub/TOC.md index 47279ae319..3c1ef3bcb3 100644 --- a/devices/surface-hub/TOC.md +++ b/devices/surface-hub/TOC.md @@ -36,4 +36,5 @@ ### [Troubleshoot Microsoft Surface Hub](troubleshoot-surface-hub.md) ### [Appendix: PowerShell](appendix-a-powershell-scripts-for-surface-hub.md) ## [Differences between Surface Hub and Windows 10 Enterprise](differences-between-surface-hub-and-windows-10-enterprise.md) +## [How Surface Hub addresses Wi-Fi Direct security issues](surface-hub-wifi-direct.md) ## [Change history for Surface Hub](change-history-surface-hub.md) \ No newline at end of file diff --git a/devices/surface-hub/accessibility-surface-hub.md b/devices/surface-hub/accessibility-surface-hub.md index 5aa1cfc951..46348c087d 100644 --- a/devices/surface-hub/accessibility-surface-hub.md +++ b/devices/surface-hub/accessibility-surface-hub.md @@ -30,7 +30,7 @@ The full list of accessibility settings are available to IT admins in the **Sett | Mouse | Defaults selected for **Pointer size**, **Pointer color** and **Mouse keys**. | | Other options | Defaults selected for **Visual options** and **Touch feedback**. | -Additionally, these accessibility features and apps are returned to default settings when users press [**I'm Done**](i-am-done-finishing-your-surface-hub-meeting.md): +Additionally, these accessibility features and apps are returned to default settings when users press [I'm Done](i-am-done-finishing-your-surface-hub-meeting.md): - Narrator - Magnifier - High contrast diff --git a/devices/surface-hub/admin-group-management-for-surface-hub.md b/devices/surface-hub/admin-group-management-for-surface-hub.md index 0278b24569..7607199209 100644 --- a/devices/surface-hub/admin-group-management-for-surface-hub.md +++ b/devices/surface-hub/admin-group-management-for-surface-hub.md @@ -74,7 +74,7 @@ If your organization is using AD or Azure AD, we recommend you either domain joi |---------------------------------------------------|-----------------------------------------|-------| | Create a local admin account | None | The user name and password specified during first run | | Domain join to Active Directory (AD) | Your organization uses AD | Any AD user from a specific security group in your domain | -| Azure Active Directory (Azure AD) join the device | Your organization uses Azure AD Basic | Global administators only | +| Azure Active Directory (Azure AD) join the device | Your organization uses Azure AD Basic | Global administrators only | |   | Your organization uses Azure AD Premium or Enterprise Mobility Suite (EMS) | Global administrators and additional administrators | diff --git a/devices/surface-hub/appendix-a-powershell-scripts-for-surface-hub.md b/devices/surface-hub/appendix-a-powershell-scripts-for-surface-hub.md index c82891ed56..76275e3ec8 100644 --- a/devices/surface-hub/appendix-a-powershell-scripts-for-surface-hub.md +++ b/devices/surface-hub/appendix-a-powershell-scripts-for-surface-hub.md @@ -1620,7 +1620,7 @@ In the following cmdlets, `$strPolicy` is the name of the ActiveSync policy, and Note that in order to run the cmdlets, you need to set up a remote PowerShell session and: -- Your admin account must be remote-PowerShell-enabled. This allows the admin to use the PowerShell cmdlets that are needed by the script. (This permission can be set using set-user `$admin -RemotePowerShellEnabled $true`) +- Your admin account must be remote-PowerShell-enabled. This allows the admin to use the PowerShell cmdlets that are needed by the script. (This permission can be set using `set-user $admin -RemotePowerShellEnabled $true`) - Your admin account must have the "Reset Password" role if you plan to run the creation scripts. This allows the admin to change the password of the account, which is needed for the script. The Reset Password Role can be enabled using the Exchange Admin Center. Create the policy. @@ -1667,7 +1667,7 @@ This retrieves device information for every device that the account has been pro For a device account to automatically accept or decline meeting requests based on its availability, the **AutomateProcessing** attribute must be set to **AutoAccept**. This is recommended as to prevent overlapping meetings. ```PowerShell -Set-CalendarProcessing $ strRoomUpn -AutomateProcessing AutoAccept +Set-CalendarProcessing $strRoomUpn -AutomateProcessing AutoAccept ``` ###
Accepting external meeting requests diff --git a/devices/surface-hub/change-history-surface-hub.md b/devices/surface-hub/change-history-surface-hub.md index 7439819195..dbf6b92769 100644 --- a/devices/surface-hub/change-history-surface-hub.md +++ b/devices/surface-hub/change-history-surface-hub.md @@ -14,10 +14,19 @@ localizationpriority: medium This topic lists new and updated topics in the [Surface Hub Admin Guide]( surface-hub-administrators-guide.md). +## January 2017 + +| New or changed topic | Description | +| --- | --- | +| [How Surface Hub addresses Wi-Fi Direct security issues](surface-hub-wifi-direct.md) | New | +| [Connect other devices and display with Surface Hub](connect-and-display-with-surface-hub.md) | Added graphics cards verified to work with 84" Surface Hubs and added information about the lengths of cables. | +| [Online deployment](online-deployment-surface-hub-device-accounts.md) | Updated procedures for adding a device account for your Microsoft Surface Hub when you have a pure, online deployment. | + ## December 2016 | New or changed topic | Description| | --- | --- | +| [Connect other devices and display with Surface Hub](connect-and-display-with-surface-hub.md) | Added information about Bluetooth accessories. | | [Manage settings with an MDM provider](manage-settings-with-mdm-for-surface-hub.md) | Updated example procedures to include screenshots. | ## November 2016 diff --git a/devices/surface-hub/connect-and-display-with-surface-hub.md b/devices/surface-hub/connect-and-display-with-surface-hub.md index 28001227cc..3febb60ff6 100644 --- a/devices/surface-hub/connect-and-display-with-surface-hub.md +++ b/devices/surface-hub/connect-and-display-with-surface-hub.md @@ -13,7 +13,7 @@ localizationpriority: medium # Connect other devices and display with Surface Hub -You can connect other devices to your Microsoft Surface Hub to display content. This topic describes the Guest Mode, Replacement PC Mode, and Video Out functionality available through wired connections. +You can connect other devices to your Microsoft Surface Hub to display content. This topic describes the Guest Mode, Replacement PC Mode, and Video Out functionality available through wired connections, and also lists accessories that you can connect to Surface Hub using [Bluetooth](#bluetooth-accessories). ## Which method should I choose? @@ -251,7 +251,7 @@ In Replacement PC Mode, Surface Hub supports any graphics adapter that can produ **55" Surface Hubs** - For best experience, use a graphics card capable of 1080p resolution at 120Hz. -**84" Surface Hubs** - For best experience, use a graphics card capable of outputting four DisplayPort 1.2 streams to produce 2160p at 120Hz (3840 x 2160 at 120Hz vertical refresh). We've verified that this works with the NVIDIA Quadro K2200, NVIDIA Quadro K4200, and NVIDIA Quadro M6000. These are not the only graphics cards - others are available from other vendors. +**84" Surface Hubs** - For best experience, use a graphics card capable of outputting four DisplayPort 1.2 streams to produce 2160p at 120Hz (3840 x 2160 at 120Hz vertical refresh). We've verified that this works with the NVIDIA Quadro K2200, NVIDIA Quadro K4200, NVIDIA Quadro M6000, AMD FirePro W5100, AMD FirePro W7100, and AMD FirePro W9100. These are not the only graphics cards - others are available from other vendors. Check directly with graphics card vendors for the latest drivers. @@ -273,7 +273,7 @@ Check directly with graphics card vendors for the latest drivers.

AMD

-

[http://support.amd.com/download](http://support.amd.com/download)

+

[http://support.amd.com/en-us/download](http://support.amd.com/en-us/download)

Intel

@@ -470,3 +470,19 @@ Video Out port on the 84" Surface Hub +## Cables + +Both the 55” and 84” Surface Hub devices have been tested to work with Certified DisplayPort and HDMI cables. While vendors do sell longer cables that may work with the Surface Hub, only those cables that have been certified by testing labs are certain to work with the Hub. For example, DisplayPort cables are certified only up to 3 meters, however many vendors sell cables that are 3 times that length. If a long cable is necessary, we strongly suggest using HDMI. HDMI has many cost-effective solutions for long-haul cables, including the use of repeaters. Nearly every DisplayPort source will automatically switch to HDMI signaling if a HDMI sink is detected. + + +## Bluetooth accessories + +You can connect the following accessories to Surface Hub using Bluetooth: + +- Mice +- Keyboards +- Headsets +- Speakers + +>[!NOTE] +>After you connect a Bluetooth headset or speaker, you might need to change the [default microphone and speaker settings](local-management-surface-hub-settings.md). \ No newline at end of file diff --git a/devices/surface-hub/hybrid-deployment-surface-hub-device-accounts.md b/devices/surface-hub/hybrid-deployment-surface-hub-device-accounts.md index ceb0a4bc73..f7ae7893c5 100644 --- a/devices/surface-hub/hybrid-deployment-surface-hub-device-accounts.md +++ b/devices/surface-hub/hybrid-deployment-surface-hub-device-accounts.md @@ -53,7 +53,7 @@ Use this procedure if you use Exchange on-prem. ```ps1 Set-ExecutionPolicy Unrestricted $cred=Get-Credential -Message "Please use your Office 365 admin credentials" - $sess= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'https://outlook.office365.com/ps1-liveid/' -Credential $cred -Authentication Basic -AllowRedirection + $sess= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri 'https://ps.outlook.com/powershell' -Credential $cred -Authentication Basic -AllowRedirection Import-PSSession $sess ``` diff --git a/devices/surface-hub/index.md b/devices/surface-hub/index.md index ddbbfb4fab..ce7c4f3c37 100644 --- a/devices/surface-hub/index.md +++ b/devices/surface-hub/index.md @@ -34,7 +34,8 @@ Documents related to the Microsoft Surface Hub.

[Microsoft Surface Hub administrator's guide](surface-hub-administrators-guide.md)

This guide covers the installation and administration of devices running Surface Hub, and is intended for use by anyone responsible for these tasks, including IT administrators and developers.

-[Differences between Surface Hub and Windows 10 Enterprise](differences-between-surface-hub-and-windows-10-enterprise.md)This topic explains the differences between the operating system on Surface Hub and Windows 10 Enterprise. -[Change history for Surface Hub](change-history-surface-hub.md)This topic lists new and updated topis in the Surface Hub documentation. +[Differences between Surface Hub and Windows 10 Enterprise](differences-between-surface-hub-and-windows-10-enterprise.md)This topic explains the differences between the operating system on Surface Hub and Windows 10 Enterprise. +[How Surface Hub addresses Wi-Fi Direct security issues](surface-hub-wifi-direct.md)This topic provides guidance on Wi-Fi Direct security risks, how the Surface Hub has addressed those risks, and how Surface Hub administrators can configure the device for the highest level of security. +[Change history for Surface Hub](change-history-surface-hub.md)This topic lists new and updated topis in the Surface Hub documentation. diff --git a/devices/surface-hub/manage-windows-updates-for-surface-hub.md b/devices/surface-hub/manage-windows-updates-for-surface-hub.md index 2d077cb622..40fdda11b1 100644 --- a/devices/surface-hub/manage-windows-updates-for-surface-hub.md +++ b/devices/surface-hub/manage-windows-updates-for-surface-hub.md @@ -94,7 +94,7 @@ Once you've determined deployment rings for your Surface Hubs, configure update ## Use Windows Server Update Services -You can connect Surface Hub to your indows Server Update Services (WSUS) server to manage updates. Updates will be controlled through approvals or automatic deployment rules configured in your WSUS server, so new upgrades will not be deployed until you choose to deploy them. +You can connect Surface Hub to your Windows Server Update Services (WSUS) server to manage updates. Updates will be controlled through approvals or automatic deployment rules configured in your WSUS server, so new upgrades will not be deployed until you choose to deploy them. **To manually connect a Surface Hub to a WSUS server:** 1. Open **Settings** on your Surface Hub. diff --git a/devices/surface-hub/on-premises-deployment-surface-hub-device-accounts.md b/devices/surface-hub/on-premises-deployment-surface-hub-device-accounts.md index a2103eec0b..cb9d732585 100644 --- a/devices/surface-hub/on-premises-deployment-surface-hub-device-accounts.md +++ b/devices/surface-hub/on-premises-deployment-surface-hub-device-accounts.md @@ -99,7 +99,7 @@ If you have a single-forest on-premises deployment with Microsoft Exchange 2013 8. OPTIONAL: You can also allow your Surface Hub to make and receive public switched telephone network (PSTN) phone calls by enabling Enterprise Voice for your account. Enterprise Voice isn't a requirement for Surface Hub, but if you want PSTN dialing functionality for the Surface Hub client, here's how to enable it: ```PowerShell - CsMeetingRoom HUB01 -DomainController DC-ND-001.contoso.com + Set-CsMeetingRoom HUB01 -DomainController DC-ND-001.contoso.com -LineURItel: +14255550555;ext=50555" Set-CsMeetingRoom -DomainController DC-ND-001.contoso.com -Identity HUB01 -EnterpriseVoiceEnabled $true ``` diff --git a/devices/surface-hub/online-deployment-surface-hub-device-accounts.md b/devices/surface-hub/online-deployment-surface-hub-device-accounts.md index 853813a012..8905e5b36c 100644 --- a/devices/surface-hub/online-deployment-surface-hub-device-accounts.md +++ b/devices/surface-hub/online-deployment-surface-hub-device-accounts.md @@ -54,13 +54,10 @@ If you have a pure, online (O365) deployment, then you can [use the provided Pow $easPolicy = New-MobileDeviceMailboxPolicy -Name “SurfaceHubs” -PasswordEnabled $false ``` - Once you have a compatible policy, then you will need to apply the policy to the device account. However, policies can only be applied to user accounts and not resource mailboxes. You need to convert the mailbox into a user type, apply the policy, and then convert it back into a mailbox—you may need to re-enable it and set the password again too. + Once you have a compatible policy, then you will need to apply the policy to the device account. ```PowerShell - Set-Mailbox 'HUB01@contoso.com' -Type Regular Set-CASMailbox 'HUB01@contoso.com' -ActiveSyncMailboxPolicy $easPolicy.Id - Set-Mailbox 'HUB01@contoso.com' -Type Room - Set-Mailbox 'HUB01@contoso.com' -RoomMailboxPassword (ConvertTo-SecureString -String -AsPlainText -Force) -EnableRoomMailboxAccount $true ``` 4. Various Exchange properties must be set on the device account to improve the meeting experience. You can see which properties need to be set in the [Exchange properties](exchange-properties-for-surface-hub-device-accounts.md) section. @@ -84,7 +81,10 @@ If you have a pure, online (O365) deployment, then you can [use the provided Pow Set-MsolUser -UserPrincipalName 'HUB01@contoso.com' -PasswordNeverExpires $true ``` -7. The device account needs to have a valid Office 365 (O365) license, or Exchange and Skype for Business will not work. If you have the license, you need to assign a usage location to your device account—this determines what license SKUs are available for your account. +7. Surface Hub requires a license for Skype for Business functionality. + - Your Surface Hub account requires a Lync Online (Plan 2) or Lync Online (Plan 3) license, but it does not require an Exchange Online license. + - You'll need to have Lync Online (Plan 2) or higher in your O365 plan. The plan needs to support conferencing capability. + - If you need Enterprise Voice (PSTN telephony) using telephony service providers for the Surface Hub, you need Lync Online (Plan 3). Next, you can use `Get-MsolAccountSku` to retrieve a list of available SKUs for your O365 tenant. @@ -98,15 +98,6 @@ If you have a pure, online (O365) deployment, then you can [use the provided Pow 8. Enable the device account with Skype for Business. - In order to enable Skype for Business, your environment will need to meet the following prerequisites: - - - You'll need to have Lync Online (Plan 2) or higher in your O365 plan. The plan needs to support conferencing capability. - - If you need Enterprise Voice (PSTN telephony) using telephony service providers for the Surface Hub, you need Lync Online (Plan 3). - - Your tenant users must have Exchange mailboxes. - - Your Surface Hub account does require a Lync Online (Plan 2) or Lync Online (Plan 3) license, but it does not require an Exchange Online license. - - - - Start by creating a remote PowerShell session from a PC. ```PowerShell @@ -115,33 +106,25 @@ If you have a pure, online (O365) deployment, then you can [use the provided Pow Import-PSSession $cssess -AllowClobber ``` - - To enable your Surface Hub account for Skype for Business Server, run this cmdlet: - - ```PowerShell - Enable-CsMeetingRoom -Identity 'HUB01@contoso.com' -RegistrarPool - "sippoolbl20a04.infra.lync.com" -SipAddressType EmailAddress - ``` - - If you aren't sure what value to use for the `RegistrarPool` parameter in your environment, you can get the value from an existing Skype for Business user using this cmdlet: + - Next, if you aren't sure what value to use for the `RegistrarPool` parameter in your environment, you can get the value from an existing Skype for Business user using this cmdlet (for example, *alice@contoso.com*): ```PowerShell Get-CsOnlineUser -Identity ‘alice@contoso.com’| fl *registrarpool* ``` + OR by setting a variable + ```PowerShell + $strRegistrarPool = (Get-CsOnlineUser -Identity ‘alice@contoso.com’).RegistrarPool + ``` + + - Enable the Surface Hub account with the following cmdlet: + + ```PowerShell + Enable-CsMeetingRoom -Identity 'HUB01@contoso.com' -RegistrarPool yourRegistrarPool -SipAddressType EmailAddress + OR using the $strRegistarPool variable from above + Enable-CsMeetingRoom -Identity 'HUB01@contoso.com' -RegistrarPool $strRegistrarPool -SipAddressType EmailAddress + ``` -9. Assign Skype for Business license to your Surface Hub account. - - Once you've completed the preceding steps to enable your Surface Hub account in Skype for Business Online, you need to assign a license to the Surface Hub. Using the O365 administrative portal, assign either a Skype for Business Online (Plan 2) or a Skype for Business Online (Plan 3) to the device. - - - Login as a tenant administrator, open the O365 Administrative Portal, and click on the Admin app. - - Click on **Users and Groups** and then **Add users, reset passwords, and more**. - - Select the Surface Hub account, and then click or tap the pen icon, which means edit. - - Click on the **Licenses** option. - - In the **Assign licenses** section, you need to select Skype for Business (Plan 2) or Skype for Business (Plan 3), depending on your licensing and what you've decided in terms of needing Enterprise Voice. You'll have to use a Plan 3 license if you want to use Enterprise Voice on your Surface Hub. - - Click **Save** and you're done. - ->**Note**: It's also possible to use the Windows Azure Active Directory Module for Windows PowerShell to run the cmdlets needed to assign one of these licenses, but that's not covered here. - -For validation, you should be able to use any Skype for Business client (PC, Android, etc) to log in to this account. +For validation, you should be able to use any Skype for Business client (PC, Android, etc) to sign in to this account. diff --git a/devices/surface-hub/save-bitlocker-key-surface-hub.md b/devices/surface-hub/save-bitlocker-key-surface-hub.md index 461864a1aa..2354de0f40 100644 --- a/devices/surface-hub/save-bitlocker-key-surface-hub.md +++ b/devices/surface-hub/save-bitlocker-key-surface-hub.md @@ -24,7 +24,7 @@ There are several ways to manage your BitLocker key on the Surface Hub. 2. If you’ve joined the Surface Hub to Azure Active Directory (Azure AD), the BitLocker key will be stored under the account that was used to join the device. -3. If you’re using a local admin account to manage the device, you can save the BitLocker key by going to the **Settings** app and navigating to **Update & security** > **Recovery**. Insert a USB drive and select the option to save the BitLocker key. The key will be saved to a text file on the USB drive. +3. If you’re using an admin account to manage the device, you can save the BitLocker key by going to the **Settings** app and navigating to **Update & security** > **Recovery**. Insert a USB drive and select the option to save the BitLocker key. The key will be saved to a text file on the USB drive. ## Related topics diff --git a/devices/surface-hub/surface-hub-wifi-direct.md b/devices/surface-hub/surface-hub-wifi-direct.md new file mode 100644 index 0000000000..6a76d310ab --- /dev/null +++ b/devices/surface-hub/surface-hub-wifi-direct.md @@ -0,0 +1,121 @@ +--- +title: How Surface Hub addresses Wi-Fi Direct security issues +description: This topic provides guidance on Wi-Fi Direct security risks. +keywords: change history +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +ms.pagetype: surfacehub +author: jdeckerMS +localizationpriority: medium +--- + +# How Surface Hub addresses Wi-Fi Direct security issues + +Microsoft Surface Hub is an all-in-one productivity device that enables teams to better brainstorm, collaborate, and share ideas. Surface Hub relies on Miracast for wireless projection by using Wi-Fi Direct. + +This topic provides guidance on Wi-Fi Direct security vulnerabilities, how Surface Hub has addressed those risks, and how Surface Hub administrators can configure the device for the highest level of security. This hardening information will help customers with high security requirements understand how best to protect their Surface Hub connected networks and data in transit. + +The intended audiences for this topic include IT and network administrators interested in deploying Microsoft Surface Hub in their corporate environment with optimal security settings. + +## Overview + +Microsoft Surface Hub's security depends extensively on Wi-Fi Direct / Miracast and the associated 802.11, Wi-Fi Protected Access (WPA2), and Wireless Protected Setup (WPS) standards. Since the device only supports WPS (as opposed to WPA2 Pre-Shared Key (PSK) or WPA2 Enterprise), issues traditionally associated with 802.11 encryption are simplified by design. + +It is important to note Surface Hub operates on par with the field of Miracast receivers, meaning that it is protected from, and vulnerable to, a similar set of exploits as all WPS-based wireless network devices. But Surface Hub’s implementation of WPS has extra precautions built in, and its internal architecture helps prevent an attacker – even after compromising the Wi-Fi Direct / Miracast layer – to move past the network interface onto other attack surfaces and connected enterprise networks see [Wi-Fi Direct vulnerabilities and how Surface Hub addresses them](#vulnerabilities). + +## Wi-Fi Direct background + +Miracast is part of the Wi-Fi Display standard, which itself is supported by the Wi-Fi Direct protocol. These standards are supported in modern mobile devices for screen sharing and collaboration. + +Wi-Fi Direct or Wi-Fi "Peer to Peer" (P2P) is a standard released by the Wi-Fi Alliance for "Ad-Hoc" networks. This allows supported devices to communicate directly and create groups of networks without requiring a traditional Wi-Fi Access Point or an Internet connection. + +Security for Wi-Fi Direct is provided by WPA2 using the WPS standard. Authentication mechanism for devices can be a numerical pin (WPS-PIN), a physical or virtual Push Button (WPS-PBC), or an out-of-band message such as Near Field Communication (WPS-OOO). The Microsoft Surface Hub supports both Push Button (which is the default) and PIN methods. + +In Wi-Fi Direct, groups are created as either "persistent," allowing for automatic reconnection using stored key material, or "temporary," where devices cannot re-authenticate without user intervention or action. Wi-Fi Direct groups will typically determine a Group Owner (GO) through a negotiation protocol, which mimics the "station" or "Access Point" functionality for the established Wi-Fi Direct Group. This Wi-Fi Direct GO provides authentication (via an “Internal Registrar”), and facilitate upstream network connections. For Surface Hub, this GO negotiation does not take place, as the network only operates in "autonomous" mode, where Surface Hub is always the Group Owner. Finally, Surface Hub does not and will not join other Wi-Fi Direct networks itself as a client. + + +## Wi-Fi Direct vulnerabilities and how Surface Hub addresses them + +**Vulnerabilities and attacks in the Wi-Fi Direct invitation, broadcast, and discovery process**: Wi-Fi Direct / Miracast attacks may target weaknesses in the group establishment, peer discovery, device broadcast, or invitation processes. + +|Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| The discovery process may remain active for an extended period of time, which could allow Invitations and connections to be established without the intent of the device owner. | Surface Hub only operates as the Group Owner (GO), which does not perform the client Discovery or GO negotiation process. Broadcast can be turned off by fully disabling wireless projection. | +| Invitation and discovery using PBC allows an unauthenticated attacker to perform repeated connection attempts or unauthenticated connections are automatically accepted. | By requiring WPS PIN security, Administrators can reduce the potential for such unauthorized connections or "Invitation bombs" (where invitations are repeatedly sent until a user mistakenly accepts one). | + +**Wi-Fi Protected Setup (WPS) Push Button Connect (PBC) vs PIN Entry**: Public weaknesses have been demonstrated in WPS-PIN method design and implementation, other vulnerabilities exist within WPS-PBC involving active attacks against a protocol designed for one time use. + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| WPS-PBC is vulnerable to active attackers. As stated within the WPS specification: "The PBC method has zero bits of entropy and only protects against passive eavesdropping attacks. PBC protects against eavesdropping attacks and takes measures to prevent a device from joining a network that was not selected by the device owner. The absence of authentication, however, means that PBC does not protect against active attack". Attackers can use selective wireless jamming or other potential denial-of-service vulnerabilities in order to trigger an unintended Wi-Fi Direct GO or connection. Additionally, an active attacker, with only physical proximity, can repeatedly teardown any Wi-Fi Direct group and attempt the described attack until it is successful. |Enable WPS-PIN security within Surface Hub’s configuration. As discussed within the Wi-Fi WPS specification: "The PBC method should only be used if no PIN-capable Registrar is available and the WLAN user is willing to accept the risks associated with PBC". | +| WPS-PIN implementations can be brute-forced using a Vulnerability within the WPS standard. Due to the design of split PIN verification, a number of implementation vulnerabilities occurred in the past several years across a wide range of Wi-Fi hardware manufacturers. In 2011 two researchers (Stefan Viehböck and Craig Heffner) released information on this vulnerability and tools such as "Reaver" as a proof of concept. | The Microsoft implementation of WPS within Surface Hub changes the pin every 30 seconds. In order to crack the pin, an attacker must work through the entire exploit in less than 30 seconds. Given the current state of tools and research in this area, a brute-force pin-cracking attack through WPS is unlikely. | +| WPS-PIN can be cracked using an offline attack due to weak initial key (E-S1,E S2) entropy. In 2014, Dominique Bongard discussed a "Pixie Dust" attack where poor initial randomness for the pseudo random number generator (PRNG) within the wireless device lead to the ability to perform an offline brute-force attack. | The Microsoft implementation of WPS within Surface Hub is not susceptible to this offline PIN brute-force attack. The WPS-PIN is randomized for each connection. | + +**Unintended exposure of network services**: Network daemons intended for Ethernet or WLAN services may be accidentally exposed due to misconfiguration (such as binding to “all”/0.0.0.0 interfaces), a poorly configured device firewall, or missing firewall rules altogether. + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| Misconfiguration binds a vulnerable or unauthenticated network service to "all" interfaces, which includes the Wi-Fi Direct interface. This potentially exposes services not intended to be accessible to Wi-Fi Direct clients, which may be weakly or automatically authenticated. | Within Surface Hub, the default firewall rules only permit the required TCP and UDP network ports and by default deny all inbound connections. Strong authentication can be configured by enabling the WPS-PIN mode. | + +**Bridging Wi-Fi Direct and other wired or wireless networks**: While network bridging between WLAN or Ethernet networks is a violation of the Wi-Fi Direct specification, such a bridge or misconfiguration may effectively lower or remove wireless access controls for the internal corporate network. + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| Wi-Fi Direct devices could allow unauthenticated or poorly authenticated access to bridged network connections. This may allow Wi-Fi Direct networks to route traffic to internal Ethernet LAN or other infrastructure or enterprise WLAN networks in violation of existing IT security protocols. | Surface Hub cannot be configured to bridge Wireless interfaces or allow routing between disparate networks. The default firewall rules add defense in depth to any such routing or bridge connections. | + +**The use of Wi-Fi Direct “legacy” mode**: Exposure to unintended networks or devices when operating in “legacy” mode may present a risk. Device spoofing or unintended connections could occur if WPS-PIN is not enabled. + + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| By supporting both Wi-Fi Direct and 802.11 infrastructure clients, the system is operating in a "legacy" support mode. This may expose the connection setup phase indefinitely, allowing for groups to be joined or devices invited to connect well after their intended setup phase terminates. | Surface Hub does not support Wi-Fi Direct legacy clients. Only Wi-Fi Direct connections can be made to Surface Hub even when WPS-PIN mode is enabled. | + +**Wi-Fi Direct GO negotiation during connection setup**: The Group Owner within Wi-Fi Direct is analogous to the “Access Point” in a traditional 802.11 wireless network. The negotiation can be gamed by a malicious device. + +|Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| If groups are dynamically established or if the Wi-Fi Direct device can be made to join new groups, the Group Owner (GO) negotiation can be won by a malicious device that always specifies the max Group Owner "intent" value of 15. (Unless such device is configured to always be a Group Owner, in which case the connection fails.) | Surface Hub takes advantage of Wi-Fi Direct "Autonomous mode", which skips the GO negotiation phase of the connection setup. Surface Hub is always the Group Owner. | + +**Unintended or malicious Wi-Fi deauthentication**: Wi-Fi deauthentication is an age-old attack that can be used by a physically local attacker to expedite information leaks against the connection setup process, trigger new four-way handshakes, target Wi-Fi Direct WPS-PBC for active attack, or create denial-of-service attacks. + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| Deauthentication packets can be sent by an unauthenticated attacker to cause the station to re-authenticate and sniff the resulting handshake. Cryptographic or brute-force attacks can be attempted on the resulting handshake. Mitigations for these attack include: enforcing length and complexity policies for pre-shared keys; configuring the Access Point (if applicable) to detect malicious levels of deauthentication packets; and using WPS to automatically generate strong keys. In PBC mode the user is interacting with a physical or virtual button to allow arbitrary device association. This process should happen only at setup within a small window, once the button is automatically "pushed", the device will accept any station associating via a canonical PIN value (all zeros). Deauthentication can force a repeated setup process. | The current Surface Hub design uses WPS in PIN or PBC mode. No PSK configuration is permitted, helping enforce the generation of strong keys. It is recommended to enable WPS-PIN. | +| Beyond denial-of-service attacks, deauthentication packets can also be used to trigger a reconnect which re-opens the window of opportunity for active attacks against WPS-PBC. | Enable WPS-PIN security within Surface Hub’s configuration. | + +**Basic wireless information disclosure**: Wireless networks, 802.11 or otherwise, are inherently sources of information disclosure. Although the information is largely connection or device metadata, it remains an accepted risk for any 802.11 administrator. Wi-Fi Direct with device authentication via WPS-PIN effectively reveals the same information as a PSK or Enterprise 802.11 network. + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| During broadcast, connection setup, or even with already encrypted connections, basic information about the devices and packet sizes is wirelessly transmitted. At a basic level, a local attacker within wireless range can determine the names of wireless devices, the MAC addresses of communicating equipment, and possibly other details such as the version of the wireless stack, packet sizes, or the configured Access Point or Group Owner options by examining the relevant 802.11 Information Elements. | The Wi-Fi Direct network employed by Surface Hub cannot be further protected from metadata leaks, in the same way 802.11 Enterprise or PSK wireless networks also leak such metadata. Physical security and removing potential threats from the wireless proximity can be used to reduce any potential information leaks. | + +**Wireless evil twin or spoofing attacks**: Spoofing the wireless name is a trivial and known exploit for a physically local attacker in order to lure unsuspecting or mistaken users to connect. + +| Wi-Fi Direct Vulnerability | Surface Hub Mitigation | +| --- | --- | +| By spoofing or cloning the wireless name or "SSID" of the target network, an attacker may trick the user into connecting to fake malicious network. By supporting unauthenticated, auto-join Miracast an attacker could capture the intended display materials or attempt to perform network attacks on the connecting device. | While no specific protections against joining a spoofed Surface Hub are in place, this attack is partially mitigated in two ways. First, any potential attack must be physically within Wi-Fi range. Second, this attack is only possible during the very first connection. Subsequent connections use a persistent Wi-Fi Direct group and Windows will remember and prioritize this prior connection during future Hub use. (Note: Spoofing the MAC address, Wi-Fi channel and SSID simultaneously was not considered for this report and may result in inconsistent Wi-Fi behavior.) Overall this weakness is a fundamental problem for any 802.11 wireless network not using Enterprise WPA2 protocols such as EAP-TLS or EAP-PWD, which are not supported in Wi-Fi Direct. | + +## Surface Hub hardening guidelines + +Surface Hub is designed to facilitate collaboration and allow users to start or join meetings quickly and efficiently. As such, the default Wi-Fi Direct settings for Surface Hub are optimized for this scenario. + +For users who require additional security around the wireless interface, we recommend Surface Hub users enable the WPS-PIN security setting. This disables WPS-PBC mode and offers client authentication, and provides the strongest level of protection by preventing any unauthorized connections to Surface Hub. + +If concerns remain around authentication and authorization of a Surface Hub, we recommend users connect the device to a separate network, either Wi-Fi (such as a "guest" Wi-Fi network) or using separate Ethernet network (preferably an entirely different physical network, but a VLAN can also provide some added security). Of course, this approach may preclude connections to internal network resources or services, and may require additional network configurations to regain access. + +Also recommended: +- [Install regular system updates.](manage-windows-updates-for-surface-hub.md) +- Update the Miracast settings to disable auto-present mode. + +## Learn more + +- [Wi-Fi Direct specifications](http://www.wi-fi.org/discover-wi-fi/wi-fi-direct) +- [Wireless Protected Setup (WPS) specification](http://www.wi-fi.org/discover-wi-fi/wi-fi-protected-setup) + + + + + + + diff --git a/devices/surface-hub/use-room-control-system-with-surface-hub.md b/devices/surface-hub/use-room-control-system-with-surface-hub.md index 71051b3d27..06b5f7dd0a 100644 --- a/devices/surface-hub/use-room-control-system-with-surface-hub.md +++ b/devices/surface-hub/use-room-control-system-with-surface-hub.md @@ -184,7 +184,7 @@ In Replacement PC mode, the power states are only Ready and Off and only change

5

-

50

+

S0

Ready

diff --git a/devices/surface/change-history-for-surface.md b/devices/surface/change-history-for-surface.md index 22c48934fe..a6195be9e0 100644 --- a/devices/surface/change-history-for-surface.md +++ b/devices/surface/change-history-for-surface.md @@ -17,6 +17,12 @@ This topic lists new and updated topics in the Surface documentation library. | --- | --- | |[Wake On LAN for Surface devices](wake-on-lan-for-surface-devices.md) | New | +## December 2016 + +|New or changed topic | Description | +| --- | --- | +|[Download the latest firmware and drivers for Surface devices](deploy-the-latest-firmware-and-drivers-for-surface-devices.md) | Added driver info for Surface Studio; updated info for Surface Book and Surface Pro 4 (Windows 10 .zip cumulative update), Surface Pro 3 (Windows8.1-KB2969817-x64.msu), and Surface 3 (UEFI Asset Tag management tool)| + ## November 2016 |New or changed topic | Description | diff --git a/devices/surface/considerations-for-surface-and-system-center-configuration-manager.md b/devices/surface/considerations-for-surface-and-system-center-configuration-manager.md index caf7719cc4..8d241210d7 100644 --- a/devices/surface/considerations-for-surface-and-system-center-configuration-manager.md +++ b/devices/surface/considerations-for-surface-and-system-center-configuration-manager.md @@ -65,7 +65,7 @@ However, issues may arise when organizations intend to use versions of Windows t ## Apply an asset tag during deployment -Surface Book, Surface Pro 4, Surface Pro 3, and Surface 3 devices all support the application of an asset tag in UEFI. This asset tag can be used to identify the device from UEFI even if the operating system fails, and it can also be queried from within the operating system. To read more about the Surface Asset Tag function, see the [Asset Tag Tool for Surface Pro 3](https://blogs.technet.microsoft.com/askcore/2014/10/20/asset-tag-tool-for-surface-pro-3/) blog post. +Surface Studio, Surface Book, Surface Pro 4, Surface Pro 3, and Surface 3 devices all support the application of an asset tag in UEFI. This asset tag can be used to identify the device from UEFI even if the operating system fails, and it can also be queried from within the operating system. To read more about the Surface Asset Tag function, see the [Asset Tag Tool for Surface Pro 3](https://blogs.technet.microsoft.com/askcore/2014/10/20/asset-tag-tool-for-surface-pro-3/) blog post. To apply an asset tag using the [Surface Asset Tag CLI Utility](https://www.microsoft.com/download/details.aspx?id=44076) during a Configuration Manager deployment task sequence, use the script and instructions found in the [Set Surface Asset Tag During a Configuration Manager Task Sequence](https://blogs.technet.microsoft.com/jchalfant/set-surface-pro-3-asset-tag-during-a-configuration-manager-task-sequence/) blog post. diff --git a/devices/surface/customize-the-oobe-for-surface-deployments.md b/devices/surface/customize-the-oobe-for-surface-deployments.md index df861406ec..e986d59af3 100644 --- a/devices/surface/customize-the-oobe-for-surface-deployments.md +++ b/devices/surface/customize-the-oobe-for-surface-deployments.md @@ -18,16 +18,17 @@ This article walks you through the process of customizing the Surface out-of-box It is common practice in a Windows deployment to customize the user experience for the first startup of deployed computers — the out-of-box experience, or OOBE. ->**Note:**  OOBE is also often used to describe the phase, or configuration pass, of Windows setup during which the user experience is displayed. For more information about the OOBE phase of setup, see [How Configuration Passes Work](http://msdn.microsoft.com/library/windows/hardware/dn898581.aspx). +>[!NOTE] +>OOBE is also often used to describe the phase, or configuration pass, of Windows setup during which the user experience is displayed. For more information about the OOBE phase of setup, see [How Configuration Passes Work](http://msdn.microsoft.com/library/windows/hardware/dn898581.aspx). In some scenarios, you may want to provide complete automation to ensure that at the end of a deployment, computers are ready for use without any interaction from the user. In other scenarios, you may want to leave key elements of the experience for users to perform necessary actions or select between important choices. For administrators deploying to Surface devices, each of these scenarios presents a unique challenge to overcome. This article provides a summary of the scenarios where a deployment might require additional steps. It also provides the required information to ensure that the desired experience is achieved on any newly deployed Surface device. This article is intended for administrators who are familiar with the deployment process, as well as concepts such as answer files and [reference images](https://technet.microsoft.com/itpro/windows/deploy/create-a-windows-10-reference-image). ->**Note:**  Although the OOBE phase of setup is still run during a deployment with an automated deployment solution such as the [Microsoft Deployment Toolkit (MDT)](https://go.microsoft.com/fwlink/p/?LinkId=618117) or System Center Configuration Manager Operating System Deployment (OSD), it is automated by the settings supplied in the Deployment Wizard and task sequence. For more information see:
-- [Deploy Windows 10 with the Microsoft Deployment Toolkit](http://technet.microsoft.com/itpro/windows/deploy/deploy-windows-10-with-the-microsoft-deployment-toolkit) -
-- [Deploy Windows 10 with System Center 2012 R2 Configuration Manager](http://technet.microsoft.com/itpro/windows/deploy/deploy-windows-10-with-system-center-2012-r2-configuration-manager) +>[!NOTE] +>Although the OOBE phase of setup is still run during a deployment with an automated deployment solution such as the [Microsoft Deployment Toolkit (MDT)](https://go.microsoft.com/fwlink/p/?LinkId=618117) or System Center Configuration Manager Operating System Deployment (OSD), it is automated by the settings supplied in the Deployment Wizard and task sequence. For more information see:
+>- [Deploy Windows 10 with the Microsoft Deployment Toolkit](http://technet.microsoft.com/itpro/windows/deploy/deploy-windows-10-with-the-microsoft-deployment-toolkit) +>- [Deploy Windows 10 with System Center 2012 R2 Configuration Manager](http://technet.microsoft.com/itpro/windows/deploy/deploy-windows-10-with-system-center-2012-r2-configuration-manager)   @@ -41,7 +42,7 @@ To ensure that an automated deployment is not stopped by this page, the page mus ## Scenario 2: Surface Pen pairing in OOBE -When you first take a Surface Pro 3, Surface Pro 4, or Surface Book out of the package and start it up, the first-run experience of the factory image includes a prompt that asks you to pair the included Surface Pen to the device. This prompt is only provided by the factory image that ships with the device and is not included in other images used for deployment, such as the Windows Enterprise installation media downloaded from the Volume Licensing Service Center. Because pairing the Bluetooth Surface Pen outside of this experience requires that you enter the Control Panel or PC Settings and manually pair a Bluetooth device, you may want to have users or a technician use this prompt to perform the pairing operation. +When you first take a Surface Pro 3, Surface Pro 4, Surface Book, or Surface Studio out of the package and start it up, the first-run experience of the factory image includes a prompt that asks you to pair the included Surface Pen to the device. This prompt is only provided by the factory image that ships with the device and is not included in other images used for deployment, such as the Windows Enterprise installation media downloaded from the Volume Licensing Service Center. Because pairing the Bluetooth Surface Pen outside of this experience requires that you enter the Control Panel or PC Settings and manually pair a Bluetooth device, you may want to have users or a technician use this prompt to perform the pairing operation. To provide the factory Surface Pen pairing experience in OOBE, you must copy four files from the factory Surface image into the reference image. You can copy these files into the reference environment before you capture the reference image, or you can add them later by using Deployment Image Servicing and Management (DISM) to mount the image. The four required files are: @@ -50,7 +51,8 @@ To provide the factory Surface Pen pairing experience in OOBE, you must copy fou - %windir%\\system32\\oobe\\info\\default\\1033\\PenError\_en-US.png - %windir%\\system32\\oobe\\info\\default\\1033\\PenSuccess\_en-US.png ->**Note:**  You should copy the files from a factory image for the same model Surface device that you intend to deploy to. For example, you should use the files from a Surface Pro 3 to deploy to Surface Pro 3, and the files from Surface Book to deploy Surface Book, but you should not use the files from a Surface Pro 3 to deploy Surface Book or Surface Pro 4. +>[!NOTE] +>You should copy the files from a factory image for the same model Surface device that you intend to deploy to. For example, you should use the files from a Surface Pro 3 to deploy to Surface Pro 3, and the files from Surface Book to deploy Surface Book, but you should not use the files from a Surface Pro 3 to deploy Surface Book or Surface Pro 4.   diff --git a/devices/surface/deploy-surface-app-with-windows-store-for-business.md b/devices/surface/deploy-surface-app-with-windows-store-for-business.md index 6183f55206..1ad577cc48 100644 --- a/devices/surface/deploy-surface-app-with-windows-store-for-business.md +++ b/devices/surface/deploy-surface-app-with-windows-store-for-business.md @@ -11,6 +11,14 @@ author: miladCA #Deploy Surface app with Windows Store for Business +**Applies to** +* Surface Pro 4 +* Surface Book +* Surface 3 + +>[!NOTE] +>The Surface app ships in Surface Studio. + The Surface app is a lightweight Windows Store app that provides control of many Surface-specific settings and options, including: * Enable or disable the Windows button on the Surface device @@ -25,7 +33,7 @@ The Surface app is a lightweight Windows Store app that provides control of many If your organization is preparing images that will be deployed to your Surface devices, you may want to include the Surface app (formerly called the Surface Hub) in your imaging and deployment process instead of requiring users of each individual device to download and install the app from the Windows Store or your Windows Store for Business. -####Surface app overview +##Surface app overview The Surface app is available as a free download from the [Windows Store](https://www.microsoft.com/store/apps/Surface/9WZDNCRFJB8P). Users can download and install it from the Windows Store, but if your organization uses Windows Store for Business instead, you will need to add it to your store’s inventory and possibly include the app as part of your Windows deployment process. These processes are discussed throughout this article. For more information about Windows Store for Business, see [Windows Store for Business](https://technet.microsoft.com/windows/store-for-business) in the Windows TechCenter. @@ -73,7 +81,8 @@ After you add an app to the Windows Store for Business account in Offline mode, 6. Click either the **Encoded license** or **Unencoded license** option. Use the Encoded license option with management tools like System Center Configuration Manager or when you use Windows Imaging and Configuration Designer (Windows ICD). Select the Unencoded license option when you use Deployment Image Servicing and Management (DISM) or deployment solutions based on imaging, including the Microsoft Deployment Toolkit (MDT). 7. Click **Generate** to generate and download the license for the app. Make sure you note the path of the license file because you’ll need that later in this article. ->**Note:**  When you download an app for offline use, such as the Surface app, you may notice a section at the bottom of the page labeled **Required frameworks**. Your target computers must have the frameworks installed for the app to run, so you may need to repeat the download process for each of the required frameworks for your architecture (either x86 or x64) and also include them as part of your Windows deployment discussed later in this article. +>[!NOTE] +>When you download an app for offline use, such as the Surface app, you may notice a section at the bottom of the page labeled **Required frameworks**. Your target computers must have the frameworks installed for the app to run, so you may need to repeat the download process for each of the required frameworks for your architecture (either x86 or x64) and also include them as part of your Windows deployment discussed later in this article. Figure 5 shows the required frameworks for the Surface app. @@ -81,13 +90,15 @@ Figure 5 shows the required frameworks for the Surface app. *Figure 5. Required frameworks for the Surface app* ->**Note:**  The version numbers of the Surface app and required frameworks will change as the apps are updated. Check for the latest version of Surface app and each framework in Windows Store for Business. Always use the Surface app and recommended framework versions as provided by Windows Store for Business. Using outdated frameworks or the incorrect versions may result in errors or application crashes. +>[!NOTE] +>The version numbers of the Surface app and required frameworks will change as the apps are updated. Check for the latest version of Surface app and each framework in Windows Store for Business. Always use the Surface app and recommended framework versions as provided by Windows Store for Business. Using outdated frameworks or the incorrect versions may result in errors or application crashes. To download the required frameworks for the Surface app, follow these steps: 1. Click the **Download** button under **Microsoft.VCLibs.140.00_14.0.23816.0_x64__8wekyb3d8bbwe**. This downloads the Microsoft.VCLibs.140.00_14.0.23816.0_x64__8wekyb3d8bbwe.Appx file to your specified folder. 2. Click the **Download** button under **Microsoft.NET.Native.Runtime.1.1_1.1.23406.0_x64__8wekyb3d8bbwe**. This downloads the Microsoft.NET.Native.Runtime.1.1_1.1.23406.0_x64__8wekyb3d8bbwe.Appx file to your specified folder. ->**Note:**  Only the 64-bit (x64) version of each framework is required for Surface devices. Surface devices are native 64-bit UEFI devices and are not compatible with 32-bit (x86) versions of Windows that would require 32-bit frameworks. +>[!NOTE] +>Only the 64-bit (x64) version of each framework is required for Surface devices. Surface devices are native 64-bit UEFI devices and are not compatible with 32-bit (x86) versions of Windows that would require 32-bit frameworks. ##Install Surface app on your computer with PowerShell The following procedure provisions the Surface app onto your computer and makes it available for any user accounts created on the computer afterwards. diff --git a/devices/surface/deploy-the-latest-firmware-and-drivers-for-surface-devices.md b/devices/surface/deploy-the-latest-firmware-and-drivers-for-surface-devices.md index 8a5ff4b34e..05a27098bb 100644 --- a/devices/surface/deploy-the-latest-firmware-and-drivers-for-surface-devices.md +++ b/devices/surface/deploy-the-latest-firmware-and-drivers-for-surface-devices.md @@ -28,21 +28,34 @@ Driver and firmware updates for Surface devices are released in one of two ways: Installation files for administrative tools, drivers for accessories, and updates for Windows are also available for some devices and are detailed here in this article. ->**Note:**  To simplify the process of locating drivers for your device, downloads for Surface devices have been reorganized to separate pages for each model. Bookmark the Microsoft Download Center page for your device from the links provided on this page. Many of the filenames contain a placeholder denoted with *xxxxxx*, which identifies the current version number or date of the file. +>[!NOTE] +>To simplify the process of locating drivers for your device, downloads for Surface devices have been reorganized to separate pages for each model. Bookmark the Microsoft Download Center page for your device from the links provided on this page. Many of the filenames contain a placeholder denoted with *xxxxxx*, which identifies the current version number or date of the file.   Recent additions to the downloads for Surface devices provide you with options to install Windows 10 on your Surface devices and update LTE devices with the latest Windows 10 drivers and firmware. ->**Note:**  A battery charge of 40% or greater is required before you install firmware to a Surface device. See [Microsoft Support article KB2909710](https://support.microsoft.com/en-us/kb/2909710) for more information. -  + +>[!NOTE] +>A battery charge of 40% or greater is required before you install firmware to a Surface device. See [Microsoft Support article KB2909710](https://go.microsoft.com/fwlink/p/?LinkId=618106) for more information. + + + +## Surface Studio + +Download the following updates for [Surface Studio from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=54311). + +* SurfaceStudio_Win10_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 + ## Surface Book Download the following updates [for Surface Book from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=49497). -- SurfaceBook\_Win10\_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 +- SurfaceBook_Win10_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 + +- SurfaceBook_Win10_xxxxxx.zip – Cumulative firmware and driver update package for Windows 10 - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 @@ -51,7 +64,9 @@ Download the following updates [for Surface Book from the Microsoft Download Cen Download the following updates for [Surface Pro 4 from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=49498). -- SurfacePro4\_Win10\_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 +- SurfacePro4_Win10_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 + +- SurfacePro4_Win10_xxxxxx.zip – Cumulative firmware and driver update package for Windows 10 - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 @@ -60,26 +75,22 @@ Download the following updates for [Surface Pro 4 from the Microsoft Download Ce Download the following updates [for Surface Pro 3 from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=38826). -- SurfacePro3\_Win10\_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 +- SurfacePro3_Win10_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 -- SurfacePro3\_Win10\_xxxxxx.zip – Cumulative firmware and driver update package for Windows 10 +- SurfacePro3_Win10_xxxxxx.zip – Cumulative firmware and driver update package for Windows 10 -- SurfacePro3\_xxxxxx.msi – Cumulative firmware and driver update package for Windows 8.1 Pro +- SurfacePro3_Win8x_xxxxxx.msi – Cumulative firmware and driver update package for Windows 8.1 Pro -- SurfacePro3\_xxxxxx.zip – Cumulative firmware and driver update package for Windows 8.1 Pro +- SurfacePro3_Win8x_xxxxxx.zip – Cumulative firmware and driver update package for Windows 8.1 Pro - Surface Firmware Tool.msi – Firmware tools for UEFI management -- Surface Ethernet Adapter.zip – x64 Ethernet adapter drivers - -- Surface Gigabit Ethernet Adapter.zip – x64 Ethernet adapter drivers - - Surface Pro 3 AssetTag.zip – UEFI Asset Tag management tool -- Surface Pro 3 Driver Set.ppkg – Deployment Asset Provisioning Package for Windows 10 - - Surface Pro 3 KB2978002.zip – Update for Quick Note-Taking Experience feature in Windows 8.1 +- Windows8.1-KB2969817-x64.msu – Fixes an issue that causes Surface devices to reboot twice after firmware updates are installed on all supported x64-based versions of Windows 8.1 + - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 ## Surface 3 @@ -87,15 +98,15 @@ Download the following updates [for Surface Pro 3 from the Microsoft Download Ce Download the following updates [for Surface 3 from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=49040). -- Surface3\_Win10\_xxxxxx.zip – Cumulative firmware and driver update package for Windows 10 +- Surface3_WiFi_Win10_xxxxxx.msi – Cumulative firmware and driver update package for Windows 10 -- Surface3\_Win8x\_xxxxxx.msi – Cumulative firmware and driver update package for Windows 8.1 Pro +- Surface3_WiFi_Win10_xxxxxx.zip – Cumulative firmware and driver update package for Windows 10 -- Surface3\_Win8x\_xxxxxx.zip – Cumulative firmware and driver update package for Windows 8.1 Pro +- Surface3_WiFi_Win8x_xxxxxx.msi – Cumulative firmware and driver update package for Windows 8.1 Pro -- Surface Ethernet Adapter.zip – x64 Ethernet adapter drivers +- Surface3_WiFi_Win8x_xxxxxx.zip – Cumulative firmware and driver update package for Windows 8.1 Pro -- Surface Gigabit Ethernet Adapter.zip – x64 Ethernet adapter drivers +- Surface 3 AssetTag.zip – UEFI Asset Tag management tool - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 @@ -104,49 +115,43 @@ Download the following updates [for Surface 3 from the Microsoft Download Center Download the following updates [for AT&T 4G LTE versions of Surface 3 from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=49039). -- Surface3\_US1\_Win10\_xxxxxx.msi – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 10 +- Surface3_4GLTE-ATT_Win10_xxxxxx.msi – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 10 -- Surface3\_US1\_Win10\_xxxxxx.zip – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 10 +- Surface3_4GLTE-ATT_Win10_xxxxxx.zip – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 10 -- Surface3\_US1\_Win8x\_xxxxxx.msi – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 8.1 Pro +- Surface3_4GLTE-ATT_Win8x_xxxxxx.msi – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 8.1 Pro -- Surface3\_US1\_Win8x\_xxxxxx.zip – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 8.1 Pro +- Surface3_4GLTE-ATT_Win8x_xxxxxx.zip – Surface 3 LTE AT&T - Cumulative firmware and driver update for locked carrier dependent AT&T devices in the US, running Windows 8.1 Pro -- Surface Ethernet Adapter.zip – x64 Ethernet adapter drivers - -- Surface Gigabit Ethernet Adapter.zip – x64 Ethernet adapter drivers +- Surface 3 AssetTag.zip – UEFI Asset Tag management tool - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 Download the following updates [for non-AT&T 4G LTE versions of Surface 3 from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=49037). -- Surface3\_NAG\_Win10\_xxxxxx.msi – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 10 +- Surface3_4GLTE-NorthAmericaUnlocked_Win10_xxxxxx.msi – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 10 -- Surface3\_NAG\_Win10\_xxxxxx.zip – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 10 +- Surface3_4GLTE-NorthAmericaUnlocked_Win10_xxxxxx.zip – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 10 -- Surface3\_NAG\_Win8x\_xxxxxx.msi – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 8.1 Pro +- Surface3_4GLTE-NorthAmericaUnlocked_Win8x_xxxxxx.msi – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 8.1 Pro -- Surface3\_NAG\_Win8x\_xxxxxx.zip – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 8.1 Pro +- Surface3_4GLTE-NorthAmericaUnlocked_Win8x_xxxxxx.zip – Surface 3 LTE North America - Cumulative firmware and driver update for unlocked carrier independent devices in the US, running Windows 8.1 Pro -- Surface Ethernet Adapter.zip – x64 Ethernet adapter drivers - -- Surface Gigabit Ethernet Adapter.zip – x64 Ethernet adapter drivers +- Surface 3 AssetTag.zip – UEFI Asset Tag management tool - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 Download the following updates [for 4G LTE Surface 3 versions for regions outside North America from the Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=49041). -- Surface3\_ROW\_Win10\_xxxxxx.msi – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 10 +- Surface3_4GLTE-RestOfTheWorld_Win10_xxxxxx.msi – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 10 -- Surface3\_ROW\_Win10\_xxxxxx.zip – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 10 +- Surface3_4GLTE-RestOfTheWorld_Win10_xxxxxx.zip – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 10 -- Surface3\_ROW\_Win8x\_xxxxxx.msi – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 8.1 Pro +- Surface3_4GLTE-RestOfTheWorld_Win8x_xxxxxx.msi – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 8.1 Pro -- Surface3\_ROW\_Win8x\_xxxxxx.zip – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 8.1 Pro +- Surface3_4GLTE-RestOfTheWorld_Win8x_xxxxxx.zip – Surface 3 LTE rest of the world cumulative - Cumulative firmware and driver update for carrier independent devices outside of the US, as well as for Japan, running Windows 8.1 Pro -- Surface Ethernet Adapter.zip – x64 Ethernet adapter drivers - -- Surface Gigabit Ethernet Adapter.zip – x64 Ethernet adapter drivers +- Surface 3 AssetTag.zip – UEFI Asset Tag management tool - Wintab-xxxxx-64-bit.zip – Tablet driver update for all supported x64-based versions of Windows 8.1 diff --git a/devices/surface/deploy-windows-10-to-surface-devices-with-mdt.md b/devices/surface/deploy-windows-10-to-surface-devices-with-mdt.md index f16b7e5abd..f3393feea4 100644 --- a/devices/surface/deploy-windows-10-to-surface-devices-with-mdt.md +++ b/devices/surface/deploy-windows-10-to-surface-devices-with-mdt.md @@ -11,7 +11,8 @@ author: Scottmca # Deploy Windows 10 to Surface devices with Microsoft Deployment Toolkit -#### Applies to +**Applies to** +- Surface Studio * Surface Pro 4 * Surface Book * Surface 3 @@ -47,13 +48,19 @@ You can download and find out more about the Windows ADK at [Download the Window Before you can perform a deployment with MDT, you must first supply a set of operating system installation files and an operating system image. These files and image can be found on the physical installation media (DVD) for Windows 10. You can also find these files in the disk image (ISO file) for Windows 10, which you can download from the [Volume Licensing Service Center (VLSC)](https://www.microsoft.com/Licensing/servicecenter/default.aspx). ->**Note:**  The installation media generated from the [Get Windows 10](https://www.microsoft.com/software-download/windows10/) page differs from physical media or media downloaded from the VLSC, in that it contains an image file in Electronic Software Download (ESD) format rather than in the Windows Imaging (WIM) format. Installation media with an image file in WIM format is required for use with MDT. Installation media from the Get Windows 10 page cannot be used for Windows deployment with MDT. + +>[!NOTE] +>The installation media generated from the [Get Windows 10](https://www.microsoft.com/en-us/software-download/windows10/) page differs from physical media or media downloaded from the VLSC, in that it contains an image file in Electronic Software Download (ESD) format rather than in the Windows Imaging (WIM) format. Installation media with an image file in WIM format is required for use with MDT. Installation media from the Get Windows 10 page cannot be used for Windows deployment with MDT. + #### Windows Server Although MDT can be installed on a Windows client, to take full advantage of Windows Deployment Services’ ability to network boot, a full Windows Server environment is recommended. To provide network boot for UEFI devices like Surface with WDS, you will need Windows Server 2008 R2 or later. ->**Note:**  To evaluate the deployment process for Surface devices or to test the deployment process described in this article with the upcoming release of Windows Server 2016, you can download evaluation and preview versions from the [TechNet Evaluation Center](https://www.microsoft.com/evalcenter). + +>[!NOTE] +>To evaluate the deployment process for Surface devices or to test the deployment process described in this article with the upcoming release of Windows Server 2016, you can download evaluation and preview versions from the [TechNet Evaluation Center](https://www.microsoft.com/en-us/evalcenter). + #### Windows Deployment Services @@ -63,11 +70,15 @@ Windows Deployment Services (WDS) is leveraged to facilitate network boot capabi The process of creating a reference image should always be performed in a virtual environment. When you use a virtual machine as the platform to build your reference image, you eliminate the need for installation of additional drivers. The drivers for a Hyper-V virtual machine are included by default in the factory Windows 10 image. When you avoid the installation of additional drivers – especially complex drivers that include application components like control panel applications – you ensure that the image created by your reference image process will be as universally compatible as possible. ->**Note:**  A Generation 1 virtual machine is recommended for the preparation of a reference image in a Hyper-V virtual environment. +>[!NOTE] +>A Generation 1 virtual machine is recommended for the preparation of a reference image in a Hyper-V virtual environment. Because customizations are performed by MDT at the time of deployment, the goal of reference image creation is not to perform customization but to increase performance during deployment by reducing the number of actions that need to occur on each deployed device. The biggest action that can slow down an MDT deployment is the installation of Windows updates. When MDT performs this step during the deployment process, it downloads the updates on each deployed device and installs them. By installing Windows updates in your reference image, the updates are already installed when the image is deployed to the device and the MDT update process only needs to install updates that are new since the image was created or are applicable to products other than Windows (for example, Microsoft Office updates). ->**Note:**  Hyper-V is available not only on Windows Server, but also on Windows clients, including Professional and Enterprise editions of Windows 8, Windows 8.1, and Windows 10. Find out more at [Client Hyper-V on Windows 10](https://msdn.microsoft.com/virtualization/hyperv_on_windows/windows_welcome) and [Client Hyper-V on Windows 8 and Windows 8.1](https://technet.microsoft.com/library/hh857623) in the TechNet Library. Hyper-V is also available as a standalone product, Microsoft Hyper-V Server, at no cost. You can download [Microsoft Hyper-V Server 2012 R2](https://www.microsoft.com/evalcenter/evaluate-hyper-v-server-2012-r2) or [Microsoft Hyper-V Server 2016 Technical Preview](https://www.microsoft.com/evalcenter/evaluate-hyper-v-server-technical-preview) from the TechNet Evaluation Center. + +>[!NOTE] +>Hyper-V is available not only on Windows Server, but also on Windows clients, including Professional and Enterprise editions of Windows 8, Windows 8.1, and Windows 10. Find out more at [Client Hyper-V on Windows 10](https://msdn.microsoft.com/virtualization/hyperv_on_windows/windows_welcome) and [Client Hyper-V on Windows 8 and Windows 8.1](https://technet.microsoft.com/library/hh857623) in the TechNet Library. Hyper-V is also available as a standalone product, Microsoft Hyper-V Server, at no cost. You can download [Microsoft Hyper-V Server 2012 R2](https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2012-r2) or [Microsoft Hyper-V Server 2016 Technical Preview](https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-technical-preview) from the TechNet Evaluation Center. + #### Surface firmware and drivers @@ -78,13 +89,15 @@ When you browse to the specific Microsoft Download Center page for your device, In addition to the driver files that help Windows communicate with the hardware components of the Surface device, the .zip file you download will also contain firmware updates. These firmware updates will update the instructions used by the device hardware to communicate between components and Windows. The firmware of Surface device components is updated by installation of specific driver files and thus is installed along with the other drivers during deployment. The firmware of an out-of-date Surface device is thus updated when the device reboots during and after the Windows deployment process. ->**Note:**  Beginning in Windows 10, the drivers for Surface devices are included in the Windows Preinstallation Environment (WinPE). In earlier versions of Windows, specific drivers (like network drivers) had to be imported and configured in MDT for use in WinPE to successfully deploy to Surface devices. +>[!NOTE] +>Beginning in Windows 10, the drivers for Surface devices are included in the Windows Preinstallation Environment (WinPE). In earlier versions of Windows, specific drivers (like network drivers) had to be imported and configured in MDT for use in WinPE to successfully deploy to Surface devices. #### Application installation files In addition to the drivers that are used by Windows to communicate with the Surface device’s hardware and components, you will also need to provide the installation files for any applications that you want to install on your deployed Surface devices. To automate the deployment of an application, you will also need to determine the command-line instructions for that application to perform a silent installation. In this article, the Surface app and Microsoft Office 365 will be installed as examples of application installation. The application installation process can be used with any application with installation files that can be launched from command line. ->**Note:**  If the application files for your application are stored on your organization’s network and will be accessible from your Surface devices during the deployment process, you can deploy that application directly from that network location. To use installation files from a network location, use the **Install Application Without Source Files or Elsewhere on the Network** option in the MDT New Application Wizard, which is described in the [Import applications](#import-applications) section later in this article. +>[!NOTE] +>If the application files for your application are stored on your organization’s network and will be accessible from your Surface devices during the deployment process, you can deploy that application directly from that network location. To use installation files from a network location, use the **Install Application Without Source Files or Elsewhere on the Network** option in the MDT New Application Wizard, which is described in the [Import applications](#import-applications) section later in this article. #### Microsoft Surface Deployment Accelerator @@ -96,7 +109,8 @@ Before you can configure the deployment environment with Windows images, drivers To boot from the network with either your reference virtual machines or your Surface devices, your deployment environment must include a Windows Server environment. The Windows Server environment is required to install WDS and the WDS PXE server. Without PXE support, you will be required to create physical boot media, such as a USB stick to perform your deployment – MDT and Windows ADK will still be required, but Windows Server is not required. Both MDT and Windows ADK can be installed on a Windows client and perform a Windows deployment. ->**Note:**  To download deployment tools directly to Windows Server, you must disable [Internet Explorer Enhanced Security Configuration](https://technet.microsoft.com/library/dd883248). On Windows Server 2012 R2, this can be performed directly through the **Server Manager** option on the **Local Server** tab. In the **Properties** section, **IE Enhanced Security Configuration** can be found on the right side. You may also need to enable the **File Download** option for the **Internet** zone through the **Security** tab of **Internet Options**. +>[!NOTE] +>To download deployment tools directly to Windows Server, you must disable [Internet Explorer Enhanced Security Configuration](https://technet.microsoft.com/library/dd883248). On Windows Server 2012 R2, this can be performed directly through the **Server Manager** option on the **Local Server** tab. In the **Properties** section, **IE Enhanced Security Configuration** can be found on the right side. You may also need to enable the **File Download** option for the **Internet** zone through the **Security** tab of **Internet Options**. #### Install Windows Deployment Services @@ -112,17 +126,20 @@ After the WDS role is installed, you need to configure WDS. You can begin the co *Figure 2. Configure PXE response for Windows Deployment Services* ->**Note:**  Before you configure WDS make sure you have a local NTFS volume that is not your system drive (C:) available for use with WDS. This volume is used to store WDS boot images, deployment images, and configuration. +>[!NOTE] +>Before you configure WDS make sure you have a local NTFS volume that is not your system drive (C:) available for use with WDS. This volume is used to store WDS boot images, deployment images, and configuration. Using the Windows Deployment Services Configuration Wizard, configure WDS to fit the needs of your organization. You can find detailed instructions for the installation and configuration of WDS at [Windows Deployment Services Getting Started Guide for Windows Server 2012](https://technet.microsoft.com/library/jj648426). On the **PXE Server Initial Settings** page, be sure to configure WDS so that it will respond to your Surface devices when they attempt to boot from the network. If you have already installed WDS or need to change your PXE server response settings, you can do so on the **PXE Response** tab of the **Properties** of your server in the Windows Deployment Services Management Console. ->**Note:**  You will add boot images to WDS when you update your boot images in MDT. You do not need to add boot images or Windows images to WDS when you configure the role. +>[!NOTE] +>You will add boot images to WDS when you update your boot images in MDT. You do not need to add boot images or Windows images to WDS when you configure the role. #### Install Windows Assessment and Deployment Kit To install Windows ADK, run the Adksetup.exe file that you downloaded from [Download the Windows ADK](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit#adkwin10). Windows ADK must be installed before MDT. You should always download and use the most recent version of Windows ADK. A new version is usually released corresponding with each new version of Windows. ->**Note:**  You can also use the Adksetup.exe file to download the Windows ADK installation files locally for use on other devices. +>[!NOTE] +>You can also use the Adksetup.exe file to download the Windows ADK installation files locally for use on other devices. When you get to the **Select the features you want to install** page, you only need to select the **Deployment Tools** and **Windows Preinstallation Environment (Windows PE)** check boxes to deploy Windows 10 using MDT, as shown in Figure 3. @@ -170,13 +187,16 @@ To create the deployment share, follow these steps: * **Path** – Specify a local folder where the deployment share will reside, and then click **Next**. - >**Note:**  Like the WDS remote installation folder, it is recommended that you put this folder on an NTFS volume that is not your system volume. + >[!NOTE] + >Like the WDS remote installation folder, it is recommended that you put this folder on an NTFS volume that is not your system volume. * **Share** – Specify a name for the network share under which the local folder specified on the **Path** page will be shared, and then click **Next**. - >**Note:**  The share name cannot contain spaces. + >[!NOTE] + >The share name cannot contain spaces. - >**Note:**  You can use a Dollar Sign (**$**) to hide your network share so that it will not be displayed when users browse the available network shares on the server in File Explorer. + >[!NOTE] + >You can use a Dollar Sign (**$**) to hide your network share so that it will not be displayed when users browse the available network shares on the server in File Explorer. * **Descriptive Name** – Enter a descriptive name for the network share (this descriptive name can contain spaces), and then click **Next**. The descriptive name will be the name of the folder as it appears in the Deployment Workbench. * **Options** – You can accept the default options on this page. Click **Next**. @@ -189,7 +209,8 @@ To create the deployment share, follow these steps: To secure the deployment share and prevent unauthorized access to the deployment resources, you can create a local user on the deployment share host and configure permissions for that user to have read-only access to the deployment share only. It is especially important to secure access to the deployment share if you intend to automate the logon to the deployment share during the deployment boot process. By automating the logon to the deployment share during the boot of deployment media, the credentials for that logon are stored in plaintext in the bootstrap.ini file on the boot media. ->**Note:**  If you intend to capture images (such as the reference image) with this user, the user must also have write permission on the Captures folder in the MDT deployment share. +>[!NOTE] +>If you intend to capture images (such as the reference image) with this user, the user must also have write permission on the Captures folder in the MDT deployment share. You now have an empty deployment share that is ready for you to add the resources that will be required for reference image creation and deployment to Surface devices. @@ -197,7 +218,8 @@ You now have an empty deployment share that is ready for you to add the resource The first resources that are required to perform a deployment of Windows are the installation files from Windows 10 installation media. Even if you have an already prepared reference image, you still need to supply the unaltered installation files from your installation media. The source of these files can be a physical disk, or it can be an ISO file like the download from the Volume Licensing Service Center (VLSC). ->**Note:**  A 64-bit operating system is required for compatibility with Surface Pro 4, Surface Book, Surface Pro 3, and Surface 3. +>[!NOTE] +>A 64-bit operating system is required for compatibility with Surface Studio, Surface Pro 4, Surface Book, Surface Pro 3, and Surface 3. To import Windows 10 installation files, follow these steps: @@ -234,7 +256,8 @@ Now that you’ve imported the installation files from the installation media, y As described in the [Deployment tools](#deployment-tools) section of this article, the goal of creating a reference image is to keep the Windows environment as simple as possible while performing tasks that would be common to all devices being deployed. You should now have a basic MDT deployment share configured with default options and a set of unaltered, factory installation files for Windows 10. This simple configuration is perfect for reference image creation because the deployment share contains no applications or drivers to interfere with the process. ->**Note:**  For some organizations keeping a simple deployment share without applications or drivers is the simplest solution for creation of reference images. You can easily connect to more than one deployment share from a single Deployment Workbench and copy images from a simple, reference-image-only deployment share to a production deployment share complete with drivers and applications. +>[!NOTE] +>For some organizations keeping a simple deployment share without applications or drivers is the simplest solution for creation of reference images. You can easily connect to more than one deployment share from a single Deployment Workbench and copy images from a simple, reference-image-only deployment share to a production deployment share complete with drivers and applications. To create the reference image task sequence, follow these steps: @@ -246,13 +269,15 @@ To create the reference image task sequence, follow these steps: 2. The New Task Sequence Wizard presents a series of steps, as follows: * **General Settings** – Enter an identifier for the reference image task sequence in the **Task Sequence ID** field, a name for the reference image task sequence in the **Task Sequence Name** field, and any comments for the reference image task sequence in the **Task Sequence Comments** field, and then click **Next**. - >**Note:**  The **Task Sequence ID** field cannot contain spaces and can be a maximum of 16 characters. + >[!NOTE] + >The **Task Sequence ID** field cannot contain spaces and can be a maximum of 16 characters. * **Select Template** – Select **Standard Client Task Sequence** from the drop-down menu, and then click **Next**. * **Select OS** – Navigate to and select the Windows 10 image you imported with the Windows 10 installation files, and then click **Next**. * **Specify Product Key** – Click **Do Not Specify a Product Key at This Time**, and then click **Next**. * **OS Settings** – Enter a name, organization, and home page URL in the **Full Name**, **Organization**, and **Internet Explorer Home Page** fields, and then click **Next**. * **Admin Password** – Click **Use the Specified Local Administrator Password**, enter a password in the provided field, and then click **Next**. - >**Note:**  During creation of a reference image, any specified Administrator password will be automatically removed when the image is prepared for capture with Sysprep. During reference image creation, a password is not necessary, but is recommended to remain in line with best practices for production deployment environments. + >[!NOTE] + >During creation of a reference image, any specified Administrator password will be automatically removed when the image is prepared for capture with Sysprep. During reference image creation, a password is not necessary, but is recommended to remain in line with best practices for production deployment environments. * **Summary** – Review the specified configuration on this page before you click **Next** to begin creation of the task sequence. * **Progress** – While the task sequence is created, a progress bar is displayed on this page. * **Confirmation** – When the task sequence creation completes, the success of the process is displayed on this page. Click **Finish** to complete the New Task Sequence Wizard. @@ -282,7 +307,8 @@ To update the MDT boot media, follow these steps: 2. Use the Update Deployment Share Wizard to create boot images with the following process: * **Options** – Click **Completely Regenerate the Boot Images**, and then click **Next**. - >**Note:**  Because this is the first time the newly created deployment share has been updated, new boot images will be generated regardless of which option you select on the **Options** page. + >[!NOTE] + >Because this is the first time the newly created deployment share has been updated, new boot images will be generated regardless of which option you select on the **Options** page. * **Summary** – Review the specified options on this page before you click **Next** to begin generation of boot images. * **Progress** – While the boot images are being generated, a progress bar is displayed on this page. * **Confirmation** – When the boot images have been generated, the success of the process is displayed on this page. Click **Finish** to complete the Update Deployment Share Wizard. @@ -319,17 +345,20 @@ To import the MDT boot media into WDS for PXE boot, follow these steps: * **Summary** – Review your selections to import a boot image into WDS, and then click **Next**. * **Task Progress** – A progress bar is displayed as the selected image file is copied into the WDS remote installation folder. Click **Finish** when the task is complete to close the Add Image Wizard. ->**Note:**  Only the 32-bit boot image, LiteTouchPE_x86.wim, is required to boot from BIOS devices, including Generation 1 Hyper-V virtual machines like the reference virtual machine. +>[!NOTE] +>Only the 32-bit boot image, LiteTouchPE_x86.wim, is required to boot from BIOS devices, including Generation 1 Hyper-V virtual machines like the reference virtual machine. If your WDS configuration is properly set up to respond to PXE clients, you should now be able to boot from the network with any device with a network adapter properly configured for network boot (PXE). ->**Note:**  If your WDS server resides on the same server as DHCP or in a different subnet than the devices you are attempting to boot, additional configuration may be required. For more information, see [Managing Network Boot Programs](https://technet.microsoft.com/library/cc732351). +>[!NOTE] +>If your WDS server resides on the same server as DHCP or in a different subnet than the devices you are attempting to boot, additional configuration may be required. For more information, see [Managing Network Boot Programs](https://technet.microsoft.com/library/cc732351). ### Deploy and capture a reference image Your deployment environment is now set up to create a reference image for Windows 10 complete with Windows Updates. ->**Note:**  You cannot install version updates (such as Windows 10, Version 1511) in a reference image. To create a reference image with a new version of Windows, you must use installation files from that version of Windows. When you install a version update in Windows, it effectively performs an upgrade to a new version of Windows, and upgraded installations of Windows cannot be prepared for deployment with Sysprep.

+>[!NOTE] +>You cannot install version updates (such as Windows 10, Version 1511) in a reference image. To create a reference image with a new version of Windows, you must use installation files from that version of Windows. When you install a version update in Windows, it effectively performs an upgrade to a new version of Windows, and upgraded installations of Windows cannot be prepared for deployment with Sysprep.

By using a fully automated task sequence in an MDT deployment share dedicated to reference image creation, you can greatly reduce the time and effort required to create new reference images and it is the best way to ensure that your organization is ready for feature updates and new versions of Windows 10. You can now boot from the network with a virtual machine to run the prepared task sequence and generate a reference image. When you prepare your virtual machine in Hyper-V for reference image creation, consider the following: @@ -376,7 +405,8 @@ As the task sequence processes the deployment, it will automatically perform the * Reboot into WinPE * Capture an image of the Windows 10 environment and store it in the Captures folder in the MDT deployment share ->**Note:**  The Windows Update process can take some time to complete as it searches the Internet for updates, downloads those updates, and then installs them. By performing this process now, in the reference environment, you eliminate the need to perform these tasks on each deployed device and significantly reduce the amount of time and bandwidth required to perform your deployment. +>[!NOTE] +>The Windows Update process can take some time to complete as it searches the Internet for updates, downloads those updates, and then installs them. By performing this process now, in the reference environment, you eliminate the need to perform these tasks on each deployed device and significantly reduce the amount of time and bandwidth required to perform your deployment. When the task sequence completes, your virtual machine will be off and a new reference image complete with updates will be ready in your MDT deployment share for you to import it and prepare your deployment environment for deployment to Surface devices. @@ -401,7 +431,8 @@ To import the reference image for deployment, use the following steps: * **Confirmation** – When the import process completes, the success of the process is displayed on this page. Click **Finish** to complete the Import Operating System Wizard. 3. Expand the folder in which you imported the image to verify that the import completed successfully. ->**Note:**  You can import the reference image into the same deployment share that you used to create your reference image, or you could import the reference image into a new deployment share for deployment to your Surface devices. If you chose to create a new deployment share for deployment of your reference image, remember that you still need to import a full set of installation files from installation media. +>[!NOTE] +>You can import the reference image into the same deployment share that you used to create your reference image, or you could import the reference image into a new deployment share for deployment to your Surface devices. If you chose to create a new deployment share for deployment of your reference image, remember that you still need to import a full set of installation files from installation media. Now that your updated reference image is imported, it is time to prepare your deployment environment for deployment to Surface devices complete with drivers, applications, and automation. @@ -516,7 +547,8 @@ To create the deployment task sequence, follow these steps: 1. In the Deployment Workbench, under your Deployment Share, right-click the **Task Sequences** folder, and then click **New Task Sequence** to start the New Task Sequence Wizard. 2. Use these steps to create the deployment task sequence with the New Task Sequence Wizard: * **General Settings** – Enter an identifier for the deployment task sequence in the **Task Sequence ID** field, a name for the deployment task sequence in the **Task Sequence Name** field, and any comments for the deployment task sequence in the **Task Sequence Comments** field, then click **Next**. - >**Note:**  The **Task Sequence ID** field cannot contain spaces and can be a maximum of 16 characters. + >[!NOTE] + >The **Task Sequence ID** field cannot contain spaces and can be a maximum of 16 characters. * **Select Template** – Click **Standard Client Task Sequence** from the drop-down menu, and then click **Next**. * **Select OS** – Navigate to and select the reference image that you imported, and then click **Next**. * **Specify Product Key** – Select the product key entry that fits your organization's licensing system. The **Do Not Specify a Product Key at This Time** option can be used for systems that will be activated via Key Management Services (KMS) or Active Directory Based Activation (ADBA). A product key can be specified specifically if your organization uses Multiple Activation Keys (MAK). Click **Next**. @@ -553,7 +585,7 @@ After the task sequence is created it can be modified for increased automation, ![Configure a new Set Task Sequence Variable step in the deployment task sequence](images\surface-deploymdt-fig22.png "Configure a new Set Task Sequence Variable step in the deployment task sequence") - Figure 22. Configure a new Set Task Sequence Variable step in the deployment task sequence + *Figure 22. Configure a new Set Task Sequence Variable step in the deployment task sequence* 15. Select the **Inject Drivers** step, the next step in the task sequence. 16. On the **Properties** tab of the **Inject Drivers** step (as shown in Figure 23), configure the following options: @@ -727,13 +759,15 @@ To import the updated MDT boot media into WDS for PXE boot, follow these steps: * **Summary** – Review your selections to import a boot image into WDS, and then click **Next**. * **Task Progress** – A progress bar is displayed as the selected image file is copied into the WDS remote installation folder. Click **Finish** when the task is complete to close the Add Image Wizard. ->**Note:**  Although it is a best practice to replace and update the boot images in WDS whenever the MDT deployment share is updated, for deployment to Surface devices the 32-bit boot image, LiteTouchPE_x86.wim, is not required. Only the 64-bit boot image is required for 64-bit UEFI devices. +>[!NOTE] +>Although it is a best practice to replace and update the boot images in WDS whenever the MDT deployment share is updated, for deployment to Surface devices the 32-bit boot image, LiteTouchPE_x86.wim, is not required. Only the 64-bit boot image is required for 64-bit UEFI devices. ### Deploy Windows to Surface With all of the automation provided by the deployment share rules and task sequence, performing the deployment on each Surface device becomes as easy as a single touch. ->**Note:**  For the deployment to require only a single touch, the Surface devices must be connected to a keyboard, connected to the network with a Microsoft Surface USB Ethernet Adapter or Surface Dock, and configured with PXE boot as the first boot option, as shown in Figure 25. +>[!NOTE] +>For the deployment to require only a single touch, the Surface devices must be connected to a keyboard, connected to the network with a Microsoft Surface USB Ethernet Adapter or Surface Dock, and configured with PXE boot as the first boot option, as shown in Figure 25. ![Set boot priority for PXE boot](images\surface-deploymdt-fig25.png "Set boot priority for PXE boot") @@ -750,7 +784,8 @@ On a properly configured Surface device, simply turn on the device and press Ent * Windows Update will run, installing any new Windows Updates or updates for installed applications, like Microsoft Office * The task sequence will complete silently and log out of the device ->**Note:**  For Surface devices not configured to boot to the network as the first boot option, you can hold Volume Down and press Power to boot the system immediately to a USB or network device. +>[!NOTE] +>For Surface devices not configured to boot to the network as the first boot option, you can hold Volume Down and press Power to boot the system immediately to a USB or network device. The resulting configuration is a Surface device that is logged out and ready for an end user to enter their credentials, log on, and get right to work. The applications and drivers they need are already installed and up to date. diff --git a/devices/surface/enroll-and-configure-surface-devices-with-semm.md b/devices/surface/enroll-and-configure-surface-devices-with-semm.md index 1140eb46c7..50ecdc81a9 100644 --- a/devices/surface/enroll-and-configure-surface-devices-with-semm.md +++ b/devices/surface/enroll-and-configure-surface-devices-with-semm.md @@ -19,7 +19,8 @@ For a more high-level overview of SEMM, see [Microsoft Surface Enterprise Manage The tool used to create SEMM packages is Microsoft Surface UEFI Configurator. You can download Microsoft Surface UEFI Configurator from the [Surface Tools for IT](https://www.microsoft.com/download/details.aspx?id=46703) page in the Microsoft Download Center. Run the Microsoft Surface UEFI Configurator Windows Installer (.msi) file to start the installation of the tool. When the installer completes, find Microsoft Surface UEFI Configurator in the All Apps section of your Start menu. ->**Note**:  Microsoft Surface UEFI Configurator is supported only on Windows 10. +>[!NOTE] +>Microsoft Surface UEFI Configurator is supported only on Windows 10. ## Create a Surface UEFI configuration package @@ -67,7 +68,8 @@ To create a Surface UEFI configuration package, follow these steps: 13. In the **Save As** dialog box, specify a name for the Surface UEFI configuration package, browse to the location where you would like to save the file, and then click **Save**. 14. When the package is created and saved, the **Successful** page is displayed. ->**Note**:  Record the certificate thumbprint characters that are displayed on this page, as shown in Figure 6. You will need these characters to confirm enrollment of new Surface devices in SEMM. Click **End** to complete package creation and close Microsoft Surface UEFI Configurator. +>[!NOTE] +>Record the certificate thumbprint characters that are displayed on this page, as shown in Figure 6. You will need these characters to confirm enrollment of new Surface devices in SEMM. Click **End** to complete package creation and close Microsoft Surface UEFI Configurator. ![Display of certificate thumbprint characters](images\surface-semm-enroll-fig6.png "Display of certificate thumbprint characters") @@ -75,7 +77,8 @@ To create a Surface UEFI configuration package, follow these steps: Now that you have created your Surface UEFI configuration package, you can enroll or configure Surface devices. ->**Note**:  When a Surface UEFI configuration package is created, a log file is created on the desktop with details of the configuration package settings and options. +>[!NOTE] +>When a Surface UEFI configuration package is created, a log file is created on the desktop with details of the configuration package settings and options. ## Enroll a Surface device in SEMM When the Surface UEFI configuration package is executed, the SEMM certificate and Surface UEFI configuration files are staged in the firmware storage of the Surface device. When the Surface device reboots, Surface UEFI processes these files and begins the process of applying the Surface UEFI configuration or enrolling the Surface device in SEMM, as shown in Figure 7. diff --git a/devices/surface/ethernet-adapters-and-surface-device-deployment.md b/devices/surface/ethernet-adapters-and-surface-device-deployment.md index 78b995935a..3a5739d950 100644 --- a/devices/surface/ethernet-adapters-and-surface-device-deployment.md +++ b/devices/surface/ethernet-adapters-and-surface-device-deployment.md @@ -55,7 +55,8 @@ To boot a Surface device from an alternative boot device, follow these steps: 3. Press and release the **Power** button. 4. After the system begins to boot from the USB stick or Ethernet adapter, release the **Volume Down** button. ->**Note:**  In addition to an Ethernet adapter, a keyboard must also be connected to the Surface device to enter the preinstallation environment and navigate the deployment wizard. +>[!NOTE] +>In addition to an Ethernet adapter, a keyboard must also be connected to the Surface device to enter the preinstallation environment and navigate the deployment wizard.   For Windows 10, version 1511 and later – including the Windows Assessment and Deployment Kit (Windows ADK) for Windows 10, version 1511 – the drivers for Microsoft Surface Ethernet Adapters are present by default. If you are using a deployment solution that uses Windows Preinstallation Environment (WinPE), like the Microsoft Deployment Toolkit, and booting from the network with PXE, ensure that your deployment solution is using the latest version of the Windows ADK. diff --git a/devices/surface/index.md b/devices/surface/index.md index 3bd0c700bd..7a352fb536 100644 --- a/devices/surface/index.md +++ b/devices/surface/index.md @@ -33,7 +33,9 @@ For more information on planning for, deploying, and managing Surface devices in | [Change history for Surface documentation](change-history-for-surface.md) | This topic lists new and updated topics in the Surface documentation library. | +## Learn more +[Certifying Surface Pro 4 and Surface Book as standard devices at Microsoft](https://www.microsoft.com/itshowcase/Article/Content/849/Certifying-Surface-Pro-4-and-Surface-Book-as-standard-devices-at-Microsoft) diff --git a/devices/surface/manage-surface-dock-firmware-updates.md b/devices/surface/manage-surface-dock-firmware-updates.md index 1335d5a808..70a884e151 100644 --- a/devices/surface/manage-surface-dock-firmware-updates.md +++ b/devices/surface/manage-surface-dock-firmware-updates.md @@ -20,9 +20,12 @@ The Surface Dock provides external connectivity to Surface devices through a sin Like the firmware for Surface devices, firmware for Surface Dock is also contained within a downloaded driver that is visible in Device Manager. This driver stages the firmware update files on the Surface device. When a Surface Dock is connected and the driver is loaded, the newer version of the firmware staged by the driver is detected and firmware files are copied to the Surface Dock. The Surface Dock then begins a two-phase process to apply the firmware internally. Each phase requires the Surface Dock to be disconnected from the Surface device before the firmware is applied. The driver copies the firmware into the dock, but only applies it when the user disconnects the Surface device from the Surface Dock. This ensures that there are no disruptions because the firmware is only applied when the user leaves their desk with the device. ->**Note:**  You can learn more about the firmware update process for Surface devices and how firmware is updated through driver installation at the following links:
-- [How to manage and update Surface drivers and firmware](https://technet.microsoft.com/mt697551) from Microsoft Mechanics -- [Windows Update Makes Surface Better](https://blogs.windows.com/devices/2014/04/15/windows-update-makes-surface-better/#0MqzmYgshCDaJpvK.97) on the Microsoft Devices Blog + +>[!NOTE] +>You can learn more about the firmware update process for Surface devices and how firmware is updated through driver installation at the following links: +>- [How to manage and update Surface drivers and firmware](https://technet.microsoft.com/mt697551) from Microsoft Mechanics +>- [Windows Update Makes Surface Better](https://go.microsoft.com/fwlink/p/?LinkId=785354) on the Microsoft Devices Blog +   @@ -70,7 +73,8 @@ There are three methods you can use to update the firmware of the Surface Dock: Windows Update is the method that most users will use. The drivers for the Surface Dock are downloaded automatically from Windows Update and the dock update process is initiated without additional user interaction. The two-phase dock update process described earlier occurs in the background as the user connects and disconnects the Surface Dock during normal use. ->**Note:**  The driver version that is displayed in Device Manager may be different from the firmware version that the Surface Dock is using. +>[!NOTE] +>The driver version that is displayed in Device Manager may be different from the firmware version that the Surface Dock is using.   @@ -81,8 +85,9 @@ This method is used mostly in environments where Surface device drivers and firm For more information about how to deploy MSI packages see [Create and deploy an application with System Center Configuration Manager](https://docs.microsoft.com/sccm/apps/get-started/create-and-deploy-an-application). ->**Note:**  When drivers are installed through Windows Update or the MSI package, registry keys are added that indicate the version of firmware installed on the Surface Dock and contained within the Surface Dock driver. These registry keys can be found in:

- **HLKM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\WUDF\\Services\\SurfaceDockFwUpdate\\Parameters** +>[!NOTE] +>When drivers are installed through Windows Update or the MSI package, registry keys are added that indicate the version of firmware installed on the Surface Dock and contained within the Surface Dock driver. These registry keys can be found in: +> **HLKM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\WUDF\\Services\\SurfaceDockFwUpdate\\Parameters** Firmware status is displayed for both the main chipset (displayed as **Component10**) and the DisplayPort chipset (displayed as **Component20**). For each chipset there are four keys, where *xx* is **10** or **20** corresponding to each chipset: @@ -94,7 +99,8 @@ Firmware status is displayed for both the main chipset (displayed as **Component - **Component*xx*FirmwareUpdateStatusRejectReason** – This key changes as the firmware update is processed. It should result in 0 after the successful installation of Surface Dock firmware. ->**Note:**  These registry keys are not present unless you have installed updated Surface Dock drivers through Windows Update or MSI deployment. +>[!NOTE] +>These registry keys are not present unless you have installed updated Surface Dock drivers through Windows Update or MSI deployment.   diff --git a/devices/surface/manage-surface-uefi-settings.md b/devices/surface/manage-surface-uefi-settings.md index a34215254f..bbf546f125 100644 --- a/devices/surface/manage-surface-uefi-settings.md +++ b/devices/surface/manage-surface-uefi-settings.md @@ -12,7 +12,7 @@ author: miladCA #Manage Surface UEFI settings -Current and future generations of Surface devices, including Surface Pro 4 and Surface Book, use a unique UEFI firmware engineered by Microsoft specifically for these devices. This firmware allows for significantly greater control of the device’s operation over firmware versions in earlier generation Surface devices, including the support for touch, mouse, and keyboard operation. By using the Surface UEFI settings you can easily enable or disable internal devices or components, configure security to protect UEFI settings from being changed, and adjust the Surface device boot settings. +Current and future generations of Surface devices, including Surface Pro 4, Surface Book, and Surface Studio, use a unique UEFI firmware engineered by Microsoft specifically for these devices. This firmware allows for significantly greater control of the device’s operation over firmware versions in earlier generation Surface devices, including the support for touch, mouse, and keyboard operation. By using the Surface UEFI settings you can easily enable or disable internal devices or components, configure security to protect UEFI settings from being changed, and adjust the Surface device boot settings. >[!NOTE] >Surface Pro 3, Surface 3, Surface Pro 2, Surface 2, Surface Pro, and Surface do not use the Surface UEFI and instead use firmware provided by third-party manufacturers, such as AMI. diff --git a/devices/surface/microsoft-surface-data-eraser.md b/devices/surface/microsoft-surface-data-eraser.md index b1f6626197..ad68711a00 100644 --- a/devices/surface/microsoft-surface-data-eraser.md +++ b/devices/surface/microsoft-surface-data-eraser.md @@ -20,17 +20,19 @@ Find out how the Microsoft Surface Data Eraser tool can help you securely wipe d Compatible Surface devices include: -- Surface Book +- Surface Studio -- Surface Pro 4 +- Surface Book -- Surface Pro3 +- Surface Pro 4 -- Surface 3 +- Surface Pro3 -- Surface 3 LTE +- Surface 3 -- Surface Pro 2 +- Surface 3 LTE + +- Surface Pro 2 Some scenarios where Microsoft Surface Data Eraser can be helpful include: @@ -42,9 +44,11 @@ Some scenarios where Microsoft Surface Data Eraser can be helpful include: - Standard practice when performing reimaging for devices used with sensitive data ->**Note:**  Third-party devices, Surface devices running Windows RT (including Surface and Surface 2), and Surface Pro are not compatible with Microsoft Surface Data Eraser. +>[!NOTE] +>Third-party devices, Surface devices running Windows RT (including Surface and Surface 2), and Surface Pro are not compatible with Microsoft Surface Data Eraser. ->**Note:**  Because the ability to boot to USB is required to run Microsoft Surface Data Eraser, if the device is not configured to boot from USB or if the device is unable to boot or POST successfully, the Microsoft Surface Data Eraser tool will not function. +>[!NOTE] +>Because the ability to boot to USB is required to run Microsoft Surface Data Eraser, if the device is not configured to boot from USB or if the device is unable to boot or POST successfully, the Microsoft Surface Data Eraser tool will not function. ## How to create a Microsoft Surface Data Eraser USB stick @@ -71,7 +75,9 @@ After the creation tool is installed, follow these steps to create a Microsoft S *Figure 1. Start the Microsoft Surface Data Eraser tool* 4. Select the USB drive of your choice from the **USB Thumb Drive Selection** page as shown in Figure 2, and then click **Start** to begin the USB creation process. The drive you select will be formatted and any existing data on this drive will be lost. - >**Note:**  If the Start button is disabled, check that your removable drive has a total capacity of at least 4 GB. + + >[!NOTE] + >If the Start button is disabled, check that your removable drive has a total capacity of at least 4 GB.   ![USB thumb drive selection](images/dataeraser-usb-selection.png "USB thumb drive selection") diff --git a/devices/surface/microsoft-surface-deployment-accelerator.md b/devices/surface/microsoft-surface-deployment-accelerator.md index 4358e9b005..cc2236665f 100644 --- a/devices/surface/microsoft-surface-deployment-accelerator.md +++ b/devices/surface/microsoft-surface-deployment-accelerator.md @@ -62,7 +62,8 @@ When the SDA completes, you can use the deployment share to deploy over the netw You can modify the task sequence in the MDT Deployment Workbench to [include your own apps](https://technet.microsoft.com/itpro/windows/deploy/deploy-a-windows-10-image-using-mdt#sec04), or to [pause the automated installation routine](https://blogs.technet.microsoft.com/mniehaus/2009/06/26/mdt-2010-new-feature-3-suspend-and-resume-a-lite-touch-task-sequence/). While the installation is paused, you can make changes to customize your reference image. After the image is captured, you can configure a deployment task sequence and distribute this custom configuration by using the same network boot capabilities as before. ->**Note:**  With SDA v1.9.0258, Surface Pro 3, Surface Pro 4, and Surface Book are supported for Windows 10 deployment, and Surface Pro 3 is supported for Windows 8.1 deployment. +>[!NOTE] +>With SDA v1.9.0258, Surface Pro 3, Surface Pro 4, and Surface Book are supported for Windows 10 deployment, and Surface Pro 3 is supported for Windows 8.1 deployment.   @@ -77,15 +78,18 @@ For environments where the SDA server will not be able to connect to the Interne You can find a full list of available driver downloads at [Download the latest firmware and drivers for Surface devices](deploy-the-latest-firmware-and-drivers-for-surface-devices.md) ->**Note:**  Downloaded files do not need to be extracted. The downloaded files can be left as .zip files as long as they are stored in one folder. +>[!NOTE] +>Downloaded files do not need to be extracted. The downloaded files can be left as .zip files as long as they are stored in one folder. ->**Note:**  Using files from a local directory is not supported when including Office 365 in your deployment share. To include Office 365 in your deployment share, select the **Download from the Internet** check box. +>[!NOTE] +>Using files from a local directory is not supported when including Office 365 in your deployment share. To include Office 365 in your deployment share, select the **Download from the Internet** check box. ## Changes and updates SDA is periodically updated by Microsoft. For instructions on how these features are used, see [Step-by-Step: Microsoft Surface Deployment Accelerator](https://technet.microsoft.com/itpro/surface/step-by-step-surface-deployment-accelerator). ->**Note:**  To install a newer version of SDA on a server with a previous version of SDA installed, you only need to run the installation file for the new version of SDA. The installer will handle the upgrade process automatically. If you used SDA to create a deployment share prior to the upgrade and want to use new features of the new version of SDA, you will need to create a new deployment share. SDA does not support upgrades of an existing deployment share. +>[!NOTE] +>To install a newer version of SDA on a server with a previous version of SDA installed, you only need to run the installation file for the new version of SDA. The installer will handle the upgrade process automatically. If you used SDA to create a deployment share prior to the upgrade and want to use new features of the new version of SDA, you will need to create a new deployment share. SDA does not support upgrades of an existing deployment share.   ### Version 1.96.0405 This version of SDA adds support for the following: diff --git a/devices/surface/step-by-step-surface-deployment-accelerator.md b/devices/surface/step-by-step-surface-deployment-accelerator.md index 914ae3a4d1..492a5e773c 100644 --- a/devices/surface/step-by-step-surface-deployment-accelerator.md +++ b/devices/surface/step-by-step-surface-deployment-accelerator.md @@ -39,7 +39,8 @@ The tool installs in the SDA program group, as shown in Figure 2. *Figure 2. The SDA program group and icon* ->**Note:**  At this point the tool has not yet prepared any deployment environment or downloaded any materials from the Internet. +>[!NOTE] +>At this point, the tool has not yet prepared any deployment environment or downloaded any materials from the Internet.   @@ -48,7 +49,8 @@ The tool installs in the SDA program group, as shown in Figure 2. The following steps show you how to create a deployment share for Windows 10 that supports Surface 3, Surface Pro 3, Surface Pro 4, Surface Book, the Surface Firmware Tool, the Surface Asset Tag Tool, and Office 365. As you follow the steps below, make the selections that are applicable for your organization. For example, you could choose to deploy Windows 10 to Surface Book only, without any of the Surface apps. ->**Note:**  SDA lets you create deployment shares for both Windows 8.1 and Windows 10 deployments, but you can only create a single deployment share at a time. Therefore, to create both Windows 8.1 and Windows 10 deployment shares, you will need to run the tool twice. +>[!NOTE] +>SDA lets you create deployment shares for both Windows 8.1 and Windows 10 deployments, but you can only create a single deployment share at a time. Therefore, to create both Windows 8.1 and Windows 10 deployment shares, you will need to run the tool twice.   @@ -58,12 +60,14 @@ The following steps show you how to create a deployment share for Windows 10 th 3. On the **Verify System** page, the SDA wizard verifies the prerequisites required for an SDA deployment share. This process also checks for the presence of the Windows Assessment and Deployment Kit (Windows ADK) for Windows 10 and the Microsoft Deployment Toolkit (MDT) 2013 Update 2. If these tools are not detected, they are downloaded and installed automatically. Click **Next** to continue. - >**Note:**  As of SDA version 1.96.0405, SDA will install only the components of the Windows ADK that are required for deployment, as follows: - * Deployment tools - * User State Migration Tool (USMT) - * Windows Preinstallation Environment (WinPE)

+ >[!NOTE] + >As of SDA version 1.96.0405, SDA will install only the components of the Windows ADK that are required for deployment, as follows: + > * Deployment tools + > * User State Migration Tool (USMT) + > * Windows Preinstallation Environment (WinPE)

- >**Note:**  As of SDA version 1.96.0405, SDA will install and use MDT 2013 Update 2. Earlier versions of SDA are compatible only with MDT 2013 Update 1. + >[!NOTE] + >As of SDA version 1.96.0405, SDA will install and use MDT 2013 Update 2. Earlier versions of SDA are compatible only with MDT 2013 Update 1. 4. On the **Windows 8.1** page, to create a Windows 10 deployment share, do not select the **Would you like to support Windows 8.1** check box. Click **Next** to continue. @@ -93,7 +97,8 @@ The following steps show you how to create a deployment share for Windows 10 th *Figure 4. Selecting Surface Firmware Tool requires Surface Pro 3 drivers* - >**Note:**  You cannot select both Surface 3 and Surface 3 LTE models at the same time. + >[!NOTE] + >You cannot select both Surface 3 and Surface 3 LTE models at the same time. 7. On the **Summary** page confirm your selections and click **Finish** to begin the creation of your deployment share. The process can take several minutes as files are downloaded, the tools are installed, and the deployment share is created. While the SDA scripts are creating your deployment share, an **Installation Progress** window will be displayed, as shown in Figure 5. A typical SDA process includes: @@ -125,17 +130,21 @@ The following steps show you how to create a deployment share for Windows 10 th If you are unable to connect to the Internet with your deployment server, or if you want to download the Surface drivers and apps separately, you can specify a local source for the driver an app files at the time of deployment share creation. On the **Configure** page of the SDA wizard, select the **Copy from a Local Directory** check box, as shown in Figure 6. The **Download from the Internet** check box will be automatically deselected. Enter the folder location where you have placed the driver and app files in the **Local Path** field, as shown in Figure 6. ->**Note:**  All of the downloaded driver and applications files must be located in the same folder. If a required driver or application file is missing from the selected folder when you click **Next**, a warning is displayed and the wizard will not proceed to the next step. +>[!NOTE] +>All of the downloaded driver and applications files must be located in the same folder. If a required driver or application file is missing from the selected folder when you click **Next**, a warning is displayed and the wizard will not proceed to the next step. ->**Note:**  The driver and app files do not need to be extracted from the downloaded .zip files. +>[!NOTE] +>The driver and app files do not need to be extracted from the downloaded .zip files. ->**Note:**  Including Office 365 in your deployment share requires an Internet connection and cannot be performed if you use local files. +>[!NOTE] +>Including Office 365 in your deployment share requires an Internet connection and cannot be performed if you use local files. ![Specify Surface driver and app files](images/sdasteps-fig6-specify-driver-app-files.png "Specify Surface driver and app files") *Figure 6. Specify the Surface driver and app files from a local path* ->**Note:**  The **Copy from a Local Directory** check box is only available in SDA version 1.90.0221 or later. +>[!NOTE] +>The **Copy from a Local Directory** check box is only available in SDA version 1.90.0221 or later.   @@ -143,7 +152,8 @@ If you are unable to connect to the Internet with your deployment server, or if You can use USB media to perform an SDA deployment if your Surface device is unable to boot from the network. For example, if you do not have a Microsoft Surface Ethernet Adapter or Microsoft Surface dock to facilitate network boot (PXE boot). The USB drive produced by following these steps includes a complete copy of the SDA deployment share and can be run on a Surface device without a network connection. ->**Note:**  The offline media files for the complete SDA deployment share are approximately 9 GB in size. Your USB drive must be at least 9 GB in size. A 16 GB USB drive is recommended. +>[!NOTE] +>The offline media files for the complete SDA deployment share are approximately 9 GB in size. Your USB drive must be at least 9 GB in size. A 16 GB USB drive is recommended.   @@ -157,9 +167,8 @@ Before you can create bootable media files within the MDT Deployment Workbench o 4. **clean** – Removes all configuration from your USB drive. - >**Warning:**  This step will remove all information from your drive. Verify that your USB drive does not contain any needed data before you perform the **clean** command. - -   + >[!WARNING] + >This step will remove all information from your drive. Verify that your USB drive does not contain any needed data before you perform the **clean** command. 5. **create part pri** – Creates a primary partition on the USB drive. @@ -175,7 +184,8 @@ Before you can create bootable media files within the MDT Deployment Workbench o *Figure 7. Use DiskPart to prepare a USB drive for boot* - >**Note:**  You can format your USB drive with FAT32 from Disk Management, but you must still use DiskPart to set the partition as active for the drive to boot properly. + >[!NOTE] + >You can format your USB drive with FAT32 from Disk Management, but you must still use DiskPart to set the partition as active for the drive to boot properly.   @@ -284,9 +294,8 @@ When you run the task sequence, you will be prompted to provide the following in - A product key, if one is required - >**Note:**  If you are deploying the same version of Windows as the version that came on your device, no product key is required. - -   + >[!NOTE] + >If you are deploying the same version of Windows as the version that came on your device, no product key is required. - A time zone @@ -300,9 +309,9 @@ The **2 – Create Windows Reference Image** task sequence is used to perform a Like the **1 – Deploy Microsoft Surface** task sequence, the **2 – Create Windows Reference Image** task sequence performs a deployment of the unaltered Windows image directly from the installation media. Creation of a reference image should always be performed on a virtual machine. Using a virtual machine as your reference system helps to ensure that the resulting image is compatible with different hardware configurations. ->**Note:**  Using a virtual machine when you create a reference image for Windows deployment is a recommended practice for performing Windows deployments with Microsoft deployment tools including the Microsoft Deployment Toolkit and System Center Configuration Manager. These Microsoft deployment technologies use the hardware agnostic images produced from a virtual machine and a collection of managed drivers to deploy to different configurations of hardware. For more information, see [Deploy a Windows 10 image using MDT 2013 Update 2](http://technet.microsoft.com/itpro/windows/deploy/deploy-a-windows-10-image-using-mdt). +>[!NOTE] +>Using a virtual machine when you create a reference image for Windows deployment is a recommended practice for performing Windows deployments with Microsoft deployment tools including the Microsoft Deployment Toolkit and System Center Configuration Manager. These Microsoft deployment technologies use the hardware agnostic images produced from a virtual machine and a collection of managed drivers to deploy to different configurations of hardware. For more information, see [Deploy a Windows 10 image using MDT 2013 Update 2](http://technet.microsoft.com/itpro/windows/deploy/deploy-a-windows-10-image-using-mdt). -  In addition to the information required by the **1 – Deploy Microsoft Surface** task sequence, you will also be prompted to capture an image when you run this task sequence on your reference virtual machine. The **Location** and **File name** fields are automatically populated with the proper information for your deployment share. All that you need to do is select the **Capture an image of this reference computer** option when you are prompted on the **Capture Image** page of the Windows Deployment Wizard. diff --git a/devices/surface/surface-diagnostic-toolkit.md b/devices/surface/surface-diagnostic-toolkit.md index ee50c340e7..8baced791b 100644 --- a/devices/surface/surface-diagnostic-toolkit.md +++ b/devices/surface/surface-diagnostic-toolkit.md @@ -18,23 +18,19 @@ Find out how you can use the Microsoft Surface Diagnostic Toolkit to test the ha The [Microsoft Surface Diagnostic Toolkit](https://www.microsoft.com/download/details.aspx?id=46703) is a small, portable diagnostic tool that runs through a suite of tests to diagnose the hardware of Surface devices. The Microsoft Surface Diagnostic Toolkit executable file is less than 3 MB, which allows it to be distributed through email. It does not require installation, so it can be run directly from a USB stick or over the network. The Microsoft Surface Diagnostic Toolkit walks you through several tests of individual components including the touchscreen, cameras, and sensors. ->**Note:**  A Surface device must boot into Windows to run the Microsoft Surface Diagnostic Toolkit. The Microsoft Surface Diagnostic Toolkit will run only on the following Surface devices: +>[!NOTE] +>A Surface device must boot into Windows to run the Microsoft Surface Diagnostic Toolkit. The Microsoft Surface Diagnostic Toolkit will run only on the following Surface devices: +>- Surface Studio +>- Surface Book +>- Surface Pro 4 +>- Surface 3 LTE +>- Surface 3 +>- Surface Pro 3 +>- Surface Pro 2 +>- Surface Pro -- Surface Book - -- Surface Pro 4 - -- Surface 3 LTE - -- Surface 3 - -- Surface Pro 3 - -- Surface Pro 2 - -- Surface Pro - ->**Note:**  Security software and built-in security measures in many email applications and services will block executable files that are transferred through email. To email the Surface Diagnostic Toolkit, attach the archive file (.zip) as downloaded from the Surface Tools for IT page without extracting it first. You can also create a custom .zip archive that contains the .exe file. (For example, if you want to localize the text as described in the [Localization](#localization) section of this article.) +>[!NOTE] +>Security software and built-in security measures in many email applications and services will block executable files that are transferred through email. To email the Surface Diagnostic Toolkit, attach the archive file (.zip) as downloaded from the Surface Tools for IT page without extracting it first. You can also create a custom .zip archive that contains the .exe file. (For example, if you want to localize the text as described in the [Localization](#localization) section of this article.) Running the Microsoft Surface Diagnostic Toolkit is a hands-on activity. The test sequence includes several tests that require you to perform actions or observe the outcome of the test, and then click the applicable **Pass** or **Fail** button. Some tests require connectivity to external devices, like an external display. Other tests use the built in Windows troubleshooters. At the end of testing, a visual report of the test results is displayed and you are given the option to save a log file or copy the results to the clipboard. @@ -54,7 +50,8 @@ To run a full set of tests with the Microsoft Surface Diagnostic Toolkit, you sh - A power adapter for your Surface device ->**Note:**  The Microsoft Surface Diagnostic Toolkit tests verify only the hardware of a Surface device and do not resolve issues with the operating system or software. +>[!NOTE] +>The Microsoft Surface Diagnostic Toolkit tests verify only the hardware of a Surface device and do not resolve issues with the operating system or software. ## Configure test options @@ -64,7 +61,8 @@ Before you select the tests you want to run, you can click the Tools ![images\su *Figure 1. The Tools button highlighted in upper right corner of window* ->**Note:**  Any options you want to select must be specified before you run the tests. You cannot change the test options after the testing sequence has started. +>[!NOTE] +>Any options you want to select must be specified before you run the tests. You cannot change the test options after the testing sequence has started. ####Test depth You can quickly select among three modes for testing and diagnostics by using the **Test Depth** page. The **Test Depth** page displays a slider with three possible positions, as shown in Figure 2. These positions determine which tests are run and what information is recorded without requiring you to select specific tests with the **Run Specific Tests** button. The three modes allow you to focus the tests of the Microsoft Surface Diagnostic Toolkit on hardware, software, or both hardware and software. @@ -173,34 +171,40 @@ These files and logs are stored in a .zip file saved by the Microsoft Surface Di #### Type Cover test ->**Note:**  A Surface Type Cover is required for this test. +>[!NOTE] +>A Surface Type Cover is required for this test. If a Surface Type Cover is not detected, the test prompts you to connect the Type Cover. When a Type Cover is detected the test prompts you to use the keyboard and touchpad. The cursor should move while you swipe the touchpad, and the keyboard Windows key should bring up the Start menu or Start screen to successfully pass this test. You can skip this test if a Type Cover is not used with the Surface device. #### Integrated keyboard test ->**Note:**  This test is only applicable to Surface Book and requires that the Surface Book be docked to the keyboard. +>[!NOTE] +>This test is only applicable to Surface Book and requires that the Surface Book be docked to the keyboard. This test is essentially the same as the Type Cover test, except the integrated keyboard in the Surface Book base is tested rather than the Type Cover. During the first stage of this test a diagram of the keyboard is displayed. When you press a key, the corresponding key will be marked on the diagram. The test will proceed when every key in the diagram is marked. In the second stage of this test, you are prompted to make several gestures on the keypad. As you perform each gesture (for example, a three finger tap), the gesture will be marked on the screen. When you have performed all gestures, the test will automatically complete. ->**Note:**  The F-keys on the diagram require that you press the Function (FN) key simultaneously to activate them. By default, these keys perform other actions. For the Home and End keys, you must press the same keys as F8 and F9, but without the Function (FN) key pressed. +>[!NOTE] +>The F-keys on the diagram require that you press the Function (FN) key simultaneously to activate them. By default, these keys perform other actions. For the Home and End keys, you must press the same keys as F8 and F9, but without the Function (FN) key pressed. #### Canvas mode battery test ->**Note:**  This test is only applicable to Surface Book. +>[!NOTE] +>This test is only applicable to Surface Book. Depending on which mode Surface Book is in, different batteries are used to power the device. When Surface Book is in clipboard mode (detached form the keyboard) it uses an internal battery, and when it is connected in either laptop mode or canvas mode it uses different connections to the battery in the keyboard. In canvas mode, the screen is connected to the keyboard so that when the device is closed, the screen remains face-up and visible. Connect the Surface Book to the keyboard in this manner for the test to automatically proceed. #### Clipboard mode battery test ->**Note:**  This test is only applicable to Surface Book. +>[!NOTE] +>This test is only applicable to Surface Book. Disconnect the Surface Book from the keyboard to work in clipboard mode. In clipboard mode the Surface Book operates from an internal battery that is tested when the Surface Book is disconnected from the keyboard. Disconnecting the Surface Book from the keyboard will also disconnect the Surface Book from power and will automatically begin this test. #### Laptop mode battery test ->**Note:**  This test is only applicable to Surface Book. +>[!NOTE] +>This test is only applicable to Surface Book. Connect the Surface Book to the keyboard in the opposite fashion to canvas mode in laptop mode. In laptop mode the screen will face you when the device is open and the device can be used in the same way as any other laptop. Disconnect AC Power from the laptop base when prompted for this test to check the battery status. @@ -210,25 +214,29 @@ In this test the battery is discharged for a few seconds and tested for health a #### Discrete graphics (dGPU) test ->**Note:**  This test is only applicable to Surface Book models with a discrete graphics processor. +>[!NOTE] +>This test is only applicable to Surface Book models with a discrete graphics processor. This test will query the device information of current hardware to check for the presence of both the Intel integrated graphics processor in the Surface Book and the NVIDIA discrete graphics processor in the Surface Book keyboard. The keyboard must be attached for this test to function. #### Discrete graphics (dGPU) fan test ->**Note:**  This test is only applicable to Surface Book models with a discrete graphics processor. +>[!NOTE] +>This test is only applicable to Surface Book models with a discrete graphics processor. The discrete graphics processor in the Surface Book includes a separate cooling fan. The fan is turned on automatically by the test for 5 seconds. Listen for the sound of the fan in the keyboard and report if the fan is working correctly when prompted. #### Muscle wire test ->**Note:**  This test is only applicable to Surface Book. +>[!NOTE] +>This test is only applicable to Surface Book. To disconnect the Surface Book from the keyboard, software must instruct the muscle wire latch mechanism to open. This is typically accomplished by pressing and holding the undock key on the keyboard. This test sends the same signal to the latch, which unlocks the Surface Book from the Surface Book keyboard. Remove the Surface Book from the keyboard when you are prompted to do so. #### Dead pixel and display artifacts tests ->**Note:**  Before you run this test, be sure to clean the screen of dust or smudges. +>[!NOTE] +>Before you run this test, be sure to clean the screen of dust or smudges. This test prompts you to view the display in search of malfunctioning pixels. The test displays full-screen, single-color images including black, white, red, green, and blue. Pixels that remain bright or dark when the screen displays an image of a different color indicate a failed test. You should also look for distortion or variance in the color of the screen. @@ -246,7 +254,8 @@ The Surface touchscreen should detect input across the entire screen of the devi #### Digitizer pen test ->**Note:**  A Microsoft Surface Pen is required for this test. +>[!NOTE] +>A Microsoft Surface Pen is required for this test. This test displays the same lines as those that are displayed during the Digitizer Touch test, but your input is performed with a Surface Pen instead of your finger. The lines should remain unbroken for as long as the Pen is pressed to the screen. Trace all of the lines in the image to look for unresponsive areas across the entire screen of the Surface device. @@ -264,7 +273,8 @@ This test prompts you to use the volume rocker to turn the volume all the way up #### Micro SD or SD slot test ->**Note:**  This test requires a micro SD or SD card that is compatible with the slot in your Surface device. +>[!NOTE] +>This test requires a micro SD or SD card that is compatible with the slot in your Surface device. Insert a micro SD or SD card when you are prompted. When the SD card is detected, the test prompts you to remove the SD card to ensure that the card is not left in the device. During this test a small file is written to the SD card and then verified. Detection and verification of the SD card automatically passes this test without additional input. @@ -274,13 +284,15 @@ This test displays a meter that shows the microphone sound level and records aud #### Video out test ->**Note:**  This test requires an external display with the applicable connection for your Surface device. +>[!NOTE] +>This test requires an external display with the applicable connection for your Surface device. Surface devices provide a Mini DisplayPort connection for connecting to an external display. Connect your display through the Mini DisplayPort on the device when prompted. The display should be detected automatically and an image should appear on the external display. #### Bluetooth test ->**Note:**  This test requires a Bluetooth device. The device must be set to pairing mode or made discoverable to perform this test. +>[!NOTE] +>This test requires a Bluetooth device. The device must be set to pairing mode or made discoverable to perform this test. After you receive a prompt to put the device in pairing mode, the test opens the **Add a device** window and begins to search for discoverable Bluetooth devices. Watch the **Add a device** window to verify that your Bluetooth device is detected. Select your Bluetooth device from the list and connect to the device to complete the test. @@ -288,17 +300,20 @@ After you receive a prompt to put the device in pairing mode, the test opens the Use this test to verify that the cameras on your Surface device are operating properly. Images will be displayed from both the front and rear cameras, and the infrared camera on a Surface Pro 4. Continuous autofocus can be enabled on the rear camera. Move the device closer and farther away from an object to verify the operation of continuous autofocus. ->**Note:**  You can also use the **Snapshot to Logs** option to save a snapshot of the video output to the log files. +>[!NOTE] +>You can also use the **Snapshot to Logs** option to save a snapshot of the video output to the log files. #### Speaker test ->**Note:**  Headphones or external speakers are required to test the headphone jack in this test. +>[!NOTE] +>Headphones or external speakers are required to test the headphone jack in this test. This test plays audio over left and right channels respectively, both for the internal speakers and for speakers or headphones connected through the headphone jack. Plug in your headphones or speakers to the 3.5mm stereo jack when prompted. The test will automatically detect that a sound playback device has been connected. Mark each channel as a pass or fail as you hear the audio play through the speakers or headphones. #### Network test ->**Note:**  Connect the Surface device to a Wi-Fi network before you run this test. Connections that are made during the test are removed when the test is completed. +>[!NOTE] +>Connect the Surface device to a Wi-Fi network before you run this test. Connections that are made during the test are removed when the test is completed. This test uses the Windows Network Diagnostics built in troubleshooter to diagnose potential issues with network connectivity, including proxy configuration, DNS problems, and IP address conflicts. An event log is saved by this test in Windows logs and is visible in the Windows Event Viewer. The Event ID is 6100. @@ -326,11 +341,13 @@ The compass detects which direction the Surface device is facing relative to nor The ambient light sensor is used to automatically adjust screen brightness relative to the ambient lighting in the environment. Turn the device toward or away from a light source to cause the screen to dim or brighten in response increased or decreased light. The test automatically passes when the screen brightness automatically changes. ->**Note:**  You can also block the ambient light from the sensor by holding your hand slightly in front of the light sensor, which is located directly next to the camera. Use the provided meter to determine if you are blocking light from the sensor. +>[!NOTE] +>You can also block the ambient light from the sensor by holding your hand slightly in front of the light sensor, which is located directly next to the camera. Use the provided meter to determine if you are blocking light from the sensor. #### Device orientation test ->**Note:**  Before you run this test, disable rotation lock from the Action Center if enabled. +>[!NOTE] +>Before you run this test, disable rotation lock from the Action Center if enabled. The device orientation sensor determines what the angle of the Surface device is, relative to the ground. Rotate the display 90 degrees or 180 degrees to cause the screen orientation to switch between portrait and landscape mode. If you have a Surface Type Cover or the Surface Book keyboard connected, you will be prompted to disconnect the Surface from the keyboard to allow screen rotation. The test automatically passes when the screen orientation switches. @@ -344,7 +361,8 @@ The Microsoft Surface Diagnostic Toolkit uses this test only if a Surface Dock i #### System assessment ->**Note:**  The Surface device must be connected to AC power before you can run this test. +>[!NOTE] +>The Surface device must be connected to AC power before you can run this test. The Windows System Assessment Tool (WinSAT) runs a series of benchmarks against the processor, memory, video adapter, and storage devices. The results include the processing speed of various algorithms, read and write performance of memory and storage, and performance in several Direct3D graphical tests. @@ -358,13 +376,15 @@ If your Surface device has encountered an error that caused the device to fail o #### Connected standby text ->**Note:**  This test is only available on Surface devices running Windows 8 or Windows 8.1. +>[!NOTE] +>This test is only available on Surface devices running Windows 8 or Windows 8.1. If connected standby is enabled on the Surface device, this test passes automatically. If connected standby is not enabled, a failure is recorded for this test. Find out more about Connected Standby and Modern Standby at [Modern Standby](https://msdn.microsoft.com/library/windows/hardware/mt282515) on MSDN. #### Modern standby test ->**Note:**  This test is only available on Surface devices running Windows 10. +>[!NOTE] +>This test is only available on Surface devices running Windows 10. This test records log files of the power configuration for the Surface device using the **powercfg.exe /a** command. The test completes automatically and a failure is only recorded if the command does not run. @@ -373,7 +393,8 @@ This test records log files of the power configuration for the Surface device us You can run the Microsoft Surface Diagnostic Toolkit from the command line or as part of a script. The tool supports the following arguments: ->**Note:**  Many of the tests performed by the Microsoft Surface Diagnostic Toolkit require technician interaction. The Microsoft Surface Diagnostic Toolkit cannot run unattended. +>[!NOTE] +>Many of the tests performed by the Microsoft Surface Diagnostic Toolkit require technician interaction. The Microsoft Surface Diagnostic Toolkit cannot run unattended. #### exclude @@ -526,7 +547,8 @@ If a localization file with the same name and in the same folder as the executab A custom localization file selected through this process does not need a specific name. After you select the custom localization file, the Microsoft Surface Diagnostic Toolkit will import the contents and write them to a .locale file with the same name as the .exe file, just like if you click the **Generate** button to create a new .locale file. ->**Note:**  If you import a localization file by clicking the **Browse** button, an existing localization file will be overwritten without prompting if that file has the same name as the Microsoft Surface Diagnostic Toolkit executable file. +>[!NOTE] +>If you import a localization file by clicking the **Browse** button, an existing localization file will be overwritten without prompting if that file has the same name as the Microsoft Surface Diagnostic Toolkit executable file.   diff --git a/devices/surface/surface-dock-updater.md b/devices/surface/surface-dock-updater.md index ff07fba283..875fe51b0c 100644 --- a/devices/surface/surface-dock-updater.md +++ b/devices/surface/surface-dock-updater.md @@ -20,7 +20,8 @@ The [Microsoft Surface Dock Updater](https://www.microsoft.com/download/details. When you run the Microsoft Surface Dock Updater installer you will be prompted to accept an End User License Agreement (EULA). ->**Note:**  Updating Surface Dock firmware requires connectivity to the Surface Dock, available only on Surface Pro 3, Surface Pro 4, and Surface Book devices. A Surface Pro 3, Surface Pro 4, or Surface Book is required to successfully install Microsoft Surface Dock Updater. +>[!NOTE] +>Updating Surface Dock firmware requires connectivity to the Surface Dock, available only on Surface Pro 3, Surface Pro 4, and Surface Book devices. A Surface Pro 3, Surface Pro 4, or Surface Book is required to successfully install Microsoft Surface Dock Updater. ## Update a Surface Dock with Microsoft Surface Dock Updater @@ -75,7 +76,8 @@ To update a Surface Dock with Microsoft Surface Dock Updater, follow these steps 9. If you want to update multiple Surface Docks in one sitting, you can click the **Update another Surface Dock** button to begin the process on the next Surface Dock. - >**Note:**  The LED in the Ethernet port of the dock will blink while the update is in progress. Please wait until the LED stops blinking before you unplug your Surface Dock from power. + >[!NOTE] + >The LED in the Ethernet port of the dock will blink while the update is in progress. Please wait until the LED stops blinking before you unplug your Surface Dock from power.   diff --git a/devices/surface/surface-enterprise-management-mode.md b/devices/surface/surface-enterprise-management-mode.md index e6022963e9..0c040e2593 100644 --- a/devices/surface/surface-enterprise-management-mode.md +++ b/devices/surface/surface-enterprise-management-mode.md @@ -14,7 +14,7 @@ author: jobotto Microsoft Surface Enterprise Management Mode (SEMM) is a feature of Surface devices with Surface UEFI that allows you to secure and manage firmware settings within your organization. With SEMM, IT professionals can prepare configurations of UEFI settings and install them on a Surface device. In addition to the ability to configure UEFI settings, SEMM also uses a certificate to protect the configuration from unauthorized tampering or removal. >[!NOTE] ->SEMM is only available on devices with Surface UEFI firmware, such as Surface Pro 4 and Surface Book. For more information about Surface UEFI, see [Manage Surface UEFI Settings](https://technet.microsoft.com/itpro/surface/manage-surface-uefi-settings). +>SEMM is only available on devices with Surface UEFI firmware, such as Surface Pro 4, Surface Book, and Surface Studio. For more information about Surface UEFI, see [Manage Surface UEFI Settings](https://technet.microsoft.com/itpro/surface/manage-surface-uefi-settings). When Surface devices are configured by SEMM and secured with the SEMM certificate, they are considered *enrolled* in SEMM. When the SEMM certificate is removed and control of UEFI settings is returned to the user of the device, the Surface device is considered *unenrolled* in SEMM. diff --git a/devices/surface/unenroll-surface-devices-from-semm.md b/devices/surface/unenroll-surface-devices-from-semm.md index 0c8868a35f..d801c2e764 100644 --- a/devices/surface/unenroll-surface-devices-from-semm.md +++ b/devices/surface/unenroll-surface-devices-from-semm.md @@ -13,7 +13,8 @@ author: jobotto When a Surface device is enrolled in Surface Enterprise Management Mode (SEMM), a certificate is stored in the firmware of that device. The presence of that certificate and the enrollment in SEMM prevent any unauthorized changes to Surface UEFI settings or options while the device is enrolled in SEMM. To restore control of Surface UEFI settings to the user, the Surface device must be unenrolled from SEMM, a process sometimes described as reset or recovery. There are two methods you can use to unenroll a device from SEMM—a Surface UEFI reset package and a Recovery Request. ->**Warning:**  To unenroll a device from SEMM and restore user control of Surface UEFI settings, you must have the SEMM certificate that was used to enroll the device in SEMM. If this certificate becomes lost or corrupted, it is not possible to unenroll from SEMM. Back up and protect your SEMM certificate accordingly. +>[!WARNING] +>To unenroll a device from SEMM and restore user control of Surface UEFI settings, you must have the SEMM certificate that was used to enroll the device in SEMM. If this certificate becomes lost or corrupted, it is not possible to unenroll from SEMM. Back up and protect your SEMM certificate accordingly. For more information about SEMM, see [Microsoft Surface Enterprise Management Mode](https://technet.microsoft.com/itpro/surface/surface-enterprise-management-mode). @@ -27,7 +28,8 @@ Reset packages are created specifically for an individual Surface device. To beg *Figure 1. The serial number of the Surface device is displayed on the Surface UEFI PC information page* ->**Note:**  To boot to Surface UEFI, press **Volume Up** and **Power** simultaneously while the device is off. Hold **Volume Up** until the Surface logo is displayed and the device begins to boot. +>[!NOTE] +>To boot to Surface UEFI, press **Volume Up** and **Power** simultaneously while the device is off. Hold **Volume Up** until the Surface logo is displayed and the device begins to boot. To create a Surface UEFI reset package, follow these steps: @@ -79,7 +81,8 @@ To initiate a Recovery Request, follow these steps: 4. Click or press **Get Started**. 5. Click or press **Next** to begin the Recovery Request process. - >**Note:**  A Recovery Request expires two hours after it is created. If a Recovery Request is not completed in this time, you will have to restart the Recovery Request process. + >[!NOTE] + >A Recovery Request expires two hours after it is created. If a Recovery Request is not completed in this time, you will have to restart the Recovery Request process. 6. Select **SEMM Certificate** from the list of certificates displayed on the **Choose a SEMM reset key** page (shown in Figure 7), and then click or press **Next**. ![Select SEMM certificate for your Recovery Request](images\surface-semm-unenroll-fig7.png "Select SEMM certificate for your Recovery Request") @@ -101,7 +104,8 @@ To initiate a Recovery Request, follow these steps: * To use the Recovery Request (Reset Request) as text, simply type the text directly into Microsoft Surface UEFI Configurator. 8. Open Microsoft Surface UEFI Configurator from the Start menu on another computer. ->**Note:**  Microsoft Surface UEFI Configurator must run in an environment that is able to authenticate the certificate chain for the SEMM certificate. + >[!NOTE] + >Microsoft Surface UEFI Configurator must run in an environment that is able to authenticate the certificate chain for the SEMM certificate. 9. Click **Start**. 10. Click **Recovery Request**, as shown in Figure 10. diff --git a/devices/surface/upgrade-surface-devices-to-windows-10-with-mdt.md b/devices/surface/upgrade-surface-devices-to-windows-10-with-mdt.md index 77a3fe6998..ea32d404cc 100644 --- a/devices/surface/upgrade-surface-devices-to-windows-10-with-mdt.md +++ b/devices/surface/upgrade-surface-devices-to-windows-10-with-mdt.md @@ -45,8 +45,11 @@ Performing an upgrade deployment of Windows 10 requires the same tools and resou You will also need to have available the following resources: * Windows 10 installation files, such as the installation media downloaded from the [Volume Licensing Service Center](https://www.microsoft.com/Licensing/servicecenter/default.aspx) - >**Note:**  Installation media for use with MDT must contain a Windows image in Windows Imaging Format (.wim). Installation media produced by the [Get Windows 10](https://www.microsoft.com/software-download/windows10/) page does not use a .wim file, instead using an Electronic Software Download (.esd) file, which is not compatible with MDT. -* [Surface firmware and drivers](https://technet.microsoft.com/itpro/surface/deploy-the-latest-firmware-and-drivers-for-surface-devices) for Windows 10 + + >[!NOTE] + >Installation media for use with MDT must contain a Windows image in Windows Imaging Format (.wim). Installation media produced by the [Get Windows 10](https://www.microsoft.com/en-us/software-download/windows10/) page does not use a .wim file, instead using an Electronic Software Download (.esd) file, which is not compatible with MDT. +* [Surface firmware and drivers](https://technet.microsoft.com/en-us/itpro/surface/deploy-the-latest-firmware-and-drivers-for-surface-devices) for Windows 10 + * Application installation files for any applications you want to install, such as the Surface app ## Prepare the upgrade deployment @@ -102,7 +105,8 @@ Create the upgrade task sequence with the following process: 1. In the Deployment Workbench under your Deployment Share, right-click the **Task Sequences** folder, and then click **New Task Sequence** to start the New Task Sequence Wizard. 2. Use these steps to create the deployment task sequence with the New Task Sequence Wizard: - **General Settings** – Enter an identifier for the deployment task sequence in the Task Sequence ID field, a name for the deployment task sequence in the Task Sequence Name field, and any comments for the deployment task sequence in the **Task Sequence Comments** field, and then click **Next**. - >**Note:**  The **Task Sequence ID** field cannot contain spaces and can be a maximum of 16 characters. + >[!NOTE] + >The **Task Sequence ID** field cannot contain spaces and can be a maximum of 16 characters. - **Select Template** – Select **Standard Client Upgrade Task Sequence** from the drop-down menu, and then click **Next**. - **Select OS** – Navigate to and select the Windows image that you imported, and then click **Next**. - **Specify Product Key** – Select the product key entry that fits your organization’s licensing system. The **Do Not Specify a Product Key at This Time** option can be used for systems that will be activated via Key Management Services (KMS) or Active Directory Based Activation (ADBA). A product key can be specified specifically if your organization uses Multiple Activation Keys (MAK). Click **Next**. diff --git a/education/windows/TOC.md b/education/windows/TOC.md index 8411e8ef7f..c2c0340c07 100644 --- a/education/windows/TOC.md +++ b/education/windows/TOC.md @@ -17,5 +17,6 @@ ## [Deployment recommendations for school IT administrators](edu-deployment-recommendations.md) ## [Deploy Windows 10 in a school](deploy-windows-10-in-a-school.md) ## [Deploy Windows 10 in a school district](deploy-windows-10-in-a-school-district.md) +## [Upgrade Windows 10 Pro to Pro Education from Windows Store for Business](windows-10-pro-to-pro-edu-upgrade.md) ## [Chromebook migration guide](chromebook-migration-guide.md) ## [Change history for Windows 10 for Education](change-history-edu.md) diff --git a/education/windows/change-history-edu.md b/education/windows/change-history-edu.md index 3ce92ed3d0..0bc2dc5bbc 100644 --- a/education/windows/change-history-edu.md +++ b/education/windows/change-history-edu.md @@ -12,6 +12,16 @@ author: jdeckerMS This topic lists new and updated topics in the [Windows 10 for Education](index.md) documentation. +## January 2017 +| New or changed topic | Description | +| --- | --- | +| [For IT administrators - get Minecraft: Education Edition](school-get-minecraft.md) | Updates. Learn how schools can use invoices to pay for Minecraft: Education Edition. | + +## December 2016 +| New or changed topic | Description | +| --- | --- | +| [Upgrade Windows 10 Pro to Pro Education from Windows Store for Business](windows-10-pro-to-pro-edu-upgrade.md) | New. Learn how to opt-in to a free upgrade to Windows 10 Pro Education. | + ## November 2016 | New or changed topic | Description| diff --git a/education/windows/deploy-windows-10-in-a-school-district.md b/education/windows/deploy-windows-10-in-a-school-district.md index 766978b300..89225a2609 100644 --- a/education/windows/deploy-windows-10-in-a-school-district.md +++ b/education/windows/deploy-windows-10-in-a-school-district.md @@ -597,7 +597,7 @@ To create a new Office 365 Education subscription for use in the classroom, use 2. On the **Get started** page, in **Enter your school email address**, type your school email address, and then click **Sign up**. - You will receive an email in your school email account. + You will receive an email in your school email account. 3. Click the hyperlink in the email in your school email account. 4. On the **One last thing** page, complete your user information, and then click **Start**. @@ -627,7 +627,7 @@ Now that you have created your new Office 365 Education subscription, add the do To make it easier for faculty and students to join your Office 365 Education subscription (or *tenant*), allow them to automatically sign up to your tenant (*automatic tenant join*). In automatic tenant join, when a faculty member or student signs up for Office 365, Office 365 automatically adds (joins) the user to your Office 365 tenant. ->**Note**  By default, automatic tenant join is enabled in Office 365 Education, with the exception of certain areas in Europe, the Middle East, and Africa. These countries require opt-in steps to add new users to existing Office 365 tenants. Check your country requirements to determine the automatic tenant join default configuration. Also, if you use Azure AD Connect, then automatic tenant join is disabled. For more information, see [Office 365 Education Self-Sign up: Technical FAQ](https://support.office.com/en-us/article/Office-365-Education-Self-Sign-up-Technical-FAQ-7fb1b2f9-94c2-4cbb-b01e-a6eca34261d6?ui=en-US&rs=en-US&ad=US&WT.mc_id=eml_CXM__33537_MOD_EDU_Student_Advantage_Rush). +>**Note**  By default, automatic tenant join is enabled in Office 365 Education, with the exception of certain areas in Europe, the Middle East, and Africa. These countries/regions require opt-in steps to add new users to existing Office 365 tenants. Check your country/region requirements to determine the automatic tenant join default configuration. Also, if you use Azure AD Connect, then automatic tenant join is disabled. For more information, see [Office 365 Education Self-Sign up: Technical FAQ](https://support.office.com/en-us/article/Office-365-Education-Self-Sign-up-Technical-FAQ-7fb1b2f9-94c2-4cbb-b01e-a6eca34261d6?ui=en-US&rs=en-US&ad=US&WT.mc_id=eml_CXM__33537_MOD_EDU_Student_Advantage_Rush). Office 365 uses the domain portion of the user’s email address to know which Office 365 tenant to join. For example, if a faculty member or student provides an email address of user@contoso.edu, then Office 365 automatically performs one of the following tasks: @@ -841,7 +841,7 @@ After you have selected your user and group account bulk import method, you’re With the bulk-import source file finished, you’re ready to import the user and group accounts into AD DS. The steps for importing the file are slightly different for each method. ->**Note**  Bulk-import your group accounts first, and then import your user accounts. Importing in this order allows you to specify group membership when you import your user accounts. +>**Note**  Bulk-import your group accounts first, and then import your user accounts. Importing in this order allows you to specify group membership when you import your user accounts. For more information about how to import user accounts into AD DS by using: @@ -891,7 +891,7 @@ Microsoft Exchange Online uses an email distribution group as a single email rec You can create email distribution groups based on job role (such as teacher, administration, or student) or specific interests (such as robotics, drama club, or soccer team). You can create any number of distribution groups, and users can be members of more than one group. ->**Note**  Office 365 can take some time to complete the Exchange Online creation process. You will have to wait until the creation process ends before you can perform the following steps. +>**Note**  Office 365 can take some time to complete the Exchange Online creation process. You will have to wait until the creation process ends before you can perform the following steps. For information about creating email distribution groups, see [Create an Office 365 Group in the admin center](https://support.office.com/en-us/article/Create-an-Office-365-Group-in-the-admin-center-74a1ef8b-3844-4d08-9980-9f8f7a36000f?ui=en-US&rs=en-001&ad=US). @@ -935,7 +935,7 @@ To create and configure your Windows Store for Business portal, simply use the a 5. In the **Welcome to the Windows Store for Business** dialog box, click **OK**. -After you create the Windows Store for Business portal, configure it by using the commands in the **Settings** menu listed in Table 14. Depending on your institution, you may (or may not) need to change these settings to further customize your portal. +After you create the Windows Store for Business portal, configure it by using the commands in the **Settings** menu listed in Table 14. Depending on your institution, you may (or may not) need to change these settings to further customize your portal. |Menu selection|What can you do in this menu| |--------------|----------------------------| @@ -1171,7 +1171,7 @@ For more information about how to update a deployment share, see [Update a Deplo >**Note**  If you have already configured your System Center Configuration Manager infrastructure to support the operating system deployment feature or if you selected to deploy Windows 10 by using MDT only, then skip this section and continue to the next section. -Before you can use System Center Configuration Manager to deploy Windows 10 and manage your apps and devices, you must configure System Center Configuration Manager to support the operating system deployment feature. If you don’t have an existing System Center Configuration Manager infrastructure, you will need to deploy a new infrastructure. +Before you can use System Center Configuration Manager to deploy Windows 10 and manage your apps and devices, you must configure System Center Configuration Manager to support the operating system deployment feature. If you don’t have an existing System Center Configuration Manager infrastructure, you will need to deploy a new infrastructure. Deploying a new System Center Configuration Manager infrastructure is beyond the scope of this guide, but the following resources can help you deploy a new System Center Configuration Manager infrastructure: @@ -1217,9 +1217,9 @@ You can use Windows Deployment Services in conjunction with MDT to automatically * [Windows Deployment Services Getting Started Guide for Windows Server 2012](https://technet.microsoft.com/en-us/library/jj648426.aspx) 2. Add LTI boot images (Windows PE images) to Windows Deployment Services. - + The LTI boot images (.wim files) that you will add to Windows Deployment Services are in the MDT deployment share. Locate the .wim files in the deployment share’s Boot subfolder. - + For more information about how to perform this step, see [Add LTI Boot Images to Windows Deployment Services](https://technet.microsoft.com/en-us/library/dn759415.aspx#AddLTIBootImagestoWindowsDeploymentServices). ### Configure Window Deployment Services for System Center Configuration Manager @@ -1231,9 +1231,9 @@ You can use Windows Deployment Services in conjunction with System Center Config #### To configure Windows Deployment Services for System Center Configuration Manager 1. Set up and configure Windows Deployment Services. - + Windows Deployment Services is a server role available in all Windows Server editions. You can enable the Windows Deployment Services server role on a new server or on any server running Windows Server in your institution. - + For more information about how to perform this step, see the following resources: * [Windows Deployment Services Overview](https://technet.microsoft.com/library/hh831764.aspx) * The Windows Deployment Services Help file, included in Windows Deployment Services @@ -1244,9 +1244,9 @@ You can use Windows Deployment Services in conjunction with System Center Config To support PXE boot requests, you install the PXE service point site system role. Then, you must configure one or more distribution points to respond to PXE boot request. For more information about how to perform this step, see [Install site system roles for System Center Configuration Manager](https://technet.microsoft.com/en-us/library/mt704036.aspx), [Use PXE to deploy Windows over the network with System Center Configuration Manager](https://technet.microsoft.com/en-us/library/mt627940.aspx), and [Configuring distribution points to accept PXE requests](https://technet.microsoft.com/en-us/library/mt627944.aspx#BKMK_PXEDistributionPoint). 3. Configure the appropriate boot images (Windows PE images) to deploy from the PXE-enabled distribution point. - + Before a device can start a boot image from a PXE-enabled distribution point, you must change the properties of the boot image to enable PXE booting. Typically, you create this boot image when you created your MDT task sequence in the Configuration Manager console. - + For more information about how to perform this step, see [Configure a boot image to deploy from a PXE-enabled distribution point](https://technet.microsoft.com/en-us/library/mt627946.aspx#BKMK_BootImagePXE) and [Manage boot images with System Center Configuration Manager](https://technet.microsoft.com/en-us/library/mt627946.aspx). #### Summary @@ -1271,8 +1271,8 @@ You initially configured the MDT deployment share in the [Configure the MDT depl 1. Create a task sequence to deploy the appropriate Windows 10 edition. - A task sequence can deploy only one Windows 10 edition or version, which means that you must create a task sequence for each Windows 10 edition and version you selected in the [Select the operating systems](#select-the-operating-systems) section earlier in this guide. To create task sequences, use the New Task Sequence Wizard. - + A task sequence can deploy only one Windows 10 edition or version, which means that you must create a task sequence for each Windows 10 edition and version you selected in the [Select the operating systems](#select-the-operating-systems) section earlier in this guide. To create task sequences, use the New Task Sequence Wizard. + For more information, see [Create a New Task Sequence in the Deployment Workbench](https://technet.microsoft.com/en-us/library/dn759415.aspx#CreateaNewTaskSequenceintheDeploymentWorkbench). 2. Create an MDT application for each desktop app you want to include in your reference image. @@ -1280,12 +1280,12 @@ You initially configured the MDT deployment share in the [Configure the MDT depl 3. Customize the task sequence to install the MDT applications that you created in step 2. You can add an **Install Application** task sequence step to your task sequence. Then, you can customize the **Install Application** task sequence step to install a specific app, which automatically installs the app with no user interaction required when your run the task sequence. - + You need to add an **Install Application** task sequence step for each app you want to include in your reference image. For more information, see [Customize Application Installation in Task Sequences](http://technet.microsoft.com/en-us/library/dn759415.aspx#CustomizeApplicationInstallationinTaskSequences). 4. Create a selection profile that contains the drivers for the device. A *selection profile* lets you select specific device drivers. For example, if you want to deploy the device drivers for a Surface Pro 4 device, you can create a selection profile that contains only the Surface Pro 4 device drivers. - + First, in the Out-of-Box Drivers node in the Deployment Workbench, create a folder that will contain your device drivers. Next, import the device drivers into the folder you just created. Finally, create the selection profile and specify the folder that contains the device drivers. For more information, see the following resources: * [Create Folders to Organize Device Drivers for LTI Deployments](https://technet.microsoft.com/en-us/library/dn759415.aspx#CreateFolderstoOrganizeDeviceDriversforLTIDeployments) @@ -1334,7 +1334,7 @@ For more information about how to create a task sequence in the: * Configuration Manager console, see [Create a task sequence to install an operating system in System Center Configuration Manager](https://technet.microsoft.com/en-us/library/mt627927.aspx). ####Summary -In this section, you customized the MDT deployment share to deploy Windows 10 and desktop apps to one or more reference devices by creating and customizing MDT applications, device drivers, and applications. Next, you ran the task sequence, which deploys Windows 10, deploys your apps, deploys the appropriate device drivers, and captures an image of the reference device. Then, you imported the captured reference image into a deployment share or System Center Configuration Manager. Finally, you created a task sequence to deploy your captured reference image to faculty and student devices. At this point in the process, you’re ready to deploy Windows 10 and your apps to your devices. +In this section, you customized the MDT deployment share to deploy Windows 10 and desktop apps to one or more reference devices by creating and customizing MDT applications, device drivers, and applications. Next, you ran the task sequence, which deploys Windows 10, deploys your apps, deploys the appropriate device drivers, and captures an image of the reference device. Then, you imported the captured reference image into a deployment share or System Center Configuration Manager. Finally, you created a task sequence to deploy your captured reference image to faculty and student devices. At this point in the process, you’re ready to deploy Windows 10 and your apps to your devices. ## Prepare for device management @@ -1548,7 +1548,7 @@ In this section, you prepared your institution for device management. You identi ## Deploy Windows 10 to devices -You’re ready to deploy Windows 10 to faculty and student devices. You must complete the steps in this section for each student device in the classrooms as well as for any new student devices you add in the future. You can also perform these actions for any device that’s eligible for a Windows 10 upgrade. This section discusses deploying Windows 10 to new devices, refreshing Windows 10 on existing devices, and upgrading existing devices that are running eligible versions of Windows 8.1 or Windows 7 to Windows 10. +You’re ready to deploy Windows 10 to faculty and student devices. You must complete the steps in this section for each student device in the classrooms as well as for any new student devices you add in the future. You can also perform these actions for any device that’s eligible for a Windows 10 upgrade. This section discusses deploying Windows 10 to new devices, refreshing Windows 10 on existing devices, and upgrading existing devices that are running eligible versions of Windows 8.1 or Windows 7 to Windows 10. ### Prepare for deployment @@ -1838,7 +1838,7 @@ Follow the same steps you followed in the [Deploy Windows 10 to devices](#deploy #### Summary -You have now identified the tasks you need to perform monthly, at the end of an academic year or semester, and as required. Your district and individual school configuration should match the typical school configuration you saw in the [Plan a typical district configuration](#plan-a-typical-district-configuration) section. By performing these maintenance tasks, you help ensure that your district as a whole stays secure and is configured as you specified. +You have now identified the tasks you need to perform monthly, at the end of an academic year or semester, and as required. Your district and individual school configuration should match the typical school configuration you saw in the [Plan a typical district configuration](#plan-a-typical-district-configuration) section. By performing these maintenance tasks, you help ensure that your district as a whole stays secure and is configured as you specified. ## Related topics diff --git a/education/windows/education-scenarios-store-for-business.md b/education/windows/education-scenarios-store-for-business.md index 8a42859576..ce335d4357 100644 --- a/education/windows/education-scenarios-store-for-business.md +++ b/education/windows/education-scenarios-store-for-business.md @@ -91,9 +91,9 @@ Find apps for your school using Windows Store for Business. Admins in an educati **To acquire apps** - For info on how to acquire apps, see [Acquire apps in Windows Store for Business](https://technet.microsoft.com/itpro/windows/manage/acquire-apps-windows-store-for-business#acquire-apps) -**To add a payment method** +**To add a payment method - debit or credit card** -If you the app you purchase has a price, you’ll need to provide a payment method. +If the app you purchase has a price, you’ll need to provide a payment method. - Click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. For more information on payment options, see [payment options](https://technet.microsoft.com/itpro/windows/manage/acquire-apps-windows-store-for-business#payment-options). diff --git a/education/windows/index.md b/education/windows/index.md index d64f4ca4cc..549abcd666 100644 --- a/education/windows/index.md +++ b/education/windows/index.md @@ -42,6 +42,13 @@ author: CelesteDG [Deploy Windows 10 in a school district](deploy-windows-10-in-a-school-district.md)
Get step-by-step guidance on how to deploy Windows 10 to PCs and devices across a school district.

+ ## ![Deploy Windows 10 for education](images/windows.png) Upgrade + +
+

[Upgrade Windows 10 Pro to Pro Education from Windows Store for Business](windows-10-pro-to-pro-edu-upgrade.md)
If you have an education tenant and use Windows 10 Pro in your schools now, find out how you can opt-in to a free upgrade to Windows 10 Pro Education.

+
+ + ## Related topics - [Try it out: virtual labs and how-to videos for Windows 10 Education](https://technet.microsoft.com/en-us/windows/dn610356) diff --git a/education/windows/school-get-minecraft.md b/education/windows/school-get-minecraft.md index 0adea43fb7..8668054826 100644 --- a/education/windows/school-get-minecraft.md +++ b/education/windows/school-get-minecraft.md @@ -58,6 +58,51 @@ Qualified education institutions can purchase Minecraft: Education Edition licen - You’ll receive an email with a link to Windows Store for Business. - Sign in to [Windows Store for Business](https://www.microsoft.com/business-store) to distribute and manage the Minecraft: Education Edition licenses. For more information on distribution options, see [Distribute Minecraft](#distribute-minecraft) +## Minecraft: Education Edition payment options +You can pay for Minecraft: Education Edition with a debit or credit card, or with an invoice. + + +### Debit or credit cards + +During the purchase, click **Get started! Add a way to pay.** Provide the info needed for your debit or credit card. + +### Invoices + +Invoices are now a supported payment method for Minecraft: Education Edition. There are a few requirements: +- Admins only (not supported for Teachers) +- $500 invoice minimum for your initial purchase +- $15,000 invoice maximum (for all invoices within your organization) + +**To pay with an invoice** + +1. During the purchase, click **Get started! Add a way to pay.** + + ![Buy page for an app, showing the link for Get started! Add a way to pay.](images/mcee-add-payment-method.png) + +2. Select the Invoice option, and provide the info needed for an invoice. The **PO number** item allows you to add a tracking number or info that is meaningful to your organization. + + ![Invoice Details page showing items that need to be completed for an invoice. PO number is highlighted.](images/mcee-invoice-info.png) + +### Find your invoice + +After you've finished the purchase, you can find your invoice by checking **Minecraft: Education Edition** in your **Inventory**. + +> **Note**: After you complete a purchase, it can take up to twenty-four hours for the app to appear in **Inventory**. + +**To view your invoice** +1. In Windows Store for Business, click **Manage** and then click **Inventory**. +2. Click **Minecraft: Education Edition** in the list of apps. +3. On **Minecraft: Education Edition**, click **View Bills**. + + ![Minecraft: Education Edition app details page with view bills link highlighted](images/mcee-view-bills.png) + +4. On **Invoice Bills**, click the invoice number to view and download your invoice. It downloads as a .pdf. + + ![Minecraft: Education Edition app details page with view bills link highlighted](images/mcee-invoice-bills.png) + +The **Payment Instructions** section on the first page of the invoice has information on invoice amount, due date, and how to pay with electronic funds transfer, or with a check. + + ## Distribute Minecraft After Minecraft: Education Edition is added to your Windows Store for Business inventory, you have three options: diff --git a/education/windows/take-a-test-multiple-pcs.md b/education/windows/take-a-test-multiple-pcs.md index 7d5f5d6c0e..2eb0b2849a 100644 --- a/education/windows/take-a-test-multiple-pcs.md +++ b/education/windows/take-a-test-multiple-pcs.md @@ -17,8 +17,8 @@ author: jdeckerMS Many schools use online testing for formative and summative assessments. It's critical that students use a secure browser that prevents them from using other computer or Internet resources during the test. The **Take a Test** app in Windows 10, Version 1607, creates the right environment for taking a test: -- A Microsoft Edge browser window opens, showing just the test and nothing else. -- The clipboard is cleared. +- Take a Test shows just the test and nothing else. +- Take a Test clears the clipboard. - Students aren’t able to go to other websites. - Students can’t open or access other apps. - Students can't share, print, or record their screens. diff --git a/education/windows/take-a-test-single-pc.md b/education/windows/take-a-test-single-pc.md index 92667b4abd..5b6d36d46b 100644 --- a/education/windows/take-a-test-single-pc.md +++ b/education/windows/take-a-test-single-pc.md @@ -9,7 +9,7 @@ ms.pagetype: edu author: jdeckerMS --- -# Set up Take a Test on a single PC +# Set up Take a Test on a single PC **Applies to:** - Windows 10 @@ -17,8 +17,8 @@ author: jdeckerMS The **Take a Test** app in Windows 10, Version 1607, creates the right environment for taking a test: -- A Microsoft Edge browser window opens, showing just the test and nothing else. -- The clipboard is cleared. +- Take a Test shows just the test and nothing else. +- Take a Test clears the clipboard. - Students aren’t able to go to other websites. - Students can’t open or access other apps. - Students can't share, print, or record their screens. @@ -28,6 +28,7 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme > [!TIP] > To exit **Take a Test**, press Ctrl+Alt+Delete. + ## How you use Take a Test ![Use test account or test url in Take a Test](images/take-a-test-flow.png) @@ -38,7 +39,7 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme ## Set up a dedicated test account - + @@ -60,10 +61,10 @@ The **Take a Test** app in Windows 10, Version 1607, creates the right environme ## Provide link to test -Anything hosted on the web can be presented in a locked down manner, not just assessments. To lock down online content, just embed a URL with a specific prefix and devices will be locked down when users follow the link. We recommend using this method for lower stakes assessments. +Anything hosted on the web can be presented in a locked down manner, not just assessments. To lock down online content, just embed a URL with a specific prefix and devices will be locked down when users follow the link. We recommend using this method for lower stakes assessments. 1. Create a link to the test URL. Use **ms-edu-secureassessment:** before the URL and **!enforceLockdown** after the URL. -``` +``` ms-edu-secureassessment:!enforceLockdown ``` > [!NOTE] @@ -79,9 +80,3 @@ ms-edu-secureassessment:!enforceLockdown [Set up Take a Test on multiple PCs](take-a-test-multiple-pcs.md) [Take a Test app technical reference](take-a-test-app-technical.md) - - - - - - diff --git a/education/windows/windows-10-pro-to-pro-edu-upgrade.md b/education/windows/windows-10-pro-to-pro-edu-upgrade.md new file mode 100644 index 0000000000..cb88389ec9 --- /dev/null +++ b/education/windows/windows-10-pro-to-pro-edu-upgrade.md @@ -0,0 +1,259 @@ +--- +title: Windows 10 Pro to Pro Education upgrade +description: Describes how IT Pros can opt into a Windows 10 Pro Education upgrade from the Windows Store for Business. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: edu +author: CelesteDG +--- + +# Upgrade Windows 10 Pro to Pro Education from Windows Store for Business + +Windows 10 Pro Education is a new offering in Windows 10 Anniversary Update (Windows 10, version 1607). This edition builds on the commercial version of Windows 10 Pro and provides important management controls needed in schools by providing education-specific default settings. + +If you have an education tenant and use Windows 10 Pro in your schools now, global administrators can opt-in to a free upgrade to Windows 10 Pro Education through the Windows Store for Business. To take advantage of this offering, make sure you meet the [requirements for upgrade](#requirements-for-upgrade). + +Starting with Windows 10, version 1607, academic institutions can easily move from Windows 10 Pro to Windows 10 Pro Education—no keys and no reboots. After one of your users enters the Azure AD credentials associated with a Windows 10 Pro Education license, the operating system turns from Windows 10 Pro to Windows 10 Pro Education and all the appropriate Windows 10 Pro Education features are unlocked. When a license expires or is transferred to another user, the Windows 10 Pro Education device seamlessly steps back down to Windows 10 Pro. + +Previously, only schools or organizations purchasing devices as part of the Shape the Future K-12 program or with a Microsoft Volume Licensing Agreement could deploy Windows 10 Pro Education to their users. Now, if you have a Azure AD for your organization, you can take advantage of the Windows 10 Pro Education features. + +When you upgrade to Windows 10 Pro Education, you get the following benefits: + +- **Windows 10 Pro Education edition**. Devices currently running Windows 10 Pro, version 1607 can get Windows 10 Pro Education Current Branch (CB). This benefit does not include Long Term Service Branch (LTSB). +- **Support from one to hundreds of users**. The Windows 10 Pro Education program does not have a limitation on the number of licenses an organization can have. +- **Roll back to Windows 10 Pro at any time**. When a user leaves the domain or you turn off the setting to automatic upgrade to Windows 10 Pro Education, the device reverts seamlessly to Windows 10 Pro edition (after a grace period of up to 30 days). + +In summary, the Windows 10 Pro Education free upgrade through the Windows Store for Business is an upgrade offering that provides organizations easier, more flexible access to the benefits of Windows 10 Pro Education edition. + +## Compare Windows 10 Pro and Pro Education editions + +In Windows 10, version 1607, the Windows 10 Pro Education edition contains the same features as the Windows 10 Pro edition except for the following differences: + +- Cortana is removed from Windows 10 Pro Education +- Options to manage Windows 10 tips and tricks and Windows Store suggestions + +See [Windows 10 editions for education customers](windows-editions-for-education-customers.md) for more info about Windows 10 Pro Education and you can also [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare) to find out more about the features we support in other editions of Windows 10. + +## Requirements for upgrade + +Before you upgrade from Windows 10 Pro to Windows 10 Pro Education, make sure you meet these requirements: +- Devices must be: + - Running Windows 10 Pro, version 1607 + - Must be Azure Active Directory joined, or domain joined with Azure AD Connect. Customers who are federated with Azure Active Directory are also eligible. For more information, see [Review requirements on devices](#review-requirements-on-devices). + + If you haven't domain joined your devices already, [prepare for deployment of Windows 10 Pro Education licenses](#preparing-for-deployment-of-windows-10-pro-education-licenses). +- The user making the changes must be a member of the Azure AD global administrator group. +- The Azure AD tenant must be recognized as an education approved tenant. +- You must have a Windows Store for Business account. + +## Upgrade from Windows 10 Pro to Windows 10 Pro Education +Once you enable the setting to upgrade Windows 10 Pro to Windows 10 Pro Education, the upgrade will begin only after a user signs in to their device. The setting applies to the entire organization so you cannot select which users will receive the upgrade. + +**To turn on the automatic upgrade from Windows 10 Pro to Windows 10 Pro Education** +1. Sign in to [Windows Store for Business](https://businessstore.microsoft.com/en-us/Store/Apps) with your work or school account. + + If this is the first time you're signing into the Store, you'll be prompted to accept the Windows Store for Business Terms of Use. +2. Go to **Manage > Account information**. +3. In the **Account information** page, look for the **Automatic Windows 10 Pro Education upgrade** section and follow the link. + + You will see the following page informing you that your school is eligible for a free automatic upgrade from Windows 10 Pro to Windows 10 Pro Education. + + ![Eligible for free Windows 10 Pro to Windows 10 Pro Education upgrade](images/wsfb_win10_pro_to proedu_upgrade_eligibility_page.png) + + **Figure 1** - Upgrade Windows 10 Pro to Windows 10 Pro Education + +4. Select **I understand enabling this setting will impact all devices running Windows 10 Pro in my organization**. +5. Click **Send me email with a link to enable this upgrade** to receive an email with a link to the upgrade. + + ![Email with Windows 10 Pro to Pro Education upgrade link](images/wsfb_win10_pro_to_proedu_email_upgrade_link.png) + + **Figure 2** - Email notification with a link to enable the upgrade + +6. Click **Enable the automatic upgrade now** to turn on automatic upgrades. + + ![Enable the automatic upgrade](images/wsfb_win10_pro_to proedu_upgrade_enable.png). + + **Figure 3** - Enable the automatic upgrade + + Enabling the automatic upgrade also triggers an email message notifying all global administrators in your organization about the upgrade. It also contains a link that enables any global administrators to cancel the upgrade, if they choose. For more info about rolling back or canceling the upgrade, see [Roll back Windows 10 Pro Education to Windows 10 Pro](#roll-back-windows-10-pro-education-to-windows-10-pro). + + ![Email informing other global admins about the upgrade](images/wsfb_win10_pro_to proedu_upgrade_email_global_admins.png). + + **Figure 4** - Notification email sent to all global administrators + +7. Click **Close** in the **Success** page. + + In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, you will see a message informing you when the upgrade was enabled and the name of the admin who enabled the upgrade. + + ![Summary page about the upgrade](images/wsfb_win10_pro_to proedu_upgrade_summary.png) + + **Figure 5** - Details about the automatic upgrade + + +## Explore the upgrade experience + +So what will the users experience? How will they upgrade their devices? + +### For existing Azure AD domain joined devices +Existing Azure AD domain joined devices will be upgraded from Windows 10 Pro to Windows 10 Pro Education the next time the user logs in. That's it! No additional steps are needed. + +### For new devices that are not Azure AD domain joined +Now that you've turned on the setting to automatically upgrade Windows 10 Pro to Windows 10 Pro Education, the users are ready to upgrade their devices running Windows 10 Pro, version 1607 edition to Windows 10 Pro Education edition. + +#### Step 1: Join users’ devices to Azure AD + +Users can join a device to Azure AD the first time they start the device (during setup), or they can join a device that they already use running Windows 10 Pro, version 1607. + +**To join a device to Azure AD the first time the device is started** + +1. During the initial setup, on the **Who owns this PC?** page, select **My organization**, and then click **Next**, as illustrated in **Figure 6**. + + Who owns this PC? page in Windows 10 setup + + **Figure 6** - The “Who owns this PC?” page in initial Windows 10 setup + +2. On the **Choose how you’ll connect** page, select **Join Azure AD**, and then click **Next**, as illustrated in **Figure 7**. + + Choose how you'll connect - page in Windows 10 setup + + **Figure 7** - The “Choose how you’ll connect” page in initial Windows 10 setup + +3. On the **Let’s get you signed in** page, enter the Azure AD credentials, and then click **Sign in**, as illustrated in **Figure 8**. + + Let's get you signed in - page in Windows 10 setup + + **Figure 8** - The “Let’s get you signed in” page in initial Windows 10 setup + +Now the device is Azure AD joined to the company’s subscription. + +**To join a device to Azure AD when the device already has Windows 10 Pro, version 1607 installed and set up** + +1. Go to **Settings > Accounts > Access work or school**, as illustrated in **Figure 9**. + + Connect to work or school configuration + + **Figure 9** - Connect to work or school configuration in Settings + +2. In **Set up a work or school account**, click **Join this device to Azure Active Directory**, as illustrated in **Figure 10**. + + Set up a work or school account + + **Figure 10** - Set up a work or school account + +3. On the **Let’s get you signed in** page, enter the Azure AD credentials, and then click **Sign in**, as illustrated in **Figure 11**. + + Let's get you signed in - dialog box + + **Figure 11** - The “Let’s get you signed in” dialog box + +Now the device is Azure AD joined to the company’s subscription. + +#### Step 2: Sign in using Azure AD account + +Once the device is joined to your Azure AD subscription, the user will sign in by using his or her Azure AD account, as illustrated in **Figure 12**. The Windows 10 Pro Education license associated with the user will enable Windows 10 Pro Education edition capabilities on the device. + +Sign in, Windows 10 + +**Figure 12** - Sign in by using Azure AD account + +#### Step 3: Verify that Pro Education edition is enabled + +You can verify the Windows 10 Pro Education in **Settings > Update & Security > Activation**, as illustrated in **Figure 13**. + + + +**Figure 13** - Windows 10 Pro Education in Settings + +Windows 10 activated and subscription active + +If there are any problems with the Windows 10 Pro Education license or the activation of the license, the **Activation** panel will display the appropriate error message or status. You can use this information to help you diagnose the licensing and activation process. + +## Troubleshoot the user experience + +In some instances, users may experience problems with the Windows 10 Pro Education upgrade. The most common problems that users may experience are as follows: + +- The existing Windows 10 Pro, version 1607 operating system is not activated. + +- The Windows 10 Pro Education upgrade has lapsed or has been removed. + +Use the following figures to help you troubleshoot when users experience these common problems: + + + +**Figure 13** - Illustrates a device in a healthy state, where Windows 10 Pro, version 1607 is activated and the Windows 10 Pro Education upgrade is active. + +Windows 10 activated and subscription active + + + +**Figure 14** - Illustrates a device on which Windows 10 Pro, version 1607 is not activated, but the Windows 10 Pro Education upgrade is active. + +Windows 10 not activated and subscription active

+ + +### Review requirements on devices + +Devices must be running Windows 10 Pro, version 1607, and be Azure Active Directory joined, or domain joined with Azure AD Connect. Customers who are federated with Azure Active Directory are also eligible. You can use the following procedures to review whether a particular device meets requirements. + +**To determine if a device is Azure Active Directory joined** + +1. Open a command prompt and type **dsregcmd /status**. + +2. Review the output under Device State. If the **AzureAdJoined** status is YES, the device is Azure Active Directory joined. + +**To determine the version of Windows 10** + +- At a command prompt, type: + **winver** + + A popup window will display the Windows 10 version number and detailed OS build information. + + If a device is running a previous version of Windows 10 Pro (for example, version 1511), it will not be upgraded to Windows 10 Pro Education when a user signs in, even if the user has been assigned a license. + +## Roll back Windows 10 Pro Education to Windows 10 Pro + +If your organization has the Windows 10 Pro to Windows 10 Pro Education upgrade enabled, and you decide to roll back to Windows 10 Pro or to cancel the upgrade, you can do this by: +- Logging into Windows Store for Business page and turning off the automatic upgrade. +- Selecting the link to turn off the automatic upgrade from the notification email sent to all global administrators. + +Once the automatic upgrade to Windows 10 Pro Education is turned off, the change is effective immediately. Devices that were upgraded will revert to Windows 10 Pro only after the license has been refreshed (every 30 days) and the next time the user signs in. This means that a user whose device was upgraded may not immediately see Windows 10 Pro Education rolled back to Windows 10 Pro for up to 30 days. However, users who haven't signed in during the time that an upgrade was enabled and then turned off will never see their device change from Windows 10 Pro. + +**To roll back Windows 10 Pro Education to Windows 10 Pro** +1. Log in to [Windows Store for Business](https://businessstore.microsoft.com/en-us/Store/Apps) with your school or work account, or follow the link from the notification email to turn off the automatic upgrade. +2. Select **Manage > Account information** and locate the section **Automatic Windows 10 Pro Education upgrade** and follow the link. +3. In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, select **Turn off the automatic upgrade to Windows 10 Pro Education**. + + ![Turn off automatic upgrade to Windows 10 Pro Education](images/wsfb_win10_pro_to proedu_upgrade_disable.png) + + **Figure 15** - Link to turn off the automatic upgrade + +4. You will be asked if you're sure that you want to turn off automatic upgrades to Windows 10 Pro Education. Click **Yes**. +5. Click **Close** in the **Success** page. +6. In the **Upgrade Windows 10 Pro to Windows 10 Pro Education** page, you will see information on when the upgrade was disabled. + + If you decide later that you want to turn on automatic upgrades again, you can do this from the **Upgrade Windows 10 Pro to Windows 10 Pro Education**. + +## Preparing for deployment of Windows 10 Pro Education licenses + +If you have on-premises Active Directory Domain Services (AD DS) domains, users will use their domain-based credentials to sign in to the AD DS domain. Before you start deploying Windows 10 Pro Education to users, you need to synchronize the identities in the on-premises AD DS domain with Azure AD. + +You need to synchronize these identities so that users will have a *single identity* that they can use to access their on-premises apps and cloud services that use Azure AD (such as Windows 10 Pro Education). This means that users can use their existing credentials to sign in to Azure AD and access the cloud services that you provide and manage for them. + +**Figure 16** illustrates the integration between the on-premises AD DS domain with Azure AD. [Microsoft Azure Active Directory Connect](http://www.microsoft.com/en-us/download/details.aspx?id=47594) (Azure AD Connect) is responsible for synchronization of identities between the on-premises AD DS domain and Azure AD. Azure AD Connect is a service that you can install on-premises or in a virtual machine in Azure. + +![Illustration of Azure Active Directory Connect](images/windows-ad-connect.png) + +**Figure 16** - On-premises AD DS integrated with Azure AD + +For more information about integrating on-premises AD DS domains with Azure AD, see these resources: +- [Integrating your on-premises identities with Azure Active Directory](http://azure.microsoft.com/en-us/documentation/articles/active-directory-aadconnect/) +- [Azure AD + Domain Join + Windows 10](https://blogs.technet.microsoft.com/enterprisemobility/2016/02/17/azure-ad-domain-join-windows-10/) + +## Related topics + +[Deploy Windows 10 in a school](deploy-windows-10-in-a-school.md) + +[Deploy Windows 10 in a school district](deploy-windows-10-in-a-school-district.md) + +[Compare Windows 10 editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare) diff --git a/windows/deploy/TOC.md b/windows/deploy/TOC.md index 4fed1981ec..906b45e238 100644 --- a/windows/deploy/TOC.md +++ b/windows/deploy/TOC.md @@ -11,6 +11,9 @@ #### [Deploy Windows](upgrade-analytics-deploy-windows.md) #### [Review site discovery](upgrade-analytics-review-site-discovery.md) ### [Troubleshoot Upgrade Analytics](troubleshoot-upgrade-analytics.md) +## [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) +### [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) +### [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) ## [Deploy Windows 10 with the Microsoft Deployment Toolkit](deploy-windows-10-with-the-microsoft-deployment-toolkit.md) ### [Get started with the Microsoft Deployment Toolkit (MDT)](get-started-with-the-microsoft-deployment-toolkit.md) #### [Key features in MDT 2013 Update 2](key-features-in-mdt-2013.md) @@ -50,8 +53,17 @@ ## [Windows 10 upgrade paths](windows-10-upgrade-paths.md) ## [Windows 10 edition upgrade](windows-10-edition-upgrades.md) ## [Provisioning packages for Windows 10](provisioning-packages.md) -### [Provision PCs with common settings for initial deployment](provision-pcs-for-initial-deployment.md) -### [Provision PCs with apps and certificates for initial deployments](provision-pcs-with-apps-and-certificates.md) +### [How provisioning works in Windows 10](provisioning-how-it-works.md) +### [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +### [Create a provisioning package](provisioning-create-package.md) +### [Apply a provisioning package](provisioning-apply-package.md) +### [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +### [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +### [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +### [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +### [NFC-based device provisioning](provisioning-nfc.md) +### [Windows ICD command-line interface (reference)](provisioning-command-line.md) +### [Create a provisioning package with multivariant settings](provisioning-multivariant.md) ## [Deploy Windows To Go in your organization](deploy-windows-to-go.md) ## [Upgrade a Windows Phone 8.1 to Windows 10 Mobile with Mobile Device Management](upgrade-windows-phone-8-1-to-10.md) ## [Sideload apps in Windows 10](sideload-apps-in-windows-10.md) diff --git a/windows/deploy/assign-applications-using-roles-in-mdt-2013.md b/windows/deploy/assign-applications-using-roles-in-mdt-2013.md index a6e7d69377..d8b4505c51 100644 --- a/windows/deploy/assign-applications-using-roles-in-mdt-2013.md +++ b/windows/deploy/assign-applications-using-roles-in-mdt-2013.md @@ -122,11 +122,11 @@ Figure 14. ZTIGather.log displaying the application GUID belonging to the Adobe ## Related topics [Set up MDT for BitLocker](set-up-mdt-2013-for-bitlocker.md) -[Configure MDT deployment share rules](configure-mdt-deployment-share-rules.md) -[Configure MDT for UserExit scripts](configure-mdt-2013-for-userexit-scripts.md) -[Simulate a Windows 10 deployment in a test environment](simulate-a-windows-10-deployment-in-a-test-environment.md) -[Use the MDT database to stage Windows 10 deployment information](use-the-mdt-database-to-stage-windows-10-deployment-information.md) -[Use web services in MDT](use-web-services-in-mdt-2013.md) -[Use Orchestrator runbooks with MDT](use-orchestrator-runbooks-with-mdt-2013.md) +
[Configure MDT deployment share rules](configure-mdt-deployment-share-rules.md) +
[Configure MDT for UserExit scripts](configure-mdt-2013-for-userexit-scripts.md) +
[Simulate a Windows 10 deployment in a test environment](simulate-a-windows-10-deployment-in-a-test-environment.md) +
[Use the MDT database to stage Windows 10 deployment information](use-the-mdt-database-to-stage-windows-10-deployment-information.md) +
[Use web services in MDT](use-web-services-in-mdt-2013.md) +
[Use Orchestrator runbooks with MDT](use-orchestrator-runbooks-with-mdt-2013.md)     diff --git a/windows/deploy/change-history-for-deploy-windows-10.md b/windows/deploy/change-history-for-deploy-windows-10.md index f7e67993e5..88557fd56f 100644 --- a/windows/deploy/change-history-for-deploy-windows-10.md +++ b/windows/deploy/change-history-for-deploy-windows-10.md @@ -11,6 +11,26 @@ author: greg-lindsay # Change history for Deploy Windows 10 This topic lists new and updated topics in the [Deploy Windows 10](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). +## January 2017 +| New or changed topic | Description | +|----------------------|-------------| +| [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) | New | +| [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) | New | +| [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) | New | +| [Apply a provisioning package](provisioning-apply-package.md) | New (previously published in other topics) | +| [Create a provisioning package for Windows 10](provisioning-create-package.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Create a provisioning package with multivariant settings](provisioning-multivariant.md) | New (previously published in Hardware Dev Center on MSDN) | +| [How provisioning works in Windows 10](provisioning-how-it-works.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) | New (previously published in Hardware Dev Center on MSDN) | +| [NFC-based device provisioning](provisioning-nfc.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Windows ICD command-line interface (reference)](provisioning-command-line.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Get started with Upgrade Analytics](upgrade-analytics-get-started.md) | Updated exit code table with suggested fixes, and added link to the Upgrade Analytics blog | +| [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) | Instructions for applying the provisioning package moved to [Apply a provisioning package](provisioning-apply-package.md) | +| [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) | Instructions for applying the provisioning package moved to [Apply a provisioning package](provisioning-apply-package.md) | + + ## October 2016 | New or changed topic | Description | |----------------------|-------------| diff --git a/windows/deploy/create-a-windows-10-reference-image.md b/windows/deploy/create-a-windows-10-reference-image.md index 4954dd3dcd..7f4671ccf1 100644 --- a/windows/deploy/create-a-windows-10-reference-image.md +++ b/windows/deploy/create-a-windows-10-reference-image.md @@ -167,7 +167,7 @@ If you need to add many applications, you can take advantage of the PowerShell s 2. Import the snap-in and create the PSDrive by running the following commands in an elevated PowerShell prompt: ``` syntax - Import-Topic "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" + Import-Module "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" New-PSDrive -Name "DS001" -PSProvider MDTProvider -Root "E:\MDTBuildLab" ``` diff --git a/windows/deploy/images/PoC.png b/windows/deploy/images/PoC.png index de735060713214af014b38b0b9fd530ff38203d8..6d7b7eb5afa6b48cb34df12dd0b44be230fd3c5f 100644 GIT binary patch literal 139787 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%0A{co3N_^dbY)h)$$tN*pT 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 T(Qn*a2k721x><34Y~bm`Kq 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 diff --git a/windows/deploy/images/package.png b/windows/deploy/images/package.png index f5e975e3e92e22d17610159988ef2735725b3b84..535773ad9541890c1e5100ac5a241de37e52d6cc 100644 GIT binary patch literal 11050 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 cL1Mc9 [!IMPORTANT] > When you build a provisioning package, you may include sensitive information in the project files and in the provisioning package (.ppkg) file. Although you have the option to encrypt the .ppkg file, project files are not encrypted. You should store the project files in a secure location and delete the project files when they are no longer needed. -## Apply package -1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. - - ![The first screen to set up a new PC](images/oobe.jpg) - -2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. - - ![Set up device?](images/setupmsg.jpg) - -3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. - - ![Provision this device](images/prov.jpg) - -4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. - - ![Choose a package](images/choose-package.png) - -5. Select **Yes, add it**. - - ![Do you trust this package?](images/trust-package.png) - + **Next step**: [How to apply a provisioning package](provisioning-apply-package.md) ## Learn more -- [Build and apply a provisioning package]( https://go.microsoft.com/fwlink/p/?LinkId=629651) - Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922)   +## Related topics -  +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) diff --git a/windows/deploy/provision-pcs-with-apps-and-certificates.md b/windows/deploy/provision-pcs-with-apps-and-certificates.md index 2a918f8202..6e4614a977 100644 --- a/windows/deploy/provision-pcs-with-apps-and-certificates.md +++ b/windows/deploy/provision-pcs-with-apps-and-certificates.md @@ -4,7 +4,7 @@ description: Create a provisioning package to apply settings to a PC running Win ms.assetid: 66D14E97-E116-4218-8924-E2A326C9367E keywords: ["runtime provisioning", "provisioning package"] ms.prod: W10 -ms.mktglfcycl: manage +ms.mktglfcycl: deploy ms.sitesec: library author: jdeckerMS localizationpriority: high @@ -57,7 +57,7 @@ Use the Windows Imaging and Configuration Designer (ICD) tool included in the Wi 3. Go to **Runtime settings** > **ProvisioningCommands** > **DeviceContext** > **CommandLine** and specify the command line that needs to be executed to install the app. This is a single command line (such as a script, executable, or msi) that triggers a silent install of your CommandFiles. Note that the install must execute silently (without displaying any UI). For MSI installers use, the `msiexec /quiet` option. > [!NOTE] -> If you are installing more than one app, then use CommandLine to invoke the script or batch file that orchestrates installation of the files. For more information, see [Install a Win32 app using a provisioning package](https://msdn.microsoft.com/library/windows/hardware/mt703295%28v=vs.85%29.aspx). +> If you are installing more than one app, then use `CommandLine` to invoke the script or batch file that orchestrates installation of the files. For more information, see [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md). ### Add a universal app to your package @@ -170,66 +170,27 @@ If your build is successful, the name of the provisioning package, output direct -## Apply package - -### During initial setup, from a USB drive - -1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. - - ![The first screen to set up a new PC](images/oobe.jpg) - -2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. - - ![Set up device?](images/setupmsg.jpg) - -3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. - - ![Provision this device](images/prov.jpg) - -4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. - - ![Choose a package](images/choose-package.png) - -5. Select **Yes, add it**. - - ![Do you trust this package?](images/trust-package.png) - -6. Read and accept the Microsoft Software License Terms. - - ![Sign in](images/license-terms.png) - -7. Select **Use Express settings**. - - ![Get going fast](images/express-settings.png) - -8. If the PC doesn't use a volume license, you'll see the **Who owns this PC?** screen. Select **My work or school owns it** and tap **Next**. - - ![Who owns this PC?](images/who-owns-pc.png) - -9. On the **Choose how you'll connect** screen, select **Join Azure AD** or **Join a domain** and tap **Next**. - - ![Connect to Azure AD](images/connect-aad.png) - -10. Sign in with your domain, Azure AD, or Office 365 account and password. When you see the progress ring, you can remove the USB drive. - - ![Sign in](images/sign-in-prov.png) - - -### After setup, from a USB drive, network folder, or SharePoint site - -On a desktop computer, navigate to **Settings** > **Accounts** > **Work access** > **Add or remove a management package** > **Add a package**, and select the package to install. - -![add a package option](images/package.png) +**Next step**: [How to apply a provisioning package](provisioning-apply-package.md) ## Learn more -- [Build and apply a provisioning package]( https://go.microsoft.com/fwlink/p/?LinkId=629651) - Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) - Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922)   - - +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) diff --git a/windows/deploy/provisioning-apply-package.md b/windows/deploy/provisioning-apply-package.md new file mode 100644 index 0000000000..417c9e9e75 --- /dev/null +++ b/windows/deploy/provisioning-apply-package.md @@ -0,0 +1,119 @@ +--- +title: Apply a provisioning package (Windows 10) +description: Provisioning packages can be applied to a device during the first-run experience (OOBE) and after ("runtime"). +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Apply a provisioning package + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Provisioning packages can be applied to a device during the first-run experience (out-of-box experience or "OOBE") and after ("runtime"). + +## Desktop editions + +### During initial setup, from a USB drive + +1. Start with a computer on the first-run setup screen. If the PC has gone past this screen, reset the PC to start over. To reset the PC, go to **Settings** > **Update & security** > **Recovery** > **Reset this PC**. + + ![The first screen to set up a new PC](images/oobe.jpg) + +2. Insert the USB drive. Windows Setup will recognize the drive and ask if you want to set up the device. Select **Set up**. + + ![Set up device?](images/setupmsg.jpg) + +3. The next screen asks you to select a provisioning source. Select **Removable Media** and tap **Next**. + + ![Provision this device](images/prov.jpg) + +4. Select the provisioning package (\*.ppkg) that you want to apply, and tap **Next**. + + ![Choose a package](images/choose-package.png) + +5. Select **Yes, add it**. + + ![Do you trust this package?](images/trust-package.png) + +6. Read and accept the Microsoft Software License Terms. + + ![Sign in](images/license-terms.png) + +7. Select **Use Express settings**. + + ![Get going fast](images/express-settings.png) + +8. If the PC doesn't use a volume license, you'll see the **Who owns this PC?** screen. Select **My work or school owns it** and tap **Next**. + + ![Who owns this PC?](images/who-owns-pc.png) + +9. On the **Choose how you'll connect** screen, select **Join Azure AD** or **Join a domain** and tap **Next**. + + ![Connect to Azure AD](images/connect-aad.png) + +10. Sign in with your domain, Azure AD, or Office 365 account and password. When you see the progress ring, you can remove the USB drive. + + ![Sign in](images/sign-in-prov.png) + +### After setup, from a USB drive, network folder, or SharePoint site + +On a desktop computer, navigate to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package to install. + +![add a package option](images/package.png) + +## Mobile editions + +### Using removable media + +1. Insert an SD card containing the provisioning package into the device. +2. Navigate to **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** > **Add a package**, and select the package to install. + + ![add a package option](images/packages-mobile.png) + +3. Click **Add**. + +4. On the device, the **Is this package from a source you trust?** message will appear. Tap **Yes, add it**. + + ![Is this package from a source you trust](images/package-trust.png) + +### Copying the provisioning package to the device + +1. Connect the device to your PC through USB. + +2. On the PC, select the provisioning package that you want to use to provision the device and then drag and drop the file to your device. + +3. On the device, the **Is this package from a source you trust?** message will appear. Tap **Yes, add it**. + + ![Is this package from a source you trust](images/package-trust.png) + + +# + + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-command-line.md b/windows/deploy/provisioning-command-line.md new file mode 100644 index 0000000000..d5c52aabac --- /dev/null +++ b/windows/deploy/provisioning-command-line.md @@ -0,0 +1,68 @@ +--- +title: Windows ICD command-line interface (Windows 10) +description: +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Windows ICD command-line interface (reference) + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +You can use the Windows Imaging and Configuration Designer (ICD) command-line interface (CLI) to automate the building of provisioning packages and Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile or Windows 10 IoT Core (IoT Core) images. + +- IT pros can use the Windows ICD CLI to require less re-tooling of existing processes. You must run the Windows ICD CLI from a command window with administrator privileges. + +- You must use the Windows ICD CLI and edit the customizations.xml sources to create an image and/or provisioning package with multivariant support. You need the customizations.xml file as one of the inputs to the Windows ICD CLI to build a provisioning package. For more information, see [Create a provisioning package with multivariant settings](provisioning-multivariant.md). + + + +## Syntax + +``` +icd.exe /Build-ProvisioningPackage /CustomizationXML: /PackagePath: +[/StoreFile:] [/MSPackageRoot:] [/OEMInputXML:] +[/ProductName:] [/Variables::] [[+|-]Encrypted] [[+|-]Overwrite] [/?] +``` + +## Switches and arguments + +| Switch | Required? | Arguments | +| --- | --- | --- | +| /CustomizationXML | No | Specifies the path to a Windows provisioning XML file that contains the customization assets and settings. For more information, see Windows provisioning answer file. | +| /PackagePath | Yes | Specifies the path and the package name where the built provisioning package will be saved. | +| /StoreFile | No


See Important note. | For partners using a settings store other than the default store(s) used by Windows ICD, use this parameter to specify the path to one or more comma-separated Windows settings store file. By default, if you don't specify a settings store file, the settings store that's common to all Windows editions will be loaded by Windows ICD.


**Important** If you use this parameter, you must not use /MSPackageRoot or /OEMInputXML. | +| /Variables | No | Specifies a semicolon separated and macro pair. The format for the argument must be =. | +| Encrypted | No | Denotes whether the provisioning package should be built with encryption. Windows ICD auto-generates the decryption password and includes this information in the output.


Precede with + for encryption or - for no encryption. The default is no encryption. | +| Overwrite | No | Denotes whether to overwrite an existing provisioning package.


Precede with + to overwrite an existing package or - if you don't want to overwrite an existing package. The default is false (don't overwrite). | +| /? | No | Lists the switches and their descriptions for the command-line tool or for certain commands. | + + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) +  + + + + + diff --git a/windows/deploy/provisioning-create-package.md b/windows/deploy/provisioning-create-package.md new file mode 100644 index 0000000000..51b609a8ea --- /dev/null +++ b/windows/deploy/provisioning-create-package.md @@ -0,0 +1,148 @@ +--- +title: Create a provisioning package (Windows 10) +description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Create a provisioning package for Windows 10 + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +You use Windows Imaging and Configuration Designer (ICD) to create a provisioning package (.ppkg) that contains customization settings. You can apply the provisioning package to a device running Windows 10. + +>[Learn how to install Windows ICD.](provisioning-install-icd.md) + +## Start a new project + +1. Open Windows ICD: + - From either the Start screen or Start menu search, type 'Imaging and Configuration Designer' and click on the Windows ICD shortcut, + + or + + - Navigate to `C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86` (on an x64 computer) or `C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\ICD.exe` (on an x86 computer), and then double-click **ICD.exe**. + +2. Select your desired option on the **Start** page, which offers three options for creating a provisioning package, as shown in the following image: + + ![Simple provisioning or provision school devices or advanced provisioning](images/icd-create-options.png) + + - The **Simple provisioning** and **Provision school devices** options provide wizard-style walkthroughs for creating a provisioning package based on a set of common settings. + - The **Advanced provisioning** option opens a new project with all **Runtime settings** available. + >[!TIP] + >You can start a project in the simple editor and then switch the project to the advanced editor. + > + >![Switch to advanced editor](images/icd-switch.png) + +3. Enter a name for your project, and then click **Next**. + +4. Select the settings you want to configure, based on the type of device, and then click **Next**. The following table describes the options. + + | Windows edition | Settings available for customization | Provisioning package can apply to | + | --- | --- | --- | + | All Windows editions | Common settings | All Windows 10 devices | + | All Windows desktop editions | Common settings and settings specific to desktop devices | All Windows 10 desktop editions (Home, Pro, Enterprise, Pro Education, Enterprise Education) | + | All Windows mobile editions | Common settings and settings specific to mobile devices | All Windows 10 Mobile devices | + | Windows 10 IoT Core | Common settings and settings specific to Windows 10 IoT Core | All Windows 10 IoT Core devices | + | Windows 10 Holographic | Common settings and settings specific to Windows 10 Holographic | [Microsoft HoloLens](https://technet.microsoft.com/itpro/hololens/hololens-provisioning) | + | Common to Windows 10 Team edition | Common settings and settings specific to Windows 10 Team | [Microsoft Surface Hub](https://technet.microsoft.com/itpro/surface-hub/provisioning-packages-for-certificates-surface-hub) | + +5. On the **Import a provisioning package (optional)** page, you can click **Finish** to create your project, or browse to and select an existing provisioning packge to import to your project, and then click **Finish**. + +>[!TIP] +>**Import a provisioning package** can make it easier to create different provisioning packages that all have certain settings in common. For example, you could create a provisioning package that contains the settings for your organization's network, and then import it into other packages you create so you don't have to reconfigure those common settings repeatedly. + +After you click **Finish**, Windows ICD will open the appropriate walkthrough page if you selected **Simple provisioning** or **Provision school devices**, or the **Available customizations** pane if you selected **Advanced provisioning**. The remainder of this topic will explain the **Advanced provisioning scenario**. + +- For instructions on **Simple provisioning**, see [Provision PCs with common settings](provision-pcs-for-initial-deployment.md). +- For instructions on **Provision school devices**, see [Set up student PCs to join domain](https://technet.microsoft.com/edu/windows/set-up-students-pcs-to-join-domain). + + +## Configure settings + +For an advanced provisioning project, Windows ICD opens the **Available customizations** pane. The example in the following image is based on **All Windows desktop editions** settings. + +![What the ICD interface looks like](images/icd-runtime.png) + +The settings in Windows ICD are based on Windows 10 configuration service providers (CSPs). To learn more about CSPs, see [Introduction to configuration service providers (CSPs) for IT pros](https://technet.microsoft.com/itpro/windows/manage/how-it-pros-can-use-configuration-service-providers). + +The process for configuring settings is similar for all settings. The following table shows an example. + + + + + + + +
![step one](images/one.png)
Expand a category.
![Expand Certificates category](images/icd-step1.png)
![step two](images/two.png)
Select a setting.
![Select ClientCertificates](images/icd-step2.png)
![step three](images/three.png)
Enter a value for the setting. Click **Add** if the button is displayed.
![Enter a name for the certificate](images/icd-step3.png)
![step four](images/four.png)
Some settings, such as this example, require additional information. In **Available customizations**, select the value you just created, and additional settings are displayed.
![Additional settings for client certificate](images/icd-step4.png)
![step five](images/five.png)
When the setting is configured, it is displayed in the **Selected customizations** pane.
![Selected customizations pane](images/icd-step5.png)
+ +For details on each specific setting, see [Windows Provisioning settings reference](https://msdn.microsoft.com/library/windows/hardware/dn965990.aspx). The reference topic for a setting is also displayed in Windows ICD when you select the setting, as shown in the following image. + +![Windows ICD opens the reference topic when you select a setting](images/icd-setting-help.png) + + + ## Build package + +1. After you're done configuring your customizations, click **Export** and select **Provisioning Package**. + + ![Export on top bar](images/icd-export-menu.png) + +2. In the **Describe the provisioning package** window, enter the following information, and then click **Next**: + - **Name** - This field is pre-populated with the project name. You can change this value by entering a different name in the **Name** field. + - **Version (in Major.Minor format** - - Optional. You can change the default package version by specifying a new value in the **Version** field. + - **Owner** - Select **IT Admin**. For more information, see [Precedence for provisioning packages](provisioning-how-it-works.md#precedence-for-provisioning-packages). + - **Rank (between 0-99)** - Optional. You can select a value between 0 and 99, inclusive. The default package rank is 0. + +3. In the **Select security details for the provisioning package** window, you can select to encrypt and/or sign a provisioning package with a selected certificate. Both selections are optional. Click **Next** after you make your selections. + + - **Encrypt package** - If you select this option, an auto-generated password will be shown on the screen. + - **Sign package** - If you select this option, you must select a valid certificate to use for signing the package. You can specify the certificate by clicking **Select** and choosing the certificate you want to use to sign the package. + + >[!NOTE] + >You should only configure provisioning package security when the package is used for device provisioning and the package has contents with sensitive security data such as certificates or credentials that should be prevented from being compromised. When applying an encrypted and/or signed provisioning package, either during OOBE or through the setting UI, the package can be decrypted, and if signed, be trusted without explicit user consent. An IT administrator can set policy on a user device to restrict the removal of required packages from the device, or the provisioning of potentially harmful packages on the device. + > + >If a provisioning package is signed by a trusted provisioner, it can be installed on a device without a prompt for user consent. In order to enable trusted provider certificates, you must set the **TrustedProvisioners** setting prior to installing the trusted provisioning package. This is the only way to install a package without user consent. To provide additional security, you can also set **RequireProvisioningPackageSignature**, which prevents users from installing provisioning packages that are not signed by a trusted provisioner. + +4. In the **Select where to save the provisioning package** window, specify the output location where you want the provisioning package to go once it's built, and then click **Next**. By default, Windows ICD uses the project folder as the output location. + +5. In the **Build the provisioning package** window, click **Build**. The provisioning package doesn't take long to build. The project information is displayed in the build page and the progress bar indicates the build status. + + If you need to cancel the build, click Cancel. This cancels the current build process, closes the wizard, and takes you back to the Customizations Page. + +6. If your build fails, an error message will show up that includes a link to the project folder. You can scan the logs to determine what caused the error. Once you fix the issue, try building the package again. + + If your build is successful, the name of the provisioning package, output directory, and project directory will be shown. + + If you choose, you can build the provisioning package again and pick a different path for the output package. To do this, click **Back** to change the output package name and path, and then click **Next** to start another build. + +7. When you are done, click **Finish** to close the wizard and go back to the Customizations page. + +**Next step**: [How to apply a provisioning package](provisioning-apply-package.md) + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-how-it-works.md b/windows/deploy/provisioning-how-it-works.md new file mode 100644 index 0000000000..1f9b72eb6c --- /dev/null +++ b/windows/deploy/provisioning-how-it-works.md @@ -0,0 +1,184 @@ +--- +title: How provisioning works in Windows 10 (Windows 10) +description: A provisioning package (.ppkg) is a container for a collection of configuration settings. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# How provisioning works in Windows 10 + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Provisioning packages in Windows 10 provide IT administrators with a simplified way to apply configuration settings to Windows 10 devices. Windows Imaging and Configuration Designer (Windows ICD) is a tool that makes it easy to create a provisioning package. Windows ICD is contained in the [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit). + +## Provisioning packages + +A provisioning package contains specific configurations/settings and assets that can be provided through a removable media or simply downloaded to the device. + +To enable adding multiple sets of settings or configurations, the configuration data used by the provisioning engine is built out of multiple configuration sources that consist of separate provisioning packages. Each provisioning package contains the provisioning data from a different source. + +A provisioning package (.ppkg) is a container for a collection of configuration settings. The package has the following format: + +- Package metadata – The metadata contains basic information about the package such as package name, description, version, ranking, and so on. + +- XML descriptors – Each descriptor defines a customization asset or configuration setting included in the package. + +- Asset payloads – The payloads of a customization asset or a configuration setting associated with an app or data asset. + +You can use provisioning packages for runtime device provisioning by accessing the package on a removable media attached to the device, through near field communication (NFC), or by downloading from a remote source location. + +## Precedence for provisioning packages + +When multiple provisioning packages are available for device provisioning, the combination of package owner type and package rank level defined in the package manifest is used to resolve setting conflicts. The pre-defined package owner types are listed below in the order of lowest to highest owner type precedence: + +1. Microsoft + +2. Silicon Vender + +3. OEM + +4. System Integrator + +5. Mobile Operator + +6. IT Admin + +The valid value range of package rank level is 0 to 99. + +When setting conflicts are encountered, the final values provisioned on the device are determined by the owner type precedence and the rank level of the packages containing the settings. For example, the value of a setting in a package with owner **System Integrator** and rank level **3** takes precedence over the same setting in a package with owner **OEM** and rank level **4**. This is because the System Integrator owner type has the higher precedence over the OEM owner type. For packages with the same owner type, the package rank level determines the package from which the setting values get provisioned on the device. + +## Windows provisioning XML + +Windows provisioning XML is the framework that allows Microsoft and OEM components to declare end-user configurable settings and the on-device infrastructure for applying the settings with minimal work by the component owner. + +Settings for each component can be declared within that component's package manifest file. These declarations are turned into settings schema that are used by Windows ICD to expose the potential settings to users to create customizations in the image or in provisioning packages. Windows ICD translates the user configuration, which is declared through Windows provisioning answer file(s), into the on-device provisioning format. + +When the provisioning engine selects a configuration, the Windows provisioning XML is contained within the selected provisioning data and is passed through the configuration manager and then to the Windows provisioning CSP. The Windows provisioning CSP then takes and applies the provisioning to the proper location for the actual component to use. + +## Provisioning engine + +The provisioning engine is the core component for managing provisioning and configuration at runtime in a device running Windows 10. + +The provisioning engine provides the following functionality: + +- Provisioning configuration at any time when the device is running including first boot and setup or OOBE. It is also extensible to other points during the run-time of the device. +- Reading and combining settings from multiple sources of configuration that may be added to an image by Microsoft, the OEM, or system integrator, or added by IT/education administrators or users to the device at run-time. Configuration sources may be built into the image or from provisioning packages added to the device. +- Responding to triggers or events and initiating a provisioning stage. +- Authenticating the provisioning packages. +- Selecting a set of configuration based on the stage and a set of keys—such as the SIM, MCC/MNC, IMSI range, and so on—that map to a specific configuration then passing this configuration to the configuration management infrastructure to be applied. +- Working with OOBE and the control panel UI to allow user selection of configuration when a specific match cannot be determined. + +## Configuration manager + +The configuration manager provides the unified way of managing Windows 10 devices. Configuration is mainly done through the Open Mobile Alliance (OMA) Device Management (DM) and Client Provisioning (CP) protocols. The configuration manager handles and parses these protocol requests from different channels and passes them down to Configuration Service Providers (CSPs) to perform the specific management requests and settings. + +The provisioning engine relies on configuration manager for all of the actual processing and application of a chosen configuration. The provisioning engine determines the stage of provisioning and, based on a set of keys, determines the set of configuration to send to the configuration manager. The configuration manager in turn parses and calls into the CSPs for the setting to be applied. + +Underneath the configuration manager are the CSPs. Each section of configuration translates to a particular CSP to handle interpreting into an action on the device. Each CSP translates the instructions in the configuration and calls into the appropriate APIs and components to perform the requested provisioning actions. + +## Policy and resource manager + +The policy, resource, and context manager components manage the enrollment and unenrollment of devices into enterprise environments. The enrollment process into an enterprise is essentially the provisioning of configuration and device management policies that the enterprise wants to enforce on the device. This is usually done through the explicit signing up of the device to an enterprise's device management server over a network connection. This provides the user with the ability to access the enterprise's resources through the device and the enterprise with a means to manage and control access and manage and control the device itself. + +The key differences between enterprise enrollment and the configuration performed by the provisioning engine are: +- Enrollment enforces a limited and controlled set of policies on the device that the user may not have full control over. The provisioning engine exposes a larger set of settings that configure more aspects of the device and are generally user adjustable. +- The policy manager manages policy settings from multiple entities and performs a selection of the setting based on priority of the entities. The provisioning engine applies the settings and does not offer a means of prioritizing settings from different sources. The more specific provisioning is the last one applied and the one that is used. +- Individual policy settings applied from different enrollment entities are stored so they can be removed later during unenrollment. This enables the user to remove enterprise policy and return the device to a state without the enterprise restrictions and any sensitive data. The provisioning engine does not maintain individual provisioning settings or a means to roll back all applied settings. + +In Windows 10, the application of policy and enrollment through provisioning is required to support cases where an enterprise or educational institution does not have a DM server for full device management. The provisioning engine supports provisioning enrollment and policy through its configuration and integrates with the existing policy and resource manager components directly or through the configuration manager. + +## Triggers and stages + +Triggers are events during the lifetime of the system that start a provisioning stage. Some examples of triggers are: boot, OOBE, SIM change, user added, administrator added, user login, device update, and various manual triggers (such as deployment over USB or launched from an email attachment or USB flash drive). + +When a trigger occurs, provisioning is initiated for a particular provisioning stage. The stages are grouped into sets based on the scope of the settings: +- **Static**: First stage run for provisioning to apply configuration settings to the system to set up OOBE or apply device-wide settings that cannot be done when the image is being created. +- **System**: Run during OOBE and configure system-wide settings. +- **UICC**: UICC stages run for each new UICC in a device to handle configuration and branding based on the identity of the UICC or SIM card. This enables the runtime configuration scenarios where an OEM can maintain one image that can be configured for multiple operators. +- **Update**: Runs after an update to apply potential updated settings changes. +- **User**: runs during a user account first run to configure per-user settings. + + + + + + + + + +## Device provisioning during OOBE + +The provisioning engine always applies provisioning packages persisted in the C:\Recovery\Customizations folder on the OS partition. When the provisioning engine applies provisioning packages in the %ProgramData%\Microsoft\Provisioning folder, certain runtime setting applications, such as the setting to install and configure Windows apps, may be extended past the OOBE pass and continually be processed in the background when the device gets to the desktop. Settings for configuring policies and certain crucial system configurations are always be completed before the first point at which they must take effect. + +Device users can apply a provisioning package from a remote source when the device first boots to OOBE. The device provisioning during OOBE is only triggered after the language, locale, time zone, and other settings on the first OOBE UI page are configured. On all Windows devices, device provisioning during OOBE can be triggered by 5 fast taps on the Windows hardware key. When device provisioning is triggered, the provisioning UI is displayed in the OOBE page. The provisioning UI allows users to select a provisioning package acquired from a remote source, such as through NFC or a removable media. + +The following table shows how device provisioning can be initiated when a user first boots to OOBE. + + +| Package delivery | Initiation method | Supported device | +| --- | --- | --- | +| Removable media - USB drive or SD card
(Packages must be placed at media root) | 5 fast taps on the Windows key to launch the provisioning UI |All Windows devices | +| From an administrator device through machine to machine NFC or NFC tag
(The administrator device must run an app that can transfer the package over NFC) | 5 fast taps on the Windows key to launch the provisioning UI | Windows 10 Mobile devices and IoT Core devices | + +The provisioning engine always copies the acquired provisioning packages to the %ProgramData%\Microsoft\Provisioning folder before processing them during OOBE. The provisioning engine always applies provisioning packages embedded in the installed Windows image during Windows Setup OOBE pass regardless of whether the package is signed and trusted. When the provisioning engine applies an encrypted provisioning package on an end-user device during OOBE, users must first provide a valid password to decrypt the package. The provisioning engine also checks whether a provisioning package is signed and trusted; if it's not, the user must provide consent before the package is applied to the device. + +When the provisioning engine applies provisioning packages during OOBE, it applies only the runtime settings from the package to the device. Runtime settings can be system-wide configuration settings, including security policy, Windows app install/uninstall, network configuration, bootstrapping MDM enrollment, provisioning of file assets, account and domain configuration, Windows edition upgrade, and more. The provisioning engine also checks for the configuration settings on the device, such as region/locale or SIM card, and applies the multivariant settings with matching condition(s). + +## Device provisioning at runtime + +At device runtime, standalone provisioning packages can be applied by user initiation. Only runtime configuration settings including multivariant settings contained in a provisioning package can be applied at device runtime. + +The following table shows when provisioning at device runtime can be initiated. + +| Package delivery | Initiation method | Supported device | +| --- | --- | --- | +| Removable media - USB drive or SD card
(Packages must be placed at media root) | **Settings** > **Accounts** > **Access work or school** > **Add or remove a provisioning package** | All Windows devices | +| Downloaded from a network connection and copied to a local folder | Double-click the package file | Windows 10 for desktop editions devices | +| From an administrator device connected to the target device through USB tethering | Drag and drop the package file onto the target device | Windows 10 Mobile devices and IoT Core devices | + +When applying provisioning packages from a removable media attached to the device, the Settings UI allows viewing contents of a package before selecting the package for provisioning. To minimize the risk of the device being spammed by applying provisioning packages from unknown sources, a provisioning package can be signed and encrypted. Partners can also set policies to limit the application of provisioning packages at device runtime. Applying provisioning packages at device runtime requires administrator privilege. If the package is not signed or trusted, a user must provide consent before the package is applied to the device. If the package is encrypted, a valid password is needed to decrypt the package before it can be applied to the device. + +When applying multiple provisioning packages to a device, the provisioning engine resolves settings with conflicting configuration values from different packages by evaluating the package ranking using the combination of package owner type and package rank level defined in the package metadata. A configuration setting applied from a provisioning package with the highest package ranking will be the final value applied to the device. + +After a standalone provisioning package is applied to the device, the package is persisted in the %ProgramData%\Microsoft\Provisioning folder on the device. Provisioning packages can be removed by an administrator by using the **Add or remove a provisioning package** available under **Settings** > **Accounts** > **Access work or school**. However, Windows 10 doesn't provide an uninstall option to revert runtime settings when removing a provisioning package from the device. + + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + + + + +  + +  + + + + + diff --git a/windows/deploy/provisioning-install-icd.md b/windows/deploy/provisioning-install-icd.md new file mode 100644 index 0000000000..9727bc089d --- /dev/null +++ b/windows/deploy/provisioning-install-icd.md @@ -0,0 +1,106 @@ +--- +title: Install Windows Imaging and Configuration Designer (Windows 10) +description: Learn how to install and run Windows ICD. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Install Windows Imaging and Configuration Designer (ICD) + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Use the Windows Imaging and Configuration Designer (ICD) tool in the Windows Assessment and Deployment Kit (ADK) to create provisioning packages to easily configure devices running Windows 10. Windows ICD is primarily designed for use by IT departments for business and educational institutions who need to provision bring-your-own-device (BYOD) and business-supplied devices. + +## Supported platforms + +Windows ICD can create provisioning packages for Windows 10 desktop and mobile editions, including Windows 10 IoT Core. You can run Windows ICD on the following operating systems: + +- Windows 10 - x86 and amd64 +- Windows 8.1 Update - x86 and amd64 +- Windows 8.1 - x86 and amd64 +- Windows 8 - x86 and amd64 +- Windows 7 - x86 and amd64 +- Windows Server 2016 +- Windows Server 2012 R2 Update +- Windows Server 2012 R2 +- Windows Server 2012 +- Windows Server 2008 R2 + +## Install Windows ICD + +1. Go to [Download the Windows ADK](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit) and select **Get Windows ADK** for the version of Windows 10 that you want to create provisioning packages for (version 1511 or version 1607). + + >[!NOTE] + >The rest of this procedure uses Windows ADK for Windows 10, version 1607 as an example. + +2. Save **adksetup.exe** and then run it. + +3. On the **Specify Location** page, select an installation path and then click **Next**. + >[!NOTE] + >The estimated disk space listed on this page applies to the full Windows ADK. If you only install Windows ICD, the space requirement is approximately 32 MB. +4. Make a selection on the **Windows Kits Privacy** page, and then click **Next**. + +5. Accept the **License Agreement**, and then click **Next**. + +6. On the **Select the features you want to install** page, clear all selections except **Configuration Designer**, and then click **Install**. + + ![Only Configuration Designer selected for installation](images/icd-install.png) + +## Current Windows ICD limitations + + +- You can only run one instance of Windows ICD on your computer at a time. + +- Be aware that when adding apps and drivers, all files stored in the same folder will be imported and may cause errors during the build process. + +- The Windows ICD UI does not support multivariant configurations. Instead, you must use the Windows ICD command-line interface to configure multivariant settings. For more information, see [Create a provisioning package with multivariant settings](provisioning-multivariant.md). + +- While you can open multiple projects at the same time within Windows ICD, you can only build one project at a time. + +- In order to enable the simplified authoring jscripts to work on a server SKU running Windows ICD, you need to explicitly enable **Allow websites to prompt for information using scripted windows**. Do this by opening Internet Explorer and then navigating to **Settings** > **Internet Options** > **Security** -> **Custom level** > **Allow websites to prompt for information using scripted windows**, and then choose **Enable**. + +- If you copy a Windows ICD project from one PC to another PC, make sure that all the associated files for the deployment assets, such as apps and drivers, are copied along with the project to the same path as it was on the original PC. + + For example, when you add a driver to a provisioned package, you must copy the .INF file to a local directory on the PC that is running Windows ICD. If you don't do this, and attempt to use a copied version of this project on a different PC, Windows ICD might attempt to resolve the path to the files that point to the original PC. + +- **Recommended**: Before starting, copy all source files to the PC running Windows ICD, rather than using external sources like network shares or removable drives. This reduces the risk of interrupting the build process from a temporary network issue or from disconnecting the USB device. + +**Next step**: [How to create a provisioning package](provisioning-create-package.md) + +## Learn more + +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) + +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + + + +  + +  + + + + + diff --git a/windows/deploy/provisioning-multivariant.md b/windows/deploy/provisioning-multivariant.md new file mode 100644 index 0000000000..3bc7652233 --- /dev/null +++ b/windows/deploy/provisioning-multivariant.md @@ -0,0 +1,322 @@ +--- +title: Create a provisioning package with multivariant settings (Windows 10) +description: Create a provisioning package with multivariant settings to customize the provisioned settings. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Create a provisioning package with multivariant settings + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +Multivariant provisioning packages enable you to create a single provisioning package that can work for multiple locales. + +To provision multivariant settings, you must create a provisioning package with defined **Conditions** and **Settings** that are tied to these conditions. When you install this package on a Windows 10 device, the provisioning engine applies the matching condition settings at every event and triggers provisioning. + +The following events trigger provisioning on Windows 10 devices: + +| Event | Windows 10 Mobile | Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) | +| --- | --- | --- | +| System boot | Supported | Supported | +| Operating system update | Supported | Planned | +| Package installation during device first run experience | Supported | Supported | +| Detection of SIM presence or update | Supported | Not supported | +| Package installation at runtime | Supported | Supported | +| Roaming detected | Supported | Not supported | + +## Target, TargetState, Condition, and priorities + +Targets describe keying for a variant and must be described or pre-declared before being referenced by the variant. + +- You can define multiple **Target** child elements for each **Id** that you need for the customization setting. + +- Within a **Target** you can define multiple **TargetState** elements. + +- Within a **TargetState** element you can create multiple **Condition** elements. + +- A **Condition** element defines the matching type between the condition and the specified value. + +The following table shows the conditions supported in Windows 10 provisioning: + +>[!NOTE] +>You can use any of these supported conditions when defining your **TargetState**. + +| Condition Name | Condition priority | Windows 10 Mobile | Windows 10 for desktop editions | Value type | Value description | +| --- | --- | --- | --- | --- | --- | +| MNC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Network Code (MNC) value. | +| MCC | P0 | Supported | N/A | Digit string | Use to target settings based on the Mobile Country Code (MCC) value. | +| SPN | P0 | Supported | N/A | String | Use to target settings based on the Service Provider Name (SPN) value. | +| PNN | P0 | Supported | N/A | String | Use to target settings based on public land mobile network (PLMN) Network Name value. | +| GID1 | P0 | Supported | N/A | Digit string | Use to target settings based on the Group Identifier (level 1) value. | +| ICCID | P0 | Supported | N/A | Digit string | Use to target settings based on the Integrated Circuit Card Identifier (ICCID) value. | +| Roaming | P0 | Supported | N/A | Boolean | Use to specify roaming. Set the value to **1** (roaming) or **0** (non-roaming). | +| UICC | P0 | Supported | N/A | Enumeration | Use to specify the UICC state. Set the value to one of the following:


- 0 - Empty
- 1 - Ready
- 2 - Locked | +| UICCSLOT | P0 | Supported | N/A | Digit string | Use to specify the UICC slot. Set the value one of the following:


- 0 - Slot 0
- 1 - Slot 1 | +| ProcessorType | P1 | Supported | Supported | String | Use to target settings based on the processor type. | +| ProcessorName | P1 | Supported | Supported | String | Use to target settings based on the processor name. | +| AoAc | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. | +| PowerPlatformRole | P1 | Supported | Supported | Enumeration | Indicates the preferred power management profile. Set the value based on the POWER_PLATFORM_ROLE enumeration. | +| Architecture | P1 | Supported | Supported | String | Matches the PROCESSOR_ARCHITECTURE environment variable. | +| Server | P1 | Supported | Supported | Boolean | Set the value to 0 or 1. | +| Region | P1 | Supported | Supported | Enumeration | Use to target settings based on country/region. | +| Lang | P1 | Supported | Supported | Enumeration | Use to target settings based on language code. | +| ROMLANG | P1 | Supported | N/A | Digit string | Use to specify the PhoneROMLanguage that's set for DeviceTargeting. This condition is used primarily to detect variants for China. For example, you can use this condition and set the value to "0804". | + +The matching types supported in Windows 10 are: + +| Matching type | Syntax | Example | +| --- | --- | --- | +| Straight match | Matching type is specified as-is | <Condition Name="ProcessorName" Value="Barton" /> | +| Regex match | Matching type is prefixed by "Pattern:" | <Condition Name="ProcessorName" Value="Pattern:.*Celeron.*" /> | +| Numeric range match | Matching type is prefixed by "!Range:" | <Condition Name="MNC" Value="!Range:400, 550" /> | + + +- When all **Condition** elements are TRUE, **TargetState** is TRUE (**AND** logic). + +- If any of the **TargetState** elements is TRUE, **Target** is TRUE (**OR** logic), and **Id** can be used for the setting customization. + + +You can define more than one **TargetState** within a provisioning package to apply variant settings that match device conditions. When the provisioning engine evalues each **TargetState**, more than one **TargetState** may fit current device conditions. To determine the order in which the variant settings are applied, the system assigns a priority to every **TargetState**. + +A variant setting that matches a **TargetState** with a lower priority is applied before the variant that matches a **TargetState** with a higher priority. Variant settings that match more than one **TargetState** with equal priority are applied according to the order that each **TargetState** is defined in the provisioning package. + +The **TargetState** priority is assigned based on the conditions priority and the priority evaluation rules are as followed: + +1. **TargetState** with P0 conditions is higher than **TargetState** without P0 conditions. + + +2. **TargetState** with P1 conditions is higher than **TargetState** without P0 and P1 conditions. + + +3. If N₁>N₂>0, the **TargetState** priority with N₁ P0 conditions is higher than the **TargetState** with N₂ P1 conditions. + + +4. For **TargetState** without P0 conditions, if N₁>N₂>0 **TargetState** with N₁ P1 conditions is higher than the **TargetState** with N₂ P1 conditions. + + +5. For **TargetState** without P0 and P1 conditions, if N₁>N₂>0 **TargetState** priority with N₁ P2 conditions is higher than the **TargetState** with N₂ P2 conditions. + + +6. For rules 3, 4, and 5, if N₁=N₂, **TargetState** priorities are considered equal. + + +## Create a provisioning package with multivariant settings + +Follow these steps to create a provisioning package with multivariant capabilities. + + +1. Build a provisioning package and configure the customizations you need to apply during certain conditions. For more information, see [Create a provisioning package](provisioning-create-package.md). + + +2. After you've [configured the settings](provisioning-create-package.md#configure-settings), save the project. + + +3. Open the project folder and copy the customizations.xml file. + +4. Use an XML or text editor to open the customizations.xml file. + + The customizations.xml file holds the package metadata (including the package owner and rank) and the settings that you configured when you created your provisioning package. The Customizations node contains a Common section, which contains the customization settings. + + The following example shows the contents of a sample customizations.xml file. + + ```XML + + + + {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} + My Provisioning Package + 1.0 + OEM + 50 + + + + + + 0 + 0 + 0 + + + 0 + + + + + + ``` + +4. Edit the customizations.xml file and create a **Targets** section to describe the conditions that will handle your multivariant settings. + + The following example shows the customizations.xml, which has been modified to include several conditions including **ProcessorName**, **ProcessorType**, **MCC**, and **MNC**. + + ```XML + + + + {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} + My Provisioning Package + 1.0 + OEM + 50 + + + + + + 0 + 0 + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + ``` + +5. In the customizations.xml file, create a **Variant** section for the settings you need to customize. To do this: + + a. Define a child **TargetRefs** element. + + b. Within the **TargetRefs** element, define a **TargetRef** element. You can define multiple **TargetRef** elements for each **Id** that you need to apply to customized settings. + + c. Move compliant settings from the **Common** section to the **Variant** section. + + If any of the TargetRef elements matches the Target, all settings in the Variant are applied (OR logic). + + >[!NOTE] + >You can define multiple Variant sections. Settings that reside in the **Common** section are applied unconditionally on every triggering event. + + The following example shows the customizations.xml updated to include a **Variant** section and the moved settings that will be applied if the conditions for the variant are met. + + ```XML + + + + {6aaa4dfa-00d7-4aaa-8adf-73c6a7e2501e} + My Provisioning Package + 1.0 + OEM + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + 1 + 1 + + + 1 + + + + + + + ``` + +6. Save the updated customizations.xml file and note the path to this updated file. You will need the path as one of the values for the next step. + + +7. Use the [Windows ICD command-line interface](provisioning-command-line.md) to create a provisioning package using the updated customizations.xml. + + For example: + + ``` + icd.exe /Build-ProvisioningPackage /CustomizationXML:"C:\CustomProject\customizations.xml" /PackagePath:"C:\CustomProject\output.ppkg" /StoreFile:C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Imaging and Configuration Designer\x86\Microsoft-Common-Provisioning.dat" + ``` + + +In this example, the **StoreFile** corresponds to the location of the settings store that will be used to create the package for the required Windows edition. + +>[!NOTE] +>The provisioning package created during this step will contain the multivariant settings. You can use this package either as a standalone package that you can apply to a Windows device or use it as the base when starting another project. + + + + + + + + + + + + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) + +  + + + + + diff --git a/windows/deploy/provisioning-nfc.md b/windows/deploy/provisioning-nfc.md new file mode 100644 index 0000000000..114e6d5545 --- /dev/null +++ b/windows/deploy/provisioning-nfc.md @@ -0,0 +1,153 @@ +--- +title: NFC-based device provisioning (Windows 10) +description: +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# NFC-based device provisioning + + +**Applies to** + +- Windows 10 Mobile + +Near field communication (NFC) enables Windows 10 Mobile Enterprise and Windows 10 Mobile devices to communicate with an NFC tag or another NFC-enabled transmitting device. Enterprises that do bulk provisioning can use NFC-based device provisioning to provide a provisioning package to the device that's being provisioned. NFC provisioning is simple and convenient and it can easily store an entire provisioning package. + +The NFC provisioning option enables the administrator to provide a provisioning package during initial device setup or the out-of-box experience (OOBE) phase. Administrators can use the NFC provisioning option to transfer provisioning information to persistent storage by tapping an unprovisioned mobile device to an NFC tag or NFC-enabled device. To use NFC for pre-provisioning a device, you must either prepare your own NFC tags by storing your provisioning package to a tag as described in this section, or build the infrastructure needed to transmit a provisioning package between an NFC-enabled device and a mobile device during OOBE. + +## Provisioning OOBE UI + +All Windows 10 Mobile Enterprise and Windows 10 Mobile images have the NFC provisioning capability incorporated into the operating system. On devices that support NFC and are running Windows 10 Mobile Enterprise or Windows 10 Mobile, NFC-based device provisioning provides an additional mechanism to provision the device during OOBE. + +On all Windows devices, device provisioning during OOBE can be triggered by 5 fast taps on the Windows hardware key, which shows the **Provision this device** screen. In the **Provision this device** screen, select **NFC** for NFC-based provisioning. + +![Example of Provision this device screen](images/nfc.png) + +If there is an error during NFC provisioning, the device will show a message if any of the following errors occur: + +- **NFC initialization error** - This can be caused by any error that occurs before data transfer has started. For example, if the NFC driver isn't enabled or there's an error communicating with the proximity API. +- **Interrupted download or incomplete package transfer** - This error can happen if the peer device is out of range or the transfer is aborted. This error can be caused whenever the device being provisioned fails to receive the provisioning package in time. +- **Incorrect package format** - This error can be caused by any protocol error that the operating system encounters during the data transfer between the devices. +- **NFC is disabled by policy** - Enterprises can use policies to disallow any NFC usage on the managed device. In this case, NFC functionality is not enabled. + +## NFC tag + +You can use an NFC tag for minimal provisioning and use an NFC-enabled device tag for larger provisioning packages. + +The protocol used for NFC-based device provisioning is similar to the one used for NFC provisioning on Windows Embedded 8.1 Handheld, which supported both single-chunk and multi-chunk transfer when the total transfer didn't fit in one NDEP message size. In Windows 10, the provisioning stack contains the following changes: + +- **Protocol namespace** - The protocol namespace has changed from Windows.WEH.PreStageProv.Chunk to Windows.ProvPlugins.Chunk. +- **Tag data type** - The tag data type has changed from UTF-8 into binary raw data. + + +>[!NOTE] +>The NFC tag doesn't go in the secondary device. You can transfer the NFC tag by using a provisioning package from device-to-device using the NFC radio or by re-reading the provisioning package from an NFC tag. + +### NFC tag components + +NFC tags are suitable for very light applications where minimal provisioning is required. The size of NFC tags that contain provisioning packages is typically 4 KB to 10 KB. + +To write to an NFC tag, you will need to use an NFC Writer tool, or you can use the [ProximityDevice class API](https://msdn.microsoft.com/library/windows/apps/windows.networking.proximity.proximitydevice.aspx) to write your own custom tool to transfer your provisioning package file to your NFC tag. The tool must publish a binary message (write) a Chunk data type to your NFC tag. + +The following table describes the information that is required when writing to an NFC tag. + +| Required field | Description | +| --- | --- | +| **Type** | Windows.ProvPlugins.Chunk

The receiving device uses this information to understand information in the Data field. | +| **Data** | Tag data with small header in raw binary format that contains a chunk of the provisioning package to be transferred. | + + + +### NFC provisioning helper + +The NFC provisioning helper device must split the provisioning package raw content into multiple parts and publish these in order. Each part should follow the following format: + +
**Version**
(1 byte)
**Leading**
(1 byte)
**Order**
(1 byte)
**Total**
(1 byte)
**Chunk payload**
(N bytes)
+ +For each part: +- **Version** should always be 0x00. +- **Leading byte** should always be 0xFF. +- **Order** represents which message chunk (out of the whole message) the part belongs to. The Order begins with zero (0). +- **Total** represents the total number of chunks to be transferred for the whole message. +- **Chunk payload** represents each of the split parts. + +The NFC provisioning helper device must publish the record in a type of Windows.ProvPlugins.Chunk. + +**Code example** + +The following example shows how to write to an NFC tag. This example assumes that the tag is already in range of the writing device. + +``` + private async void WriteProvPkgToTag(IStorageFile provPkgFile) + { + var buffer = await FileIO.ReadBufferAsync(provPkgFile); + if (null == buffer) + { + return; + } + + var proximityDevice = Windows.Networking.Proximity.ProximityDevice.GetDefault(); + if (null == proximityDevice) + { + return; + } + + var dataWriter = new DataWriter(); + var header = new NfcProvHeader(); + + header.version = NFC_PROV_MESSAGE_CURRENT_VERSION; // Currently the supported version is 0x00. + header.leading = NFC_PROV_MESSAGE_LEADING_BYTE; // The leading byte should be always 0xFF. + header.index = 0; // Assume we only have 1 chunk. + header.total = 1; // Assume we only have 1 chunk. + + // Write the header first and then the raw data of the provisioning package. + dataWriter.WriteBytes(GetBytes(header)); + dataWriter.WriteBuffer(buffer); + + var chunkPubId = proximityDevice.PublishBinaryMessage( + "Windows:WriteTag.ProvPlugins.Chunk", + dataWriter.DetachBuffer()); + } +``` + + +### NFC-enabled device tag components + +Provisioning from an NFC-enabled source device allows for larger provisioning packages than can be transferred using an NFC tag. When provisioning from an NFC-enabled device, we recommend that the total file size not exceed 120 KB. Be aware that the larger the NFC file is, the longer it will take to transfer the provisioning file. Depending on your NFC hardware, the transfer time for a 120 KB file will vary between 2.5 seconds and 10 seconds. + +To provision from an NFC-enabled source device, use [ProximityDevice class API](https://msdn.microsoft.com/library/windows/apps/windows.networking.proximity.proximitydevice.aspx) to write your own custom tool that transfers your provisioning package in chunks to your target mobile device. The tool must publish binary messages (transmit) a Header message, followed by one or more Chunk messages. The Header specifies the total amount of data that will be transferred to the target device; the Chunks must contain binary raw data formatted provisioning data, as shown in the NFC tag components section. + +For detailed information and code samples on how to implement an NFC-enabled device tag, see **ConvertToNfcMessageAsync** in [this GitHub NfcProvisioner Universal Windows app example](https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/NfcProvisioner/cs/Scenario1.xaml.cs). The sample app shows you how to host the provisioning package on a master device so that you can transfer it to the receiving device. + + + + + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + +  + +  + + + + + diff --git a/windows/deploy/provisioning-packages.md b/windows/deploy/provisioning-packages.md index 47223a7427..ebb4a064c3 100644 --- a/windows/deploy/provisioning-packages.md +++ b/windows/deploy/provisioning-packages.md @@ -3,9 +3,8 @@ title: Provisioning packages (Windows 10) description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. ms.assetid: 287706E5-063F-4AB5-902C-A0DF6D0730BC ms.prod: w10 -ms.mktglfcycl: explore +ms.mktglfcycl: deploy ms.sitesec: library -ms.pagetype: mobile author: jdeckerMS localizationpriority: high --- @@ -18,15 +17,17 @@ localizationpriority: high - Windows 10 - Windows 10 Mobile -Windows provisioning makes it easy for IT administrators to configure end-user devices without imaging. Using Windows Provisioning, an IT administrator can easily specify desired configuration and settings required to enroll the devices into management (through a wizard-driven user interface) and then apply that configuration to target devices in a matter of minutes. It is best suited for small- to medium-sized businesses with deployments that range from tens to a few hundred computers. +Windows provisioning makes it easy for IT administrators to configure end-user devices without imaging. Using Windows provisioning, an IT administrator can easily specify desired configuration and settings required to enroll the devices into management and then apply that configuration to target devices in a matter of minutes. It is best suited for small- to medium-sized businesses with deployments that range from tens to a few hundred computers. -With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +A provisioning package (.ppkg) is a container for a collection of configuration settings. With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. Provisioning packages are simple enough that with a short set of written instructions, a student or non-technical employee can use them to configure their device. This can result in a significant reduction in the time required to configure multiple devices in your organization. +The [Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit) includes the Imaging and Configuration Designer (ICD), a tool for configuring provisioning packages. + ## New in Windows 10, Version 1607 -The Windows Assessment and Deployment Kit (ADK) for Windows 10 includes the Imaging and Configuration Designer (ICD), a tool for configuring images and runtime settings which are then built into provisioning packages. Windows ICD for Windows 10, Version 1607, simplifies common provisioning scenarios. +Windows ICD for Windows 10, Version 1607, simplifies common provisioning scenarios. ![Configuration Designer options](images/icd.png) @@ -74,7 +75,7 @@ Provisioning packages can be: ## What you can configure -The following table provides some examples of what can be configured using provisioning packages. +The following table provides some examples of what you can configure using provisioning packages. | Customization options | Examples | |--------------------------|-----------------------------------------------------------------------------------------------| @@ -92,42 +93,26 @@ The following table provides some examples of what can be configured using provi For details about the settings you can customize in provisioning packages, see [Windows Provisioning settings reference]( https://go.microsoft.com/fwlink/p/?LinkId=619012). -## Creating a provisioning package - - -With Windows 10, you can use the Windows Imaging and Configuration Designer (ICD) tool to create provisioning packages. To install Windows ICD and create provisioning packages, you must [install the Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit). - -When you run ADKsetup.exe for Windows 10, version 1607, select the following feature from the **Select the features you want to install** dialog box: - -- **Configuration Designer** - -![Choose Configuration Designer](images/adk-install.png) - -> [!NOTE] -> In previous versions of the Windows 10 ADK, you had to install additional features for Windows ICD to run. Starting in version 1607, you can install Windows ICD without other ADK features. - -After you install Windows ICD, you can use it to create a provisioning package. For detailed instructions on how to create a provisioning package, see [Build and apply a provisioning package](https://go.microsoft.com/fwlink/p/?LinkID=629651). - -## Applying a provisioning package to a device - - -Provisioning packages can be applied both during image deployment and during runtime. For information on how to apply a provisioning package to a Windows 10-based device, see [Build and apply a provisioning package](https://go.microsoft.com/fwlink/p/?LinkID=629651). - ## Learn more +- Watch the video: [Provisioning Windows 10 Devices with New Tools](https://go.microsoft.com/fwlink/p/?LinkId=615921) -[Windows 10: Deployment](https://go.microsoft.com/fwlink/p/?LinkId=533708) +- Watch the video: [Windows 10 for Mobile Devices: Provisioning Is Not Imaging](https://go.microsoft.com/fwlink/p/?LinkId=615922) ## Related topics -- [Provision PCs with common settings for initial deployment](provision-pcs-for-initial-deployment.md) -- [Provision PCs with apps and certificates for initial deployments](provision-pcs-with-apps-and-certificates.md) -- [Configure devices without MDM](../manage/configure-devices-without-mdm.md) -- [Set up a shared or guest PC with Windows 10](../manage/set-up-shared-or-guest-pc.md) -- [Configure devices without MDM](../manage/configure-devices-without-mdm.md) -- [Set up a device for anyone to use (kiosk mode)](../manage/set-up-a-device-for-anyone-to-use.md) -- [Customize Windows 10 Start and taskbar with ICD and provisioning packages](../manage/customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md) -- [Set up student PCs to join domain](https://technet.microsoft.com/edu/windows/set-up-students-pcs-to-join-domain) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + diff --git a/windows/deploy/provisioning-script-to-install-app.md b/windows/deploy/provisioning-script-to-install-app.md new file mode 100644 index 0000000000..8754c66299 --- /dev/null +++ b/windows/deploy/provisioning-script-to-install-app.md @@ -0,0 +1,222 @@ +--- +title: Use a script to install a desktop app in provisioning packages (Windows 10) +description: With Windows 10, you can create provisioning packages that let you quickly and efficiently configure a device without having to install a new image. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Use a script to install a desktop app in provisioning packages + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +This walkthrough describes how to leverage the ability to include scripts in a Windows 10 provisioning package to install Win32 applications. Scripted operations other than installing apps can also be performed, however, some care is needed in order to avoid unintended behavior during script execution (see Remarks below). + +>**Prerequisite**: [Windows Assessment and Deployment Kit (ADK) for Windows 10](https://developer.microsoft.com/windows/hardware/windows-assessment-deployment-kit), version 1511 or higher + +>[!NOTE] +>This scenario is only supported for installing applications on Windows 10 for desktop, version 1511 or higher. + +## Assemble the application assets + +1. On the device where you’re authoring the package, place all of your assets in a known location. Each asset must have a unique filename, because all files will be copied to the same temp directory on the device. It’s common for many apps to have an installer called ‘install.exe’ or similar, and there may be name overlap because of that. To fix this, you can use the technique described in the next step to include a complete directory structure that is then expanded into the temp directory on the device. The most common use for this would be to include a subdirectory for each application. + +2. If you need to include a directory structure of files, you will need to cab the assets for easy inclusion in the provisioning packages. + +## Cab the application assets + +1. Create a .DDF file as below, replacing *file1* and *file2* with the files you want to package, and adding the name of file/directory. + + ``` + ;*** MSDN Sample Source Code MakeCAB Directive file example + + ; + + .OPTION EXPLICIT ; Generate errors on variable typos + + .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory + + .Set MaxDiskFileCount=1000; Limit file count per cabinet, so that + + ; scanning is not too slow + + .Set FolderSizeThreshold=200000 ; Aim for ~200K per folder + + .Set CompressionType=MSZIP + + ;** All files are compressed in cabinet files + + .Set Cabinet=on + + .Set Compress=on + + ;------------------------------------------------------------------- + + ;** CabinetNameTemplate = name of cab + + ;** DiskDirectory1 = output directory where cab will be created + + ;------------------------------------------------------------------- + + .Set CabinetNameTemplate=tt.cab + + .Set DiskDirectory1=. + + ;------------------------------------------------------------------- + + ; Replace with actual files you want to package + + ;------------------------------------------------------------------- + + + + + + ;*** + ``` + +2. Use makecab to create the cab files. + + ``` + Makecab -f + ``` + +## Create the script to install the application + +Create a script to perform whatever work is needed to install the application(s). The following examples are provided to help get started authoring the orchestrator script that will execute the required installers. In practice, the orchestrator script may reference many more assets than those in these examples. + +>[!NOTE] +>All actions performed by the script must happen silently, showing no UI and requiring no user interaction. +> +>The scripts will be run on the device in system context. + +### Debugging example + +Granular logging is not built in, so the logging must be built into the script itself. Here is an example script that logs ‘Hello World’ to a logfile. When run on the device, the logfile will be available after provisioning is completed. As you will see in the following examples, it’s recommended that you log each action that your script performs. + +``` +set LOGFILE=%SystemDrive%\HelloWorld.log +echo Hello, World >> %LOGFILE% +``` +### .exe example + +This example script shows how to create a log output file on the system drive, install an app from a .exe installer, and echo the results to the log file. + +``` +set LOGFILE=%SystemDrive%\Fiddler_install.log +echo Installing Fiddler.exe >> %LOGFILE% +fiddler4setup.exe /S >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### .msi example + +This is the same as the previous installer, but installs the app from an MSI installer. Notice that msiexec is called with the /quiet flag in order to meet the silent requirement of scripts run from within a provisioning package. + +``` +set LOGFILE=%SystemDrive%\IPOverUsb_install.log +echo Installing IpOverUsbInstaller.msi >> %LOGFILE% +msiexec /i IpOverUsbInstaller.msi /quiet >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### PowerShell example + +This is an example script with logging that shows how to run a powershell script from the provisioning commands setting. Note that the PowerShell script referenced from this example must also be included in the package, and obey the same requirements as all scripts run from within the provisioning package: it must execute silently, with no user interaction. + +``` +set LOGFILE=%SystemDrive%\my_powershell_script.log +echo Running my_powershell_script.ps1 in system context >> %LOGFILE% +echo Executing "PsExec.exe -accepteula -i -s cmd.exe /c powershell.exe my_powershell_script.ps1" >> %LOGFILE% +PsExec.exe -accepteula -i -s cmd.exe /c powershell.exe my_powershell_script.ps1' >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### Extract from a .CAB example + +This example script shows expansion of a .cab from the provisioning commands script, as well as installation of the expanded setup.exe + +``` +set LOGFILE=%SystemDrive%\install_my_app.log +echo Expanding installer_assets.cab >> %LOGFILE% +expand -r installer_assets.cab -F:* . >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +echo Installing MyApp >> %LOGFILE% +setup.exe >> %LOGFILE% +echo result: %ERRORLEVEL% >> %LOGFILE% +``` + +### Calling multiple scripts in the package + +You are currently allowed one CommandLine per PPKG. The batch files shown above are orchestrator scripts that manage the installation and calls any other scripts included in the PPKG. The orchestrator script is what should be invoked from the CommandLine specified in the package. + +Here’s a table describing this relationship, using the PowerShell example from above: + + +|ICD Setting | Value | Description | +| --- | --- | --- | +| ProvisioningCommands/DeviceContext/CommandLine | cmd /c PowerShell_Example.bat | The command line needed to invoke the orchestrator script. | +| ProvisioningCommands/DeviceContext/CommandFiles | PowerShell_Example.bat | The single orchestrator script referenced by the command line that handles calling into the required installers or performing any other actions such as expanding cab files. This script must do the required logging. | +| ProvisioningCommands/DeviceContext/CommandFiles | my_powershell_script.ps1 | Other assets referenced by the orchestrator script. In this example there is only one, but there could be many assets referenced here. One common use case is using the orchestrator to call a series of install.exe or setup.exe installers to install several applications. Each of those installers must be included as an asset here. | + + +### Add script to provisioning package + +When you have the batch file written and the referenced assets ready to include, you can add them to a provisioning package in the Window Imaging and Configuration Designer (Windows ICD). + +Using ICD, specify the full details of how the script should be run in the CommandLine setting in the provisioning package. This includes flags or any other parameters that you would normally type on the command line. So for example if the package contained an app installer called install.exe and a script used to automate the install called InstallMyApp.bat, the `ProvisioningCommands/DeviceContext/CommandLine` setting should be configured to: + +``` +cmd /c InstallMyApp.bat +``` + +In ICD, this looks like: + +![Command line in Selected customizations](images/icd-script1.png) + +You also need to add the relevant assets for that command line including the orchestrator script and any other assets it references such as installers or .cab files. + +In ICD, that is done by adding files under the `ProvisioningCommands/DeviceContext/CommandFiles` setting. + +![Command files in Selected customizations](images/icd-script2.png) + +When you are done, [build the package](provisioning-create-package.md#build-package). + + +### Remarks +1. No user interaction or console output is supported via ProvisioningCommands. All work needs to be silent. If your script attempts to do any of the following it will cause undefined behavior, and could put the device in an unrecoverable state if executed during setup or the Out of Box Experience: + a. Echo to console + b. Display anything on the screen + c. Prompt the user with a dialog or install wizard +2. When applied at first boot, provisioning runs early in the boot sequence and before a user context has been established; care must be taken to only include installers that can run at this time. Other installers can be provisioned via a management tool. +3. If the device is put into an unrecoverable state because of a bad script, you can reset it using [recovery options in Windows 10](https://support.microsoft.com/help/12415/windows-10-recovery-options). +4. The CommandFile assets are deployed on the device to a temporary folder unique to each package. + a. For packages added during the out of box experience, this is usually in `%WINDIR%\system32\config\systemprofile\appdata\local\Temp\ProvisioningPkgTmp\<{PackageIdGuid}>\Commands` + b. For packages added by double-clicking on an already deployed device, this will be in the temp folder for the user executing the PPKG: `%TMP%\ProvisioningPkgTmp\<{PackageIdGuid}>\Commands` +5. The command line will be executed with the directory the CommandFiles were deployed to as the working directory. This means you do not need to specific the full path to assets in the command line or from within any script. +6. The runtime provisioning component will attempt to run the scripts from the PPKG at the earliest point possible, depending on the stage when the PPKG was added. For example, if the package was added during the Out-of-Box Experience, it will be run immediately after the package is applied, while the Out-of-Box Experience is still happening. This is before the user account configuration options are presented to the user. A spinning progress dialog will appear and “please wait” will be displayed on the screen. + + >[!NOTE] + >There is a timeout of 30 minutes for the provisioning process at this point. All scripts and installs need to complete within this time. +7. The scripts are executed in the background as the rest of provisioning continues to run. For packages added on existing systems using the double-click to install, there is no notification that provisioning or script execution has completed + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Settings changed when you uninstall a provisioning package](provisioning-uninstall-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) \ No newline at end of file diff --git a/windows/deploy/provisioning-uninstall-package.md b/windows/deploy/provisioning-uninstall-package.md new file mode 100644 index 0000000000..b3836ede88 --- /dev/null +++ b/windows/deploy/provisioning-uninstall-package.md @@ -0,0 +1,98 @@ +--- +title: Settings changed when you uninstall a provisioning package (Windows 10) +description: This topic lists the settings that are reverted when you uninstall a provisioning package. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +author: jdeckerMS +localizationpriority: high +--- + +# Settings changed when you uninstall a provisioning package + + +**Applies to** + +- Windows 10 +- Windows 10 Mobile + +When you uninstall a provisioning package, only certain settings are revertible. This topic lists the settings that are reverted when you uninstall a provisioning package. + + +As an administrator, you can uninstall by using the **Add or remove a package for work or school** option available under **Settings** > **Accounts** > **Access work or school**. + +When a provisioning package is uninstalled, some of its settings are reverted, which means the value for the setting is changed to the next available or default value. Not all settings, however, are revertible. + +Only settings in the following lists are revertible. + +## Registry-based settings + +The registry-based settings that are revertible when a provisioning package is uninstalled all fall under these categories, which you can find in the Graphical User Interface of the Windows Imaging and Configuration Designer (Windows ICD). + + +- [Wi-Fi Sense](https://msdn.microsoft.com/library/windows/hardware/mt219706.aspx) +- [CountryAndRegion](https://msdn.microsoft.com/library/windows/hardware/mt219726.aspx) +- DeviceManagement / PGList/ LogicalProxyName +- UniversalAppInstall / LaunchAppAtLogin +- [Power](https://msdn.microsoft.com/library/windows/hardware/dn953704.aspx) +- [TabletMode](https://msdn.microsoft.com/library/windows/hardware/mt297550.aspx) +- [Maps](https://msdn.microsoft.com/library/windows/hardware/mt131464.aspx) +- [Browser](https://msdn.microsoft.com/library/windows/hardware/mt573151.aspx) +- [DeviceFormFactor](https://msdn.microsoft.com/library/windows/hardware/mt243449.aspx) +- [USBErrorsOEMOverride](https://msdn.microsoft.com/library/windows/hardware/mt769908.aspx) +- [WeakCharger](https://msdn.microsoft.com/library/windows/hardware/mt346401.aspx) + + + +## CSP-based settings + +Here is the list of revertible settings based on configuration service providers (CSPs). + +[ActiveSync CSP](https://msdn.microsoft.com/library/windows/hardware/dn920017.aspx) +[AppLocker CSP](https://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) +[BrowserFavorite CSP](https://msdn.microsoft.com/library/windows/hardware/dn914758.aspx) +[CertificateStore CSP](https://msdn.microsoft.com/library/windows/hardware/dn920021.aspx) +[ClientCertificateInstall CSP](https://msdn.microsoft.com/library/windows/hardware/dn920023.aspx) +[RootCATrustedCertificates CSP](https://msdn.microsoft.com/library/windows/hardware/dn904970.aspx) +[CM_CellularEntries CSP](https://msdn.microsoft.com/library/windows/hardware/dn914761.aspx) +[CM_ProxyEntries CSP](https://msdn.microsoft.com/library/windows/hardware/dn914762.aspx) +[CMPolicy CSP](https://msdn.microsoft.com/library/windows/hardware/dn914760.aspx) +[CMPolicyEnterprise CSP](https://msdn.microsoft.com/library/windows/hardware/mt706463.aspx) +[EMAIL2 CSP](https://msdn.microsoft.com/library/windows/hardware/dn904953.aspx) +[EnterpriseAPN CSP](https://msdn.microsoft.com/library/windows/hardware/dn958617.aspx) +[EnterpriseAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn904955.aspx) +[EnterpriseDesktopAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn958620.aspx) +[EnterpriseModernAppManagement CSP](https://msdn.microsoft.com/library/windows/hardware/dn904956.aspx) +[NAP CSP](https://msdn.microsoft.com/library/windows/hardware/dn914767.aspx) +[PassportForWork CSP](https://msdn.microsoft.com/library/windows/hardware/dn987099.aspx) +[Provisioning CSP](https://msdn.microsoft.com/library/windows/hardware/mt203665.aspx) +[PROXY CSP](https://msdn.microsoft.com/library/windows/hardware/dn914770.aspx) +[SecureAssessment CSP](https://msdn.microsoft.com/library/windows/hardware/mt718628.aspx) +[VPN CSP](https://msdn.microsoft.com/library/windows/hardware/dn904978.aspx) +[VPNv2 CSP](https://msdn.microsoft.com/library/windows/hardware/dn914776.aspx) +[WiFi CSP](https://msdn.microsoft.com/library/windows/hardware/dn904981.aspx) + + + +## Related topics + +- [Provisioning packages for Windows 10](provisioning-packages.md) +- [How provisioning works in Windows 10](provisioning-how-it-works.md) +- [Install Windows Imaging and Configuration Designer](provisioning-install-icd.md) +- [Create a provisioning package](provisioning-create-package.md) +- [Apply a provisioning package](provisioning-apply-package.md) +- [Provision PCs with common settings for initial deployment (simple provisioning)](provision-pcs-for-initial-deployment.md) +- [Provision PCs with apps and certificates for initial deployments (advanced provisioning)](provision-pcs-with-apps-and-certificates.md) +- [Use a script to install a desktop app in provisioning packages](provisioning-script-to-install-app.md) +- [NFC-based device provisioning](provisioning-nfc.md) +- [Windows ICD command-line interface (reference)](provisioning-command-line.md) +- [Create a provisioning package with multivariant settings](provisioning-multivariant.md) + +  + +  + + + + + diff --git a/windows/deploy/troubleshoot-upgrade-analytics.md b/windows/deploy/troubleshoot-upgrade-analytics.md index b6c6f5d87b..468de1e275 100644 --- a/windows/deploy/troubleshoot-upgrade-analytics.md +++ b/windows/deploy/troubleshoot-upgrade-analytics.md @@ -1,4 +1,4 @@ ---- +--- title: Troubleshoot Upgrade Analytics (Windows 10) description: Provides troubleshooting information for Upgrade Analytics. ms.prod: w10 @@ -7,7 +7,7 @@ author: MaggiePucciEvans # Troubleshoot Upgrade Analytics -If you’re having issues seeing data in Upgrade Analytics after running the Upgrade Analytics Deployment script, make sure it completes successfully without any errors. Check the output of the script in the command window and/or log UA_dateTime_machineName.txt to ensure all steps were completed successfully. In addition, we recommend that you wait at least 48 hours before checking OMS for data after the script first completes without reporting any error. +If you’re having issues seeing data in Upgrade Analytics after running the Upgrade Analytics Deployment script, make sure it completes successfully without any errors. Check the output of the script in the command window and/or log UA_dateTime_machineName.txt to ensure all steps were completed successfully. In addition, we recommend that you wait at least 48 hours before checking OMS for data after the script first completes without reporting any error. If you still don’t see data in Upgrade Analytics, follow these steps: @@ -25,9 +25,14 @@ If you still don’t see data in Upgrade Analytics, follow these steps: If you want to stop using Upgrade Analytics and stop sending telemetry data to Microsoft, follow these steps: -1. Unsubscribe from the Upgrade Analytics solution in the OMS portal. +1. Unsubscribe from the Upgrade Analytics solution in the OMS portal. In the OMS portal, go to **Settings** > **Connected Sources** > **Windows Telemetry** and choose the **Unsubscribe** option. -2. Disable the Customer Experience Improvement Program on computers running Windows 7 SP1 or 8.1. On computers running Windows 10, set the telemetry level to Security. + ![Upgrade Analytics unsubscribe](images/upgrade-analytics-unsubscribe.png) -3. Delete the CommercialDataOptin key in *HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\DataCollection* +2. Disable the Commercial Data Opt-in Key on computers running Windows 7 SP1 or 8.1. On computers running Windows 10, set the telemetry level to **Security**: + **Windows 7 and Windows 8.1**: Delete CommercialDataOptIn registry property from *HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection* + **Windows 10**: Follow the instructions in the [Configure Windows telemetry in your organization](https://technet.microsoft.com/itpro/windows/manage/configure-windows-telemetry-in-your-organization#enterprise-management) topic. + +3. If you enabled **Internet Explorer Site Discovery**, you can disable Internet Explorer data collection by setting the *IEDataOptIn* registry key to value "0". The IEDataOptIn key can be found under: *HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection*. +4. You can also remove the “CommercialId” key from: "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection". **This is an optional step**. diff --git a/windows/deploy/upgrade-analytics-get-started.md b/windows/deploy/upgrade-analytics-get-started.md index 188a73c081..1455ee624e 100644 --- a/windows/deploy/upgrade-analytics-get-started.md +++ b/windows/deploy/upgrade-analytics-get-started.md @@ -1,4 +1,4 @@ ---- +--- title: Get started with Upgrade Analytics (Windows 10) description: Explains how to get started with Upgrade Analytics. ms.prod: w10 @@ -53,7 +53,7 @@ If you are not using OMS: After you’ve signed in to Operations Management Suite and added the Upgrade Analytics solution to your workspace, complete the following tasks to establish communication and enable data sharing between user computers, Microsoft secure data centers, and Upgrade Analytics. -## Generate your commercial ID key +## Generate your commercial ID key Microsoft uses a unique commercial ID to map information from user computers to your OMS workspace. Generate your commercial ID key in OMS and then deploy it to user computers. @@ -77,14 +77,14 @@ For Upgrade Analytics to receive and display upgrade readiness data from Microso To enable data sharing, whitelist the following endpoints. Note that you may need to get approval from your security group to do this. -Note: The compatibility update KB runs under the computer’s system account and does not support user authenticated proxies. +Note: The compatibility update KB runs under the computer’s system account. If you are using user authenticated proxies, read [this blog post](https://go.microsoft.com/fwlink/?linkid=838688) to learn what you need to do to run it under the logged on user account. | **Endpoint** | **Function** | |---------------------------------------------------------|-----------| -| `https://v10.vortex-win.data.microsoft.com/collect/v1` | Connected User Experience and Telemetry component endpoint. User computers send data to Microsoft through this endpoint. | -| `https://settings-win.data.microsoft.com/settings` | Enables the compatibility update KB to send data to Microsoft. | -| `https://go.microsoft.com/fwlink/?LinkID=544713`
`https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc/extended` | This service provides driver information about whether there will be a driver available post-upgrade for the hardware on the system. | -| `https://vortex.data.microsoft.com/health/keepalive`
`https://settings.data.microsoft.com/qos`
`https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc` | These endpoints are used to validate that user computers are sharing data with Microsoft. | +| `https://v10.vortex-win.data.microsoft.com/collect/v1`

`https://Vortex-win.data.microsoft.com/health/keepalive` | Connected User Experience and Telemetry component endpoint. User computers send data to Microsoft through this endpoint. | +| `https://settings.data.microsoft.com/qos` | Enables the compatibility update KB to send data to Microsoft. | +| `https://go.microsoft.com/fwlink/?LinkID=544713`
`https://compatexchange1.trafficmanager.net/CompatibilityExchangeService.svc` | This service provides driver information about whether there will be a driver available post-upgrade for the hardware on the system. | + ## Deploy the compatibility update and related KBs @@ -92,8 +92,8 @@ The compatibility update KB scans your computers and enables application usage t | **Operating System** | **KBs** | |----------------------|-----------------------------------------------------------------------------| -| Windows 8.1 | [KB 2976978](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2976978)
Performs diagnostics on the Windows 8.1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
For more information about this KB, see
[KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
Provides updated configuration and definitions for compatibility diagnostics performed on the system.
For more information about this KB, see
NOTE: KB2976978 must be installed before you can download and install KB3150513. | -| Windows 7 SP1 | [KB2952664](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2952664)
Performs diagnostics on the Windows 7 SP1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
For more information about this KB, see
[KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
Provides updated configuration and definitions for compatibility diagnostics performed on the system.
For more information about this KB, see
NOTE: KB2952664 must be installed before you can download and install KB3150513. | +| Windows 8.1 | [KB 2976978](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2976978)
Performs diagnostics on the Windows 8.1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
For more information about this KB, see

[KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
Provides updated configuration and definitions for compatibility diagnostics performed on the system.
For more information about this KB, see
NOTE: KB2976978 must be installed before you can download and install KB3150513. | +| Windows 7 SP1 | [KB2952664](http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB2952664)
Performs diagnostics on the Windows 7 SP1 systems that participate in the Windows Customer Experience Improvement Program. These diagnostics help determine whether compatibility issues may be encountered when the latest Windows operating system is installed.
For more information about this KB, see

[KB 3150513](https://catalog.update.microsoft.com/v7/site/Search.aspx?q=3150513)
Provides updated configuration and definitions for compatibility diagnostics performed on the system.
For more information about this KB, see
NOTE: KB2952664 must be installed before you can download and install KB3150513. | IMPORTANT: Restart user computers after you install the compatibility update KBs for the first time. @@ -117,7 +117,7 @@ To ensure that user computers are receiving the most up to date data from Micros To automate many of the steps outlined above and to troubleshoot data sharing issues, you can run the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409), developed by Microsoft. -> The following guidance applies to version 11.30.16 or later of the Upgrade Analytics deployment script. If you are using an older version, please download the latest from [Download Center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409). +> The following guidance applies to version 11.11.16 or later of the Upgrade Analytics deployment script. If you are using an older version, please download the latest from [Download Center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409). The Upgrade Analytics deployment script does the following: @@ -137,7 +137,7 @@ The Upgrade Analytics deployment script does the following: To run the Upgrade Analytics deployment script: -1. Download the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and extract UpgradeAnalytics.zip. Inside, there are two folders: Pilot and Deployment. The Pilot folder contains advanced logging that can help troubleshoot issues and is inteded to be run from an elevated command prompt. The Deployment folder offers a lightweight script intended for broad deployment through ConfigMgr or other software deployment system. We recommend manually running the Pilot version of the script on 5-10 machines to verify that everything is configured correctly. Once you have confirmed that data is flowing successfully, proceed to run the Deployment version throughout your organization. +1. Download the [Upgrade Analytics deployment script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and extract UpgradeAnalytics.zip. Inside, there are two folders: Pilot and Deployment. The Pilot folder contains advanced logging that can help troubleshoot issues and is intended to be run from an elevated command prompt. The Deployment folder offers a lightweight script intended for broad deployment through ConfigMgr or other software deployment system. We recommend manually running the Pilot version of the script on 5-10 machines to verify that everything is configured correctly. Once you have confirmed that data is flowing successfully, proceed to run the Deployment version throughout your organization. 2. Edit the following parameters in RunConfig.bat: @@ -165,40 +165,45 @@ To run the Upgrade Analytics deployment script: 4. After you finish editing the parameters in RunConfig.bat, you are ready to run the script. If you are using the Pilot version, run RunConfig.bat from an elevated command prompt. If you are using the Deployment version, use ConfigMgr or other software deployment service to run RunConfig.bat as system. -The deployment script displays the following exit codes to let you know if it was successful, or if an error was encountered. +The deployment script displays the following exit codes to let you know if it was successful, or if an error was encountered.

-
Exit codeMeaning -
0Success -
1Unexpected error occurred while executing the script -
2Error when logging to console. $logMode = 0. -
3Error when logging to console and file. $logMode = 1. -
4Error when logging to file. $logMode = 2. -
5Error when logging to console and file. $logMode = unknown. -
6The commercialID parameter is set to unknown. Modify the script. -
7Function -CheckCommercialId: Unexpected failure. -
8Failure to create registry key path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection. -
9Error when writing CommercialId to registry. -
10Error when writing CommercialDataOptIn to registry. -
11Function -SetupCommercialId: Unexpected failure. -
12Can’t connect to Microsoft – Vortex. Check your network/proxy settings. -
13Can’t connect to Microsoft – setting. Check your network/proxy settings. -
14Can’t connect to Microsoft – compatexchange. Check your network/proxy settings. -
15Error connecting to Microsoft. Check your network/proxy settings. -
16Machine requires reboot. -
17Function -CheckRebootRequired: Unexpected failure. -
18Outdated compatibility update KB package. Update via Windows Update/WSUS. -
19This machine doesn’t have the proper KBs installed. Make sure you have recent compatibility update KB downloaded. -
20Error writing RequestAllAppraiserVersions registry key. -
21Function – SetRequestAllAppraiserVersions: Unexpected failure. -
22RunAppraiser failed with unexpected exception. -
23Error finding system variable %WINDIR%. -
24SetIEDataOptIn failed when writing IEDataOptIn to registry. -
25SetIEDataOptIn failed with unexpected exception. -
26The operating system is LTSB SKU. The script does not support LTSB SKUs. -
27The operating system is Server SKU. The script does not support Server SKUs. +
Exit codeMeaningSuggested fix +
0Success +
1Unexpected error occurred while executing the script The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) from the download center and try again. +
2Error when logging to console. $logMode = 0. Try changing the $logMode value to **1** and try again. +
3Error when logging to console and file. $logMode = 1.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. +
4Error when logging to file. $logMode = 2.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. +
5Error when logging to console and file. $logMode = unknown.Verify that you have set the logPath parameter in RunConfig.bat, and that the configuration script has access to connect and write to this location. +
6The commercialID parameter is set to unknown. Modify the script.Set the value for CommercialID in runconfig.bat file. +
8Failure to create registry key path: HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection. Verify that the configuration script has access to this location. +
9Error when writing CommercialId to registry.Verify that the configuration script has access to this location. +
10Error when writing CommercialDataOptIn to registry.Verify that the configuration script has access to this location. +
11Function -SetupCommercialId: Unexpected failure.Verify that the configuration script has access to this location. +
12Can’t connect to Microsoft – Vortex. Check your network/proxy settings.Verify that the required endpoints are whitelisted correctly. +
13Can’t connect to Microsoft – setting. Verify that the required endpoints are whitelisted correctly. +
14Can’t connect to Microsoft – compatexchange. Verify that the required endpoints are whitelisted. +
15Error connecting to Microsoft:Unexpected failure. +
16Machine requires reboot. The reboot is required to complete the installation of the compatibility update and related KBs. Reboot the machine before running the Upgrade Analytics deployment script. +
17Function -CheckRebootRequired: Unexpected failure.The reboot is required to complete the installation of the compatibility update and related KBs. Reboot the machine before running the Upgrade Analytics deployment script. +
18Outdated compatibility update KB package. Update via Windows Update/WSUS. +The configuration script detected a version of the Compatibility update module that is older than the minimum required to correctly collect the data required by Upgrade Analytics solution. Use the latest version of the Compatibility update for Windows 7 SP1/Windows 8.1. +
19The compatibility update failed with unexpected exception. The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) from the download center and try again. +
20Error writing RequestAllAppraiserVersions registry key. This registry key is required for data collection to work correctly. Verify that the configuration script has access to this location. +
21Function – SetRequestAllAppraiserVersions: Unexpected failure.This registry key is required for data collection to work correctly. Verify that the configuration script has access to this location. +
22RunAppraiser failed with unexpected exception. Check %windir%\System32 directory for a file called CompatTelRunner.exe. If the file does not exist, reinstall the required compatibility updates which include this file, and check your organization group policy to make sure it does not remove this file. +
23Error finding system variable %WINDIR%. Make sure that this environment variable is available on the machine. +
24SetIEDataOptIn failed when writing IEDataOptIn to registry. Verify that the deployment script in running in a context that has access to the registry key. +
25SetIEDataOptIn failed with unexpected exception. The files in the deployment script are likely corrupted. Download the latest script from the [download center](https://go.microsoft.com/fwlink/?LinkID=822966&clcid=0x409) and try again. +
26The operating system is Server or LTSB SKU. The script does not support Server or LTSB SKUs. +
27The script is not running under System account.The Upgrade Analytics configuration script must be run as system. +
28Could not create log file at the specified logPath. Make sure the deployment script has access to the location specified in the logPath parameter. +
29 Connectivity check failed for proxy authentication. Install the cumulative updates on the machine and enable the `DisableEnterpriseAuthProxy` authentication proxy setting. The `DisableEnterpriseAuthProxy` setting is enabled by default for Windows 7. For Windows 8.1 machines, set the `DisableEnterpriseAuthProxy` setting to **0** (not disabled). For more information on authentication proxy support, see [this blog post](https://go.microsoft.com/fwlink/?linkid=838688). +
30Connectivity check failed. Registry key property `DisableEnterpriseAuthProxy` is not enabled. The `DisableEnterpriseAuthProxy` setting is enabled by default for Windows 7. For Windows 8.1 machines, set the `DisableEnterpriseAuthProxy` setting to **0** (not disabled). For more information on authentication proxy support, see [this blog post](https://go.microsoft.com/fwlink/?linkid=838688). +
31There is more than one instance of the Upgrade Analytics data collector running at the same time on this machine. Use the Windows Task Manager to check if CompatTelRunner.exe is running, and wait until it has completed to rerun the script. +**The Upgrade Analytics task is scheduled to run daily at 3 a.m.**
@@ -206,4 +211,3 @@ The deployment script displays the following exit codes to let you know if it wa ## Seeing data from computers in Upgrade Analytics After data is sent from computers to Microsoft, it generally takes 48 hours for the data to populate in Upgrade Analytics. The compatibility update KB takes several minutes to run. If the KB does not get a chance to finish running or if the computers are inaccessible (turned off or sleeping for example), data will take longer to populate in Upgrade Analytics. For this reason, you can expect most your computers to be populated in OMS in about 1-2 weeks after deploying the KB and configuration to user computers. - diff --git a/windows/deploy/upgrade-analytics-requirements.md b/windows/deploy/upgrade-analytics-requirements.md index 3d55cd49a6..0dd920f998 100644 --- a/windows/deploy/upgrade-analytics-requirements.md +++ b/windows/deploy/upgrade-analytics-requirements.md @@ -1,4 +1,4 @@ ---- +--- title: Upgrade Analytics requirements (Windows 10) description: Provides requirements for Upgrade Analytics. ms.prod: w10 @@ -43,6 +43,8 @@ See [Windows 7, Windows 8, and Windows 8.1 appraiser telemetry events and fields `https://v10.vortex-win.data.microsoft.com/collect/v1` +`https://vortex-win.data.microsoft.com/health/keepalive` + `https://settings-win.data.microsoft.com/settings` `https://vortex.data.microsoft.com/health/keepalive` diff --git a/windows/deploy/windows-10-poc-mdt.md b/windows/deploy/windows-10-poc-mdt.md new file mode 100644 index 0000000000..057d16d9f6 --- /dev/null +++ b/windows/deploy/windows-10-poc-mdt.md @@ -0,0 +1,634 @@ +--- +title: Step by step - Deploy Windows 10 in a test lab using MDT +description: Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit (MDT) +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + + +# Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit + +**Applies to** + +- Windows 10 + +**Important**: This guide leverages the proof of concept (PoC) environment configured using procedures in the following guide: +- [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md) + +Please complete all steps in the prerequisite guide before starting this guide. This guide requires about 5 hours to complete, but can require less time or more time depending on the speed of the Hyper-V host. After completing the current guide, also see the companion guide: +- [Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) + +The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): +- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. +- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been shadow-copied from a physical computer on your corporate network. + +>This guide uses the Hyper-V server role. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. + +## In this guide + +This guide provides instructions to install and configure the Microsoft Deployment Toolkit (MDT) to deploy a Windows 10 image. + +Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. + +
+ + +
TopicDescriptionTime + +
[About MDT](#about-mdt)A high-level overview of the Microsoft Deployment Toolkit (MDT).Informational +
[Install MDT](#install-mdt)Download and install MDT.40 minutes +
[Create a deployment share and reference image](#create-a-deployment-share-and-reference-image)A reference image is created to serve as the template for deploying new images.90 minutes +
[Deploy a Windows 10 image using MDT](#deploy-a-windows-10-image-using-mdt)The reference image is deployed in the PoC environment.60 minutes +
[Refresh a computer with Windows 10](#refresh-a-computer-with-windows-10)Export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings.60 minutes +
[Replace a computer with Windows 10](#replace-a-computer-with-windows-10)Back up an existing client computer, then restore this backup to a new computer.60 minutes +
[Troubleshooting logs, events, and utilities](#troubleshooting-logs-events-and-utilities)Log locations and troubleshooting hints.Informational +
+ +
+ +## About MDT + +MDT performs deployments by using the Lite Touch Installation (LTI), Zero Touch Installation (ZTI), and User-Driven Installation (UDI) deployment methods. +- LTI is the deployment method used in the current guide, requiring only MDT and performed with a minimum amount of user interaction. +- ZTI is fully automated, requiring no user interaction and is performed using MDT and System Center Configuration Manager. After completing the steps in the current guide, see [Step by step: Deploy Windows 10 in a test lab using System Center Configuration Manager](windows-10-poc-sc-config-mgr.md) to use the ZTI deployment method in the PoC environment. +- UDI requires manual intervention to respond to installation prompts such as machine name, password and language settings. UDI requires MDT and System Center Configuration Manager. + +## Install MDT + +1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + + ``` + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 + Stop-Process -Name Explorer + ``` +2. Download and install the 64-bit version of [Microsoft Deployment Toolkit (MDT)](https://www.microsoft.com/en-us/download/details.aspx?id=54259) on SRV1 using the default options. As of the writing of this guide, the latest version of MDT was 8443. + +3. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +3. If desired, re-enable IE Enhanced Security Configuration: + + ``` + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 + Stop-Process -Name Explorer + ``` + +## Create a deployment share and reference image + +A reference image serves as the foundation for Windows 10 devices in your organization. + +1. In [Step by step guide: Configure a test lab to deploy Windows 10](windows-10-poc.md), the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso + ``` +2. On SRV1, verify that the Windows Enterprise installation DVD is mounted as drive letter D. + +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. + +4. To enable quick access to the application, right-click **Deployment Workbench** on the taskbar and then click **Pin this program to the taskbar**. + +5. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +6. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTBuildLab**
+ - Share name: **MDTBuildLab$**
+ - Deployment share description: **MDT build lab**
+ - Options: click **Next** to accept the default
+ - Summary: click **Next**
+ - Progress: settings will be applied
+ - Confirmation: click **Finish** + + +7. Expand the **Deployment Shares** node, and then expand **MDT build lab**. + +8. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +9. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +10. Use the following settings for the Import Operating System Wizard: + - OS Type: **Full set of source files**
+ - Source: **D:\\**
+ - Destination: **W10Ent_x64**
+ - Summary: click **Next** + - Progress: wait for files to be copied + - Confirmation: click **Finish** + + >For purposes of this test lab, we will only add the prerequisite .NET Framework feature. Commerical applications (ex: Microsoft Office) will not be added to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + +11. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: **REFW10X64-001**
+ - Task sequence name: **Windows 10 Enterprise x64 Default Image**
+ - Task sequence comments: **Reference Build**
+ - Template: **Standard Client Task Sequence** + - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** + - Specify Product Key: **Do not specify a product key at this time** + - Full Name: **Contoso** + - Organization: **Contoso** + - Internet Explorer home page: **http://www.contoso.com** + - Admin Password: **Do not specify an Administrator password at this time** + - Summary: click **Next** + - Confirmation: click **Finish** + + +12. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. + +13. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. + +14. On the Properties tab of the group that was created in the previous step, change the Name from **New Group** to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. Click another location in the window to see the name change. + +15. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. + +16. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +17. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. + +18. Click **OK** to complete editing the task sequence. + +19. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click **MDT build lab (C:\MDTBuildLab)** and click **Properties**, and then click the **Rules** tab. + +20. Replace the default rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + UserDataLocation=NONE + DoCapture=YES + OSInstall=Y + AdminPassword=pass@word1 + TimeZoneName=Pacific Standard Time + OSDComputername=#Left("PC-%SerialNumber%",7)# + JoinWorkgroup=WORKGROUP + HideShell=YES + FinishAction=SHUTDOWN + DoNotCreateExtraPartition=YES + ApplyGPOPack=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=YES + SkipBitLocker=YES + SkipSummary=YES + SkipRoles=YES + SkipCapture=NO + SkipFinalSummary=NO + ``` + +21. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTBuildLab$ + UserDomain=CONTOSO + UserID=MDT_BA + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` + +22. Click **OK** to complete the configuration of the deployment share. + +23. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. + +24. Accept all default values in the Update Deployment Share Wizard by clicking **Next** twice. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. + +25. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). + + >Hint: To copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + +26. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + +
+
+
+    New-VM REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB
+    Set-VMMemory REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20
+    Set-VMDvdDrive REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso
+    Start-VM REFW10X64-001
+    vmconnect localhost REFW10X64-001
+	
+
+ + The VM will require a few minutes to prepare devices and boot from the LiteTouchPE_x86.iso file. + +27. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. + +28. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes, and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. + + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine.

+ + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on your deployment server (SRV1). The file name is **REFW10X64-001.wim**. + +## Deploy a Windows 10 image using MDT + +This procedure will demonstrate how to deploy the reference image to the PoC environment using MDT. + +1. On SRV1, open the MDT Deployment Workbench console, right-click **Deployment Shares**, and then click **New Deployment Share**. Use the following values in the New Deployment Share Wizard: + - **Deployment share path**: C:\MDTProd + - **Share name**: MDTProd$ + - **Deployment share description**: MDT Production + - **Options**: accept the default + + +2. Click **Next**, verify the new deployment share was added successfully, then click **Finish**. + +3. In the Deployment Workbench console, expand the MDT Production deployment share, right-click **Operating Systems**, and then click **New Folder**. Name the new folder **Windows 10** and complete the wizard using default values. + +4. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +5. On the **OS Type** page, choose **Custom image file** and then click **Next**. + +6. On the Image page, browse to the **C:\MDTBuildLab\Captures\REFW10X64-001.wim** file created in the previous procedure, click **Open**, and then click **Next**. + +7. On the Setup page, select **Copy Windows 7, Windows Server 2008 R2, or later setup files from the specified path**. + +8. Under **Setup source directory**, browse to **C:\MDTBuildLab\Operating Systems\W10Ent_x64** click **OK** and then click **Next**. + +9. On the Destination page, accept the default Destination directory name of **REFW10X64-001**, click **Next** twice, wait for the import process to complete, and then click **Finish**. + +10. In the **Operating Systems** > **Windows 10** node, double-click the operating system that was added to view its properties. Change the operating system name to **Windows 10 Enterprise x64 Custom Image** and then click **OK**. See the following example: + + ![custom image](images/image.png) + + +### Create the deployment task sequence + +1. Using the Deployment Workbench, right-click **Task Sequences** under the **MDT Production** node, click **New Folder** and create a folder with the name: **Windows 10**. + +2. Right-click the **Windows 10** folder created in the previous step, and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: W10-X64-001 + - Task sequence name: Windows 10 Enterprise x64 Custom Image + - Task sequence comments: Production Image + - Select Template: Standard Client Task Sequence + - Select OS: Windows 10 Enterprise x64 Custom Image + - Specify Product Key: Do not specify a product key at this time + - Full Name: Contoso + - Organization: Contoso + - Internet Explorer home page: http://www.contoso.com + - Admin Password: pass@word1 + +### Configure the MDT production deployment share + +1. On SRV1, open an elevated Windows PowerShell prompt and type the following commands: + + ``` + copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\Bootstrap.ini" C:\MDTProd\Control\Bootstrap.ini -Force + copy-item "C:\Program Files\Microsoft Deployment Toolkit\Templates\CustomSettings.ini" C:\MDTProd\Control\CustomSettings.ini -Force + ``` +2. In the Deployment Workbench console on SRV1, right-click the **MDT Production** deployment share and then click **Properties**. + +3. Click the **Rules** tab and replace the rules with the following text (don't click OK yet): + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + OSInstall=YES + UserDataLocation=AUTO + TimeZoneName=Pacific Standard Time + OSDComputername=#Left("PC-%SerialNumber%",7)# + AdminPassword=pass@word1 + JoinDomain=contoso.com + DomainAdmin=administrator + DomainAdminDomain=CONTOSO + DomainAdminPassword=pass@word1 + ScanStateArgs=/ue:*\* /ui:CONTOSO\* + USMTMigFiles001=MigApp.xml + USMTMigFiles002=MigUser.xml + HideShell=YES + ApplyGPOPack=NO + SkipAppsOnUpgrade=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=NO + SkipBitLocker=YES + SkipSummary=YES + SkipCapture=YES + SkipFinalSummary=NO + EventService=http://SRV1:9800 + ``` + **Note**: The contents of the Rules tab are added to c:\MDTProd\Control\CustomSettings.ini. + + >In this example a **MachineObjectOU** entry is not provided. Normally this entry describes the specific OU where new client computer objects are created in Active Directory. However, for the purposes of this test lab clients are added to the default computers OU, which requires that this parameter be unspecified. + + If desired, edit the follow line to include or exclude other users when migrating settings. Currently, the command is set to user exclude (ue) all users except for CONTOSO users specified by the user include option (ui): + + ``` + ScanStateArgs=/ue:*\* /ui:CONTOSO\* + ``` + + For example, to migrate **all** users on the computer, replace this line with the following: + + ``` + ScanStateArgs=/all + ``` + + For more information, see [ScanState Syntax](https://technet.microsoft.com/library/cc749015.aspx). + +4. Click **Edit Bootstap.ini** and replace text in the file with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTProd$ + UserDomain=CONTOSO + UserID=MDT_BA + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` +5. Click **OK** when finished. + +### Update the deployment share + +1. Right-click the **MDT Production** deployment share and then click **Update Deployment Share**. + +2. Use the default options for the Update Deployment Share Wizard. The update process requires 5 to 10 minutes to complete. + +3. Click **Finish** when the update is complete. + +### Enable deployment monitoring + +1. In the Deployment Workbench console, right-click **MDT Production** and then click **Properties**. + +2. On the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. + +3. Verify the monitoring service is working as expected by opening the following link on SRV1 in Internet Explorer: [http://localhost:9800/MDTMonitorEvent/](http://localhost:9800/MDTMonitorEvent/). If you do not see "**You have created a service**" at the top of the page, see [Troubleshooting MDT 2012 Monitoring](https://blogs.technet.microsoft.com/mniehaus/2012/05/10/troubleshooting-mdt-2012-monitoring/). + +4. Close Internet Explorer. + +### Configure Windows Deployment Services + +1. Initialize Windows Deployment Services (WDS) by typing the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + WDSUTIL /Verbose /Progress /Initialize-Server /Server:SRV1 /RemInst:"C:\RemoteInstall" + WDSUTIL /Set-Server /AnswerClients:All + ``` + +2. Click **Start**, type **Windows Deployment**, and then click **Windows Deployment Services**. + +3. In the Windows Deployment Services console, expand **Servers**, expand **SRV1.contoso.com**, right-click **Boot Images**, and then click **Add Boot Image**. + +4. Browse to the **C:\MDTProd\Boot\LiteTouchPE_x64.wim** file, click **Open**, click **Next**, and accept the defaults in the Add Image Wizard. Click **Finish** to complete adding a boot image. + +### Deploy the client image + +1. Before using WDS to deploy a client image, you must temporarily disable the external network adapter on SRV1. This is just an artifact of the lab environment. In a typical deployment environment WDS would not be installed on the default gateway. + + >**Note**: Do not disable the *internal* network interface. To quickly view IP addresses and interface names configured on the VM, type **Get-NetIPAddress | ft interfacealias, ipaddress** + + Assuming the external interface is named "Ethernet 2", to disable the *external* interface on SRV1, open a Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Disable-NetAdapter "Ethernet 2" -Confirm:$false + ``` + +2. Next, switch to the Hyper-V host and open an elevated Windows PowerShell prompt. Create a generation 2 VM on the Hyper-V host that will load its OS using PXE. To create this VM, type the following commands at an elevated Windows PowerShell prompt: + + ``` + New-VM –Name "PC2" –NewVHDPath "c:\vhd\pc2.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC2" -DynamicMemoryEnabled $true -MinimumBytes 720MB -MaximumBytes 2048MB -Buffer 20 + ``` + >Dynamic memory is configured on the VM to conserve resources. However, this can cause memory allocation to be reduced past what is required to install an operating system. If this happens, reset the VM and begin the OS installation task sequence immediately. This ensures the VM memory allocation is not decreased too much while it is idle. + +3. Start the new VM and connect to it: + + ``` + Start-VM PC2 + vmconnect localhost PC2 + ``` +4. When prompted, hit ENTER to start the network boot process. + +5. In the Windows Deployment Wizard, choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. + +6. After MDT lite touch installation has started, be sure to re-enable the external network adapter on SRV1. This is needed so the client can use Windows Update after operating system installation is complete.To re-enable the external network interface, open an elevated Windows PowerShell prompt on SRV1 and type the following command: + + ``` + Enable-NetAdapter "Ethernet 2" + ``` +7. On SRV1, in the Deployment Workbench console, click on **Monitoring** and view the status of installation. Right-click **Monitoring** and click **Refresh** if no data is displayed. +8. OS installation requires about 10 minutes. When the installation is complete, the system will reboot automatically, configure devices, and install updates, requiring another 10-20 minutes. When the new client computer is finished updating, click **Finish**. You will be automatically signed in to the local computer as administrator. + + ![finish](images/deploy-finish.png) + + +This completes the demonstration of how to deploy a reference image to the network. To conserve resources, turn off the PC2 VM before starting the next section. + +## Refresh a computer with Windows 10 + +This section will demonstrate how to export user data from an existing client computer, wipe the computer, install a new operating system, and then restore user data and settings. The scenario will use PC1, a computer that was cloned from a physical device to a VM, as described in [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md). + +If the PC1 VM is not already running, then start and connect to it: + + ``` + Start-VM PC1 + vmconnect localhost PC1 + ``` + +1. Switch back to the Hyper-V host and create a checkpoint for the PC1 VM so that it can easily be reverted to its current state for troubleshooting purposes and to perform additional scenarios. Checkpoints are also known as snapshots. To create a checkpoint for the PC1 VM, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName BeginState + ``` + +2. Sign on to PC1 using the CONTOSO\Administrator account. + + >Specify **contoso\administrator** as the user name to ensure you do not sign on using the local administrator account. You must sign in with this account so that you have access to the deployment share. + +3. Open an elevated command prompt on PC1 and type the following: + + ``` + cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs + ``` + + **Note**: Litetouch.vbs must be able to create the C:\MININT directory on the local computer. + +4. Choose the **Windows 10 Enterprise x64 Custom Image** and then click **Next**. + +5. Choose **Do not back up the existing computer** and click **Next**. + + **Note**: The USMT will still back up the computer. + +6. Lite Touch Installation will perform the following actions: + - Back up user settings and data using USMT. + - Install the Windows 10 Enterprise X64 operating system. + - Update the operating system via Windows Update. + - Restore user settings and data using USMT. + + You can review the progress of installation on SRV1 by clicking on the **Monitoring** node in the deployment workbench. When OS installation is complete, the computer will restart, set up devices, and configure settings. + +7. Sign in with the CONTOSO\Administrator account and verify that all CONTOSO domain user accounts and data have been migrated to the new operating system, or other user accounts as specified [previously](#configure-the-mdt-production-deployment-share). + +8. Create another checkpoint for the PC1 VM so that you can review results of the computer refresh later. To create a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName RefreshState + ``` + +9. Restore the PC1 VM to it's previous state in preparation for the replace procedure. To restore a checkpoint, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Restore-VMSnapshot -VMName PC1 -Name BeginState -Confirm:$false + Start-VM PC1 + vmconnect localhost PC1 + ``` + +10. Sign in to PC1 using the contoso\administrator account. + +## Replace a computer with Windows 10 + +At a high level, the computer replace process consists of:
+- A special replace task sequence that runs the USMT backup and an optional full Window Imaging (WIM) backup.
+- A standard OS deployment on a new computer. At the end of the deployment, the USMT backup from the old computer is restored. + +### Create a backup-only task sequence + +1. On SRV1, in the deployment workbench console, right-click the MDT Production deployment share, click **Properties**, click the **Rules** tab, and change the line **SkipUserData=YES** to **SkipUserData=NO**. +2. Click **OK**, right-click **MDT Production**, click **Update Deployment Share** and accept the default options in the wizard to update the share. +3. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-Item -Path C:\MigData -ItemType directory + New-SmbShare -Name MigData$ -Path C:\MigData -ChangeAccess EVERYONE + icacls C:\MigData /grant '"contoso\administrator":(OI)(CI)(M)' + ``` +4. On SRV1 in the deployment workbench, under **MDT Production**, right-click the **Task Sequences** node, and click **New Folder**. +5. Name the new folder **Other**, and complete the wizard using default options. +6. Right-click the **Other** folder and then click **New Task Sequence**. Use the following values in the wizard: + - **Task sequence ID**: REPLACE-001 + - **Task sequence name**: Backup Only Task Sequence + - **Task sequence comments**: Run USMT to back up user data and settings + - **Template**: Standard Client Replace Task Sequence (note: this is not the default template) +7. Accept defaults for the rest of the wizard and then click **Finish**. The replace task sequence will skip OS selection and settings. +8. Open the new task sequence that was created and review it. Note the type of capture and backup tasks that are present. Click **OK** when you are finished reviewing the task sequence. + +### Run the backup-only task sequence + +1. If you are not already signed on to PC1 as **contoso\administrator**, sign in using this account. To verify the currently signed in account, type the following command at an elevated command prompt: + + ``` + whoami + ``` +2. To ensure a clean environment before running the backup task sequence, type the following at an elevated Windows PowerShell prompt on PC1: + + ``` + Remove-Item c:\minint -recurse + Remove-Item c:\_SMSTaskSequence -recurse + Restart-Computer + ``` +2. Sign in to PC1 using the contoso\administrator account, and then type the following at an elevated command prompt: + + ``` + cscript \\SRV1\MDTProd$\Scripts\Litetouch.vbs + ``` +3. Complete the deployment wizard using the following: + - **Task Sequence**: Backup Only Task Sequence + - **User Data**: Specify a location: **\\SRV1\MigData$\PC1** + - **Computer Backup**: Do not back up the existing computer. +4. While the task sequence is running on PC1, open the deployment workbench console on SRV1 and click the **Monitoring* node. Press F5 to refresh the console, and view the status of current tasks. +5. Verify that **The user state capture was completed successfully** is displayed, and click **Finish** when the capture is complete. +6. On SRV1, verify that the file **USMT.MIG** was created in the **C:\MigData\PC1\USMT** directory. See the following example: + + ``` + PS C:\> dir C:\MigData\PC1\USMT + + Directory: C:\MigData\PC1\USMT + + Mode LastWriteTime Length Name + ---- ------------- ------ ---- + -a--- 9/6/2016 11:34 AM 14248685 USMT.MIG + ``` +### Deploy PC3 + +1. On the Hyper-V host, type the following commands at an elevated Windows PowerShell prompt: + + ``` + New-VM –Name "PC3" –NewVHDPath "c:\vhd\pc3.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC3" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + ``` +2. Temporarily disable the external network adapter on SRV1 again, so that we can successfully boot PC3 from WDS. To disable the adapter, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Disable-NetAdapter "Ethernet 2" -Confirm:$false + ``` +3. Start and connect to PC3 by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Start-VM PC3 + vmconnect localhost PC3 + ``` +4. When prompted, press ENTER for network boot. + +6. On PC3, ue the following settings for the Windows Deployment Wizard: + - **Task Sequence**: Windows 10 Enterprise x64 Custom Image + - **Move Data and Settings**: Do not move user data and settings + - **User Data (Restore)**: Specify a location: **\\SRV1\MigData$\PC1** +5. When OS installation has started on PC1, re-enable the external network adapter on SRV1 by typing the following command on SRV1: + + ``` + Enable-NetAdapter "Ethernet 2" + ``` +7. Setup will install the Windows 10 Enterprise operating system, update via Windows Update, and restore the user settings and data from PC1. + +8. When PC3 has completed installing the OS, sign in to PC3 using the contoso\administrator account. When the PC completes updating, click **Finish**. + +9. Verify that settings have been migrated from PC1, and then shut down PC3 in preparation for the next procedure. + +## Troubleshooting logs, events, and utilities + +Deployment logs are available on the client computer in the following locations: +- Before the image is applied: X:\MININT\SMSOSD\OSDLOGS +- After the system drive has been formatted: C:\MININT\SMSOSD\OSDLOGS +- After deployment: %WINDIR%\TEMP\DeploymentLogs + +You can review WDS events in Event Viewer at: **Applications and Services Logs > Microsoft > Windows > Deployment-Services-Diagnostics**. By default, only the **Admin** and **Operational** logs are enabled. To enable other logs, right-click the log and then click **Enable Log**. + +Tools for viewing log files, and to assist with troubleshooting are available in the [System Center 2012 R2 Configuration Manager Toolkit](https://www.microsoft.com/en-us/download/details.aspx?id=50012) + +Also see [Resolve Windows 10 upgrade errors](resolve-windows-10-upgrade-errors.md) for detailed troubleshooting information. + +## Related Topics + +[Microsoft Deployment Toolkit](https://technet.microsoft.com/en-US/windows/dn475741)
+[Prepare for deployment with MDT 2013](prepare-for-windows-deployment-with-mdt-2013.md) + +  + + + + + diff --git a/windows/deploy/windows-10-poc-sc-config-mgr.md b/windows/deploy/windows-10-poc-sc-config-mgr.md new file mode 100644 index 0000000000..d9278a15c5 --- /dev/null +++ b/windows/deploy/windows-10-poc-sc-config-mgr.md @@ -0,0 +1,1040 @@ +--- +title: Deploy Windows 10 using System Center Configuration Manager +description: Deploy Windows 10 in a test lab using System Center Configuration Manager +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +--- + +# Deploy Windows 10 in a test lab using System Center Configuration Manager + +**Applies to** + +- Windows 10 + +**Important**: This guide leverages the proof of concept (PoC) environment, and some settings that are configured in the following guides: +- [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) +- [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) + +Please complete all steps in these guides before attempting the procedures in this guide. If you wish to skip the Windows 10 deployment procedures in the MDT guide and move directly to this guide, you must at least install MDT and the Windows ADK before performing procedures in this guide. All steps in the first guide are required before attempting the procedures in this guide. + +The PoC environment is a virtual network running on Hyper-V with three virtual machines (VMs): +- **DC1**: A contoso.com domain controller, DNS server, and DHCP server. +- **SRV1**: A dual-homed contoso.com domain member server, DNS server, and default gateway providing NAT service for the PoC network. +- **PC1**: A contoso.com member computer running Windows 7, Windows 8, or Windows 8.1 that has been cloned from a physical computer on your corporate network for testing purposes. + +This guide leverages the Hyper-V server role to perform procedures. If you do not complete all steps in a single session, consider using [checkpoints](https://technet.microsoft.com/library/dn818483.aspx) and [saved states](https://technet.microsoft.com/library/ee247418.aspx) to pause, resume, or restart your work. + +>Multiple features and services are installed on SRV1 in this guide. This is not a typical installation, and is only done to set up a lab environment with a bare minimum of resources. However, if less than 4 GB of RAM is allocated to SRV1 in the Hyper-V console, some procedures will be extremely slow to complete. If resources are limited on the Hyper-V host, consider reducing RAM allocation on DC1 and PC1, and then increasing the RAM allocation on SRV1. You can adjust RAM allocation for a VM by right-clicking the VM in the Hyper-V Manager console, clicking **Settings**, clicking **Memory**, and modifying the value next to **Maximum RAM**. + +## In this guide + +This guide provides end-to-end instructions to install and configure System Center Configuration Manager, and use it to deploy a Windows 10 image. Depending on the speed of your Hyper-V host, the procedures in this guide will require 6-10 hours to complete. + +Topics and procedures in this guide are summarized in the following table. An estimate of the time required to complete each procedure is also provided. Time required to complete procedures will vary depending on the resources available to the Hyper-V host and assigned to VMs, such as processor speed, memory allocation, disk speed, and network speed. + +
+ + +
TopicDescriptionTime + +
[Install prerequisites](#install-prerequisites)Install prerequisite Windows Server roles and features, download, install and configure SQL Server, configure firewall rules, and install the Windows ADK.60 minutes +
[Install System Center Configuration Manager](#install-system-center-configuration-manager)Download System Center Configuration Manager, configure prerequisites, and install the package.45 minutes +
[Download MDOP and install DaRT](#download-mdop-and-install-dart)Download the Microsoft Desktop Optimization Pack 2015 and install DaRT 10.15 minutes +
[Prepare for Zero Touch installation](#prepare-for-zero-touch-installation)Prerequisite procedures to support Zero Touch installation.60 minutes +
[Create a boot image for Configuration Manager](#create-a-boot-image-for-configuration-manager)Use the MDT wizard to create the boot image in Configuration Manager.20 minutes +
[Create a Windows 10 reference image](#create-a-windows-10-reference-image)This procedure can be skipped if it was done previously, otherwise instructions are provided to create a reference image.0-60 minutes +
[Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image)Add a Windows 10 operating system image and distribute it.10 minutes +
[Create a task sequence](#Create a task sequence)Create a Configuration Manager task sequence with MDT integration using the MDT wizard15 minutes +
[Finalize the operating system configuration](#finalize-the-operating-system-configuration)Enable monitoring, configure rules, and distribute content.30 minutes +
[Deploy Windows 10 using PXE and Configuration Manager](#deploy-windows-10-using-pxe-and-configuration-manager)Deploy Windows 10 using Configuration Manager deployment packages and task sequences.60 minutes +
[Refresh a client with Windows 10 using Configuration Manager](#refresh-a-client-with-windows-10-using-configuration-manager)Use a task sequence to refresh a client with Windows 10 using Configuration Manager and MDT90 minutes +
[Replace a client with Windows 10 using Configuration Manager](#replace-a-client-with-windows-10-using-configuration-manager)Replace a client computer with Windows 10 using Configuration Manager.90 minutes + +
+ +
+ +## Install prerequisites + +1. Before installing System Center Configuration Manager, we must install prerequisite services and features. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Install-WindowsFeature Web-Windows-Auth,Web-ISAPI-Ext,Web-Metabase,Web-WMI,BITS,RDC,NET-Framework-Features,Web-Asp-Net,Web-Asp-Net45,NET-HTTP-Activation,NET-Non-HTTP-Activ + ``` + + >If the request to add features fails, retry the installation by typing the command again. + +2. Download [SQL Server 2012 SP2](https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2014-sp2) from the Microsoft Evaluation Center as an .ISO file on the Hyper-V host computer. Save the file to the **C:\VHD** directory. +3. When you have downloaded the file **SQLServer2014SP2-FullSlipstream-x64-ENU.iso** and placed it in the C:\VHD directory, type the following command at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\SQLServer2014SP2-FullSlipstream-x64-ENU.iso + ``` + + This command mounts the .ISO file to drive D on SRV1. + +4. Type the following command at an elevated Windows PowerShell prompt on SRV1 to install SQL Server 2012 SP2: + + ``` + D:\setup.exe /q /ACTION=Install /ERRORREPORTING="False" /FEATURES=SQLENGINE,RS,IS,SSMS,TOOLS,ADV_SSMS,CONN /INSTANCENAME=MSSQLSERVER /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /SQLSVCACCOUNT="NT AUTHORITY\System" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SQLSVCSTARTUPTYPE=Automatic /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCSTARTUPTYPE=Automatic /RSSVCACCOUNT="NT AUTHORITY\System" /RSSVCSTARTUPTYPE=Automatic /ISSVCACCOUNT="NT AUTHORITY\System" /ISSVCSTARTUPTYPE=Disabled /ASCOLLATION="Latin1_General_CI_AS" /SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS" /TCPENABLED="1" /NPENABLED="1" /IAcceptSQLServerLicenseTerms + ``` + Installation will take several minutes. When installation is complete, the following output will be displayed: + + ``` + Microsoft (R) SQL Server 2014 12.00.5000.00 + Copyright (c) Microsoft Corporation. All rights reserved. + + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 + Copyright (c) Microsoft Corporation. All rights reserved. + + Success + Microsoft (R) .NET Framework CasPol 2.0.50727.7905 + Copyright (c) Microsoft Corporation. All rights reserved. + + Success + One or more affected files have operations pending. + You should restart your computer to complete this process. + PS C:\> + ``` +5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-NetFirewallRule -DisplayName “SQL Server” -Direction Inbound –Protocol TCP –LocalPort 1433 -Action allow + New-NetFirewallRule -DisplayName “SQL Admin Connection” -Direction Inbound –Protocol TCP –LocalPort 1434 -Action allow + New-NetFirewallRule -DisplayName “SQL Database Management” -Direction Inbound –Protocol UDP –LocalPort 1434 -Action allow + New-NetFirewallRule -DisplayName “SQL Service Broker” -Direction Inbound –Protocol TCP –LocalPort 4022 -Action allow + New-NetFirewallRule -DisplayName “SQL Debugger/RPC” -Direction Inbound –Protocol TCP –LocalPort 135 -Action allow + ``` + +7. Download and install the latest [Windows Assessment and Deployment Kit (ADK)](https://developer.microsoft.com/en-us/windows/hardware/windows-assessment-deployment-kit) on SRV1 using the default installation settings. The current version is the ADK for Windows 10, version 1607. Installation might require several minutes to acquire all components. + +## Install System Center Configuration Manager + +1. On SRV1, temporarily disable IE Enhanced Security Configuration for Administrators by typing the following commands at an elevated Windows PowerShell prompt: + + ``` + $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 0 + Stop-Process -Name Explorer + ``` + +2. Download [System Center Configuration Manager and Endpoint Protection](https://www.microsoft.com/en-us/evalcenter/evaluate-system-center-configuration-manager-and-endpoint-protection) on SRV1 (download the executable file anywhere on SRV1), double-click the file, enter **C:\configmgr** for **Unzip to folder**, and click **Unzip**. The C:\configmgr directory will be automatically created. Click **OK** and then close the **WinZip Self-Extractor** dialog box when finished. + +3. Before starting the installation, verify that WMI is working on SRV1. See the following examples. Verify that **Running** is displayed under **Status** and **True** is displayed next to **TcpTestSucceeded**: + + ``` + Get-Service Winmgmt + + Status Name DisplayName + ------ ---- ----------- + Running Winmgmt Windows Management Instrumentation + + Test-NetConnection -ComputerName 192.168.0.2 -Port 135 -InformationLevel Detailed + + ComputerName : 192.168.0.2 + RemoteAddress : 192.168.0.2 + RemotePort : 135 + AllNameResolutionResults : + MatchingIPsecRules : + NetworkIsolationContext : Internet + InterfaceAlias : Ethernet + SourceAddress : 192.168.0.2 + NetRoute (NextHop) : 0.0.0.0 + PingSucceeded : True + PingReplyDetails (RTT) : 0 ms + TcpTestSucceeded : True + ``` + You can also verify WMI using the WMI console by typing **wmimgmt.msc**, right-clicking **WMI Control (Local)** in the console tree, and then clicking **Properties**. + + If the WMI service is not started, attempt to start it or reboot the computer. If WMI is running but errors are present, see [WMIDiag](https://blogs.technet.microsoft.com/askperf/2015/05/12/wmidiag-2-2-is-here/) for troubleshooting information. + +4. To extend the Active Directory schema, type the following command at an elevated Windows PowerShell prompt: + + ``` + cmd /c C:\configmgr\SMSSETUP\BIN\X64\extadsch.exe + ``` + +5. Temporarily switch to the DC1 VM, and type the following command at an elevated command prompt on DC1: + + ``` + adsiedit.msc + ``` + +6. Right-click **ADSI Edit**, click **Connect to**, select **Default** under **Computer** and then click **OK**. +7. Expand **Default naming context**>**DC=contoso,DC=com**, right-click **CN=System**, point to **New**, and then click **Object**. +8. Click **container** and then click **Next**. +9. Next to **Value**, type **System Management**, click **Next**, and then click **Finish**. +10. Right-click **CN=system Management** and then click **Properties**. +11. On the **Security** tab, click **Add**, click **Object Types**, select **Computers**, and click **OK**. +12. Under **Enter the object names to select**, type **SRV1** and click **OK**. +13. The **SRV1** computer account will be highlighted, select **Allow** next to **Full control**. +14. Click **Advanced**, click **SRV1 (CONTOSO\SRV1$)** and click **Edit**. +15. Next to **Applies to**, choose **This object and all descendant objects**, and then click **OK** three times. +16. Close the ADSI Edit console and switch back to SRV1. +17. To start Configuration Manager installation, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + cmd /c C:\configmgr\SMSSETUP\BIN\X64\Setup.exe + ``` +18. Provide the following in the System Center Configuration Manager Setup Wizard: + - **Before You Begin**: Read the text and click *Next*. + - **Getting Started**: Choose **Install a Configuration Manager primary site** and select the **Use typical installation options for a stand-alone primary site** checkbox. + - Click **Yes** in response to the popup window. + - **Product Key**: Choose **Install the evaluation edition of this Product**. + - **Microsoft Software License Terms**: Read the terms and then select the **I accept these license terms** checkbox. + - **Prerequisite Licenses**: Review license terms and select all three checkboxes on the page. + - **Prerequisite Downloads**: Choose **Download required files** and enter **c:\windows\temp** next to **Path**. + - **Site and Installation Settings**: Site code: **PS1**, Site name: **Contoso**. + - use default settings for all other options + - **Usage Data**: Read the text and click **Next**. + - **Service Connection Point Setup**: Accept the default settings (SRV1.contoso.com is automatically added under Select a server to use). + - **Settings Summary**: Review settings and click **Next**. + - **Prerequisite Check**: No failures should be listed. Ignore any warnings and click **Begin Install**. + + >There should be at most three warnings present: WSUS on site server, configuration for SQL Server memory usage, and SQL Server process memory allocation. These warnings can safely be ignored. + + Depending on the speed of the Hyper-V host and resources allocated to SRV1, installation can require approximately one hour. Click **Close** when installation is complete. + +19. If desired, re-enable IE Enhanced Security Configuration at this time on SRV1: + + ``` + Set-ItemProperty -Path $AdminKey -Name “IsInstalled” -Value 1 + Stop-Process -Name Explorer + ``` + +## Download MDOP and install DaRT + +1. Download the [Microsoft Desktop Optimization Pack 2015](https://msdn.microsoft.com/en-us/subscriptions/downloads/#ProductFamilyId=597) to the Hyper-V host using an MSDN subscription. Download the .ISO file (mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso) to the C:\VHD directory on the Hyper-V host. + +2. Type the following command at an elevated Windows PowerShell prompt on the Hyper-V host to mount the MDOP file on SRV1: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\mu_microsoft_desktop_optimization_pack_2015_x86_x64_dvd_5975282.iso + ``` +3. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + cmd /c "D:\DaRT\DaRT 10\Installers\en-us\x64\MSDaRT100.msi" + ``` +4. Install DaRT 10 using default settings. +5. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx64.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64" + Copy-Item "C:\Program Files\Microsoft DaRT\v10\Toolsx86.cab" -Destination "C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x86" + ``` + +## Prepare for Zero Touch installation + +This section contains several procedures to support Zero Touch installation with System Center Configuration Manager. + +### Create a folder structure + +1. Type the following commands at a Windows PowerShell prompt on SRV1: + + ``` + New-Item -ItemType Directory -Path "C:Sources\OSD\Boot" + New-Item -ItemType Directory -Path "C:Sources\OSD\OS" + New-Item -ItemType Directory -Path "C:\Sources\OSD\Settings" + New-Item -ItemType Directory -Path "C:\Sources\OSD\Branding" + New-Item -ItemType Directory -Path "C:\Sources\OSD\MDT" + New-Item -ItemType Directory -Path "C:\Logs" + New-SmbShare -Name Sources$ -Path C:\Sources -ChangeAccess EVERYONE + New-SmbShare -Name Logs$ -Path C:\Logs -ChangeAccess EVERYONE + ``` + +### Enable MDT ConfigMgr integration + +1. On SRV1, click **Start**, type **configmgr**, and then click **Configure ConfigMgr Integration**. +2. Type **PS1** next to **Site code**, and then click **Next**. +3. Verify **The process completed successfully** is displayed, and then click **Finish**. + +### Configure client settings + +1. On SRV1, click **Start**, type **configuration manager**, right-click **Configuration Manager Console**, and then click **Pin to Taskbar**. +2. Click **Desktop**, and then launch the Configuration Manager console from the taskbar. +3. If the console notifies you that an update is available, click **OK**. It is not necessary to install updates to complete this lab. +4. In the console tree, open the **Administration** workspace (in the lower left corner) and click **Client Settings**. +5. In the display pane, double-click **Default Client Settings**. +6. Click **Computer Agent**, next to **Organization name displayed in Software Center** type **Contoso**, and then click **OK**. + +### Configure the network access account + +1. In the Administration workspace, expand **Site Configuration** and click **Sites**. +2. On the **Home** ribbon at the top of the console window, click **Configure Site Components** and then click **Software Distribution**. +3. On the **Network Access Account** tab, choose **Specify the account that accesses network locations**. +4. Click the yellow starburst and then click **New Account**. +5. Click **Browse** and then under **Enter the object name to select**, type **CM_NAA** and click **OK**. +6. Next to **Password** and **Confirm Password**, type **pass@word1**, and then click **OK** twice. + +### Configure a boundary group + +1. In the Administration workspace, expand **Hierary Configuration**, right-click **Boundaries** and then click **Create Boundary**. +2. Next to **Description**, type **PS1**, next to **Type** choose **Active Directory Site**, and then click **Browse**. +3. Choose **Default-First-Site-Name** and then click **OK** twice. +4. In the Administration workspace, right-click **Boundary Groups** and then click **Create Boundary Group**. +5. Next to **Name**, type **PS1 Site Assignment and Content Location**, click **Add**, select the **Default-First-Site-Name** boundary and then click **OK**. +6. On the **References** tab in the **Create Boundary Group** window select the **Use this boundary group for site assignment** checkbox. +7. Click **Add**, select the **\\\SRV1.contoso.com** checkbox, and then click **OK** twice. + +### Enable PXE on the distribution point + +1. Deterime the MAC address of the internal network adapter on SRV1. To determine this, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + (Get-NetAdapter "Ethernet").MacAddress + ``` + >If the internal network adapter, assigned an IP address of 192.168.0.2, is not named "Ethernet" then replace the name "Ethernet" in the previous command with the name of this network adapter. You can review the names of network adapters and the IP addresses assigned to them by typing **ipconfig**. + +2. In the System Center Configuration Manager console, in the **Administration** workspace, click **Distribution Points**. +3. In the display pane, right-click **SRV1.CONTOSO.COM** and then click **Properties**. +4. On the PXE tab, select the following settings: + - Enable PXE support for clients. Click **Yes** in the popup that appears. + - Allow this distribution point to respond to incoming PXE requests + - Enable unknown computer support. Click **OK** in the popup that appears. + - Require a password when computers use PXE + - Password and Confirm password: pass@word1 + - Respond to PXE requests on specific network interfaces: Click the yellow starburst and then enter the MAC address determined in the first step of this procedure. + + See the following example: + + Config Mgr PXE + +5. Click **OK**. +6. Type the following command at an elevated Windows PowerShell prompt on SRV1, and verify that the files displayed are present: + + ``` + cmd /c dir /b C:\RemoteInstall\SMSBoot\x64 + + abortpxe.com + bootmgfw.efi + bootmgr.exe + pxeboot.com + pxeboot.n12 + wdsmgfw.efi + wdsnbp.com + ``` + >If these files are not present, type the following command at an elevated Windows PowerShell prompt to open the Configuration Manager Trace Log Tool. In the tool, click **File**, click **Open**, and then open the **distmgr.log** file. If errors are present, they will be highlighted in red: + + ``` + Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' + ``` + + The log file will updated continuously while Configuration Manager is running. Wait for Configuration Manager to repair any issues that are present, and periodically re-check that the files are present in the C:\RemoteInstall\SMSBoot\x64 directory. Close the Configuration Manager Trace Log Tool when done. You will see the following line in distmgr.log that indicates the C:\RemoteInstall directory is being populated with necessary files: + + Running: WDSUTIL.exe /Initialize-Server /REMINST:"C:\RemoteInstall" + + Once the files are present in C:\RemoteInstall, you can close the cmtrace tool. + +### Create a branding image file + +1. If you have a bitmap (.BMP) image for suitable use as a branding image, copy it to the C:\Sources\OSD\Branding folder on SRV1. Otherwise, use the following step to copy a simple branding image. +2. Type the following command at an elevated Windows PowerShell prompt: + + ``` + copy "C:\ProgramData\Microsoft\User Account Pictures\user.bmp" "C:\Sources\OSD\Branding\contoso.bmp" + ``` + >You can open C:\Sources\OSD\Branding\contoso.bmp in MSPaint.exe if desired to customize this image. + + +## Create a boot image for Configuration Manager + +1. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Boot Images**, and then click **Create Boot Image using MDT**. +2. On the Package Source page, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Boot\Zero Touch WinPE x64**, and then click **Next**. + - The Zero Touch WinPE x64 folder does not yet exist. The folder will be created later. +3. On the General Settings page, type **Zero Touch WinPE x64** next to **Name**, and click **Next**. +4. On the Options page, under **Platform** choose **x64**, and click **Next**. +5. On the Components page, in addition to the default selection of **Microsoft Data Access Components (MDAC/ADO) support**, select the **Microsoft Diagnostics and Recovery Toolkit (DaRT)** checkbox, and click **Next**. +6. On the Customization page, select the **Use a custom background bitmap file** checkbox, and under **UNC path**, type or browse to **\\\SRV1\Sources$\OSD\Branding\contoso.bmp**, and then click **Next** twice. It will take a few minutes to generate the boot image. +7. Click **Finish**. +8. In the console display pane, right-click the **Zero Touch WinPE x64** boot image, and then click **Distribute Content**. +9. In the Distribute Content Wizard, click **Next**, click **Add** and select **Distribution Point**, select the **SRV1.CONTOSO.COM** checkbox, click **OK**, click **Next** twice, and then click **Close**. +10. Use the CMTrace application to view the **distmgr.log** file again and verify that the boot image has been distributed. To open CMTrace, type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + Invoke-Item 'C:\Program Files\Microsoft Configuration Manager\tools\cmtrace.exe' + ``` + >In the trace tool, click **Tools** on the menu and choose **Find**. Search for "**STATMSG: ID=2301**". For example: + + ``` + STATMSG: ID=2301 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=SRV1.CONTOSO.COM SITE=PS1 PID=2476 TID=4636 GMTDATE=Wed Sep 14 22:11:09.363 2016 ISTR0="Configuration Manager Client Upgrade Package" ISTR1="PS100003" ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=1 AID0=400 AVAL0="PS100003" SMS_DISTRIBUTION_MANAGER 9/14/2016 3:11:09 PM 4636 (0x121C) + ``` +11. You can also review status by clicking the **Zero Touch WinPE x64** image, and then clicking **Content Status** under **Related Objects** in the bottom right-hand corner of the console, or by entering **\Monitoring\Overview\Distribution Status\Content Status** on the location bar in the console. Doublt-click **Zero Touch WinPE x64** under **Content Status** in the console tree and verify that a status of **Successfully distributed content** is displayed on the **Success** tab. +12. In the **Software Library** workspace, double-click **Zero Touch WinPE x64** and then click the **Data Source** tab. +13. Select the **Deploy this boot image from the PXE-enabled distribution point** checkbox, and click **OK**. +14. Review the distmgr.log file again for "**STATMSG: ID=2301**" and verify that there are three folders under **C:\RemoteInstall\SMSImages** with boot images. See the following example: + + ``` + cmd /c dir /s /b C:\RemoteInstall\SMSImages + + C:\RemoteInstall\SMSImages\PS100004 + C:\RemoteInstall\SMSImages\PS100005 + C:\RemoteInstall\SMSImages\PS100006 + C:\RemoteInstall\SMSImages\PS100004\boot.PS100004.wim + C:\RemoteInstall\SMSImages\PS100005\boot.PS100005.wim + C:\RemoteInstall\SMSImages\PS100006\WinPE.PS100006.wim + ``` + + >The first two images (*.wim files) are default boot images. The third is the new boot image with DaRT. + +## Create a Windows 10 reference image + +If you have already completed steps in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then you have already created a Windows 10 reference image. In this case, skip to the next procedure in this guide: [Add a Windows 10 operating system image](#add-a-windows-10-operating-system-image). If you have not yet created a Windows 10 reference image, complete the steps in this section. + +1. In [Step by step guide: Deploy Windows 10 in a test lab](windows-10-poc.md) the Windows 10 Enterprise .iso file was saved to the c:\VHD directory as **c:\VHD\w10-enterprise.iso**. The first step in creating a deployment share is to mount this file on SRV1. To mount the Windows 10 Enterprise DVD on SRV1, open an elevated Windows PowerShell prompt on the Hyper-V host computer and type the following command: + + ``` + Set-VMDvdDrive -VMName SRV1 -Path c:\VHD\w10-enterprise.iso + ``` +2. Verify that the Windows Enterprise installation DVD is mounted on SRV1 as drive letter D. + +3. The Windows 10 Enterprise installation files will be used to create a deployment share on SRV1 using the MDT deployment workbench. To open the deployment workbench, click **Start**, type **deployment**, and then click **Deployment Workbench**. + +4. In the Deployment Workbench console, right-click **Deployment Shares** and select **New Deployment Share**. + +5. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTBuildLab**
+ - Share name: **MDTBuildLab$**
+ - Deployment share description: **MDT build lab**
+ - Options: click **Next** to accept the default
+ - Summary: click **Next**
+ - Progress: settings will be applied
+ - Confirmation: click **Finish** + +6. Expand the **Deployment Shares** node, and then expand **MDT build lab**. + +7. Right-click the **Operating Systems** node, and then click **New Folder**. Name the new folder **Windows 10**. Complete the wizard using default values and click **Finish**. + +7. Right-click the **Windows 10** folder created in the previous step, and then click **Import Operating System**. + +8. Use the following settings for the Import Operating System Wizard: + - OS Type: **Full set of source files**
+ - Source: **D:\\**
+ - Destination: **W10Ent_x64**
+ - Summary: click **Next** + - Confirmation: click **Finish** + +9. For purposes of this test lab, we will not add applications, such as Microsoft Office, to the deployment share. For information about adding applications, see the [Add applications](https://technet.microsoft.com/en-us/itpro/windows/deploy/create-a-windows-10-reference-image#sec03) section of the [Create a Windows 10 reference image](create-a-windows-10-reference-image.md) topic in the TechNet library. + +10. The next step is to create a task sequence to reference the operating system that was imported. To create a task sequence, right-click the **Task Sequences** node under **MDT Build Lab** and then click **New Task Sequence**. Use the following settings for the New Task Sequence Wizard: + - Task sequence ID: **REFW10X64-001**
+ - Task sequence name: **Windows 10 Enterprise x64 Default Image**
+ - Task sequence comments: **Reference Build**
+ - Template: **Standard Client Task Sequence** + - Select OS: click **Windows 10 Enterprise Evaluation in W10Ent_x64 install.wim** + - Specify Product Key: **Do not specify a product key at this time** + - Full Name: **Contoso** + - Organization: **Contoso** + - Internet Explorer home page: **http://www.contoso.com** + - Admin Password: **Do not specify an Administrator password at this time** + - Summary: click **Next** + - Confirmation: click **Finish** + +11. Edit the task sequence to add the Microsoft NET Framework 3.5, which is required by many applications. To edit the task sequence, double-click **Windows 10 Enterprise x64 Default Image** that was created in the previous step. + +12. Click the **Task Sequence** tab. Under **State Restore** click **Tatto** to highlight it, then click **Add** and choose **New Group**. A new group will be added under Tattoo. + +13. On the Properties tab of the group that was created in the previous step, change the Name from New Group to **Custom Tasks (Pre-Windows Update)** and then click **Apply**. To see the name change, click **Tattoo**, then click the new group again. + +14. Click the **Custom Tasks (Pre-Windows Update)** group again, click **Add**, point to **Roles**, and then click **Install Roles and Features**. + +15. Under **Select the roles and features that should be installed**, select **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** and then click **Apply**. + +16. Enable Windows Update in the task sequence by clicking the **Windows Update (Post-Application Installation)** step, clicking the **Options** tab, and clearing the **Disable this step** checkbox. + >Note: Since we are not installing applications in this test lab, there is no need to enable the Windows Update Pre-Application Installation step. However, you should enable this step if you are also installing applications. + +17. Click **OK** to complete editing the task sequence. + +18. The next step is to configure the MDT deployment share rules. To configure rules in the Deployment Workbench, right-click MDT build lab (C:\MDTBuildLab) and click **Properties**, and then click the **Rules** tab. + +19. Replace the default rules with the following text: + + ``` + [Settings] + Priority=Default + + [Default] + _SMSTSORGNAME=Contoso + UserDataLocation=NONE + DoCapture=YES + OSInstall=Y + AdminPassword=pass@word1 + TimeZoneName=Pacific Standard TimeZoneName + OSDComputername=#Left("PC-%SerialNumber%",7)# + JoinWorkgroup=WORKGROUP + HideShell=YES + FinishAction=SHUTDOWN + DoNotCreateExtraPartition=YES + ApplyGPOPack=NO + SkipAdminPassword=YES + SkipProductKey=YES + SkipComputerName=YES + SkipDomainMembership=YES + SkipUserData=YES + SkipLocaleSelection=YES + SkipTaskSequence=NO + SkipTimeZone=YES + SkipApplications=YES + SkipBitLocker=YES + SkipSummary=YES + SkipRoles=YES + SkipCapture=NO + SkipFinalSummary=NO + ``` + +20. Click **Apply** and then click **Edit Bootstrap.ini**. Replace the contents of the Bootstrap.ini file with the following text, and save the file: + + ``` + [Settings] + Priority=Default + + [Default] + DeployRoot=\\SRV1\MDTBuildLab$ + UserDomain=CONTOSO + UserID=MDT_BA + UserPassword=pass@word1 + SkipBDDWelcome=YES + ``` + +21. Click **OK** to complete the configuration of the deployment share. + +22. Right-click **MDT build lab (C:\MDTBuildLab)** and then click **Update Deployment Share**. + +23. Accept all default values in the Update Deployment Share Wizard by clicking **Next**. The update process will take 5 to 10 minutes. When it has completed, click **Finish**. + +24. Copy **c:\MDTBuildLab\Boot\LiteTouchPE_x86.iso** on SRV1 to the **c:\VHD** directory on the Hyper-V host computer. Note that in MDT, the x86 boot image can deploy both x86 and x64 operating systems, except on computers based on Unified Extensible Firmware Interface (UEFI). + + >Hint: Top copy the file, right-click the **LiteTouchPE_x86.iso** file and click **Copy** on SRV1, then open the **c:\VHD** folder on the Hyper-V host, right-click inside the folder and click **Paste**. + +25. Open a Windows PowerShell prompt on the Hyper-V host computer and type the following commands: + + ``` + New-VM –Name REFW10X64-001 -SwitchName poc-internal -NewVHDPath "c:\VHD\REFW10X64-001.vhdx" -NewVHDSizeBytes 60GB + Set-VMMemory -VMName REFW10X64-001 -DynamicMemoryEnabled $true -MinimumBytes 1024MB -MaximumBytes 1024MB -Buffer 20 + Set-VMDvdDrive -VMName REFW10X64-001 -Path c:\VHD\LiteTouchPE_x86.iso + Start-VM REFW10X64-001 + vmconnect localhost REFW10X64-001 + ``` +26. In the Windows Deployment Wizard, select **Windows 10 Enterprise x64 Default Image**, and then click **Next**. + +27. Accept the default values on the Capture Image page, and click **Next**. Operating system installation will complete after 5 to 10 minutes and then the VM will reboot automatically. Allow the system to boot normally (do not press a key). The process is fully automated. + + Additional system restarts will occur to complete updating and preparing the operating system. Setup will complete the following procedures: + + - Install the Windows 10 Enterprise operating system. + - Install added applications, roles, and features. + - Update the operating system using Windows Update (or WSUS if optionally specified). + - Stage Windows PE on the local disk. + - Run System Preparation (Sysprep) and reboot into Windows PE. + - Capture the installation to a Windows Imaging (WIM) file. + - Turn off the virtual machine. + + This step requires from 30 minutes to 2 hours, depending on the speed of the Hyper-V host and your network's download speed. After some time, you will have a Windows 10 Enterprise x64 image that is fully patched and has run through Sysprep. The image is located in the C:\MDTBuildLab\Captures folder on SRV1. The file name is **REFW10X64-001.wim**. + +## Add a Windows 10 operating system image + +1. Type the following commands at an elevated Windows PowerShell prompt on SRV1: + + ``` + New-Item -ItemType Directory -Path "C:Sources\OSD\OS\Windows 10 Enterprise x64" + cmd /c copy /z "C:\MDTBuildLab\Captures\REFW10X64-001.wim" "C:\Sources\OSD\OS\Windows 10 Enterprise x64" + ``` + +2. In the Configuration Manager console, in the **Software Library** workspace, expand **Operating Systems**, right-click **Operating System Images**, and then click **Add Operating System Image**. + +3. On the Data Source page, under **Path:**, type or browse to **\\\SRV1\Sources$\OSD\OS\Windows 10 Enterprise x64\REFW10X64-001.wim**, and click **Next**. + +4. On the General page, next to **Name:**, type **Windows 10 Enterprise x64**, click **Next** twice, and then click **Close**. + +5. Distribute the operating system image to the SRV1 distribution point by right-clicking the **Windows 10 Enterprise x64** operating system image and then clicking **Distribute Content**. + +6. In the Distribute Content Wizard, click **Next**, click **Add**, click **Distribution Point**, add the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. + +7. Enter **\Monitoring\Overview\Distribution Status\Content Status** on the location bar, click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. Processing of the image on the site server can take several minutes. + + >If content distribution is not successful, verify that sufficient disk space is available. + +## Create a task sequence + +>Complete this section slowly. There are a large number of similar settings from which to choose. + +1. In the Configuration Manager console, in the **Software Library** workspace expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. + +2. On the Choose Template page, select the **Client Task Sequence** template and click **Next**. + +3. On the General page, type **Windows 10 Enterprise x64** under **Task sequence name:** and then click **Next**. + +4. On the Details page, enter the following settings:
+ - Join a domain: contoso.com
+ - Account: click **Set**
+ - User name: contoso\CM_JD
+ - Password: pass@word1
+ - Confirm password: pass@word1
+ - Click **OK**
+ - Windows Settings
+ - User name: Contoso
+ - Organization name: Contoso
+ - Product key: \
+ - Administrator Account: Enable the account and specify the local administrator password
+ - Password: pass@word1
+ - Confirm password: pass@word1
+ - Click Next
+ +5. On the Capture Settings page, accept the default settings and click **Next**. + +6. On the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package and then click **Next**. + +7. On the MDT Package page, select **Create a new Microsoft Deployment Toolkit Files package**, under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\MDT\MDT 2013**, and then click **Next**. + +8. On the MDT Details page, next to **Name:** type **MDT 2013** and then click **Next**. + +9. On the OS Image page, browse and select the **Windows 10 Enterprise x64** package, and then click **Next**. + +10. On the Deployment Method page, accept the default settings for **Zero Touch Installation** and click **Next**. + +11. On the Client Package page, browse and select the **Microsoft Corporation Configuration Manager Client package** and then click **Next**. + +12. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows 8 10.0.14393.0** package, and then click **Next**. + +13. On the Settings Package page, select **Create a new settings package**, and under **Package source folder to be created (UNC Path):**, type **\\\SRV1\Sources$\OSD\Settings\Windows 10 x64 Settings**, and then click **Next**. + +14. On the Settings Details page, next to **Name:**, type **Windows 10 x64 Settings**, and click **Next**. + +15. On the Sysprep Package page, click **Next** twice. + +16. On the Confirmation page, click **Finish**. + +### Edit the task sequence + +1. In the Configuration Manager console, in the **Software Library** workspace, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Edit**. + +2. Scroll down to the **Install** group and click the **Set Variable for Drive Letter** action. + +3. Change the Value under **OSDPreserveDriveLetter** from **False** to **True**, and then click **Apply**. + +4. In the **State Restore** group, click the **Set Status 5** action, click **Add** in the upper left corner, point to **User State**, and click **Request State Store**. This adds a new action immediately after **Set Status 5**. + +5. Configure the **Request State Store** action that was just added with the following settings:
+ - Request state storage location to: **Restore state from another computer**
+ - Select the **If computer account fails to connect to state store, use the Network Access account** checkbox.
+ - Options tab: Select the **Continue on error** checkbox.
+ - Add Condition: **Task Sequence Variable**:
+ - Variable: **USMTLOCAL**
+ - Condition: **not equals**
+ - Value: **True**
+ - Click **OK**.
+ - Click **Apply**
. + +6. In the **State Restore** group, click **Restore User State**, click **Add**, point to **User State**, and click **Release State Store**. + +7. Configure the **Release State Store** action that was just added with the following settings:
+ - Options tab: Select the **Continue on error** checkbox.
+ - Add Condition: **Task Sequence Variable**:
+ - Variable: **USMTLOCAL**
+ - Condition: **not equals**
+ - Value: **True**
+ - Click **OK**.
+ - Click **OK**
. + + +## Finalize the operating system configuration + +>If you completed all procedures in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md) then the MDT deployment share is already present on SRV1. In this case, skip the first four steps below and begin with step 5 to edit CustomSettings.ini. + +1. In the MDT deployment workbench on SRV1, right-click **Deployment Shares** and then click **New Deployment Share**. + +2. Use the following settings for the New Deployment Share Wizard: + - Deployment share path: **C:\MDTProduction**
+ - Share name: **MDTProduction$**
+ - Deployment share description: **MDT Production**
+ - Options: click **Next** to accept the default
+ - Summary: click **Next**
+ - Progress: settings will be applied
+ - Confirmation: click **Finish** + +3. Right-click the **MDT Production** deployment share, and click **Properties**. + +4. Click the **Monitoring** tab, select the **Enable monitoring for this deployment share** checkbox, and then click **OK**. + +5. Type the following command at an elevated Windows PowerShell prompt on SRV1: + + ``` + notepad "C:\Sources\OSD\Settings\Windows 10 x64 Settings\CustomSettings.ini" + ``` +6. Replace the contents of the file with the following text, and then save the file: + + ``` + [Settings] + Priority=Default + Properties=OSDMigrateConfigFiles,OSDMigrateMode + + [Default] + DoCapture=NO + ComputerBackupLocation=NONE + OSDMigrateMode=Advanced + OSDMigrateAdditionalCaptureOptions=/ue:*\* /ui:CONTOSO\* + OSDMigrateConfigFiles=Miguser.xml,Migapp.xml + SLSHARE=\\SRV1\Logs$ + EventService=http://SRV1:9800 + ApplyGPOPack=NO + ``` +7. Return to the Configuration Manager console, and in the Software Library workspace, expand **Application Management**, click **Packages**, right-click **Windows 10 x64 Settings**, and then click **Update Distribution Points**. Click **OK** in the popup that appears. + +8. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Distribute Content**. + +9. In the Distribute Content Wizard, click **Next** twice, click **Add**, click **Distribution Point**, select the **SRV1.CONTOSO.COM** distribution point, click **OK**, click **Next** twice and then click **Close**. + +10. Enter **\Monitoring\Overview\Distribution Status\Content Status\Windows 10 Enterprise x64** on the location bar, double-click **Windows 10 Enterprise x64**, and monitor the status of content distribution until it is successful and no longer in progress. Refresh the view with the F5 key or by right-clicking **Windows 10 Enterprise x64** and clicking **Refresh**. + +### Create a deployment for the task sequence + +1. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64**, and then click **Deploy**. + +2. On the General page, next to **Collection**, click **Browse**, select the **All Unknown Computers** collection, click **OK**, and then click **Next**. + +3. On the Deployment Settings page, use the following settings:
+ - Purpose: **Available**
+ - Make available to the following: **Only media and PXE**
+ - Click **Next**.
+4. Click **Next** five times to accept defaults on the Scheduling, User Experience, Alerts, and Distribution Points pages. + +5. Click **Close**. + +## Deploy Windows 10 using PXE and Configuration Manager + +1. Type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 40GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 + Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 + Start-VM PC4 + vmconnect localhost PC4 + ``` + +2. Press ENTER when prompted to start the network boot service. + +3. In the Task Sequence Wizard, provide the password: **pass@word1**, and then click **Next**. + +4. Before you click Next in the Task Sequence Wizard, press the **F8** key. A command prompt will open. + +5. At the command prompt, type **explorer.exe** and review the Windows PE file structure. + +6. The smsts.log file is critical for troubleshooting any installation problems that might be encountered. Depending on the deployment phase, the smsts.log file is created in different locations: + - X:\windows\temp\SMSTSLog\smsts.log before disks are formatted. + - x:\smstslog\smsts.log after disks are formatted. + - c:\_SMSTaskSequence\Logs\Smstslog\smsts.log before the System Center Configuration Manager client is installed. + - c:\windows\ccm\logs\Smstslog\smsts.log after the System Center Configuration Manager client is installed. + - c:\windows\ccm\logs\smsts.log when the task sequence is complete. + + Note: If a reboot is pending on the client, the reboot will be blocked as long as the command window is open. + +7. In the explorer window, click **Tools** and then click **Map Network Drive**. + +8. Do not map a network drive at this time. If you need to save the smsts.log file, you can use this method to save the file to a location on SRV1. + +9. Close the Map Network Drive window, the Explorer window, and the command prompt. + +10. The **Windows 10 Enterprise x64** task sequence is selected in the Task Sequenc Wizard. Click **Next** to continue with the deployment. + +11. The task sequence will require several minutes to complete. You can monitor progress of the task sequence using the MDT Deployment Workbench under Deployment Shares > MDTProduction > Monitoring. The task sequence will: + - Install Windows 10 + - Install the Configuration Manager client and hotfix + - Join the computer to the contoso.com domain + - Install any applications that were specified in the reference image + +12. When Windows 10 installation has completed, sign in to PC4 using the **contoso\administrator** account. + +13. Right-click **Start**, click **Run**, type **control appwiz.cpl**, press ENTER, click Turn Windows features on or off, and verify that **.NET Framework 3.5 (includes .NET 2.0 and 3.0)** is installed. This is a feature included in the reference image. + +14. Shut down the PC4 VM. + +## Refresh a client with Windows 10 using Configuration Manager + +>Before starting this section, you can delete computer objects from Active Directory that were created as part of previous deployment procedures. Use the Active Directory Users and Computers console to remove stale entries under contoto.com\Computers, but **do not delete the computer account (hostname) for PC1**. There should be at least two computer accounts present in the contoso.com\Computers container: one for SRV1, and one for the hostname of PC1. It is not required to delete the stale entries, this is only done to remove clutter. + +### Install the Configuration Manager client on PC1 + +1. Verify that PC1 is in its original state, which was saved as a checkpoint and then restored in [Deploy Windows 10 in a test lab using Microsoft Deployment Toolkit](windows-10-poc-mdt.md). + +2. If a PC1 checkpoint has not already been saved, then save a checkpoint by typing the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName BeginState + ``` +3. On SRV1, in the Configuration Manager console, in the Administration workspace, expand **Hierarcy Configuration** and click on **Discovery Methods**. +4. Double-click **Active Directory System Discovery** and on the **General** tab select the **Enable Active Directory System Discovery** checkbox. +5. Click the yellow starburst, click **Browse**, select **contoso\Computers**, and then click **OK** three times. +6. When a popup dialog box asks if you want to run full discovery, click **Yes**. +7. In the Assets and Compliance workspace, expand **Devices** and click **All Systems**. Verify that a computer account for SRV1 and PC1 are displayed. See the following example (GREGLIN-PC1 is the hostname of PC1 in this example): + + ![assets](images/sccm-assets.png) + + >If you only see the **Devices** parent node, you can add and view device collections in the tree by clicking **Device Collections** and then double-clicking a device collection. + + The **Client** column indicates that the Configuration Manager client is not currently installed. This procedure will be carried out next. + +8. Sign in to PC1 using the contoso\administrator account and type the following at an elevated command prompt to remove any pre-existing client configuration, if it exists: + + ``` + sc stop ccmsetup + "\\SRV1\c$\Program Files\Microsoft Configuration Manager\Client\CCMSetup.exe" /Uninstall + ``` + >If PC1 still has Configuration Manager registry settings that were applied by Group Policy, startup scripts, or other policies in its previous domain, these might not all be removed by CCMSetup /Uninstall and can cause problems with installation or registration of the client in its new environment. It might be necessary to manually remove these settings if they are present. For more information, see [Manual removal of the SCCM client](https://blogs.technet.microsoft.com/michaelgriswold/2013/01/02/manual-removal-of-the-sccm-client/). + +9. On PC1, temporarily stop Windows Update from queuing items for download and clear all BITS jobs from the queue: + + ``` + net stop wuauserv + net stop BITS + ``` + + Verify that both services were stopped successfully, then type the following at an elevated command prompt: + + ``` + del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat" + net start BITSexit + bitsadmin /list /allusers + ``` + + Verify that BITSAdmin displays 0 jobs. + +10. To install the Configuration Manager client as a standalone process, type the following at an elevated command prompt: + + ``` + "\\SRV1\c$\Program Files\Microsoft Configuration Manager\Client\CCMSetup.exe" /mp:SRV1.contoso.com /logon SMSSITECODE=PS1 + ``` +11. On PC1, using file explorer, open the **C:\Windows\ccmsetup** directory. During client installation, files will be downloaded here. +12. Installation progress will be captured in the file: **c:\windows\ccmsetup\logs\ccmsetup.log**. You can periodically open this file in notepad, or you can type the following command at an elevated Windows PowerShell prompt to monitor installation progress: + + ``` + Get-Content -Path c:\windows\ccmsetup\logs\ccmsetup.log -Wait + ``` + + Installation might require several minutes, and display of the log file will appear to hang while some applications are installed. This is normal. When setup is complete, verify that **CcmSetup is existing with return code 0** is displayed on the last line of the ccmsetup.log file and then press **CTRL-C** to break out of the Get-Content operation. A return code of 0 indicates that installation was successful and you should now see a directory created at **C:\Windows\CCM** that contains files used in registration of the client with its site. + +13. On PC1, open the Configuration Manager control panel applet by typing the following command: + + ``` + control smscfgrc + ``` + +14. Click the **Site** tab and click **Find Site**. The client will report that it has found the PS1 site. See the following example: + + ![site](images/sccm-site.png) + + If the client is not able to find the PS1 site, review any error messages that are displayed in **C:\Windows\CCM\Logs\ClientIDManagerStartup.log** and **LocationServices.log**. + +15. On SRV1, in the Assets and Compliance workspace, click **All Desktop and Server Clients** and verify that the computer account for PC1 is displayed here with **Yes** and **Active** in the **Client** and **Client Activity** columns, respectively. You might have to refresh the view and wait few minutes for the client to appear here. See the following example: + + ![client](images/sccm-client.png) + + >It might take several minutes for the client to fully register with the site and complete a client check. When it is complete you will see a green check mark over the client icon as shown above. + +### Create a device collection and deployment + +1. On SRV1, in the Configuration Manager console, in the Asset and Compliance workspace, right-click **Device Collections** and then click **Create Device Collection**. + +2. Use the following settings in the **Create Device Collection Wizard**: + - General > Name: **Install Windows 10 Enterprise x64**
+ - General > Limiting collection: **All Systems**
+ - Membership Rules > Add Rule: **Direct Rule**
+ - The **Create Direct Membership Rule Wizard** opens, click **Next**
+ - Search for Resources > Resource class: **System Resource**
+ - Search for Resources > Attribute name: **Name**
+ - Search for Resources > Value: **%**
+ - Select Resources > Value: Select the computername associated with the PC1 VM
+ - Click **Next** twice and then click **Close** in both windows. + +3. Double-click the Install Windows 10 Enterprise x64 device collection and verify that the PC1 computer account is displayed. + +4. In the Software Library workspace, expand **Operating Systems**, click **Task Sequences**, right-click **Windows 10 Enterprise x64** and then click **Deploy**. + +5. Use the following settings in the Deploy Sofware wizard: + - General > Collection: Click Browse and select **Install Windows 10 Enterprise x64**
+ - Deployment Settings > Purpose: **Available**
+ - Deployment Settings > Make available to the following: **Configuration Manager clients, media and PXE**
+ - Scheduling > Click **Next**
+ - User Experience > Click **Next**
+ - Alerts > Click **Next**
+ - Distribution Points > Click **Next**
+ - Summary > Click **Next**
+ - Verify that the wizard completed successfully and then click **Close** + +6. **Important** Before initiating a computer refresh, save a checkpoint for all three computers: PC1, SRV1, and DC1. This ensures that we can restore all computers, including Active Directory and the Configuration Manager client status to the pre-Windows 10 installation state prior to running the replace procedure. To save checkpoints, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name PC1 -SnapshotName cm-start + Checkpoint-VM -Name SRV1 -SnapshotName cm-start + Checkpoint-VM -Name DC1 -SnapshotName cm-start + ``` + +### Initiate the computer refresh + +1. On SRV1, in the Assets and Compliance workspace, click **Device Collections** and then double-click **Install Windows 10 Enterprise x64**. +2. Right-click the computer account for PC1, point to **Client Notification**, click **Download Computer Policy**, and click **OK** in the popup dialog box. +3. On PC1, in the notification area, click **New sofware is available** and then click **Open Sofware Center**. +4. In the Sofware Center, click **Operating Systems**, click **Windows 10 Enterprise x64**, click **Install** and then click **INSTALL OPERATING SYSTEM**. See the following example: + + ![installOS](images/sccm-install-os.png) + + The computer will restart several times during the installation process. Installation includes downloading updates, reinstalling the Configuration Manager Client Agent, and restoring the user state. You can view status of the installation in the Configuration Manager console by accessing the Monitoring workspace, clicking **Deployments**, and then double-clicking the deployment associated with the **Install Windows 10 Enterprise x64** collection. Under **Asset Details**, right-click the device and then click **More Details**. Click the **Status** tab to see a list of tasks that have been performed. See the following example: + + ![asset](images/sccm-asset.png) + + You can also monitor progress of the installation by using the MDT deployment workbench and viewing the **Monitoring** node under **Deployment Shares\MDT Production**. + + When installation has completed, sign in using the contoso\administrator account or the contoso\user1 account and verify that applications and settings have been successfully backed up and restored to your new Windows 10 Enterprise operating system. + + ![post-refresh](images/sccm-post-refresh.png) + +5. Save checkpoints for all VMs if you wish to review their status at a later date. This is not required. To save a checkpoint for all VMs, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + + ``` + Checkpoint-VM -Name DC1 -SnapshotName cm-refresh + Checkpoint-VM -Name SRV1 -SnapshotName cm-refresh + Checkpoint-VM -Name PC1 -SnapshotName cm-refresh + ``` + +## Replace a client with Windows 10 using Configuration Manager + +Before starting the replace procedure, restore all three VMs using the checkpoints created in the previous procedure. To restore the checkpoints and connect to the VMs again, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + +``` +Restore-VMSnapshot -VMName DC1 -Name cm-start -Confirm:$false +Restore-VMSnapshot -VMName SRV1 -Name cm-start -Confirm:$false +Restore-VMSnapshot -VMName PC1 -Name cm-start -Confirm:$false +Start-VM DC1 +vmconnect localhost DC1 +Start-VM SRV1 +vmconnect localhost SRV1 +Start-VM PC1 +vmconnect localhost PC1 +``` + +>If resources are limited in the Hyper-V environment, SRV1 can require several minutes for all services to start and present the sign-in screen after restoring VMs. Verify that all required services are running, and start any service that are not running. Use the Server Manager dashboard to view and start services. When all services are running, open the Configuration Manager console. + +### Create a replace task sequence + +1. On SRV1, in the Configuration Manager console, in the Software Library workspace, expand **Operating Systems**, right-click **Task Sequences**, and then click **Create MDT Task Sequence**. + +2. On the Choose Template page, select **Client Replace Task Sequence** and click **Next**. + +3. On the General page, type the following: + - Task sequence name: **Replace Task Sequence** + - Task sequence comments: **USMT backup only** + +4. Click **Next**, and on the Boot Image page, browse and select the **Zero Touch WinPE x64** boot image package. Click **OK** and then click **Next** to continue. +5. On the MDT Package page, browse and select the **MDT 2013** package. Click **OK** and then click **Next** to continue. +6. On the USMT Package page, browse and select the **Microsoft Corporation User State Migration Tool for Windows** package. Click **OK** and then click **Next** to continue. +7. On the Settings Package page, browse and select the **Windows 10 x64 Settings** package. Click **OK** and then click **Next** to continue. +8. On the Summary page, review the details and then click **Next**. +9. On the Confirmation page, click **Finish**. + +>If you receive an error at this stage it can be caused by a corrupt MDT integration. To repair it, close the Configuration Manager console, remove MDT integration, and then restore MDT integration. + +### Deploy PC4 + +Create a VM named PC4 to receive the applications and settings from PC1. This VM represents a new computer that will replace PC1. To create this VM, type the following commands at an elevated Windows PowerShell prompt on the Hyper-V host: + +``` +New-VM –Name "PC4" –NewVHDPath "c:\vhd\pc4.vhdx" -NewVHDSizeBytes 60GB -SwitchName poc-internal -BootDevice NetworkAdapter -Generation 2 +Set-VMMemory -VMName "PC4" -DynamicMemoryEnabled $true -MinimumBytes 512MB -MaximumBytes 2048MB -Buffer 20 +Set-VMNetworkAdapter -VMName PC4 -StaticMacAddress 00-15-5D-83-26-FF +``` + +>Hyper-V enables us to define a static MAC address on PC4. In a real-world scenario you must determine the MAC address of the new computer. + +### Associate PC4 with PC1 + +1. On SRV1 in the Configuration Manager console, in the Assets and Compliance workspace, right-click **Devices** and then click **Import Computer Information**. + +2. On the Select Source page, choose **Import single computer** and click **Next**. + +3. On the Single Computer page, use the following settings: + - Computer Name: **PC4** + - MAC Address: **00:15:5D:83:26:FF** + - Source Computer: + +4. Click **Next**, and then on the User Accounts page choose **Capture and restore all user accounts**. Click **Next** twice to continue. + +5. On the Choose Target Collection page, choose **Add computers to the following collection**, click **Browse**, choose **Install Windows 10 Enterprise x64**, click **OK**, click **Next** twice, and then click **Close**. + +6. Select the User State Migration node and review the computer association in the display pane. + +7. Right-click the association in the display pane and then click **View Recovery Information**. A recovery key has been assigned, but a user state store location has not. Click **Close**. + +8. Click **Device Collections** and then double-click **Install Windows 10 Enterprise x64**. Verify that **PC4** is displayed in the collection. You might have to update and refresh the collection, or wait a few minutes, but do not proceed until PC4 is available. See the following example: + + ![collection](images/sccm-collection.png) + +### Create a device collection for PC1 + +1. On SRV1, in the Configuration Manager console, in the Assets and Compliance workspace, right-click **Device Collections** and then click **Create Device Collection**. + +2. Use the following settings in the **Create Device Collection Wizard**: + - General > Name: **USMT Backup (Replace)**
+ - General > Limiting collection: **All Systems**
+ - Membership Rules > Add Rule: **Direct Rule**
+ - The **Create Direct Membership Rule Wizard** opens, click **Next**
+ - Search for Resources > Resource class: **System Resource**
+ - Search for Resources > Attribute name: **Name**
+ - Search for Resources > Value: **%**
+ - Select Resources > Value: Select the computername associated with the PC1 VM.
+ - Click **Next** twice and then click **Close** in both windows. + +3. Click **Device Collections** and then double-click **USMT Backup (Replace)**. Verify that the computer name/hostname associated with PC1 is displayed in the collection. Do not proceed until this name is displayed. + +### Create a new deployment + +In the Configuration Manager console, in the Software Library workspace, click **Task Sequences**, right-click **Replace Task Sequence**, click **Deploy**, and use the following settings: +- General > Collection: **USMT Backup (Replace)**
+- Deployment Settings > Purpose: **Available**
+- Deployment Settings > Make available to the following: **Only Configuration Manager Clients**
+- Scheduling: Click **Next**
+- User Experience: Click **Next**
+- Alerts: Click **Next**
+- Distribution Points: Click **Next**
+- Click **Next** and then click **Close**. + +### Verify the backup + +1. On PC1, open the Configuration Manager control panel applet by typing the following command: + + ``` + control smscfgrc + ``` +2. On the **Actions** tab, click **Machine Policy Retrieval & Evaluation Cycle**, click **Run Now**, click **OK**, and then click **OK** again. This is another method that can be used in addition to the Client Notification method used previously. + +3. Using the Software Center as was done in the previous procedure, click **Operating Systems** and then click **Replace Task Sequence**. See the following example: + + ![software](images/sccm-software-cntr.png) + +4. Click **Install** and then click **INSTALL OPERATING SYSTEM**. +5. Allow the **Replace Task Sequence** to complete, then verify that the C:\MigData folder on SRV1 contains the USMT backup. + +### Deploy the new computer + +1. Start PC4 and press ENTER for a network boot when prompted. To start PC4, type the following commands at an elevated Windows Powershell prompt on the Hyper-V host: + + ``` + Start-VM PC4 + vmconnect localhost PC4 + ``` +2. In the **Welcome to the Task Sequence Wizard**, enter **pass@word1** and click **Next**. +3. Choose the **Windows 10 Enterprise X64** image. +4. Setup will install the operating system, install the configuration manager client, join PC4 to the domain, and restore users and settings from PC1. + + +## Related Topics + +[System Center 2012 Configuration Manager Survival Guide](https://social.technet.microsoft.com/wiki/contents/articles/7075.system-center-2012-configuration-manager-survival-guide.aspx#Step-by-Step_Guides) + +  + + + + + diff --git a/windows/keep-secure/TOC.md b/windows/keep-secure/TOC.md index eaedfbf278..7662302c08 100644 --- a/windows/keep-secure/TOC.md +++ b/windows/keep-secure/TOC.md @@ -31,12 +31,15 @@ ##### [Create and deploy a VPN policy for Windows Information Protection (WIP) using Microsoft Intune](create-vpn-and-wip-policy-using-intune.md) #### [Create and deploy a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) #### [Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) +#### [Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) +### [Mandatory tasks and settings required to turn on Windows Information Protection (WIP)](mandatory-settings-for-wip.md) +### [Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) +### [Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) ### [General guidance and best practices for Windows Information Protection (WIP)](guidance-and-best-practices-wip.md) -#### [Mandatory tasks and settings required to turn on Windows Information Protection (WIP)](mandatory-settings-for-wip.md) #### [Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) #### [Unenlightened and enlightened app behavior while using Windows Information Protection (WIP)](app-behavior-with-wip.md) -#### [Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) -#### [Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) +#### [Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) +#### [Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) ## [Use Windows Event Forwarding to help with intrusion detection](use-windows-event-forwarding-to-assist-in-instrusion-detection.md) ## [Override Process Mitigation Options to help enforce app-related security policies](override-mitigation-options-for-app-related-security-policies.md) ## [VPN technical guide](vpn-guide.md) @@ -694,16 +697,16 @@ ##### [Smart Cards Debugging Information](smart-card-debugging-information.md) ##### [Smart Card Group Policy and Registry Settings](smart-card-group-policy-and-registry-settings.md) ##### [Smart Card Events](smart-card-events.md) -### [Trusted Platform Module](trusted-platform-module-overview.md) +### [Trusted Platform Module](trusted-platform-module-top-node.md) +#### [Trusted Platform Module Overview](trusted-platform-module-overview.md) #### [TPM fundamentals](tpm-fundamentals.md) #### [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -#### [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) -#### [Backup the TPM recovery Information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) +#### [Back up the TPM recovery information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) #### [Manage TPM commands](manage-tpm-commands.md) #### [Manage TPM lockout](manage-tpm-lockout.md) #### [Change the TPM owner password](change-the-tpm-owner-password.md) -#### [Initialize and configure ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md) -#### [Switch PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) +#### [View status, clear, or troubleshoot the TPM](initialize-and-configure-ownership-of-the-tpm.md) +#### [Understanding PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) #### [TPM recommendations](tpm-recommendations.md) ### [User Account Control](user-account-control-overview.md) #### [How User Account Control works](how-user-account-control-works.md) @@ -740,10 +743,12 @@ ##### [Investigate a domain](investigate-domain-windows-defender-advanced-threat-protection.md) ##### [Manage alerts](manage-alerts-windows-defender-advanced-threat-protection.md) #### [Windows Defender ATP settings](settings-windows-defender-advanced-threat-protection.md) +#### [Windows Defender ATP service status](service-status-windows-defender-advanced-threat-protection.md) #### [Configure SIEM tools to consume alerts](configure-siem-windows-defender-advanced-threat-protection.md) ##### [Configure an Azure Active Directory application for SIEM integration](configure-aad-windows-defender-advanced-threat-protection.md) ##### [Configure Splunk to consume Windows Defender ATP alerts](configure-splunk-windows-defender-advanced-threat-protection.md) ##### [Configure HP ArcSight to consume Windows Defender ATP alerts](configure-arcsight-windows-defender-advanced-threat-protection.md) +#### [Configure email notifications](configure-email-notifications-windows-defender-advanced-threat-protection.md) #### [Troubleshoot Windows Defender ATP](troubleshoot-windows-defender-advanced-threat-protection.md) #### [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md) #### [Windows Defender compatibility](defender-compatibility-windows-defender-advanced-threat-protection.md) @@ -871,4 +876,6 @@ ### [Microsoft Passport guide](microsoft-passport-guide.md) ### [Windows 10 Mobile security guide](windows-10-mobile-security-guide.md) ### [Windows 10 security overview](windows-10-security-guide.md) +### [Windows 10 credential theft mitigation guide abstract](windows-credential-theft-mitigation-guide-abstract.md) +### [How to use single sign-on (SSO) over VPN and Wi-Fi connections](how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md) ## [Change history for Keep Windows 10 secure](change-history-for-keep-windows-10-secure.md) diff --git a/windows/keep-secure/access-this-computer-from-the-network.md b/windows/keep-secure/access-this-computer-from-the-network.md index 1cb598fcfd..0d93c1d879 100644 --- a/windows/keep-secure/access-this-computer-from-the-network.md +++ b/windows/keep-secure/access-this-computer-from-the-network.md @@ -1,5 +1,5 @@ --- -title: Access this computer from the network (Windows 10) +title: Access this computer from the network - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Access this computer from the network security policy setting. ms.assetid: f6767bc2-83d1-45f1-847c-54f5362db022 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Access this computer from the network +# Access this computer from the network - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/accounts-guest-account-status.md b/windows/keep-secure/accounts-guest-account-status.md index f9054008ac..527a1357c4 100644 --- a/windows/keep-secure/accounts-guest-account-status.md +++ b/windows/keep-secure/accounts-guest-account-status.md @@ -1,5 +1,5 @@ --- -title: Accounts Guest account status (Windows 10) +title: Accounts Guest account status - security policy setting (Windows 10) description: Describes the best practices, location, values, and security considerations for the Accounts Guest account status security policy setting. ms.assetid: 07e53fc5-b495-4d02-ab42-5b245d10d0ce ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Accounts: Guest account status +# Accounts: Guest account status - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/accounts-rename-guest-account.md b/windows/keep-secure/accounts-rename-guest-account.md index aa06c480c3..c77030e875 100644 --- a/windows/keep-secure/accounts-rename-guest-account.md +++ b/windows/keep-secure/accounts-rename-guest-account.md @@ -1,5 +1,5 @@ --- -title: Accounts Rename guest account (Windows 10) +title: Accounts Rename guest account - security policy setting (Windows 10) description: Describes the best practices, location, values, and security considerations for the Accounts Rename guest account security policy setting. ms.assetid: 9b8052b4-bbb9-4cc1-bfee-ce25390db707 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Accounts: Rename guest account +# Accounts: Rename guest account - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md b/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md index 9ce1e76918..0efd393b76 100644 --- a/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md +++ b/windows/keep-secure/ad-ds-schema-extensions-to-support-tpm-backup.md @@ -1,289 +1,5 @@ --- -title: AD DS schema extensions to support TPM backup (Windows 10) -description: This topic provides more details about this change and provides template schema extensions that you can incorporate into your organization. -ms.assetid: beb7097c-e674-4eab-b8e2-6f67c85d1f3f -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -author: brianlic-msft +title: AD DS schema extensions to support TPM backup +redirect_url: https://technet.microsoft.com/library/jj635854.aspx --- -# AD DS schema extensions to support TPM backup - -**Applies to** -- Windows 10, version 1511 -- Windows 10, version 1507 - -**Does not apply to** -- Windows 10, version 1607 or later - -This topic provides more details about this change and provides template schema extensions that you can incorporate into your organization. - -## Why a schema extension is needed - -The TPM owner authorization value is now stored in a separate object which is linked to the Computer object. This value was stored as a property in the Computer object itself for the default Windows Server 2008 R2 schema. Windows Server 2012 domain controllers have the default schema to backup TPM owner authorization information in the separate object. If you are not upgrading your domain controller to Windows Server 2012, you need to extend the schema to support this change. If Active Directory backup of the TPM owner authorization value is enabled in a Windows Server 2008 R2 environment without extending the schema, the TPM provisioning will fail and the TPM will remain in a Not Ready state for computers running Windows 8. The following are the two schema extensions that you can use to bring your Windows Server 2008 R2 domain to parity with Windows Server 2012: - -### TpmSchemaExtension.ldf - -This schema extension brings parity with the Windows Server 2012 schema and is required if you want to store the TPM owner authorization value for a computer running Windows 8 in a Windows Server 2008 R2 AD DS domain. With this extension the TPM owner authorization information will be stored in a separate TPM object linked to the corresponding computer object. - -``` syntax -#=============================================================================== -# -# Active Directory Domain Services schema extension for -# BitLocker Drive Encryption and Trusted Platform Module (TPM) recovery -# -# This file contains attributes and class objects that enable Windows Server -# 2008 and Windows Server 2008 R2 domain controllers to store TPM recovery -# information in a new, TPM-specific location. -# -# Change History: -# 07/2010 - Created -# -# To extend the schema, use the LDIFDE tool on the schema master of the forest. -# -# Sample command: -# ldifde -i -v -f TPMSchemaExtension.ldf -c "DC=X" "DC=nttest,dc=microsoft,dc=com" -k -j . -# -# For more information on LDIFDE tool, see -# http://support.microsoft.com/default.aspx?scid=kb;en-us;237677 -# -#=============================================================================== -#=============================================================================== -# New schema attributes -#=============================================================================== -# -# ms-TPM-Srk-Pub-Thumbprint -# GUID: 19d706eb-4d76-44a2-85d6-1c342be3be37 -# -dn: CN=ms-TPM-Srk-Pub-Thumbprint,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-SrkPubThumbprint -adminDisplayName: TPM-SrkPubThumbprint -adminDescription: This attribute contains the thumbprint of the SrkPub corresponding to a particular TPM. This helps to index the TPM devices in the directory. -attributeId: 1.2.840.113556.1.4.2107 -attributeSyntax: 2.5.5.10 -omSyntax: 4 -isSingleValued: TRUE -searchFlags: 11 -schemaIdGuid:: 6wbXGXZNokSF1hw0K+O+Nw== -showInAdvancedViewOnly: TRUE -isMemberOfPartialAttributeSet: FALSE -rangeUpper: 20 -# -# ms-TPM-Owner-Information-Temp -# GUID: c894809d-b513-4ff8-8811-f4f43f5ac7bc -# -dn: CN=ms-TPM-Owner-Information-Temp,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-OwnerInformationTemp -adminDisplayName: TPM-OwnerInformationTemp -adminDescription: This attribute contains temporary owner information for a particular TPM. -attributeId: 1.2.840.113556.1.4.2108 -attributeSyntax: 2.5.5.12 -omSyntax: 64 -isSingleValued: TRUE -searchFlags: 640 -rangeUpper: 128 -schemaIdGuid:: nYCUyBO1+E+IEfT0P1rHvA== -showInAdvancedViewOnly: TRUE -isMemberOfPartialAttributeSet: FALSE -# -# ms-TPM-Tpm-Information-For-Computer -# GUID: ea1b7b93-5e48-46d5-bc6c-4df4fda78a35 -# -dn: CN=ms-TPM-Tpm-Information-For-Computer,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-TpmInformationForComputer -adminDisplayName: TPM-TpmInformationForComputer -adminDescription: This attribute links a Computer object to a TPM object. -attributeId: 1.2.840.113556.1.4.2109 -attributeSyntax: 2.5.5.1 -omSyntax: 127 -isSingleValued: TRUE -searchFlags: 16 -omObjectClass:: KwwCh3McAIVK -schemaIdGuid:: k3sb6khe1Ua8bE30/aeKNQ== -showInAdvancedViewOnly: TRUE -isMemberOfPartialAttributeSet: FALSE -linkId: 2182 -# -# ms-TPM-TpmInformation-For-Computer-BL -# GUID: 14fa84c9-8ecd-4348-bc91-6d3ced472ab7 -# -dn: CN=ms-TPM-Tpm-Information-For-Computer-BL,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: attributeSchema -ldapDisplayName: msTPM-TpmInformationForComputerBL -adminDisplayName: TPM-TpmInformationForComputerBL -adminDescription: This attribute links a TPM object to the Computer objects associated with it. -attributeId: 1.2.840.113556.1.4.2110 -attributeSyntax: 2.5.5.1 -omSyntax: 127 -isSingleValued: FALSE -searchFlags: 0 -omObjectClass:: KwwCh3McAIVK -schemaIdGuid:: yYT6FM2OSEO8kW087Ucqtw== -showInAdvancedViewOnly: TRUE -systemOnly: TRUE -linkId: 2183 -# -# Commit the new attributes -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -# -# Modify the Computer schema to support the TPM link -# -dn: CN=computer,CN=Schema,CN=Configuration,DC=X -changetype: modify -add: mayContain -mayContain: msTPM-TpmInformationForComputer -- -# -# Commit the modification to the computer class -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -#=============================================================================== -# New schema classes -#=============================================================================== -# -# ms-TPM-Information-Objects-Container -# GUID: e027a8bd-6456-45de-90a3-38593877ee74 -# -dn: CN=ms-TPM-Information-Objects-Container,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: classSchema -ldapDisplayName: msTPM-InformationObjectsContainer -adminDisplayName: TPM-InformationObjectsContainer -adminDescription: Container for TPM objects. -governsID: 1.2.840.113556.1.5.276 -objectClassCategory: 1 -subClassOf: top -systemMustContain: cn -systemPossSuperiors: domain -systemPossSuperiors: domainDNS -schemaIdGUID:: vagn4FZk3kWQozhZOHfudA== -defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;LOLCCCRP;;;DC) -defaultHidingValue: TRUE -defaultObjectCategory: CN=ms-TPM-Information-Objects-Container,CN=Schema,CN=Configuration,DC=X -# -# ms-TPM-Information-Object -# GUID: 85045b6a-47a6-4243-a7cc-6890701f662c -# -# NOTE: If the 'defaultSecurityDescriptor' value below is changed, -# also change the other '.ldf' files in this directory, as appropriate. -# -dn: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X -changetype: add -objectClass: classSchema -ldapDisplayName: msTPM-InformationObject -adminDisplayName: TPM-InformationObject -adminDescription: This class contains recovery information for a Trusted Platform Module (TPM) device. -governsID: 1.2.840.113556.1.5.275 -objectClassCategory: 1 -subClassOf: top -systemMustContain: msTPM-OwnerInformation -systemMayContain: msTPM-SrkPubThumbprint -systemMayContain: msTPM-OwnerInformationTemp -systemPossSuperiors: 1.2.840.113556.1.5.276 -schemaIdGUID:: alsEhaZHQ0KnzGiQcB9mLA== -defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLO;;;DC)(A;;WP;;;CO) -defaultHidingValue: TRUE -defaultObjectCategory: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X -# -# NOTE: If the 'defaultSecurityDescriptor' value above is changed, -# also change the other '.ldf' files in this directory, as appropriate. -# -# -# Commit the new TPM object class -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -#=============================================================================== -# New objects -#=============================================================================== -# -# Add the TPM container to its location in the directory -# -dn: CN=TPM Devices,DC=X -changetype: add -objectClass: msTPM-InformationObjectsContainer -``` - -You should be aware that only the Computer object that has created the TPM object can update it. This means that any subsequent updates to the TPM objects will not succeed in dual boot scenarios or scenarios where the computer is reimaged resulting in a new AD computer object being created. If you are planning to support such scenarios, you will need to update the schema further as shown in the schema extension example, TpmSchemaExtensionACLChanges.ldf. - -### TpmSchemaExtensionACLChanges.ldf - -This schema update modifies the ACLs on the TPM object to be less restrictive so that any subsequent operating system which takes ownership of the computer object can update the owner authorization value in AD DS. -> **Important**  After implementing this schema update, any computer in the domain can update the OwnerAuth of the TPM object (although it cannot read the OwnerAuth). When using this extension, perform a regular backup of the TPM objects and enable auditing to track the changes for these objects. -  -``` syntax -#=============================================================================== -# -# Active Directory Domain Services schema extension for -# BitLocker Drive Encryption and Trusted Platform Module (TPM) recovery -# -# This file modifies a class object that enables Windows Server 2008 -# and Windows Server 2008 R2 domain controllers to store TPM recovery -# information in a new, TPM-specific location. -# -# This file converts the standard schema extension in which only the creator -# of an 'ms-TPM-Information-Object' can write to the object to the Open -# schema extension in which any Domain Computer can write to the object. -# -# This conversion does not apply to any 'ms-TPM-Information-Object' that -# was created before the conversion. -# -# Change History: -# 12/2011 - Created -# -# To change the schema, use the LDIFDE tool on the schema master of the forest. -# -# Sample command: -# ldifde -i -v -f TpmSchemaExtensionACLChanges.ldf -# -c "DC=X" "DC=nttest,dc=microsoft,dc=com" -k -j . -# -# For more information on LDIFDE tool, see -# http://support.microsoft.com/default.aspx?scid=kb;en-us;237677 -# -#=============================================================================== -# -# Modify the TPM-Information-Object class schema 'defaultSecurityDescriptor' to -# allow any Domain Computer to write its properties (including the TPM OwnerAuth -# value) from allowing only the creating Computer object to write its properties -# -# NOTE: Keep any changes to the 'defaultSecurityDescriptor' value in synchronization -# with the value in the TPM-Information-Object class description in the -# 'TpmSchemaExtension.ldf' file -# -dn: CN=ms-TPM-Information-Object,CN=Schema,CN=Configuration,DC=X -changetype: modify -replace: defaultSecurityDescriptor -defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPLO;;;DC) -- -# -# Commit the modification to the TPM-Information-Object schema -# -dn: -changetype: modify -add: schemaUpdateNow -schemaUpdateNow: 1 -- -``` -  -  diff --git a/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md b/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md index 3565476277..9176b41ff8 100644 --- a/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md +++ b/windows/keep-secure/add-apps-to-protected-list-using-custom-uri.md @@ -19,8 +19,8 @@ localizationpriority: high You can add apps to your Windows Information Protection (WIP) protected app list using the Microsoft Intune custom URI functionality and AppLocker. For more info about how to create a custom URI using Intune, [Windows 10 custom policy settings in Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=691330). ->**Important**
-Results can be unpredictable if you configure your policy using both the UI and the Custom URI method together. We recommend using a single method for each policy. +>[!IMPORTANT] +>Results can be unpredictable if you configure your policy using both the UI and the Custom URI method together. We recommend using a single method for each policy. ## Add Store apps 1. Go to the AppLocker UI by opening a command line window and running secpol.msc. The local security policy MMC snap-in opens showing the **Security Settings**. @@ -39,13 +39,15 @@ Results can be unpredictable if you configure your policy using both the UI and 5. In the **Rules Preferences** screen, keep the default settings, and then click **Next** to start generating the rules. - >**Note**
We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule. + >[!NOTE] + >We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule. 6. In the **Review Rules** screen, look over your rules to make sure they’re right, and then click **Create** to add them to your collection of rules. 7. In the left pane, right-click **AppLocker**, click **Export Policies**, go to where you want to save the XML file and type a file name, click **Save**, and then clear your AppLocker rules. - >**Important**
Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. + >[!IMPORTANT] + >Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. 8. Open the Intune administration console, and go to the **Policy** node, click **Add Policy** from the **Tasks** area, go to **Windows**, click the **Custom Configuration (Windows 10 Desktop and Mobile and later)** policy, click **Create and Deploy a Custom Policy**, and then click **Create Policy**. @@ -85,16 +87,18 @@ After saving the policy, you’ll need to deploy it to your employee’s devices 5. In the **Rules Preferences** screen, keep the default settings, and then click **Next** to start generating the rules. - >**Important**
You can also use **Path** rules instead of the **File hash** if you have concerns about unsigned files potentially changing the hash value if they're updated in the future. + >[!IMPORTANT] + >You can also use **Path** rules instead of the **File hash** if you have concerns about unsigned files potentially changing the hash value if they're updated in the future. -

- >**Note**
We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule.

Finally, there's **Path** rules. **Path** rules are easier to set up and maintain, but can let apps bypass Windows Information Protection (WIP) by simply renaming and moving an unallowed file to match one of the apps on the **Protected App** list. For example, if your **Path** rule says to allow `%PROGRAMFILES%/NOTEPAD.EXE`, it becomes possible to rename DisallowedApp.exe to Notepad.exe, move it into the specified path above, and have it suddenly be allowed. + >[!NOTE] + >We recommend that you use **Publisher** rules because they only work with apps you've specifically defined and they can be configured to not require updating simply because a new version came out.

If you can't use **Publisher** rules, we then recommend that you use **File hash** rules. **File hash** rules are a secure alternative that can be used on unsigned code. The primary disadvantage to **File hash** is that every time a binary changes (such as, through servicing updates or upgrades), you'll need to create a new rule.

Finally, there's **Path** rules. **Path** rules are easier to set up and maintain, but can let apps bypass Windows Information Protection (WIP) by simply renaming and moving an unallowed file to match one of the apps on the **Protected App** list. For example, if your **Path** rule says to allow `%PROGRAMFILES%/NOTEPAD.EXE`, it becomes possible to rename DisallowedApp.exe to Notepad.exe, move it into the specified path above, and have it suddenly be allowed. 6. In the **Review Rules** screen, look over your rules to make sure they’re right, and then click **Create** to add them to your collection of rules. 7. In the left pane, right-click **AppLocker**, click **Export Policies**, go to where you want to save the XML file and type a file name, click **Save**, and then clear your AppLocker rules. - >**Important**
Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. + >[!IMPORTANT] + >Be aware that what you're saving are the actual AppLocker rules using your local policy. You don't want to apply these rules to your employee devices, you just want to use them to create and export the XML content. You must delete the AppLocker rules before you apply your policy. 8. Open the Intune administration console, and go to the **Policy** node, click **Add Policy** from the **Tasks** area, go to **Windows**, click the **Custom Configuration (Windows 10 Desktop and Mobile and later)** policy, click **Create and Deploy a Custom Policy**, and then click **Create Policy**. @@ -118,7 +122,10 @@ After saving the policy, you’ll need to deploy it to your employee’s devices After saving the policy, you’ll need to deploy it to your employee’s devices. For more info, see the [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) topic. -##Related topics +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + +## Related topics - [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) - [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) - [Create and deploy a VPN policy for Windows Information Protection (WIP) using Microsoft Intune](create-vpn-and-wip-policy-using-intune.md) diff --git a/windows/keep-secure/allow-log-on-locally.md b/windows/keep-secure/allow-log-on-locally.md index 3cbeacb088..9e4831a223 100644 --- a/windows/keep-secure/allow-log-on-locally.md +++ b/windows/keep-secure/allow-log-on-locally.md @@ -1,5 +1,5 @@ --- -title: Allow log on locally (Windows 10) +title: Allow log on locally - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Allow log on locally security policy setting. ms.assetid: d9e5e1f3-3bff-4da7-a9a2-4bb3e0c79055 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Allow log on locally +# Allow log on locally - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/app-behavior-with-wip.md b/windows/keep-secure/app-behavior-with-wip.md index 55939649d4..bf932d459d 100644 --- a/windows/keep-secure/app-behavior-with-wip.md +++ b/windows/keep-secure/app-behavior-with-wip.md @@ -129,3 +129,6 @@ This table includes info about how enlightened apps might behave, based on your + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/back-up-files-and-directories.md b/windows/keep-secure/back-up-files-and-directories.md index 6f6a7b8805..f338698789 100644 --- a/windows/keep-secure/back-up-files-and-directories.md +++ b/windows/keep-secure/back-up-files-and-directories.md @@ -1,5 +1,5 @@ --- -title: Back up files and directories (Windows 10) +title: Back up files and directories - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Back up files and directories security policy setting. ms.assetid: 1cd6bdd5-1501-41f4-98b9-acf29ac173ae ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Back up files and directories +# Back up files and directories - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md b/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md index 3f72f93ba5..10963dd930 100644 --- a/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md +++ b/windows/keep-secure/backup-tpm-recovery-information-to-ad-ds.md @@ -1,6 +1,6 @@ --- -title: Backup the TPM recovery Information to AD DS (Windows 10) -description: This topic for the IT professional describes how to back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS) so that you can use AD DS to administer the TPM from a remote computer. +title: Back up the TPM recovery information to AD DS (Windows 10) +description: This topic for the IT professional describes backup of Trusted Platform Module (TPM) information. ms.assetid: 62bcec80-96a1-464e-8b3f-d177a7565ac5 ms.prod: w10 ms.mktglfcycl: deploy @@ -9,556 +9,19 @@ ms.pagetype: security author: brianlic-msft --- -# Backup the TPM recovery Information to AD DS +# Back up the TPM recovery information to AD DS **Applies to** - Windows 10, version 1511 - Windows 10, version 1507 **Does not apply to** -- Windows 10, version 1607 or later -This topic for the IT professional describes how to back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS) so that you can use AD DS to administer the TPM from a remote computer. +- Windows 10, version 1607 or later -## About administering TPM remotely +With Windows 10, versions 1511 and 1507, you can back up a computer’s Trusted Platform Module (TPM) information to Active Directory Domain Services (AD DS). By doing this, you can use AD DS to administer the TPM from a remote computer. The procedure is the same as it was for Windows 8.1. For more information, see [Backup the TPM Recovery Information to AD DS](https://technet.microsoft.com/library/dn466534(v=ws.11).aspx). -Backing up the TPM owner information for a computer allows administrators in a domain to remotely configure the TPM security hardware on the local computer. For example, administrators might want to reset the TPM to the manufacturer’s defaults when they decommission or repurpose computers, without having to be present at the computer. +## Related topics -You can use AD DS to store TPM owner information for use in recovery situations where the TPM owner has forgotten the password or where you must take control of the TPM. There is only one TPM owner password per computer; therefore, the hash of the TPM owner password can be stored as an attribute of the computer object in AD DS. The attribute has the common name (CN) of **ms-TPM-OwnerInformation**. - -> **Note:**  The TPM owner authorization value is stored in AD DS, and it is present in a TPM owner password file as a SHA-1 hash of the TPM owner password, which is base 64–encoded. The actual owner password is not stored. -  -Domain controllers running Windows Server 2012 R2 or Windows Server 2012 include the required AD DS schema objects by default. However, if your domain controller is running Windows Server 2008 R2, you need to update the schema as described in [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). - -This topic contains procedures, some of which are dependent on Visual Basic scripts, to recover TPM information and decommission TPM on remote computers. Sample scripts are available, which you can customize to meet the requirements of your environment. - -In this topic: - -1. [Check status of prerequisites](#bkmk-prereqs) -2. [Set permissions to back up password information](#bkmk-setperms) -3. [Configure Group Policy to back up TPM recovery information in AD DS](#bkmk-configuregp) -4. [Use AD DS to recover TPM information](#bkmk-useit) -5. [Sample scripts](#bkmk-adds-tpm-scripts) - -## Check status of prerequisites - -Before you begin your backup, ensure that the following prerequisites are met: - -1. All domain controllers that are accessible by client computers that will be using TPM services are running Windows Server 2012 R2, Windows Server 2012, or Windows Server 2008 R2 with the updated schema. - - > **Tip:**  For more info about the schema extensions that are required for a TPM backup in Active Directory domains that are running Windows Server 2008 R2, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). -   -2. You have domain administrator rights in the target forest, or you are using an account that has been granted appropriate permissions to extend the schema for the target forest. Members of the Enterprise Admins or Schema Admins groups are examples of accounts that have the appropriate permissions. - -## Set permissions to back up password information - -This procedure uses the sample script [Add-TPMSelfWriteACE.vbs](#bkmk-add-tpmselfwriteace) to add an access control entry (ACE) so that backing up TPM recovery information is possible. A client computer cannot back up TPM owner information until this ACE is added. - -This script is run on the domain controller that you will use to administer the TPM recovery information, and it operates under the following assumptions: - -- You have domain administrator credentials to set permissions for the top-level domain object. -- Your target domain is the same as the domain for the user account that is running the script. For example, running the script as TESTDOMAIN\\admin will extend permissions for TESTDOMAIN. - - > **Note:**  You might need to modify the sample script if you want to set permissions for multiple domains, but you do not have domain administrator accounts for each of those domains. Find the variable **strPathToDomain** in the script, and modify it for your target domain, for example: - `LDAP://DC=testdomain,DC=nttest,DC=microsoft,DC=com` -   -- Your domain is configured so that permissions are inherited from the top-level domain object to targeted computer objects. - - Permissions will not take effect if any container in the hierarchy does not allow inherited permissions. By default, permissions inheritance is set in AD DS. If you are not sure whether your configuration differs from this default, you can continue with the setup steps to set the permissions. - You can then verify your configuration as described later in this topic. Or you can click the **Effective Permissions** button while viewing the properties of a computer object, then check that **Self** is approved to write the **msTPM-OwnerInformation** attribute. - -**To add an ACE to allow TPM recovery information backup** - -1. Open the sample script **Add-TPMSelfWriteACE.vbs**. - - The script contains a permission extension, and you must modify the value of **strPathToDomain** by using your domain name. - -2. Save your modifications to the script. -3. Type the following at a command prompt, and then press ENTER: - - **cscript Add-TPMSelfWriteACE.vbs** - -This script adds a single ACE to the top-level domain object. The ACE is an inheritable permission that allows the computer (SELF) to write to the **ms-TPM-OwnerInformation** attribute for computer objects in the domain. -Complete the following procedure to check that the correct permissions are set and to remove TPM and BitLocker ACEs from the top-level domain, if necessary. - -**Manage ACEs configured on TPM schema objects** - -1. Open the sample script **List-ACEs.vbs**. -2. Modify **List-ACEs.vbs**. - - You must modify: - - Value of **strPathToDomain**: Use your domain name. - - Filter options: The script sets a filter to address BitLocker and TPM schema objects, so you must modify **If IsFilterActive ()** if you want to list or remove other schema objects. - -3. Save your modifications to the script. -4. Type the following at a command prompt, and then press ENTER: - - **cscript List-ACEs.vbs** - - With this script you can optionally remove ACEs from BitLocker and TPM schema objects on the top-level domain. - -## Configure Group Policy to back up TPM recovery information in AD DS - -Use these procedures to configure the [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-addsbu) policy setting on a local computer. In a production environment, an efficient way to do this is to create or edit a Group Policy Object (GPO) that can target client computers in the domain. - -**To enable local policy setting to back up TPM recovery information to AD DS** - -1. Sign in to a domain-joined computer by using a domain account that is a member of the local Administrators group. -2. Open the Local Group Policy Editor (gpedit.msc), and in the console tree, navigate to **Computer Configuration\\Administrative Templates\\System**. -3. Click **Trusted Platform Module Services**. -4. Double-click **Turn on TPM backup to Active Directory Domain Services**. -5. Click **Enabled**, and then click **OK**. -> **Important:**  When this setting is enabled, the TPM owner password cannot be set or changed unless the computer is connected to the domain and AD DS backup of the TPM recovery information succeeds. -  -## Use AD DS to recover TPM information - -When you need to recover the TPM owner information from AD DS and use it to manage the TPM, you need to read the **ms-TPM-OwnerInformation** object from AD DS, and then manually create a TPM owner password backup file that can be supplied when TPM owner credentials are required. - -**To obtain TPM owner backup information from AD DS and create a password file** - -1. Sign in to a domain controller by using domain administrator credentials. -2. Copy the sample script file, [Get-TPMOwnerInfo.vbs](#bkmk-get-tpmownerinfo), to a location on your computer. -3. Open a Command Prompt window, and change the default location to the location of the sample script files you saved in the previous step. -4. At the command prompt, type **cscript Get-TPMOwnerInfo.vbs**. - - The expected output is a string that is the hash of the password that you created earlier. - > **Note:**  If you receive the error message, "Active Directory: The directory property cannot be found in the cache," verify that you are using a domain administrator account, which is required to read the **ms-TPM-OwnerInformation** attribute. - - The only exception to this requirement is that if users are the Creator Owner of computer objects that they join to the domain, they can possibly read the TPM owner information for their computer objects. -   -5. Open Notepad or another text editor, and copy the following code sample into the file, and replace *TpmOwnerPasswordHash* with the string that you recorded in the previous step. - - ``` syntax - - - -                 -                 TpmOwnerPasswordHash - - ``` -6. Save this file with a .tpm extension on a removable storage device, such as a USB flash drive. When you access the TPM, and you are required to provide the TPM owner password, choose the option for reading the password from a file and provide the path to this file. - -## Sample scripts - -You can use all or portions of the following sample scripts, which are used in the preceding procedures, to configure AD DS for backing up TPM recovery information. Customization is required depending on how your environment is configured. - -- [Add-TPMSelfWriteACE.vbs: Use to add the access control entry (ACE) for the TPM to AD DS](#bkmk-add-tpmselfwriteace) -- [List-ACEs.vbs: Use to list or remove the ACEs that are configured on BitLocker and TPM schema objects](#bkmk-list-aces) -- [Get-TPMOwnerInfo.vbs: Use to retrieve the TPM recovery information from AD DS for a particular computer](#bkmk-get-tpmownerinfo) - -### Add-TPMSelfWriteACE.vbs - -This script adds the access control entry (ACE) for the TPM to AD DS so that the computer can back up TPM recovery information in AD DS. - -``` syntax -'=============================================================================== -' -' This script demonstrates the addition of an Access Control Entry (ACE) -' to allow computers to write Trusted Platform Module (TPM) -' recovery information to Active Directory. -' -' This script creates a SELF ACE on the top-level domain object, and -' assumes that inheritance of ACL's from the top-level domain object to -' down-level computer objects are enabled. -' -' -' -' Last Updated: 12/05/2012 -' Last Reviewed: 12/05/2012 -' Microsoft Corporation -' -' Disclaimer -' -' The sample scripts are not supported under any Microsoft standard support program -' or service. The sample scripts are provided AS IS without warranty of any kind. -' Microsoft further disclaims all implied warranties including, without limitation, -' any implied warranties of merchantability or of fitness for a particular purpose. -' The entire risk arising out of the use or performance of the sample scripts and -' documentation remains with you. In no event shall Microsoft, its authors, or -' anyone else involved in the creation, production, or delivery of the scripts be -' liable for any damages whatsoever (including, without limitation, damages for loss -' of business profits, business interruption, loss of business information, or -' other pecuniary loss) arising out of the use of or inability to use the sample -' scripts or documentation, even if Microsoft has been advised of the possibility -' of such damages. -' -' Version 1.0.2 - Tested and re-released for Windows 8 and Windows Server 2012 -' -'=============================================================================== -' -------------------------------------------------------------------------------- -' Access Control Entry (ACE) constants -' -------------------------------------------------------------------------------- -'- From the ADS_ACETYPE_ENUM enumeration -Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5 'Allows an object to do something -'- From the ADS_ACEFLAG_ENUM enumeration -Const ADS_ACEFLAG_INHERIT_ACE = &H2 'ACE can be inherited to child objects -Const ADS_ACEFLAG_INHERIT_ONLY_ACE = &H8 'ACE does NOT apply to target (parent) object -'- From the ADS_RIGHTS_ENUM enumeration -Const ADS_RIGHT_DS_WRITE_PROP = &H20 'The right to write object properties -Const ADS_RIGHT_DS_CREATE_CHILD = &H1 'The right to create child objects -'- From the ADS_FLAGTYPE_ENUM enumeration -Const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1 'Target object type is present in the ACE -Const ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = &H2 'Target inherited object type is present in the ACE -' -------------------------------------------------------------------------------- -' TPM and FVE schema object GUID's -' -------------------------------------------------------------------------------- -'- ms-TPM-OwnerInformation attribute -SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}" -'- ms-FVE-RecoveryInformation object -SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}" -'- Computer object -SCHEMA_GUID_COMPUTER = "{BF967A86-0DE6-11D0-A285-00AA003049E2}" -'Reference: "Platform SDK: Active Directory Schema" -' -------------------------------------------------------------------------------- -' Set up the ACE to allow write of TPM owner information -' -------------------------------------------------------------------------------- -Set objAce1 = createObject("AccessControlEntry") -objAce1.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ADS_ACEFLAG_INHERIT_ONLY_ACE -objAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT -objAce1.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT + ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT -objAce1.Trustee = "SELF" -objAce1.AccessMask = ADS_RIGHT_DS_WRITE_PROP -objAce1.ObjectType = SCHEMA_GUID_MS_TPM_OWNERINFORMATION -objAce1.InheritedObjectType = SCHEMA_GUID_COMPUTER -' -------------------------------------------------------------------------------- -' NOTE: BY default, the "SELF" computer account can create -' BitLocker recovery information objects and write BitLocker recovery properties -' -' No additional ACE's are needed. -' -------------------------------------------------------------------------------- -' -------------------------------------------------------------------------------- -' Connect to Discretional ACL (DACL) for domain object -' -------------------------------------------------------------------------------- -Set objRootLDAP = GetObject("LDAP://rootDSE") -strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com -Set objDomain = GetObject(strPathToDomain) -WScript.Echo "Accessing object: " + objDomain.Get("distinguishedName") -Set objDescriptor = objDomain.Get("ntSecurityDescriptor") -Set objDacl = objDescriptor.DiscretionaryAcl - -' -------------------------------------------------------------------------------- -' Add the ACEs to the Discretionary ACL (DACL) and set the DACL -' -------------------------------------------------------------------------------- -objDacl.AddAce objAce1 -objDescriptor.DiscretionaryAcl = objDacl -objDomain.Put "ntSecurityDescriptor", Array(objDescriptor) -objDomain.SetInfo -WScript.Echo "SUCCESS!" -``` - -### List-ACEs.vbs - -This script lists or removes the ACEs that are configured on BitLocker and TPM schema objects for the top-level domain. This enables you to verify that the expected ACEs have been added appropriately or to remove any ACEs that are related to BitLocker or the TPM, if necessary. - -``` syntax -'=============================================================================== -' -' This script lists the access control entries (ACE's) configured on -' Trusted Platform Module (TPM) and BitLocker Drive Encryption (BDE) schema objects -' for the top-level domain. -' -' You can use this script to check that the correct permissions have been set and -' to remove TPM and BitLocker ACE's from the top-level domain. -' -' -' Last Updated: 12/05/2012 -' Last Reviewed: 12/02/2012 -' -' Microsoft Corporation -' -' Disclaimer -' -' The sample scripts are not supported under any Microsoft standard support program -' or service. The sample scripts are provided AS IS without warranty of any kind. -' Microsoft further disclaims all implied warranties including, without limitation, -' any implied warranties of merchantability or of fitness for a particular purpose. -' The entire risk arising out of the use or performance of the sample scripts and -' documentation remains with you. In no event shall Microsoft, its authors, or -' anyone else involved in the creation, production, or delivery of the scripts be -' liable for any damages whatsoever (including, without limitation, damages for loss -' of business profits, business interruption, loss of business information, or -' other pecuniary loss) arising out of the use of or inability to use the sample -' scripts or documentation, even if Microsoft has been advised of the possibility -' of such damages. -' -' Version 1.0.2 - Tested and re-released for Windows 8 and Windows Server 2012 -' -'=============================================================================== -' -------------------------------------------------------------------------------- -' Usage -' -------------------------------------------------------------------------------- -Sub ShowUsage - Wscript.Echo "USAGE: List-ACEs" - Wscript.Echo "List access permissions for BitLocker and TPM schema objects" - Wscript.Echo "" - Wscript.Echo "USAGE: List-ACEs -remove" - Wscript.Echo "Removes access permissions for BitLocker and TPM schema objects" - WScript.Quit -End Sub -' -------------------------------------------------------------------------------- -' Parse Arguments -' -------------------------------------------------------------------------------- -Set args = WScript.Arguments -Select Case args.Count - - Case 0 - ' do nothing - checks for ACE's - removeACE = False - - Case 1 - If args(0) = "/?" Or args(0) = "-?" Then - ShowUsage - Else - If UCase(args(0)) = "-REMOVE" Then - removeACE = True - End If - End If - Case Else - ShowUsage -End Select -' -------------------------------------------------------------------------------- -' Configuration of the filter to show/remove only ACE's for BDE and TPM objects -' -------------------------------------------------------------------------------- -'- ms-TPM-OwnerInformation attribute -SCHEMA_GUID_MS_TPM_OWNERINFORMATION = "{AA4E1A6D-550D-4E05-8C35-4AFCB917A9FE}" -'- ms-FVE-RecoveryInformation object -SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION = "{EA715D30-8F53-40D0-BD1E-6109186D782C}" -' Use this filter to list/remove only ACEs related to TPM and BitLocker -aceGuidFilter = Array(SCHEMA_GUID_MS_TPM_OWNERINFORMATION, _ - SCHEMA_GUID_MS_FVE_RECOVERYINFORMATION) -' Note to script source reader: -' Uncomment the following line to turn off the filter and list all ACEs -'aceGuidFilter = Array() -' -------------------------------------------------------------------------------- -' Helper functions related to the list filter for listing or removing ACE's -' -------------------------------------------------------------------------------- -Function IsFilterActive() - If Join(aceGuidFilter) = "" Then - IsFilterActive = False - Else - IsFilterActive = True - End If -End Function -Function isAceWithinFilter(ace) - aceWithinFilter = False ' assume first not pass the filter - For Each guid In aceGuidFilter - If ace.ObjectType = guid Or ace.InheritedObjectType = guid Then - isAceWithinFilter = True - End If - Next -End Function -Sub displayFilter - For Each guid In aceGuidFilter - WScript.echo guid - Next -End Sub -' -------------------------------------------------------------------------------- -' Connect to Discretional ACL (DACL) for domain object -' -------------------------------------------------------------------------------- -Set objRootLDAP = GetObject("LDAP://rootDSE") -strPathToDomain = "LDAP://" & objRootLDAP.Get("defaultNamingContext") ' e.g. dc=fabrikam,dc=com -Set domain = GetObject(strPathToDomain) -WScript.Echo "Accessing object: " + domain.Get("distinguishedName") -WScript.Echo "" -Set descriptor = domain.Get("ntSecurityDescriptor") -Set dacl = descriptor.DiscretionaryAcl -' -------------------------------------------------------------------------------- -' Show Access Control Entries (ACE's) -' -------------------------------------------------------------------------------- -' Loop through the existing ACEs, including all ACEs if the filter is not active -i = 1 ' global index -c = 0 ' found count - relevant if filter is active -For Each ace In dacl - If IsFilterActive() = False or isAceWithinFilter(ace) = True Then - ' note to script source reader: - ' echo i to show the index of the ACE - - WScript.echo "> AceFlags: " & ace.AceFlags - WScript.echo "> AceType: " & ace.AceType - WScript.echo "> Flags: " & ace.Flags - WScript.echo "> AccessMask: " & ace.AccessMask - WScript.echo "> ObjectType: " & ace.ObjectType - WScript.echo "> InheritedObjectType: " & ace.InheritedObjectType - WScript.echo "> Trustee: " & ace.Trustee - WScript.echo "" - if IsFilterActive() = True Then - c = c + 1 - ' optionally include this ACE in removal list if configured - ' note that the filter being active is a requirement since we don't - ' want to accidentally remove all ACEs - If removeACE = True Then - dacl.RemoveAce ace - End If - end if - End If - i = i + 1 -Next -' Display number of ACEs found -If IsFilterActive() = True Then - WScript.echo c & " ACE(s) found in " & domain.Get("distinguishedName") _ - & " related to BitLocker and TPM" 'note to script source reader: change this line if you configure your own -filter - ' note to script source reader: - ' uncomment the following lines if you configure your own filter - 'WScript.echo "" - 'WScript.echo "The following filter was active: " - 'displayFilter - 'Wscript.echo "" -Else - i = i - 1 - WScript.echo i & " total ACE(s) found in " & domain.Get("distinguishedName") - -End If -' -------------------------------------------------------------------------------- -' Optionally remove ACE's on a filtered list -' -------------------------------------------------------------------------------- -if removeACE = True and IsFilterActive() = True then - descriptor.DiscretionaryAcl = dacl - domain.Put "ntSecurityDescriptor", Array(descriptor) - domain.setInfo - WScript.echo c & " ACE(s) removed from " & domain.Get("distinguishedName") -else - if removeACE = True then - WScript.echo "You must specify a filter to remove ACEs from " & domain.Get("distinguishedName") - - end if -end if -``` - -### Get-TPMOwnerInfo.vbs - -This script retrieves TPM recovery information from AD DS for a particular computer so that you can verify that only domain administrators (or delegated roles) can read backed up TPM recovery information and verify that the information is being backed up correctly. - -``` syntax -'================================================================================= -' -' This script demonstrates the retrieval of Trusted Platform Module (TPM) -' recovery information from Active Directory for a particular computer. -' -' It returns the TPM owner information stored as an attribute of a -' computer object. -' -' Last Updated: 12/05/2012 -' Last Reviewed: 12/05/2012 -' -' Microsoft Corporation -' -' Disclaimer -' -' The sample scripts are not supported under any Microsoft standard support program -' or service. The sample scripts are provided AS IS without warranty of any kind. -' Microsoft further disclaims all implied warranties including, without limitation, -' any implied warranties of merchantability or of fitness for a particular purpose. -' The entire risk arising out of the use or performance of the sample scripts and -' documentation remains with you. In no event shall Microsoft, its authors, or -' anyone else involved in the creation, production, or delivery of the scripts be -' liable for any damages whatsoever (including, without limitation, damages for loss -' of business profits, business interruption, loss of business information, or -' other pecuniary loss) arising out of the use of or inability to use the sample -' scripts or documentation, even if Microsoft has been advised of the possibility -' of such damages. -' -' Version 1.0 - Initial release -' Version 1.1 - Updated GetStrPathToComputer to search the global catalog. -' Version 1.1.2 - Tested and re-released for Windows 8 and Windows Server 2012 -' -'================================================================================= -' -------------------------------------------------------------------------------- -' Usage -' -------------------------------------------------------------------------------- -Sub ShowUsage - Wscript.Echo "USAGE: Get-TpmOwnerInfo [Optional Computer Name]" - Wscript.Echo "If no computer name is specified, the local computer is assumed." - WScript.Quit -End Sub -' -------------------------------------------------------------------------------- -' Parse Arguments -' -------------------------------------------------------------------------------- -Set args = WScript.Arguments -Select Case args.Count - - Case 0 - ' Get the name of the local computer - Set objNetwork = CreateObject("WScript.Network") - strComputerName = objNetwork.ComputerName - - Case 1 - If args(0) = "/?" Or args(0) = "-?" Then - ShowUsage - Else - strComputerName = args(0) - End If - - Case Else - ShowUsage -End Select -' -------------------------------------------------------------------------------- -' Get path to Active Directory computer object associated with the computer name -' -------------------------------------------------------------------------------- -Function GetStrPathToComputer(strComputerName) - ' Uses the global catalog to find the computer in the forest - ' Search also includes deleted computers in the tombstone - Set objRootLDAP = GetObject("LDAP://rootDSE") - namingContext = objRootLDAP.Get("defaultNamingContext") ' e.g. string dc=fabrikam,dc=com - strBase = "" - - Set objConnection = CreateObject("ADODB.Connection") - Set objCommand = CreateObject("ADODB.Command") - objConnection.Provider = "ADsDSOOBject" - objConnection.Open "Active Directory Provider" - Set objCommand.ActiveConnection = objConnection - strFilter = "(&(objectCategory=Computer)(cn=" & strComputerName & "))" - strQuery = strBase & ";" & strFilter & ";distinguishedName;subtree" - objCommand.CommandText = strQuery - objCommand.Properties("Page Size") = 100 - objCommand.Properties("Timeout") = 100 - objCommand.Properties("Cache Results") = False - ' Enumerate all objects found. - Set objRecordSet = objCommand.Execute - If objRecordSet.EOF Then - WScript.echo "The computer name '" & strComputerName & "' cannot be found." - WScript.Quit 1 - End If - ' Found object matching name - Do Until objRecordSet.EOF - dnFound = objRecordSet.Fields("distinguishedName") - GetStrPathToComputer = "LDAP://" & dnFound - objRecordSet.MoveNext - Loop - ' Clean up. - Set objConnection = Nothing - Set objCommand = Nothing - Set objRecordSet = Nothing -End Function -' -------------------------------------------------------------------------------- -' Securely access the Active Directory computer object using Kerberos -' -------------------------------------------------------------------------------- -Set objDSO = GetObject("LDAP:") -strPath = GetStrPathToComputer(strComputerName) -WScript.Echo "Accessing object: " + strPath -Const ADS_SECURE_AUTHENTICATION = 1 -Const ADS_USE_SEALING = 64 '0x40 -Const ADS_USE_SIGNING = 128 '0x80 -Set objComputer = objDSO.OpenDSObject(strPath, vbNullString, vbNullString, _ - ADS_SECURE_AUTHENTICATION + ADS_USE_SEALING + ADS_USE_SIGNING) -' -------------------------------------------------------------------------------- -' Get the TPM owner information from the Active Directory computer object -' -------------------------------------------------------------------------------- -strOwnerInformation = objComputer.Get("msTPM-OwnerInformation") -WScript.echo "msTPM-OwnerInformation: " + strOwnerInformation -``` - -## Additional resources - -- [Trusted Platform Module technology overview](trusted-platform-module-overview.md) -- [TPM fundamentals](tpm-fundamentals.md) -- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) -- [Prepare your organization for BitLocker: Planning and Policies](http://technet.microsoft.com/library/jj592683.aspx), see TPM considerations +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) \ No newline at end of file diff --git a/windows/keep-secure/basic-audit-logon-events.md b/windows/keep-secure/basic-audit-logon-events.md index 143c150317..dd0764f2b5 100644 --- a/windows/keep-secure/basic-audit-logon-events.md +++ b/windows/keep-secure/basic-audit-logon-events.md @@ -22,6 +22,8 @@ If you define this policy setting, you can specify whether to audit successes, a To set this value to **No auditing**, in the **Properties** dialog box for this policy setting, select the **Define these policy settings** check box and clear the **Success** and **Failure** check boxes. +For information about advanced security policy settings for logon events, see the [Logon/logoff](advanced-security-audit-policy-settings.md#logonlogoff) section in [Advanced security audit policy settings](advanced-security-audit-policy-settings.md). + ## Configure this audit setting You can configure this security setting by opening the appropriate policy under Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Audit Policy. diff --git a/windows/keep-secure/bitlocker-basic-deployment.md b/windows/keep-secure/bitlocker-basic-deployment.md index b83692c713..fbc016705b 100644 --- a/windows/keep-secure/bitlocker-basic-deployment.md +++ b/windows/keep-secure/bitlocker-basic-deployment.md @@ -40,7 +40,7 @@ BitLocker encryption can be done using the following methods: ### Encrypting volumes using the BitLocker control panel -Encrypting volumes with the BitLocker control panel is how many users will utilize BitLocker. The name of the BitLocker control panel is BitLocker Drive Encryption. The BitLocker control panel supports encrypting operating system, fixed data and removable data volumes. The BitLocker control panel will organize available drives in the appropriate category based on how the device reports itself to Windows. Only formatted volumes with assigned drive letters will appear properly in the BitLocker control panel applet. +Encrypting volumes with the BitLocker control panel (click **Start**, type **bitlocker**, click **Manage BitLocker**) is how many users will utilize BitLocker. The name of the BitLocker control panel is BitLocker Drive Encryption. The BitLocker control panel supports encrypting operating system, fixed data and removable data volumes. The BitLocker control panel will organize available drives in the appropriate category based on how the device reports itself to Windows. Only formatted volumes with assigned drive letters will appear properly in the BitLocker control panel applet. To start encryption for a volume, select **Turn on BitLocker** for the appropriate drive to initialize the BitLocker Drive Encryption Wizard. BitLocker Drive Encryption Wizard options vary based on volume type (operating system volume or data volume). ### Operating system volume diff --git a/windows/keep-secure/bitlocker-countermeasures.md b/windows/keep-secure/bitlocker-countermeasures.md index 7e1f6c7414..89261d666c 100644 --- a/windows/keep-secure/bitlocker-countermeasures.md +++ b/windows/keep-secure/bitlocker-countermeasures.md @@ -23,9 +23,9 @@ The sections that follow provide more detailed information about the different t ### Protection before startup -Before Windows starts, you must rely on security features implemented as part of the device hardware, including TPM andSecure Boot. Fortunately, many modern computers feature TPM. +Before Windows starts, you must rely on security features implemented as part of the device hardware, including TPM and Secure Boot. Fortunately, many modern computers feature TPM. -**Trusted Platform Module** +#### Trusted Platform Module Software alone isn’t sufficient to protect a system. After an attacker has compromised software, the software might be unable to detect the compromise. Therefore, a single successful software compromise results in an untrusted system that might never be detected. Hardware, however, is much more difficult to modify. @@ -33,7 +33,7 @@ A TPM is a microchip designed to provide basic security-related functions, prima By binding the BitLocker encryption key with the TPM and properly configuring the device, it’s nearly impossible for an attacker to gain access to the BitLocker-encrypted data without obtaining an authorized user’s credentials. Therefore, computers with a TPM can provide a high level of protection against attacks that attempt to directly retrieve the BitLocker encryption key. For more info about TPM, see [Trusted Platform Module](trusted-platform-module-overview.md). -**UEFI and Secure Boot** +#### UEFI and Secure Boot No operating system can protect a device when the operating system is offline. For that reason, Microsoft worked closely with hardware vendors to require firmware-level protection against boot and rootkits that might compromise an encryption solution’s encryption keys. @@ -53,7 +53,7 @@ Using the digital signature, UEFI verifies that the bootloader was signed using If the bootloader passes these two tests, UEFI knows that the bootloader isn’t a bootkit and starts it. At this point, Trusted Boot takes over, and the Windows bootloader, using the same cryptographic technologies that UEFI used to verify the bootloader, then verifies that the Windows system files haven’t been changed. -All Windows 8–certified devices must meet several requirements related to UEFI-based Secure Boot: +Starting with Windows 8, certified devices must meet several requirements related to UEFI-based Secure Boot: - They must have Secure Boot enabled by default. - They must trust Microsoft’s certificate (and thus any bootloader Microsoft has signed). diff --git a/windows/keep-secure/bitlocker-frequently-asked-questions.md b/windows/keep-secure/bitlocker-frequently-asked-questions.md index 6e3ae93c32..5761c7318a 100644 --- a/windows/keep-secure/bitlocker-frequently-asked-questions.md +++ b/windows/keep-secure/bitlocker-frequently-asked-questions.md @@ -47,6 +47,8 @@ Yes, BitLocker supports multifactor authentication for operating system drives. ### What are the BitLocker hardware and software requirements? +For requirements, see [System requirements](https://technet.microsoft.com/itpro/windows/keep-secure/bitlocker-overview#system-requirements). + > **Note:**  Dynamic disks are not supported by BitLocker. Dynamic data volumes will not be displayed in the Control Panel. Although the operating system volume will always be displayed in the Control Panel, regardless of whether it is a Dynamic disk, if it is a dynamic disk it is cannot be protected by BitLocker.   ### Why are two partitions required? Why does the system drive have to be so large? @@ -198,9 +200,9 @@ Any number of internal, fixed data drives can be protected with BitLocker. On so ## Key management -### What is the difference between a TPM owner password, recovery password, recovery key, password, PIN, enhanced PIN, and startup key? +### What is the difference between a recovery password, recovery key, PIN, enhanced PIN, and startup key? -There are multiple keys that can be generated and used by BitLocker. Some keys are required and some are optional protectors you can choose to use depending on the level of security you require. +For tables that list and describe elements such as a recovery password, recovery key, and PIN, see [BitLocker key protectors](prepare-your-organization-for-bitlocker-planning-and-policies.md#bitlocker-key-protectors) and [BitLocker authentication methods](prepare-your-organization-for-bitlocker-planning-and-policies.md#bitlocker-authentication-methods). ### How can the recovery password and recovery key be stored? diff --git a/windows/keep-secure/bitlocker-group-policy-settings.md b/windows/keep-secure/bitlocker-group-policy-settings.md index 8d3864a681..26cadf522b 100644 --- a/windows/keep-secure/bitlocker-group-policy-settings.md +++ b/windows/keep-secure/bitlocker-group-policy-settings.md @@ -1509,7 +1509,6 @@ If the **Require BitLocker backup to AD DS** option is not selected, AD DS bac TPM initialization might be needed during the BitLocker setup. Enable the **Turn on TPM backup to Active Directory Domain Services** policy setting in **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services** to ensure that TPM information is also backed up. For more information about this setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md). -If you are using domain controllers running Windows Server 2003 with Service Pack 1, you must first set up appropriate schema extensions and access control settings on the domain before a backup to AD DS can succeed. For more info, see [Backup the TPM recovery Information to AD DS](backup-tpm-recovery-information-to-ad-ds.md). ### Choose default folder for recovery password diff --git a/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md b/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md index e57e269aff..8a9e7b2ab7 100644 --- a/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md +++ b/windows/keep-secure/bitlocker-how-to-deploy-on-windows-server.md @@ -14,7 +14,7 @@ author: brianlic-msft **Applies to** - Windows 10 -This topic for the IT professional explains how to deploy BitLocker and Windows Server 2012 and later. +This topic for the IT professional explains how to deploy BitLocker on Windows Server 2012 and later. For all Windows Server editions, BitLocker must be installed using Server Manager. However, you can still provision BitLocker before the server operating system is installed as part of your deployment. diff --git a/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md b/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md index 0155f5ed15..337c4d39e8 100644 --- a/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md +++ b/windows/keep-secure/bitlocker-how-to-enable-network-unlock.md @@ -231,7 +231,7 @@ The following steps detail how to create a certificate template for use with Bit 1. Open the Certificates Template snap-in (certtmpl.msc). 2. Locate the User template. Right-click the template name and select **Duplicate Template**. -3. On the **Compatibility** tab, change the **Certification Authority** and **Certificate recipient** fields to Windows Server 2012 and Windows 8respectively. Ensure the **Show resulting changes** dialog box is selected. +3. On the **Compatibility** tab, change the **Certification Authority** and **Certificate recipient** fields to Windows Server 2012 and Windows 8 respectively. Ensure the **Show resulting changes** dialog box is selected. 4. Select the **General** tab of the template. The **Template display name** and **Template name** should clearly identify that the template will be used for Network Unlock. Clear the checkbox for the **Publish certificate in Active Directory** option. 5. Select the **Request Handling** tab. Select **Encryption** from the **Purpose** drop down menu. Ensure the **Allow private key to be exported** option is selected. 6. Select the **Cryptography** tab. Set the **Minimum key size** to 2048. (Any Microsoft cryptographic provider that supports RSA can be used for this template, but for simplicity and forward compatibility we recommend using the **Microsoft Software Key Storage Provider**.) diff --git a/windows/keep-secure/bitlocker-overview.md b/windows/keep-secure/bitlocker-overview.md index 2921e55f01..2ffb869b8f 100644 --- a/windows/keep-secure/bitlocker-overview.md +++ b/windows/keep-secure/bitlocker-overview.md @@ -42,7 +42,7 @@ BitLocker control panel, and they are appropriate to use for automated deploymen ## New and changed functionality -To find out what's new in BitLocker for Windows 10, see [What's new in BitLocker?](../whats-new/bitlocker.md) +To find out what's new in BitLocker for Windows 10, see the [BitLocker](https://technet.microsoft.com/itpro/windows/whats-new/whats-new-windows-10-version-1507-and-1511#bitlocker) section in "What's new in Windows 10, versions 1507 and 1511."   ## System requirements @@ -74,9 +74,10 @@ When installing the BitLocker optional component on a server you will also need | [BitLocker: How to enable Network Unlock](bitlocker-how-to-enable-network-unlock.md) | This topic for the IT professional describes how BitLocker Network Unlock works and how to configure it. | | [BitLocker: Use BitLocker Drive Encryption Tools to manage BitLocker](bitlocker-use-bitlocker-drive-encryption-tools-to-manage-bitlocker.md)| This topic for the IT professional describes how to use tools to manage BitLocker.| | [BitLocker: Use BitLocker Recovery Password Viewer](bitlocker-use-bitlocker-recovery-password-viewer.md) | This topic for the IT professional describes how to use the BitLocker Recovery Password Viewer. | +| [BitLocker Group Policy settings](bitlocker-group-policy-settings.md) | This topic for IT professionals describes the function, location, and effect of each Group Policy setting that is used to manage BitLocker. | | [BCD settings and BitLocker](bcd-settings-and-bitlocker.md) | This topic for IT professionals describes the BCD settings that are used by BitLocker.| | [BitLocker Recovery Guide](bitlocker-recovery-guide-plan.md)| This topic for IT professionals describes how to recover BitLocker keys from AD DS. | | [Protect BitLocker from pre-boot attacks](protect-bitlocker-from-pre-boot-attacks.md)| This detailed guide will help you understand the circumstances under which the use of pre-boot authentication is recommended for devices running Windows 10, Windows 8.1, Windows 8, or Windows 7; and when it can be safely omitted from a device’s configuration. | | [Protecting cluster shared volumes and storage area networks with BitLocker](protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md)| This topic for IT pros describes how to protect CSVs and SANs with BitLocker.| -If you're looking for info on how to use it with Windows 10 IoT Core, see [Enabling Secure Boot and BitLocker Device Encryption on Windows 10 IoT Core](https://developer.microsoft.com/windows/iot/win10/SB_BL.htm). \ No newline at end of file +If you're looking for info on how to use it with Windows 10 IoT Core, see [Enabling Secure Boot and BitLocker Device Encryption on Windows 10 IoT Core](https://developer.microsoft.com/windows/iot/docs/securebootandbitlocker). \ No newline at end of file diff --git a/windows/keep-secure/change-history-for-keep-windows-10-secure.md b/windows/keep-secure/change-history-for-keep-windows-10-secure.md index 759d44b4af..e5a7805ddf 100644 --- a/windows/keep-secure/change-history-for-keep-windows-10-secure.md +++ b/windows/keep-secure/change-history-for-keep-windows-10-secure.md @@ -12,6 +12,20 @@ author: brianlic-msft # Change history for Keep Windows 10 secure This topic lists new and updated topics in the [Keep Windows 10 secure](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). +## January 2017 +|New or changed topic |Description | +|---------------------|------------| +|[Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) |New | +|[Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) |Updated to include info about USB drives and Azure RMS (Windows Insider Program only) and to add more info about Work Folders and Offline files. | +|[Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) |New | +|[Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) |New | + +## December 2016 +|New or changed topic |Description | +|---------------------|------------| +|[Create WMI Filters for the GPO](create-wmi-filters-for-the-gpo.md) |Added filter examples for Windows 10 and Windows Server 2016. | + + ## November 2016 | New or changed topic | Description | | --- | --- | diff --git a/windows/keep-secure/change-the-system-time.md b/windows/keep-secure/change-the-system-time.md index e6f43e3f88..0ca13c1625 100644 --- a/windows/keep-secure/change-the-system-time.md +++ b/windows/keep-secure/change-the-system-time.md @@ -1,5 +1,5 @@ --- -title: Change the system time (Windows 10) +title: Change the system time - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Change the system time security policy setting. ms.assetid: f2f6637d-acbc-4352-8ca3-ec563f918e65 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Change the system time +# Change the system time - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/change-the-time-zone.md b/windows/keep-secure/change-the-time-zone.md index 3eb72473a5..50067366d5 100644 --- a/windows/keep-secure/change-the-time-zone.md +++ b/windows/keep-secure/change-the-time-zone.md @@ -1,5 +1,5 @@ --- -title: Change the time zone (Windows 10) +title: Change the time zone - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Change the time zone security policy setting. ms.assetid: 3b1afae4-68bb-472f-a43e-49e300d73e50 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Change the time zone +# Change the time zone - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/change-the-tpm-owner-password.md b/windows/keep-secure/change-the-tpm-owner-password.md index 50d9175eb2..a8b0e386d3 100644 --- a/windows/keep-secure/change-the-tpm-owner-password.md +++ b/windows/keep-secure/change-the-tpm-owner-password.md @@ -12,52 +12,35 @@ author: brianlic-msft # Change the TPM owner password **Applies to** -- Windows 10 +- Windows 10, version 1511 +- Windows 10, version 1507 This topic for the IT professional describes how to change the password or PIN for the owner of the Trusted Platform Module (TPM) that is installed on your system. ## About the TPM owner password -Starting with Windows 10, version 1607 , Windows will not retain the TPM owner password when provisioning the TPM. The password will be set to a random high entropy value and then discarded. -In order to retain the TPM owner password, you will need to set the registry key 'HKLM\Software\Policies\Microsoft\TPM' [REG_DWORD] 'OSManagedAuthLevel' to 4. The default value for this key is 2, and unless it is changed to 4 before the TPM is provisioned, the owner password will not be saved. Microsoft strongly recommends that you do not change the default value of this registry key in order to retain the owner password. +Starting with Windows 10, version 1607, Windows will not retain the TPM owner password when provisioning the TPM. The password will be set to a random high entropy value and then discarded. -Only one owner password exists for each TPM. The TPM owner password allows the ability to enable, disable, or clear the TPM without having physical access to the computer, for example, by using the command-line tools remotely. The TPM owner password also allows manipulation of the TPM dictionary attack logic. Taking ownership of the TPM is performed by Windows as part of the provisioning process on each boot. Ownership can change when you share the password or clear your ownership of the TPM so someone else can initialize it. +> [!IMPORTANT] +> Although the TPM owner password is not retained starting with Windows 10, version 1607, you can change a default registry key to retain it. However, we strongly recommend that you do not make this change. To retain the TPM owner password, set the registry key 'HKLM\\Software\\Policies\\Microsoft\\TPM' \[REG\_DWORD\] 'OSManagedAuthLevel' to 4. The default value for this key is 2, and unless it is changed to 4 before the TPM is provisioned, the owner password will not be saved. + +Only one owner password exists for each TPM. The TPM owner password allows the ability to enable, disable, or clear the TPM without having physical access to the computer, for example, by using the command-line tools remotely. The TPM owner password also allows manipulation of the TPM dictionary attack logic. Taking ownership of the TPM is performed by Windows as part of the provisioning process on each boot. Ownership can change when you share the password or clear your ownership of the TPM so someone else can initialize it. Without the owner password you can still perform all the preceding actions by means of a physical presence confirmation from UEFI. -**Other TPM management options** +### Other TPM management options Instead of changing your owner password, you can also use the following options to manage your TPM: -- **Clear the TPM**   If you want to invalidate all of the existing keys that have been created since you took ownership of the TPM, you can clear it. For more info, see [Initialize and Configure Ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md#bkmk-clear1). +- **Clear the TPM**   If you want to invalidate all of the existing keys that have been created since you took ownership of the TPM, you can clear it. For important precautions for this process, and instructions for completing it, see [Clear all the keys from the TPM](initialize-and-configure-ownership-of-the-tpm.md#clear-all-the-keys-from-the-tpm). - >**Important:**  Clearing the TPM can result in the loss of data. To avoid data loss, make sure you have a backup or recovery method for any data protected or encrypted by the TPM. -   -- **Turn off the TPM**   If you want to keep all existing keys and data intact, and you want to disable the services that are provided by the TPM, you can turn it off. For more info, see [Initialize and Configure Ownership of the TPM](initialize-and-configure-ownership-of-the-tpm.md#bkmk-onoff). This option is only available for TPM 1.2. +- **Turn off the TPM**   With TPM 1.2 and Windows 10, versions 1507 and 1511, you can turn off the TPM. Do this if you want to keep all existing keys and data intact and disable the services that are provided by the TPM. For more info, see [Turn off the TPM](initialize-and-configure-ownership-of-the-tpm.md#turn-off-the-tpm). ## Change the TPM owner password -The following procedure provides the steps that are necessary to change the TPM owner password. +With Windows 10, version 1507 or 1511, if you have opted specifically to preserve the TPM owner password, you can use the saved password to change to a new password. -**To change the TPM owner password** - -If you have opted specifically to preserve the TPM owner password, you can use the saved password to change to a new password. - -1. Open the TPM MMC (tpm.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -2. In the **Actions** pane, click **Change Owner Password**. -3. In the **Manage the TPM security hardware** dialog box, select a method to enter your current TPM owner password. - - - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, use **Browse** to navigate to the .tpm file that is saved on your removable storage device. Click **Open**, and then click **Create New Password**. - - If you do not have the removable storage device with your saved password, click **I want to enter the owner password**. In the **Type your TPM owner password** dialog box, enter your password (including hyphens), and click **Create New Password**. -4. On the **Create the TPM owner password** page, select a method for creating a new TPM owner password. - - 1. Click **Automatically create the password** to have a new owner password generated for you. - 2. Click **Manually create the password** if you want to specify a password. - >**Note:**  The TPM owner password must have a minimum of eight characters. -   -5. After the new password is created, you can choose **Save the password** to save the password in a password backup file on a removable storage device or **Print the password** to print a copy of the password for later reference. - -6. Click **Change password** to apply the new owner password to the TPM. +To change to a new TPM owner password, in TPM.msc, click **Change Owner Password**, and follow the instructions. You will be prompted to provide the owner password file or to type the password. Then you can create a new password, either automatically or manually, and save the password in a file or as a printout. ## Use the TPM cmdlets @@ -66,6 +49,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [Trusted Platform Module technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md b/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md index 402c01f733..241eadd7f7 100644 --- a/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md +++ b/windows/keep-secure/choose-the-right-bitlocker-countermeasure.md @@ -17,19 +17,105 @@ author: brianlic-msft This section outlines the best countermeasures you can use to protect your organization from bootkits and rootkits, brute force sign-in, Direct Memory Access (DMA) attacks, Hyberfil.sys attacks, and memory remanence attacks. You can use BitLocker to protect your Windows 10 PCs. Whichever operating system you’re using, Microsoft and Windows-certified devices provide countermeasures to address attacks and improve your data security. In most cases, this protection can be implemented without the need for pre-boot authentication. -Figures 2, 3, and 4 summarize the recommended mitigations for different types of attacks against PCs running recent versions of Windows. The orange blocks indicate that the system requires additional configuration from the default -settings. +Tables 1 and 2 summarize the recommended mitigations for different types of attacks against PCs running recent versions of Windows. The orange blocks indicate that the system requires additional configuration from the default settings. -![how to choose best countermeasures for windows 7](images/bitlockerprebootprotection-counterwin7.jpg) + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Windows 8.1
without TPM

+

Windows 8.1 Certified
(with TPM)

+

Bootkits and
Rootkits

Without TPM, boot integrity checking is not available

Secure by default when UEFI-based Secure Boot is enabled and a firmware password is required to change settings

+

Brute Force
Sign-in

Secure by default, and can be improved with account lockout Group Policy

Secure by default, and can be improved with account lockout and device lockout Group Policy settings

+

DMA
Attacks

If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

+

Hyberfil.sys
Attacks

Secure by default; hyberfil.sys secured on encrypted volume

Secure by default; hyberfil.sys secured on encrypted volume

+

Memory
Remanence
Attacks

Password protect the firmware and disable booting from external media. If an attack is viable, consider pre-boot authentication

Password protect the firmware and ensure Secure Boot is enabled. If an attack is viable, consider pre-boot authentication

+**Table 1.**  How to choose the best countermeasures for Windows 8.1

-![how to choose countermeasures for windows 8](images/bitlockerprebootprotection-counterwin8.jpg) + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Windows 10
without TPM

+

Windows 10 Certified
(with TPM)

+

Bootkits and
Rootkits

Without TPM, boot integrity checking is not available

Secure by default when UEFI-based Secure Boot is enabled and a firmware password is required to change settings

+

Brute Force
Sign-in

Secure by default, and can be improved with account lockout Group Policy

Secure by default, and can be improved with account lockout and device lockout Group Policy settings

+

DMA
Attacks

If policy is deployed, secure by default for all lost or stolen devices because new DMA devices are granted access only when an authorized user is signed in

Secure by default; certified devices do not expose vulnerable DMA busses.
Can be additionally secured by deploying policy to restrict DMA devices:

+ +
+

Hyberfil.sys
Attacks

Secure by default; hyberfil.sys secured on encrypted volume

Secure by default; hyberfil.sys secured on encrypted volume

+

Memory
Remanence
Attacks

Password protect the firmware and disable booting from external media. If an attack is viable, consider pre-boot authentication

Password protect the firmware and ensure Secure Boot is enabled.
The most effective mitigation, which we advise for high-security devices, is to configure a TPM+PIN protector, disable Standby power management, and shut down or hibernate the device before it leaves the control of an authorized user.

-**Figure 3.** How to choose the best countermeasures for Windows 8 - -![how to choose countermeasures for windows 8.1](images/bitlockerprebootprotection-counterwin81.jpg) - -**Figure 4.** How to choose the best countermeasures for Windows 8.1 +**Table 2.**  How to choose the best countermeasures for Windows 10 The latest InstantGo devices, primarily tablets, are designed to be secure by default against all attacks that might compromise the BitLocker encryption key. Other Windows devices can be, too. DMA port–based attacks, which represent the attack vector of choice, are not possible on InstantGo devices, because these port types are prohibited. The inclusion of DMA ports on even non-InstantGo devices is extremely rare on recent devices, particularly on mobile ones. This could change if Thunderbolt is broadly adopted, so IT should consider this when purchasing new devices. In any case DMA ports can be disabled entirely, which is an increasingly popular option because the use of DMA ports is infrequent in the non-developer space. diff --git a/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md index 65dcdf6805..d7147d12a9 100644 --- a/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-aad-windows-defender-advanced-threat-protection.md @@ -24,7 +24,7 @@ localizationpriority: high You need to add an application in your Azure Active Directory (AAD) tenant then authorize the Windows Defender ATP Alerts Export application to communicate with it so that your security information and events management (SIEM) tool can consume alerts from Windows Defender ATP portal. -1. Login to the [Azure management portal](https://manage.windowsazure.com). +1. Login to the [Azure management portal](https://ms.portal.azure.com). 2. Select **Active Directory**. @@ -53,14 +53,12 @@ You need to add an application in your Azure Active Directory (AAD) tenant then 13. Click **Save** and copy the key in a safe place. You'll need this key to authenticate the client application on Azure Active Directory. -14. Open a web browser and connect to the following URL:
-```text -https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=f7c1acd8-0458-48a0-a662-dba6de049d1c&tenantId=&clientSecret=1234 -``` -An Azure login page appears. -> [!NOTE] -> - Replace *tenant ID* with your actual tenant ID. -> - Keep the client secret as is. This is a dummy value, but the parameter must appear. +14. Open a web browser and connect to the following URL: `https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=f7c1acd8-0458-48a0-a662-dba6de049d1c&tenantId=&clientSecret=1234`
+ + An Azure login page appears. + > [!NOTE] + > - Replace *tenant ID* with your actual tenant ID. + > - Keep the *clientSecret* as is. This is a dummy value, but the parameter must appear. 15. Sign in with the credentials of a user from your tenant. @@ -80,7 +78,37 @@ An Azure login page appears. 23. Save the application changes. -After configuring the application in AAD, you can continue to configure the SIEM tool that you want to use. +After configuring the application in AAD, you'll need to obtain a refresh token. You'll need to use the token when you configure the connector for your SIEM tool in the next steps. The token lets the connector access Windows Defender ATP events to be consumed by your SIEM. + +## Obtain a refresh token using an events URL +Obtain a refresh token used to retrieve the Windows Defender Advanced Threat Protection events to your SIEM. This section provides information on how you can use an events URL to obtain the required refresh token. +>[!NOTE] +>For HP ArcSight, you can obtain a refresh token using the restutil tool. For more information, see [Configure HP ArcSight to consume alerts](configure-arcsight-windows-defender-advanced-threat-protection.md). + +### Before you begin +Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: + + - OAuth 2 Client ID + - OAuth 2 Client secret + +You'll use these values to obtain a refresh token. + +>[!IMPORTANT] +>Before using the OAuth 2 Client secret described in the next steps, you **must** encode it. Use a URL encoder to transform the OAuth 2 client secret. + +### Obtain a refresh token +1. Open a web browser and connect to the following URL: `https://DataAccess-PRD.trafficmanager.net:444/api/FetchToken?clientId=&tenantId=&clientSecret=` + + >[!NOTE] + >- Replace the *client ID* value with the one you got from your AAD application. + >- Replace *tenant ID* with your actual tenant ID. + >- Replace *client secret* with your encoded client secret. The client secret **must** be pasted encoded. + +2. Click **Accept**. When you authenticate, a web page opens with your refresh token. + +3. Save the refresh token which you'll find it the ``value. You'll need this value when configuring your SIEM tool. + +After configuring your AAD application and generating a refresh token, you can proceed to configure your SIEM tool. ## Related topics - [Configure security information and events management (SIEM) tools to consume alerts](configure-siem-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md index 614004d2dc..a682992574 100644 --- a/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-arcsight-windows-defender-advanced-threat-protection.md @@ -25,26 +25,36 @@ You'll need to configure HP ArcSight so that it can consume Windows Defender ATP ## Before you begin -- Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: +- Get the following information from your Azure Active Directory (AAD) application by selecting **View Endpoint** on the application configuration page: - OAuth 2 Token refresh URL - OAuth 2 Client ID - OAuth 2 Client secret -- Create your OAUth 2 Client properties file or get it from your Windows Defender ATP contact. For more information, see the ArcSight FlexConnector Developer's guide. +- Download the [WDATP-connector.properties](http://download.microsoft.com/download/3/9/C/39C703C2-487C-4C3E-AFD8-14C2253C2F12/WDATP-connector.properties) file and update the following values: - > [!NOTE] - > **For the authorization URL**: Append the following to the value you got from the AAD app: ```?resource=https%3A%2F%2FWDATPAlertExport.Seville.onmicrosoft.com```
- > **For the redirect_uri value use**: ```https://localhost:44300/wdatpconnector``` - > -- Get the *wdatp-connector.properties* file from your Windows Defender ATP contact. This file is used to parse the information from Windows Defender ATP to HP ArcSight consumable format. -- Install the HP ArcSight REST FlexConnector package on a server that has access to the Internet. -- Contact the Windows Defender ATP team to get your refresh token or follow the steps in the section "Run restutil to Obtain a Refresh Token for Connector Appliance/ArcSight Management Center" in the ArcSight FlexConnector Developer's guide. + - **client_ID**: OAuth 2 Client ID + - **client_secret**: OAuth 2 Client secret + - **auth_url**: ```https://login.microsoftonline.com/?resource=https%3A%2F%2FWDATPAlertExport.Seville.onmicrosoft.com ``` + + >[!NOTE] + >Replace *tenantID* with your tenant ID. + + - **token_url**: `https://login.microsoftonline.com//oauth2/token` + + >[!NOTE] + >Replace the *tenantID* value with your tenant ID. + + - **redirect_uri**: ```https://localhost:44300/wdatpconnector``` + - **scope**: Leave the value blank + +- Download the [WDATP-connector.jsonparser.properties](http://download.microsoft.com/download/0/8/A/08A4957D-0923-4353-B25F-395EAE363E8C/WDATP-connector.jsonparser.properties) file. This file is used to parse the information from Windows Defender ATP to HP ArcSight consumable format. +- Install the HP ArcSight REST FlexConnector package. You can find this in the HPE Software center. Install the package on a server that has access to the Internet. ## Configure HP ArcSight -The following steps assume that you have completed all the required steps in [Before you begin](#before-you-begin). +The following steps assume that you have completed all the required steps in [Before you begin](#before-you-begin). For more information, see the ArcSight FlexConnector Developer's guide. -1. Copy the *wdatp-connector.jsonparser.properties* file into the `\current\user\agent\flexagent` folder of the connector installation folder. +1. Save the [WDATP-connector.jsonparser.properties file](http://download.microsoft.com/download/0/8/A/08A4957D-0923-4353-B25F-395EAE363E8C/WDATP-connector.jsonparser.properties) file into the connector installation folder. The -2. Save the *wdatp-connector.properties* file into a folder of your choosing. +2. Save the [WDATP-connector.properties](http://download.microsoft.com/download/3/9/C/39C703C2-487C-4C3E-AFD8-14C2253C2F12/WDATP-connector.properties) file into the `\current\user\agent\flexagent` folder of the connector installation folder. 3. Open an elevated command-line: @@ -69,7 +79,8 @@ The following steps assume that you have completed all the required steps in [Be Type in the name of the client property file. It must match the client property file. Events URL - `https://DataAccess-PRD.trafficmanager.net:444/api/alerts` + Depending on the location of your datacenter, select either the EU or the US URL:

**For EU**: https://wdatp-alertexporter-eu.securitycenter.windows.com/api/alerts/?sinceTimeUtc=$START_AT_TIME +
**For US:** https://wdatp-alertexporter-us.securitycenter.windows.com/api/alerts/?sinceTimeUtc=$START_AT_TIME Authentication Type OAuth 2 @@ -78,7 +89,8 @@ The following steps assume that you have completed all the required steps in [Be Select *wdatp-connector.properties*. Refresh Token - Paste the refresh token that your Windows Defender ATP contact provided, or run the `restutil` tool to get it. + You can use the Windows Defender ATP events URL or the restutil tool to get obtain a refresh token.
For more information on getting your refresh token using the events URL, see [Obtain a refresh token](configure-aad-windows-defender-advanced-threat-protection.md#obtain-a-refresh-token).

**To get your refresh token using the restutil tool:**
a. Open a command prompt. Navigate to `C:\ArcSightSmartConnectors\\current\bin`.

b. Type: `arcsight restutil token -config C:\ArcSightSmartConnectors_Prod\WDATP\WDATP-connector.properties`. A Web browser window will open.

c. Type in your credentials then click on the password field to let the page redirect. In the login prompt, enter your credentials.

d. A refresh token is shown in the command prompt.

e. Paste the value in the form. + diff --git a/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..19e99c915d --- /dev/null +++ b/windows/keep-secure/configure-email-notifications-windows-defender-advanced-threat-protection.md @@ -0,0 +1,63 @@ +--- +title: Configure email notifications in Windows Defender ATP +description: Send email notifications to specified recipients to receive new alerts based on severity with Windows Defender ATP on Windows 10 Enterprise, Pro, and Education editions. +keywords: email notifications, configure alert notifications, windows defender atp notifications, windows defender atp alerts, windows 10 enterprise, windows 10 education +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: mjcaparas +localizationpriority: high +--- + +# Configure email notifications + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +You can configure Windows Defender ATP to send email notifications to specified recipients for new alerts. This feature enables you to identify a group of individuals who will immediately be informed and can act on alerts based on their severity. + +> [!NOTE] +> Only users with full access can configure email notifications. + +You can set the alert severity levels that trigger notifications. When you turn enable the email notifications feature, it’s set to high and medium alerts by default. + +You can also add or remove recipients of the email notification. New recipients get notified about alerts encountered after they are added. For more information about alerts, see [View and organize the Alerts queue](alerts-queue-windows-defender-advanced-threat-protection.md). + +The email notification includes basic information about the alert and a link to the portal where you can do further investigation. + +## Set up email notifications for alerts +The email notifications feature is turned off by default. Turn it on to start receiving email notifications. + +1. On the navigation pane, select **Preferences Setup** > **Email Notifications**. +2. Toggle the setting between **On** and **Off**. +3. Select the alert severity level that you’d like your recipients to receive: + - **High** – Select this level to send notifications for high-severity alerts. + - **Medium** – Select this level to send notifications for medium-severity alerts. + - **Low** - Select this level to send notifications for low-severity alerts. +4. In **Email recipients to notify on new alerts**, type the email address then select the + sign. +5. Click **Save preferences** when you’ve completed adding all the recipients. + +Check that email recipients are able to receive the email notifications by selecting **Send test email**. All recipients in the list will receive the test email. + +## Remove email recipients + +1. Select the trash bin icon beside the email address you’d like to remove. +2. Click **Save preferences**. + +## Troubleshoot email notifications for alerts +This section lists various issues that you may encounter when using email notifications for alerts. + +**Problem:** Intended recipients report they are not getting the notifications. + +**Solution:** Make sure that the notifications are not blocked by email filters: + +1. Check that the Windows Defender ATP email notifications are not sent to the Junk Email folder. Mark them as Not junk. +2. Check that your email security product is not blocking the email notifications from Windows Defender ATP. +3. Check your email application rules that might be catching and moving your Windows Defender ATP email notifications. diff --git a/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md index b5b16faf54..c842ea1668 100644 --- a/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-mdm-windows-defender-advanced-threat-protection.md @@ -37,14 +37,14 @@ For more information on using Windows Defender ATP CSP see, [WindowsAdvancedThre b. Select **Mobile Device Management/Microsoft Intune** > **Download package** and save the .zip file. - ![Endpoint onboarding](images/atp-onboard-mdm.png) + ![Endpoint onboarding](images/atp-mdm-onboarding-package.png) 2. Extract the contents of the .zip file to a shared, read-only location that can be accessed by the network administrators who will deploy the package. You should have a file named *WindowsDefenderATP.onboarding*. 3. Use the Microsoft Intune custom configuration policy to deploy the following supported OMA-URI settings. For more information on Microsoft Intune policy settings see, [Windows 10 policy settings in Microsoft Intune](https://docs.microsoft.com/en-us/intune/deploy-use/windows-10-policy-settings-in-microsoft-intune). a. Select **Policy** > **Configuration Policies** > **Add**. - ![Microsoft Intune Configuration Policies](images/atp-intune-add-policy.png) + ![Microsoft Intune Configuration Policies](images/atp-add-intune-policy.png) b. Under **Windows**, select **Custom Configuration (Windows 10 Desktop and Mobile and later)** > **Create and Deploy a Custom Policy** > **Create Policy**. ![Microsoft Intune Configuration Policies](images/atp-intune-new-policy.png) @@ -56,7 +56,7 @@ For more information on using Windows Defender ATP CSP see, [WindowsAdvancedThre ![Microsoft Intune add OMC-URI](images/atp-intune-add-oma.png) e. Type the following values then select **OK**: - + ![Microsoft Intune save policy](images/atp-intune-oma-uri-setting.png) - **Setting name**: Type a name for the setting. diff --git a/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md index 8faa5dafdb..8b193b46c6 100644 --- a/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-sccm-windows-defender-advanced-threat-protection.md @@ -51,6 +51,10 @@ You can use System Center Configuration Manager’s existing functionality to cr a. Choose a predefined device collection to deploy the package to. +> [!NOTE] +> Onboarding couldn't be completed during Out-Of-Box Experience (OOBE). Make sure users pass OOBE after running Windows installation or upgrading. + + ### Configure sample collection settings For each endpoint, you can set a configuration value to state whether samples can be collected from the endpoint when a request is made through the Windows Defender ATP portal to submit a file for deep analysis. diff --git a/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md index a2643013c6..50903ddc26 100644 --- a/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-script-windows-defender-advanced-threat-protection.md @@ -45,7 +45,7 @@ You can also manually onboard individual endpoints to Windows Defender ATP. You 5. Press the **Enter** key or click **OK**. -For for information on how you can manually validate that the endpoint is compliant and correctly reports telemetry see, [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md). +For for information on how you can manually validate that the endpoint is compliant and correctly reports sensor data see, [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md). ## Configure sample collection settings For each endpoint, you can set a configuration value to state whether samples can be collected from the endpoint when a request is made through the Windows Defender ATP portal to submit a file for deep analysis. diff --git a/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md index 18864595b3..cca969958e 100644 --- a/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-endpoints-windows-defender-advanced-threat-protection.md @@ -21,7 +21,7 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Endpoints in your organization must be configured so that the Windows Defender ATP service can get telemetry from them. There are various methods and deployment tools that you can use to configure the endpoints in your organization. +Endpoints in your organization must be configured so that the Windows Defender ATP service can get sensor data from them. There are various methods and deployment tools that you can use to configure the endpoints in your organization. Windows Defender ATP supports the following deployment tools and methods: diff --git a/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md index c24886d168..38a3f1edc2 100644 --- a/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-proxy-internet-windows-defender-advanced-threat-protection.md @@ -22,7 +22,7 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report telemetry and communicate with the Windows Defender ATP service. +The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report sensor data and communicate with the Windows Defender ATP service. The embedded Windows Defender ATP sensor runs in system context using the LocalSystem account. The sensor uses Microsoft Windows HTTP Services (WinHTTP) to enable communication with the Windows Defender ATP cloud service. diff --git a/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md b/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md index 60e1c00469..ee6c76e9b7 100644 --- a/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/configure-splunk-windows-defender-advanced-threat-protection.md @@ -25,9 +25,9 @@ You'll need to configure Splunk so that it can consume Windows Defender ATP aler ## Before you begin -- Install the [REST API Modular Input app](https://splunkbase.splunk.com/app/1546/) in Splunk -- Contact the Windows Defender ATP team to get your refresh token -- Get the following information from your Azure Active Directory (AAD) application by selecting the **View Endpoint** on the application configuration page: +- Install the [REST API Modular Input app](https://splunkbase.splunk.com/app/1546/) in Splunk. +- Obtain your refresh token. For more information, see [Obtain a refresh token](configure-aad-windows-defender-advanced-threat-protection.md#obtain-a-refresh-token). +- Get the following information from your Azure Active Directory (AAD) application by selecting **View Endpoint** on the application configuration page: - OAuth 2 Token refresh URL - OAuth 2 Client ID - OAuth 2 Client secret @@ -56,7 +56,8 @@ You'll need to configure Splunk so that it can consume Windows Defender ATP aler Endpoint URL - https://DataAccess-PRD.trafficmanager.net:444/api/alerts + Depending on the location of your datacenter, select either the EU or the US URL:

**For EU**: https://wdatp-alertexporter-eu.securitycenter.windows.com/api/alerts
**For US:** https://wdatp-alertexporter-us.securitycenter.windows.com/api/alerts + HTTP Method diff --git a/windows/keep-secure/create-a-pagefile.md b/windows/keep-secure/create-a-pagefile.md index a8c65abbab..804d32f022 100644 --- a/windows/keep-secure/create-a-pagefile.md +++ b/windows/keep-secure/create-a-pagefile.md @@ -1,5 +1,5 @@ --- -title: Create a pagefile (Windows 10) +title: Create a pagefile - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Create a pagefile security policy setting. ms.assetid: dc087897-459d-414b-abe0-cd86c8dccdea ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Create a pagefile +# Create a pagefile - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md b/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md index 06392494c0..4bd92ff06f 100644 --- a/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md +++ b/windows/keep-secure/create-and-verify-an-efs-dra-certificate.md @@ -19,8 +19,8 @@ If you don’t already have an EFS DRA certificate, you’ll need to create and The recovery process included in this topic only works for desktop devices. WIP deletes the data on Windows 10 Mobile devices. ->**Important**
-If you already have an EFS DRA certificate for your organization, you can skip creating a new one. Just use your current EFS DRA certificate in your policy. For more info about when to use a PKI and the general strategy you should use to deploy DRA certificates, see the [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) article on TechNet. For more general info about EFS protection, see [Protecting Data by Using EFS to Encrypt Hard Drives](https://msdn.microsoft.com/library/cc875821.aspx).

If your DRA certificate has expired, you won’t be able to encrypt your files with it. To fix this, you'll need to create a new certificate, using the steps in this topic, and then deploy it through policy. +>[!IMPORTANT] +>If you already have an EFS DRA certificate for your organization, you can skip creating a new one. Just use your current EFS DRA certificate in your policy. For more info about when to use a PKI and the general strategy you should use to deploy DRA certificates, see the [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) article on TechNet. For more general info about EFS protection, see [Protecting Data by Using EFS to Encrypt Hard Drives](https://msdn.microsoft.com/library/cc875821.aspx).

If your DRA certificate has expired, you won’t be able to encrypt your files with it. To fix this, you'll need to create a new certificate, using the steps in this topic, and then deploy it through policy. **To manually create an EFS DRA certificate** @@ -36,13 +36,13 @@ If you already have an EFS DRA certificate for your organization, you can skip c The EFSDRA.cer and EFSDRA.pfx files are created in the location you specified in Step 1. - >**Important**
- Because the private keys in your DRA .pfx files can be used to decrypt any WIP file, you must protect them accordingly. We highly recommend storing these files offline, keeping copies on a smart card with strong protection for normal use and master copies in a secured physical location. + >[!IMPORTANT] + >Because the private keys in your DRA .pfx files can be used to decrypt any WIP file, you must protect them accordingly. We highly recommend storing these files offline, keeping copies on a smart card with strong protection for normal use and master copies in a secured physical location. 4. Add your EFS DRA certificate to your WIP policy using a deployment tool, such as Microsoft Intune or System Center Configuration Manager. - >**Note**
- To add your EFS DRA certificate to your policy by using Microsoft Intune, see the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) topic. To add your EFS DRA certificate to your policy by using System Center Configuration Manager, see the [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) topic. + >[!NOTE] + >To add your EFS DRA certificate to your policy by using Microsoft Intune, see the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) topic. To add your EFS DRA certificate to your policy by using System Center Configuration Manager, see the [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) topic. **To verify your data recovery certificate is correctly set up on a WIP client computer** @@ -73,7 +73,8 @@ If you already have an EFS DRA certificate for your organization, you can skip c **To quickly recover WIP-protected desktop data after unenrollment**
It's possible that you might revoke data from an unenrolled device only to later want to restore it all. This can happen in the case of a missing device being returned or if an unenrolled employee enrolls again. If the employee enrolls again using the original user profile, and the revoked key store is still on the device, all of the revoked data can be restored at once, by following these steps. ->**Important**
To maintain control over your enterprise data, and to be able to revoke again in the future, you must only perform this process after the employee has re-enrolled the device. +>[!IMPORTANT] +>To maintain control over your enterprise data, and to be able to revoke again in the future, you must only perform this process after the employee has re-enrolled the device. 1. Have your employee sign in to the unenrolled device, open a command prompt, and type: @@ -93,6 +94,9 @@ It's possible that you might revoke data from an unenrolled device only to later The Windows Credential service automatically recovers the employee’s previously revoked keys from the `Recovery\Input` location. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [Security Watch Deploying EFS: Part 1](https://technet.microsoft.com/magazine/2007.02.securitywatch.aspx) diff --git a/windows/keep-secure/create-applocker-default-rules.md b/windows/keep-secure/create-applocker-default-rules.md index 930d2bc4d7..6f5b802707 100644 --- a/windows/keep-secure/create-applocker-default-rules.md +++ b/windows/keep-secure/create-applocker-default-rules.md @@ -27,3 +27,7 @@ You can perform this task by using the Group Policy Management Console for an Ap 1. Open the AppLocker console. 2. Right-click the appropriate rule type for which you want to automatically generate default rules. You can automatically generate rules for executable, Windows Installer, script rules and Packaged app rules. 3. Click **Create Default Rules**. + +## Related topics + +- [Understanding AppLocker default rules](understanding-applocker-default-rules.md) diff --git a/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md b/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md index 45ed365fe2..64602d97ae 100644 --- a/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md +++ b/windows/keep-secure/create-vpn-and-wip-policy-using-intune.md @@ -111,6 +111,10 @@ The final step to making your VPN configuration work with WIP, is to link your t 3. After you've picked all of the employees and groups that should get the policy, click **OK**. The policy is deployed to the selected users' devices. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + + diff --git a/windows/keep-secure/create-wip-policy-using-intune.md b/windows/keep-secure/create-wip-policy-using-intune.md index 44bf2930a2..f0c94d6dba 100644 --- a/windows/keep-secure/create-wip-policy-using-intune.md +++ b/windows/keep-secure/create-wip-policy-using-intune.md @@ -44,10 +44,11 @@ During the policy-creation process in Intune, you can choose the apps you want t The steps to add your app rules are based on the type of rule template being applied. You can add a store app (also known as a Universal Windows Platform (UWP) app), a signed Windows desktop app, or an AppLocker policy file. ->**Important**
WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App Rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. +>[!IMPORTANT] +>WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App Rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. ->**Note**
-If you want to use **File hash** or **Path** rules, instead of **Publisher** rules, you must follow the steps in the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. +>[!NOTE] +>If you want to use **File hash** or **Path** rules, instead of **Publisher** rules, you must follow the steps in the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. #### Add a store app rule to your policy For this example, we’re going to add Microsoft OneNote, a store app, to the **App Rules** list. @@ -76,8 +77,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for Store apps without installing them** 1. Go to the [Windows Store for Business](https://go.microsoft.com/fwlink/p/?LinkID=722910) website, and find your app. For example, *Microsoft OneNote*. - >**Note**
- If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. + >[!NOTE] + >If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) topic. 2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl, and you'd copy the ID value, `9wzdncrfhvjl`. @@ -94,8 +95,10 @@ If you don't know the publisher or product name, you can find them for both desk 4. Copy the `publisherCertificateName` value into the **Publisher Name** box and copy the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
- The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`.

For example: + >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`. + + For example: ```json { @@ -106,7 +109,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for apps installed on Windows 10 mobile phones** 1. If you need to add mobile apps that aren't distributed through the Store for Business, you must use the **Windows Device Portal** feature. - >**Note**
Your PC and phone must be on the same wireless network. + >[!NOTE] + >Your PC and phone must be on the same wireless network. 2. On the Windows Phone, go to **Settings**, choose **Update & security**, and then choose **For developers**. @@ -122,8 +126,10 @@ If you don't know the publisher or product name, you can find them for both desk 8. Copy the `publisherCertificateName` value and paste it into the **Publisher Name** box and the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
- The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`.

For example:
+ >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as `CN=` followed by the `windowsPhoneLegacyId`. + + For example: ``` json { @@ -348,9 +354,9 @@ After you've added a protection mode to your apps, you'll need to decide where t There are no default locations included with WIP, you must add each of your network locations. This area applies to any network endpoint device that gets an IP address in your enterprise’s range and is also bound to one of your enterprise domains, including SMB shares. Local file system locations should just maintain encryption (for example, on local NTFS, FAT, ExFAT). ->**Important** -- Every WIP policy should include policy that defines your enterprise network locations. -- Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. +>[!IMPORTANT] +>Every WIP policy should include policy that defines your enterprise network locations.
+>Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. **To define where your protected apps can find and send enterprise data on you network** @@ -465,6 +471,9 @@ After you've decided where your protected apps can access enterprise data on you 2. Click **Save Policy**. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) - [Deploy your Windows Information Protection (WIP) policy](deploy-wip-policy-using-intune.md) diff --git a/windows/keep-secure/create-wip-policy-using-sccm.md b/windows/keep-secure/create-wip-policy-using-sccm.md index 468b8308d4..350d5e1f54 100644 --- a/windows/keep-secure/create-wip-policy-using-sccm.md +++ b/windows/keep-secure/create-wip-policy-using-sccm.md @@ -20,8 +20,8 @@ localizationpriority: high System Center Configuration Manager helps you create and deploy your Windows Information Protection (WIP) policy, including letting you choose your protected apps, your WIP-protection mode, and how to find enterprise data on the network. ->**Important**
-If you previously created a WIP policy using System Center Configuration Manager version 1511 or 1602, you’ll need to recreate it using version 1606 or later. Editing a WIP policy created in version 1511 or 1602 is not supported in later versions and there is no migration path between older and newer WIP policies. +>[!IMPORTANT] +>If you previously created a WIP policy using System Center Configuration Manager version 1511 or 1602, you’ll need to recreate it using version 1606 or later. Editing a WIP policy created in version 1511 or 1602 is not supported in later versions and there is no migration path between older and newer WIP policies. ## Add a WIP policy After you’ve installed and set up System Center Configuration Manager for your organization, you must create a configuration item for WIP, which in turn becomes your WIP policy. @@ -62,8 +62,8 @@ During the policy-creation process in System Center Configuration Manager, you c The steps to add your app rules are based on the type of rule template being applied. You can add a store app (also known as a Universal Windows Platform (UWP) app), a signed Windows desktop app, or an AppLocker policy file. ->**Important**
-WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. +>[!IMPORTANT] +>WIP-aware apps are expected to prevent enterprise data from going to unprotected network locations and to avoid encrypting personal data. On the other hand, WIP-unaware apps might not respect the corporate network boundary, and WIP-unaware apps will encrypt all files they create or modify. This means that they could encrypt personal data and cause data loss during the revocation process.

Care must be taken to get a support statement from the software provider that their app is safe with WIP before adding it to your **App rules** list. If you don’t get this statement, it’s possible that you could experience app compat issues due to an app losing the ability to access a necessary file after revocation. #### Add a store app rule to your policy For this example, we’re going to add Microsoft OneNote, a store app, to the **App Rules** list. @@ -94,8 +94,8 @@ If you don't know the publisher or product name, you can find them for both desk 1. Go to the [Windows Store for Business](https://go.microsoft.com/fwlink/p/?LinkID=722910) website, and find your app. For example, Microsoft OneNote. - >**Note**
- If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the steps in the [Add an AppLocker policy file](#add-an-applocker-policy-file) section. + >[!NOTE] + >If your app is already installed on desktop devices, you can use the AppLocker local security policy MMC snap-in to gather the info for adding the app to the protected apps list. For info about how to do this, see the steps in the [Add an AppLocker policy file](#add-an-applocker-policy-file) section. 2. Copy the ID value from the app URL. For example, Microsoft OneNote's ID URL is https://www.microsoft.com/store/apps/onenote/9wzdncrfhvjl, and you'd copy the ID value, `9wzdncrfhvjl`. @@ -112,8 +112,9 @@ If you don't know the publisher or product name, you can find them for both desk 4. Copy the `publisherCertificateName` value and paste them into the **Publisher Name** box, copy the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
- The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`.

For example:

+ >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`. + >For example:

```json { @@ -124,8 +125,8 @@ If you don't know the publisher or product name, you can find them for both desk **To find the Publisher and Product Name values for apps installed on Windows 10 mobile phones** 1. If you need to add mobile apps that aren't distributed through the Store for Business, you must use the **Windows Device Portal** feature. - >**Note**
- Your PC and phone must be on the same wireless network. + >[!NOTE] + >Your PC and phone must be on the same wireless network. 2. On the Windows Phone, go to **Settings**, choose **Update & security**, and then choose **For developers**. @@ -141,8 +142,9 @@ If you don't know the publisher or product name, you can find them for both desk 8. Copy the `publisherCertificateName` value and paste it into the **Publisher Name** box and the `packageIdentityName` value into the **Product Name** box of Intune. - >**Important**
- The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`.

For example:

+ >[!IMPORTANT] + >The JSON file might also return a `windowsPhoneLegacyId` value for both the **Publisher Name** and **Product Name** boxes. This means that you have an app that’s using a XAP package and that you must set the **Product Name** as `windowsPhoneLegacyId`, and set the **Publisher Name** as “CN=” followed by the `windowsPhoneLegacyId`. + >For example:

```json { @@ -369,9 +371,9 @@ After you've added a protection mode to your apps, you'll need to decide where t There are no default locations included with WIP, you must add each of your network locations. This area applies to any network endpoint device that gets an IP address in your enterprise’s range and is also bound to one of your enterprise domains, including SMB shares. Local file system locations should just maintain encryption (for example, on local NTFS, FAT, ExFAT). ->**Important**
-- Every WIP policy should include policy that defines your enterprise network locations. -- Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. +>[!IMPORTANT] +>Every WIP policy should include policy that defines your enterprise network locations.
+>Classless Inter-Domain Routing (CIDR) notation isn’t supported for WIP configurations. **To define where your protected apps can find and send enterprise data on you network** @@ -492,13 +494,15 @@ After you've finished configuring your policy, you can review all of your info o A progress bar appears, showing you progress for your policy. After it's done, click **Close** to return to the **Configuration Items** page. - ## Deploy the WIP policy After you’ve created your WIP policy, you'll need to deploy it to your organization's devices. For info about your deployment options, see these topics: - [Operations and Maintenance for Compliance Settings in Configuration Manager](https://go.microsoft.com/fwlink/p/?LinkId=708224) - [How to Create Configuration Baselines for Compliance Settings in Configuration Manager]( https://go.microsoft.com/fwlink/p/?LinkId=708225) - [How to Deploy Configuration Baselines in Configuration Manager]( https://go.microsoft.com/fwlink/p/?LinkId=708226) +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [System Center Configuration Manager and Endpoint Protection (Version 1606)](https://go.microsoft.com/fwlink/p/?LinkId=717372) - [TechNet documentation for Configuration Manager](https://go.microsoft.com/fwlink/p/?LinkId=691623) diff --git a/windows/keep-secure/create-wmi-filters-for-the-gpo.md b/windows/keep-secure/create-wmi-filters-for-the-gpo.md index 3cbb5be9a5..80474a70be 100644 --- a/windows/keep-secure/create-wmi-filters-for-the-gpo.md +++ b/windows/keep-secure/create-wmi-filters-for-the-gpo.md @@ -51,7 +51,7 @@ First, create the WMI filter and configure it to look for a specified version (o select * from Win32_OperatingSystem where Version like "6.%" ``` - This query will return **true** for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". To specify multiple versions, combine them with or, as shown in the following: + This query will return **true** for devices running at least Windows Vista and Windows Server 2008. To set a filter for just Windows 8 and Windows Server 2012, use "6.2%". For Windows 10 and Windows Server 2016, use "10.%". To specify multiple versions, combine them with or, as shown in the following: ``` syntax ... where Version like "6.1%" or Version like "6.2%" @@ -65,16 +65,16 @@ First, create the WMI filter and configure it to look for a specified version (o ... where ProductType="1" or ProductType="3" ``` - The following complete query returns **true** for all devices running Windows 8, and returns **false** for any server operating system or any other client operating system. + The following complete query returns **true** for all devices running Windows 10, and returns **false** for any server operating system or any other client operating system. ``` syntax - select * from Win32_OperatingSystem where Version like "6.2%" and ProductType="1" + select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1" ``` - The following query returns **true** for any device running Windows Server 2012, except domain controllers: + The following query returns **true** for any device running Windows Server 2016, except domain controllers: ``` syntax - select * from Win32_OperatingSystem where Version like "6.2%" and ProductType="3" + select * from Win32_OperatingSystem where Version like "10.%" and ProductType="3" ``` 9. Click **OK** to save the query to the filter. diff --git a/windows/keep-secure/credential-guard.md b/windows/keep-secure/credential-guard.md index 7045d584b4..c038a4d588 100644 --- a/windows/keep-secure/credential-guard.md +++ b/windows/keep-secure/credential-guard.md @@ -123,7 +123,7 @@ To enforce processing of the group policy, you can run ```gpupdate /force```. If you don't use Group Policy, you can enable Credential Guard by using the registry. Credential Guard uses virtualization-based security features which have to be enabled first on some operating systems. -##### Add the virtualization-based security features +#### Add the virtualization-based security features Starting with Windows 10, version 1607 and Windows Server 2016, enabling Windows features to use virtualization-based security is not necessary and this step can be skipped. @@ -156,7 +156,7 @@ You can do this by using either the Control Panel or the Deployment Image Servic > [!NOTE] > You can also add these features to an online image by using either DISM or Configuration Manager. -##### Enable virtualization-based security and Credential Guard +#### Enable virtualization-based security and Credential Guard 1. Open Registry Editor. 2. Enable virtualization-based security: @@ -195,10 +195,9 @@ Requirements for running Credential Guard in Hyper-V virtual machines - The Hyper-V host must have an IOMMU, and run at least Windows Server 2016 or Windows 10 version 1607. - The Hyper-V virtual machine must be Generation 2, have an enabled virtual TPM, and running at least Windows Server 2016 or Windows 10. - ### Remove Credential Guard -If you have to remove Credential Guard on a PC, you need to do the following: +If you have to remove Credential Guard on a PC, you can use the following set of procedures, or you can [use the Device Guard and Credential Guard hardware readiness tool](#turn-off-with-hardware-readiness-tool). 1. If you used Group Policy, disable the Group Policy setting that you used to enable Credential Guard (**Computer Configuration** -> **Administrative Templates** -> **System** -> **Device Guard** -> **Turn on Virtualization Based Security**). 2. Delete the following registry settings: @@ -242,9 +241,10 @@ If you have to remove Credential Guard on a PC, you need to do the following: For more info on virtualization-based security and Device Guard, see [Device Guard deployment guide](device-guard-deployment-guide.md). -**Turn off Credential Guard by using the Device Guard and Credential Guard hardware readiness tool** + +#### Turn off Credential Guard by using the Device Guard and Credential Guard hardware readiness tool -You can also enable Credential Guard by using the [Device Guard and Credential Guard hardware readiness tool](https://www.microsoft.com/download/details.aspx?id=53337). +You can also disable Credential Guard by using the [Device Guard and Credential Guard hardware readiness tool](https://www.microsoft.com/download/details.aspx?id=53337). ``` DG_Readiness_Tool_v2.0.ps1 -Disable -AutoReboot @@ -917,6 +917,7 @@ write-host $tmp -Foreground Red - [Isolated User Mode Processes and Features in Windows 10 with Logan Gabriel (Channel 9)](http://channel9.msdn.com/Blogs/Seth-Juarez/Isolated-User-Mode-Processes-and-Features-in-Windows-10-with-Logan-Gabriel) - [More on Processes and Features in Windows 10 Isolated User Mode with Dave Probert (Channel 9)](https://channel9.msdn.com/Blogs/Seth-Juarez/More-on-Processes-and-Features-in-Windows-10-Isolated-User-Mode-with-Dave-Probert) - [Mitigating Credential Theft using the Windows 10 Isolated User Mode (Channel 9)](https://channel9.msdn.com/Blogs/Seth-Juarez/Mitigating-Credential-Theft-using-the-Windows-10-Isolated-User-Mode) +- [Protecting network passwords with Windows 10 Credential Guard](https://www.microsoft.com/itshowcase/Article/Content/831/Protecting-network-passwords-with-Windows-10-Credential-Guard) - [Enabling Strict KDC Validation in Windows Kerberos](http://www.microsoft.com/download/details.aspx?id=6382) - [What's New in Kerberos Authentication for Windows Server 2012](http://technet.microsoft.com/library/hh831747.aspx) - [Authentication Mechanism Assurance for AD DS in Windows Server 2008 R2 Step-by-Step Guide](http://technet.microsoft.com/library/dd378897.aspx) diff --git a/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md b/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md index 112382f305..990e0ac396 100644 --- a/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/dashboard-windows-defender-advanced-threat-protection.md @@ -56,10 +56,12 @@ Click the name of the machine to see details about that machine. For more inform You can also click **Machines view** at the top of the tile to go directly to the **Machines view**, sorted by the number of active alerts. For more information see, [Investigate machines in the Windows Defender Advanced Threat Protection Machines view](investigate-machines-windows-defender-advanced-threat-protection.md). ## Status -The **Status** tile informs you if the service is active and running and the unique number of machines (endpoints) reporting over the past 30 days. +The **Status** tile informs you if the service is active or if there are issues and the unique number of machines (endpoints) reporting to the service over the past 30 days. ![The Status tile shows an overall indicator of the service and the total number of machines reporting to the service](images/status-tile.png) +For more information on the service status, see [Check the Windows Defender ATP service status](service-status-windows-defender-advanced-threat-protection.md). + ## Machines reporting The **Machines reporting** tile shows a bar graph that represents the number of machines reporting alerts daily. Hover over individual bars on the graph to see the exact number of machines reporting in each day. diff --git a/windows/keep-secure/deploy-wip-policy-using-intune.md b/windows/keep-secure/deploy-wip-policy-using-intune.md index 075fba2473..c9977fec21 100644 --- a/windows/keep-secure/deploy-wip-policy-using-intune.md +++ b/windows/keep-secure/deploy-wip-policy-using-intune.md @@ -33,6 +33,9 @@ The added people move to the **Selected Groups** list on the right-hand pane. 3. After you've picked all of the employees and groups that should get the policy, click **OK**.

The policy is deployed to the selected users' devices. +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). + ## Related topics - [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) - [Add apps to your Windows Information Protection (WIP) policy by using the Microsoft Intune custom URI functionality](add-apps-to-protected-list-using-custom-uri.md) diff --git a/windows/keep-secure/enlightened-microsoft-apps-and-wip.md b/windows/keep-secure/enlightened-microsoft-apps-and-wip.md index f6b1ea7f6e..f2e1b3c91c 100644 --- a/windows/keep-secure/enlightened-microsoft-apps-and-wip.md +++ b/windows/keep-secure/enlightened-microsoft-apps-and-wip.md @@ -78,4 +78,7 @@ You can add any or all of the enlightened Microsoft apps to your allowed apps li |Microsoft OneDrive |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
**Binary Name:** onedrive.exe
**App Type:** Desktop app| |Notepad |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
**Binary Name:** notepad.exe
**App Type:** Desktop app | |Microsoft Paint |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
**Binary Name:** mspaint.exe
**App Type:** Desktop app | -|Microsoft Remote Desktop |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
**Binary Name:** mstsc.exe
**App Type:** Desktop app | \ No newline at end of file +|Microsoft Remote Desktop |**Publisher:** `O=Microsoft Corporation, L=Redmond, S=Washington, C=US`
**Binary Name:** mstsc.exe
**App Type:** Desktop app | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md b/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md index 6476c88d16..8f914cd9f0 100644 --- a/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md +++ b/windows/keep-secure/export-an-applocker-policy-from-a-gpo.md @@ -16,7 +16,7 @@ author: brianlic-msft This topic for IT professionals describes the steps to export an AppLocker policy from a Group Policy Object (GPO) so that it can be modified. -Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference device +Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference device. To complete this procedure, you must have the **Edit Setting** permission to edit a GPO. By default, members of the **Domain Admins** group, the **Enterprise Admins** group, and the **Group Policy Creator Owners** group have this permission. diff --git a/windows/keep-secure/guidance-and-best-practices-wip.md b/windows/keep-secure/guidance-and-best-practices-wip.md index b91386f0c0..ff64be6d0f 100644 --- a/windows/keep-secure/guidance-and-best-practices-wip.md +++ b/windows/keep-secure/guidance-and-best-practices-wip.md @@ -22,8 +22,10 @@ This section includes info about the enlightened Microsoft apps, including how t ## In this section |Topic |Description | |------|------------| -|[Windows Information Protection (WIP) overview](wip-enterprise-overview.md) |High-level overview info about why to use WIP, the enterprise scenarios, and how to turn it off. | -|[Mandatory settings for Windows Information Protection (WIP)](mandatory-settings-for-wip.md) |A list of all of the tasks and settings that are required for the operating system to turn on Windows Information Protection (WIP), formerly known as enterprise data protection (EDP), in your enterprise. | -|[Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) |Learn the difference between enlightened and unenlightened apps, and then review the list of enlightened apps provided by Microsoft along with the text you will need to use to add them to your allowed apps list. | -|[Testing scenarios for Windows Information Protection (WIP)](testing-scenarios-for-wip.md) |We've come up with a list of suggested testing scenarios that you can use to test WIP in your company. | -|[Limitations while using Windows Information Protection (WIP)](limitations-with-wip.md) |The most common problems you might encounter while using Windows Information Protection (WIP). | \ No newline at end of file +|[Enlightened apps for use with Windows Information Protection (WIP)](enlightened-microsoft-apps-and-wip.md) |Learn the difference between enlightened and unenlightened apps, and then review the list of enlightened apps provided by Microsoft along with the text you will need to use to add them to your allowed apps list. | +|[Unenlightened and enlightened app behavior while using Windows Information Protection (WIP)](app-behavior-with-wip.md) |Learn the difference between enlightened and unenlightened app behaviors. | +|[Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP)](recommended-network-definitions-for-wip.md) |Recommended additions for the Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). | +|[Using Outlook Web Access with Windows Information Protection (WIP)](using-owa-with-wip.md) |Options for using Outlook Web Access (OWA) with Windows Information Protection (WIP). | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md b/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md new file mode 100644 index 0000000000..032e04c1ad --- /dev/null +++ b/windows/keep-secure/how-to-use-single-sign-on-sso-over-vpn-and-wi-fi-connections.md @@ -0,0 +1,94 @@ +--- +title: How to use single sign on (SSO) over VPN and Wi-Fi connections (Windows 10) +description: Explains requirements to enable Single Sign-On (SSO) to on-premises domain resources over WiFi or VPN connections. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: justinha +--- + +# How to use single sign on (SSO) over VPN and Wi-Fi connections + +This topic explains requirements to enable Single Sign-On (SSO) to on-premises domain resources over WiFi or VPN connections. The scenario is: + +- You connect to a network using Wi-Fi or VPN. +- You want to use the credentials that you use for the WiFi or VPN authentication to also authenticate requests to access a domain resource you are connecting to, without being prompted for your domain credentials separately. + +For example, you want to connect to a corporate network and access an internal website that requires Windows integrated authentication. + +At a high level, the way this works is that the credentials that are used for the connection authentication are put in Credential Manager as the default credentials for the logon session. +Credential Manager is a place where credentials in the OS are can be stored for specific domain resources based on the targetname of the resource. +For VPN, the VPN stack saves its credential as the session default. +For WiFi, EAP does it. + +The credentials are put in Credential Manager as a "`*Session`" credential. +A "`*Session`" credential implies that it is valid for the current user session. +The credentials are also cleaned up when the WiFi or VPN connection is disconnected. + +When the user tries to access a domain resource, using Edge for example, Edge has the right Enterprise Authentication capability so [WinInet](https://msdn.microsoft.com/library/windows/desktop/aa385483.aspx) can release the credentials that it gets from the Credential Manager to the SSP that is requesting it. +For more information about the Enterprise Authentication capability, see [App capability declarations](https://msdn.microsoft.com/windows/uwp/packaging/app-capability-declarations). + +The local security authority will look at the device application, such as a Universal Windows Platform (UWP) application, to see if it has the right capability. +If the app is not UWP, it does not matter. +But if it is a UWP app, it will look at the device capability for Enterprise Authentication. +If it does have that capability and if the resource that you are trying to access is in the Intranet zone in the Internet Options (ZoneMap), then the credential will be released. +This behavior helps prevent credentials from being misused by untrusted third parties. + +## Intranet zone + +For the Intranet zone, by default it only allows single-label names, such as Http://finance. +If the resource that needs to be accessed has multiple domain labels, then the workaround is to use the [Registry CSP](https://msdn.microsoft.com/library/windows/hardware/dn904964.aspx). + +### Setting the ZoneMap + +The ZoneMap is controlled using a registry that can be set through MDM. +By default, single-label names such as http://finance are already in the intranet zone. +For multi-label names, such as http://finance.net, the ZoneMap needs to be updated. + +## MDM Policy + +OMA URI example: + +./Vendor/MSFT/Registry/HKU/S-1-5-21-2702878673-795188819-444038987-2781/Software/Microsoft/Windows/CurrentVersion/Internet%20Settings/ZoneMap/Domains/``/* as an Integer Value of 1 for each of the domains that you want to SSO into from your device. This adds the specified domains to the Intranet Zone of the Edge browser. + +## Credential requirements + +For VPN, the following types of credentials will be added to credential manager after authentication: + +- Username and password +- Certificate-based authentication: + - TPM KSP Certificate + - Software KSP Certificates + - Smart Card Certificate + - Passport for Work Certificate + +The username should also include a domain that can be reached over the connection (VPN or WiFi). + +## User certificate templates + +If the credentials are certificate-based, then the elements in the following table need to be configured for the certificate templates to ensure they can also be used for Kerberos client authentication. + +| Template element | Configuration | +|------------------|---------------| +| SubjectName | The user’s distinguished name (DN) where the domain components of the distinguished name reflects the internal DNS namespace when the SubjectAlternativeName does not have the fully qualified UPN required to find the domain controller.
This requirement is particularly relevant in multi-forest environments as it ensures a domain controller can be located. | +| SubjectAlternativeName | The user’s fully qualified UPN where a domain name component of the user’s UPN matches the organizations internal domain’s DNS namespace.
This requirement is particularly relevant in multi-forest environments as it ensures a domain controller can be located when the SubjectName does not have the DN required to find the domain controller. | +| Key Storage Provider (KSP) | If the device is joined to Azure AD, a discrete SSO certificate is used. | +| EnhancedKeyUsage | One or more of the following EKUs is required:
- Client Authentication (for the VPN)
- EAP Filtering OID (for Windows Hello for Business)
- SmartCardLogon (for Azure AD joined devices)
If the domain controllers require smart card EKU either:
- SmartCardLogon
- id-pkinit-KPClientAuth (1.3.6.1.5.2.3.4)
Otherwise:
- TLS/SSL Client Authentication (1.3.6.1.5.5.7.3.2) | + +## NDES server configuration + +The NDES server is required to be configured so that incoming SCEP requests can be mapped to the correct template to be used. +For more information, see [Configure certificate infrastructure for SCEP](https://docs.microsoft.com/en-us/intune/deploy-use/Configure-certificate-infrastructure-for-scep). + +## Active Directory requirements + +You need IP connectivity to a DNS server and domain controller over the network interface so that authentication can succeed as well. + +The domain controllers will need to have appropriate KDC certificates for the client to trust them as domain controllers, and since phones are not domain-joined, the root CA of the KDC’s certificate must be in the Third-Party Root CA or Smart Card Trusted Roots store. + +The domain controllers must be using certificates based on the updated KDC certificate template Kerberos Authentication. +This is because Windows 10 Mobile requires strict KDC validation to be enabled. +This requires that all authenticating domain controllers run Windows Server 2016, or you'll need to enable strict KDC validation on domain controllers that run previous versions of Windows Server. +For more information, see [Enabling Strict KDC Validation in Windows Kerberos](https://www.microsoft.com/download/details.aspx?id=6382). + diff --git a/windows/keep-secure/images/atp-intune-add-policy.png b/windows/keep-secure/images/atp-intune-add-policy.png deleted file mode 100644 index 570ab0a6889ead424e9909c6e85a0c56c559dcd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118996 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

o_h2)Wwr$})T@p`Xoj8L> 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 literal 10357 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 aY4GKT87*(h|NK=Dq_1;RyI9jc?0*56mY+%h diff --git a/windows/keep-secure/implement-microsoft-passport-in-your-organization.md b/windows/keep-secure/implement-microsoft-passport-in-your-organization.md index e4de8535f1..31ea44aebd 100644 --- a/windows/keep-secure/implement-microsoft-passport-in-your-organization.md +++ b/windows/keep-secure/implement-microsoft-passport-in-your-organization.md @@ -20,15 +20,15 @@ localizationpriority: high You can create a Group Policy or mobile device management (MDM) policy that will implement Windows Hello on devices running Windows 10. >[!IMPORTANT] ->The Group Policy setting **Turn on PIN sign-in** does not apply to Windows Hello for Business. It still prevents or enables the creation of a convenience PIN for Windows 10, version 1507 and 1511. +>The Group Policy setting **Turn on PIN sign-in** does not apply to Windows Hello for Business. Use the **Turn on PIN sign-in** setting to allow or deny the use of a convenience PIN for Windows 10, version 1607. > ->Beginning in version 1607, Windows Hello as a convenience PIN is disabled by default on all domain-joined computers. To enable a convenience PIN for Windows 10, version 1607, enable the Group Policy setting **Turn on convenience PIN sign-in**. +>Beginning in version 1607, Windows Hello as a convenience PIN is disabled by default on all domain-joined computers. To enable a convenience PIN for Windows 10, version 1607, enable the Group Policy setting **Turn on convenience PIN sign-in**. Learn more in the blog post [Changes to Convenience PIN/Windows Hello Behavior in Windows 10, version 1607](https://blogs.technet.microsoft.com/ash/2016/08/13/changes-to-convenience-pin-and-thus-windows-hello-behaviour-in-windows-10-version-1607/). > >Use **Windows Hello for Business** policy settings to manage PINs for Windows Hello for Business.   ## Group Policy settings for Windows Hello for Business -The following table lists the Group Policy settings that you can configure for Hello use in your workplace. These policy settings are available in both **User configuration** and **Computer Configuration** under **Policies** > **Administrative Templates** > **Windows Components** > **Windows Hello for Business**. +The following table lists the Group Policy settings that you can configure for Hello use in your workplace. These policy settings are available in both **User configuration** and **Computer Configuration** under **Policies** > **Administrative Templates** > **Windows Components** > **Windows Hello for Business**. Be aware that not all settings are in both places. @@ -376,4 +376,4 @@ The PIN is managed using the same Windows Hello for Business policies that you c [Event ID 300 - Windows Hello successfully created](passport-event-300.md) [Windows Hello biometrics in the enterprise](windows-hello-in-enterprise.md) -  \ No newline at end of file +  diff --git a/windows/keep-secure/index.md b/windows/keep-secure/index.md index 3e1ed57822..1307bc7110 100644 --- a/windows/keep-secure/index.md +++ b/windows/keep-secure/index.md @@ -17,19 +17,19 @@ Learn about keeping Windows 10 and Windows 10 Mobile secure. | Topic | Description | | - | - | | [Block untrusted fonts in an enterprise](block-untrusted-fonts-in-enterprise.md) | To help protect your company from attacks which may originate from untrusted or attacker controlled font files, we’ve created the Blocking Untrusted Fonts feature. Using this feature, you can turn on a global setting that stops your employees from loading untrusted fonts processed using the Graphics Device Interface (GDI) onto your network. Untrusted fonts are any font installed outside of the %windir%/Fonts directory. Blocking untrusted fonts helps prevent both remote (web-based or email-based) and local EOP attacks that can happen during the font file-parsing process. | -| [Device Guard certification and compliance](device-guard-certification-and-compliance.md) | Device Guard is a combination of hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications. If the app isn’t trusted it can’t run, period. It also means that even if an attacker manages to get control of the Windows kernel, he or she will be much less likely to be able to run malicious executable code after the computer restarts because of how decisions are made about what can run and when. | | [Manage identity verification using Windows Hello for Business](manage-identity-verification-using-microsoft-passport.md) | In Windows 10, Windows Hello replaces passwords with strong two-factor authentication on PCs and mobile devices. This authentication consists of a new type of user credential that is tied to a device and a biometric or PIN. | | [Configure S/MIME for Windows 10 and Windows 10 Mobile](configure-s-mime.md) | In Windows 10, S/MIME lets users encrypt outgoing messages and attachments so that only intended recipients who have a digital identification (ID), also known as a certificate, can read them. Users can digitally sign a message, which provides the recipients with a way to verify the identity of the sender and that the message hasn't been tampered with. | | [Install digital certificates on Windows 10 Mobile](installing-digital-certificates-on-windows-10-mobile.md) | Digital certificates bind the identity of a user or computer to a pair of keys that can be used to encrypt and sign digital information. Certificates are issued by a certification authority (CA) that vouches for the identity of the certificate holder, and they enable secure client communications with websites and services. | -| [Protect derived domain credentials with Credential Guard](credential-guard.md) | Introduced in Windows 10 Enterprise, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard prevents these attacks by protecting NTLM password hashes and Kerberos Ticket Granting Tickets. | +| [Device Guard deployment guide](device-guard-deployment-guide.md) | Device Guard is a combination of hardware and software security features that, when configured together, will lock a device down so that it can only run trusted applications. If the app isn’t trusted it can’t run, period. It also means that even if an attacker manages to get control of the Windows kernel, he or she will be much less likely to be able to run malicious executable code after the computer restarts because of how decisions are made about what can run and when. | +| [Protect derived domain credentials with Credential Guard](credential-guard.md) | Introduced in Windows 10 Enterprise, Credential Guard uses virtualization-based security to isolate secrets so that only privileged system software can access them. Unauthorized access to these secrets can lead to credential theft attacks, such as Pass-the-Hash or Pass-The-Ticket. Credential Guard helps prevent these attacks by protecting NTLM password hashes and Kerberos Ticket Granting Tickets. | | [Protect Remote Desktop credentials with Remote Credential Guard](remote-credential-guard.md) | Remote Credential Guard helps you protect your credentials over a Remote Desktop connection by redirecting the Kerberos requests back to the device that's requesting the connection. | -| [Protect your enterprise data using Windows Information Protection (WIP)](protect-enterprise-data-using-wip.md) | With the increase of employee-owned devices in the enterprise, there’s also an increasing risk of accidental data leak through apps and services, like email, social media, and the public cloud, which are outside of the enterprise’s control. For example, when an employee sends the latest engineering pictures from their personal email account, copies and pastes product info into a tweet, or saves an in-progress sales report to their public cloud storage. | +| [Protect your enterprise data using Windows Information Protection (WIP)](protect-enterprise-data-using-wip.md) | With the increase of employee-owned devices in the enterprise, there’s also an increasing risk of accidental data leak through apps and services, like email, social media, and the public cloud, which are outside of the enterprise’s control. Windows Information Protection (WIP), previously known as enterprise data protection (EDP), helps to protect against this potential data leakage without otherwise interfering with the employee experience. | | [Use Windows Event Forwarding to help with intrusion detection](use-windows-event-forwarding-to-assist-in-instrusion-detection.md) | Learn about an approach to collect events from devices in your organization. This article talks about events in both normal operations and when an intrusion is suspected. | |[Override Process Mitigation Options to help enforce app-related security policies](override-mitigation-options-for-app-related-security-policies.md) |Use Group Policy to override individual **Process Mitigation Options** settings and help to enforce specific app-related security policies. | | [VPN technical guide](vpn-guide.md) | Virtual private networks (VPN) let you give your users secure remote access to your company network. Windows 10 adds useful new VPN profile options to help you manage how users connect. | | [Windows security baselines](windows-security-baselines.md) | Learn why you should use security baselines in your organization. | -| [Security technologies](security-technologies.md) | Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. | -| [Enterprise security guides](windows-10-enterprise-security-guides.md) | Get proven guidance to help you better secure and protect your enterprise by using technologies such as Credential Guard, Device Guard, Microsoft Passport, and Windows Hello. This section offers technology overviews and step-by-step guides. | +| [Security technologies](security-technologies.md) | Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. For example, learn about AppLocker, BitLocker, and Security auditing. | +| [Enterprise security guides](windows-10-enterprise-security-guides.md) | Review technology overviews that help you understand Windows 10 security technologies in the context of the enterprise. | | [Change history for Keep Windows 10 secure](change-history-for-keep-windows-10-secure.md) | This topic lists new and updated topics in the Keep Windows 10 secure documentation for [Windows 10 and Windows 10 Mobile](../index.md). |   ## Related topics diff --git a/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md b/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md index cc8625adb9..013355ffa6 100644 --- a/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md +++ b/windows/keep-secure/initialize-and-configure-ownership-of-the-tpm.md @@ -1,6 +1,6 @@ --- -title: Initialize and configure ownership of the TPM (Windows 10) -description: This topic for the IT professional describes how to initialize and set the ownership the Trusted Platform Module (TPM), turn the TPM on and off, and clear TPM keys. +title: View status, clear, or troubleshoot the TPM (Windows 10) +description: This topic for the IT professional describes how to view status for, clear, or troubleshoot the Trusted Platform Module (TPM). ms.assetid: 1166efaf-7aa3-4420-9279-435d9c6ac6f8 ms.prod: w10 ms.mktglfcycl: deploy @@ -9,156 +9,146 @@ ms.pagetype: security author: brianlic-msft --- -# Initialize and configure ownership of the TPM +# View status, clear, or troubleshoot the TPM **Applies to** - Windows 10 +- Windows Server 2016 -This topic for the IT professional describes how to initialize and set the ownership the Trusted Platform Module (TPM), turn the TPM on and off, and clear TPM keys. It also explains how to troubleshoot issues that you might encounter as a result of using these procedures. +This topic for the IT professional describes actions you can take through the Trusted Platform Module (TPM) snap-in, **TPM.msc**: -## About TPM initialization and ownership +- [View the status of the TPM](#view-the-status-of-the-tpm) -The TPM must be initialized and ownership must be taken before it can be used to help secure your computer. The owner of the TPM is the user who possesses the owner password and is able to set it and change it. Only one owner password exists per TPM. The owner of the TPM can make full use of TPM capabilities. Taking ownership of the TPM can be done as part of the initialization process. +- [Troubleshoot TPM initialization](#troubleshoot-tpm-initialization) -When you start the TPM Initialization Wizard, which is accessed through the TPM Microsoft Management Console (MMC), you can determine whether the computer's TPM has been initialized. You can also view the TPM properties. +- [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm) -This topic contains procedures for the following tasks: +With TPM 1.2 and Windows 10, version 1507 or 1511, you can also take the following actions: -- [Initialize the TPM and set ownership](#bkmk-initializetpm) -- [Troubleshoot TPM initialization](#bkmk-troubleshootinit) -- [Turn on or turn off the TPM](#bkmk-onoff) -- [Clear all the keys from the TPM](#bkmk-clear1) -- [Use the TPM cmdlets](#bkmk-tpmcmdlets) +- [Turn on or turn off the TPM](#turn-on-or-turn-off) -## Initialize the TPM and set ownership +This topic also provides information about [using the TPM cmdlets](#use-the-tpm-cmdlets). -Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure. In addition, the computer must be equipped with a Trusted Computing Group-compliant BIOS. +## About TPM initialization and ownership -**To start the TPM Initialization Wizard** +Starting with Windows 10, the operating system automatically initializes and takes ownership of the TPM. This is a change from previous operating systems, where you would initialize the TPM and create an owner password. Therefore, with Windows 10, in most cases, we recommend that you avoid configuring the TPM through **TPM.msc**. The one exception is that in certain circumstances you might use **TPM.msc** to clear the TPM. For more information, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -1. Open the TPM Management console (tpm.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -2. On the **Action** menu, click **Initialize TPM** to start the TPM Initialization Wizard. -3. If the TPM has never been initialized or is turned off, the TPM Initialization Wizard displays the **Turn on the TPM security hardware** dialog box. This dialog box provides guidance for initializing or turning on the TPM. Follow the instructions in the wizard. +## View the status of the TPM - >**Note:** If the TPM is already turned on, the TPM Initialization Wizard displays the **Create the TPM owner password** dialog box. Skip the remainder of this procedure and continue with the **To set ownership of the TPM** procedure. -   - >**Note:**  If the TPM Initialization Wizard detects that you do not have a compatible BIOS, you cannot continue with the TPM Initialization Wizard, and you are alerted to consult the computer manufacturer's documentation for instructions to initialize the TPM. -   -4. Click **Restart**. -5. Follow the BIOS screen prompts. An acceptance prompt is displayed to ensure that a user has physical access to the computer and that no malicious software is attempting to turn on the TPM. - - >**Note:**  BIOS screen prompts and the required keystrokes vary by computer manufacturer. -   -6. After the computer restarts, sign in to the computer with the same administrative credentials that you used to start this procedure. -7. The TPM Initialization Wizard automatically restarts. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -8. Continue with the next procedure to take ownership of the TPM. +To view the status of the TPM, open the TPM Management console (TPM.msc). In the center pane, find the **Status** box. -To finish initializing the TPM for use, you must set an owner for the TPM. The process of taking ownership includes creating an owner password for the TPM. +In most cases, the status will be **Ready**. If the status is ready but “**with reduced functionality**,” see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -**To set ownership of the TPM** +If the status is **Not ready**, you can try the steps in [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. If this does not bring it to a **Ready** state, contact the manufacturer, and see the troubleshooting suggestions in the next section. -1. If you are not continuing immediately from the last procedure, start the TPM Initialization Wizard. If you need to review the steps to do so, see the previous procedure **To start the TPM Initialization Wizard**. -2. In the **Create the TPM owner password** dialog box, click **Automatically create the password (recommended)**. -3. In the **Save your TPM owner password** dialog box, click **Save the password**. -4. In the **Save As** dialog box, select a location to save the password, and then click **Save**. The password file is saved as *computer\_name.tpm*. +## Troubleshoot TPM initialization - >**Important:**  We highly recommend saving the TPM owner password to a removable storage device and storing it in a safe location. -   -5. Click **Print the password** if you want to print a copy of your password. - >**Important:**  We highly recommend printing a copy of your TPM owner password and storing it in a safe location. -   -6. Click **Initialize**. - >**Note:**  The process of initializing the TPM might take a few minutes to complete. -   -7. Click **Close**. - >**Caution:**  Do not lose your password. If you do, you will be unable to make administrative changes unless you clear the TPM, which can result in data loss. -   -## Troubleshoot TPM initialization +If you find that Windows is not able to initialize the TPM automatically, review the following information: -Managing the Trusted Platform Module (TPM) is usually a straightforward procedure. If are unable to complete the initialization procedure, review the following information: +- You can try clearing the TPM to the factory default values and allowing Windows to re-initialize it. For important precautions for this process, and instructions for completing it, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -- If the TPM is not detected by Windows, verify that your computer hardware contains a Trusted Computing Group-compliant BIOS. Ensure that no BIOS settings have been used to hide the TPM from the operating system. -- If you are attempting to initialize the TPM as part of the BitLocker setup, check which TPM driver is installed on the computer. We recommend always using one of the TPM drivers that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft TPM driver is installed, it may prevent the default TPM driver from loading and cause BitLocker to report that a TPM is not present on the computer. If you have a non-Microsoft driver installed, remove it and then try to initialize the TPM. The following table lists the three standard TPM drivers that are provided by Microsoft. +- If the TPM is a TPM 2.0 and is not detected by Windows, verify that your computer hardware contains a Unified Extensible Firmware Interface (UEFI) that is Trusted Computing Group-compliant. Also, ensure that in the UEFI settings, the TPM has not been disabled or hidden from the operating system. -| Driver name | Manufacturer | -| - | - | -| Trusted Platform Module 1.2 | (Standard)| -| Broadcom Trusted Platform Module (A1), v1.2 | Broadcom| -| Broadcom Trusted Platform Module (A2), v1.2 | Broadcom| -   -- If the TPM has been previously initialized and you do not have the owner password, you may have to clear or reset the TPM to the factory default values. For more information, see [Clear all the keys from the TPM](#bkmk-clear1). - > **Caution:**  Clearing the TPM can result in data loss. To avoid data loss, make sure that you have a backup or recovery method for any data that is protected or encrypted by the TPM. -   -Because your TPM security hardware is a physical part of your computer, you may want to read the manuals or instructions that came with your computer, or search the manufacturer's website. +- If you have TPM 1.2 with Windows 10, version 1507 or 1511, the TPM might be turned off, and need to be turned back on, as described in [Turn on the TPM](#turn-on-the-tpm). When it is turned back on, Windows will re-initialize it. -**Network connection** +- If you are attempting to set up BitLocker with the TPM, check which TPM driver is installed on the computer. We recommend always using one of the TPM drivers that is provided by Microsoft and is protected with BitLocker. If a non-Microsoft TPM driver is installed, it may prevent the default TPM driver from loading and cause BitLocker to report that a TPM is not present on the computer. If you have a non-Microsoft driver installed, remove it and then allow the operating system to initialize the TPM. -You cannot complete the initialization of the Trusted Platform Module (TPM) when your computer is disconnected from your organization's network if either of the following conditions exist: +### Troubleshoot network connection issues for Windows 10, versions 1507 and 1511 + +If you have Windows 10, version 1507 or 1511, the initialization of the TPM cannot complete when your computer has network connection issues and both of the following conditions exist: - An administrator has configured your computer to require that TPM recovery information be saved in Active Directory Domain Services (AD DS). This requirement can be configured through Group Policy. + - A domain controller cannot be reached. This can occur on a computer that is currently disconnected from the network, separated from the domain by a firewall, or experiencing a network component failure (such as an unplugged cable or a faulty network adapter). -In either case, an error message appears, and you cannot complete the initialization process. To avoid this issue, initialize the TPM while you are connected to the corporate network and you can contact a domain controller. +If these issues occur, an error message appears, and you cannot complete the initialization process. To avoid this issue, allow Windows to initialize the TPM while you are connected to the corporate network and you can contact a domain controller. -**Systems with multiple TPMs** +### Troubleshoot systems with multiple TPMs -Some systems may have multiple TPMs and the active TPM may be toggled in the BIOS. Windows 10 does not support this behavior. If you switch TPMs, functionality that depends on the TPM will not work with the new TPM unless it is cleared and put through provisioning. Performing this clear may cause data loss, in particular of keys and certificates associated with the previous TPM. For example, toggling TPMs will cause Bitlocker to enter recovery mode. It is strongly recommended that, on systems with two TPMs, one TPM is selected to be used and the selection is not changed. +Some systems may have multiple TPMs and the active TPM may be toggled in UEFI. Windows 10 does not support this behavior. If you switch TPMs, Windows might not properly detect or interact with the new TPM. If you plan to switch TPMs you should toggle to the new TPM, clear it, and reinstall Windows. For more information, see [Clear all the keys from the TPM](#clear-all-the-keys-from-the-tpm), later in this topic. -## Turn on or turn off the TPM +For example, toggling TPMs will cause BitLocker to enter recovery mode. We strongly recommend that, on systems with two TPMs, one TPM is selected to be used and the selection is not changed. -Normally, the TPM is turned on as part of the TPM initialization process. You do not normally need to turn the TPM on or off. However, if necessary you can do so by using the TPM MMC. This option is only available with TPM 1.2 and does not apply to TPM 2.0. +## Clear all the keys from the TPM -### Turn on the TPM +With Windows 10, in most cases, we recommend that you avoid configuring the TPM through TPM.msc. The one exception is that you can use TPM.msc to clear the TPM, for example, as a troubleshooting step, or as a final preparation before a clean installation of a new operating system. Preparing for a clean installation in this way helps ensure that the new operating system can fully deploy any TPM-based functionality that it includes, for example, attestation. However, even if the TPM is not cleared before a new operating system is installed, most TPM functionality will probably work correctly. -If the TPM has been initialized but has never been used, or if you want to use the TPM after you have turned it off, you can use the following procedure to turn on the TPM. +Clearing the TPM resets it to an unowned state. After you clear the TPM, the Windows 10 operating system will automatically re-initialize it and take ownership again. -**To turn on the TPM (TPM 1.2 Only)** +> [!WARNING] +> Clearing the TPM can result in data loss. For more information, see the next section, “Precautions to take before clearing the TPM.” -1. Open the TPM MMC (tpm.msc). -2. In the **Action** pane, click **Turn TPM On** to display the **Turn on the TPM Security Hardware** page. Read the instructions on this page. -3. Click **Shutdown** (or **Restart**), and then follow the BIOS screen prompts. +There are several ways to clear the TPM: - After the computer restarts, but before you sign in to Windows, you will be prompted to accept the reconfiguration of the TPM. This ensures that the user has physical access to the computer and that malicious software is not attempting to make changes to the TPM. +- **Clear the TPM as part of a complete reset of the computer**: You might want to remove all files from the computer and completely reset it, for example, in preparation for a clean installation. To do this, we recommend that you use the **Reset** option in **Settings**. When you perform a reset and use the **Remove everything** option, it will clear the TPM as part of the reset. You might be prompted to press a key before the TPM can be cleared. For more information, see the “Reset this PC” section in [Recovery options in Windows 10](https://support.microsoft.com/en-us/help/12415/windows-10-recovery-options). -### Turn off the TPM +- **Clear the TPM to fix “reduced functionality” or “Not ready” TPM status**: If you open TPM.msc and see that the TPM status is something other than **Ready**, you can can try using TPM.msc to clear the TPM and fix the status. However, be sure to review the precautions in the next section. -If you want to stop using the services that are provided by the TPM, you can use the TPM MMC to turn off the TPM. If you have the TPM owner password, physical access to the computer is not required to turn off the TPM. If you do not have the TPM owner password, you must have physical access to the -computer to turn off the TPM. +### Precautions to take before clearing the TPM -**To turn off the TPM (TPM 1.2 only)** +Clearing the TPM can result in data loss. To protect against such loss, review the following precautions: -1. Open the TPM MMC (tpm.msc). -2. In the **Action** pane, click **Turn TPM Off** to display the **Turn off the TPM security hardware** page. -3. In the **Turn off the TPM security hardware** dialog box, select a method to enter your owner password and turning off the TPM: +- Clearing the TPM causes you to lose all created keys associated with the TPM, and data protected by those keys, such as a virtual smart card or a login PIN. Make sure that you have a backup and recovery method for any data that is protected or encrypted by the TPM. - - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, click **Browse** to locate the .tpm file that is saved on your removable storage device, click **Open**, and then click **Turn TPM Off**. - - If you do not have the removable storage device with your saved TPM owner password, click **I want to enter the password**. In the **Type your TPM owner password** dialog box, type your password (including hyphens), and then click **Turn TPM Off**. - - If you do not know your TPM owner password, click **I do not have the TPM owner password**, and follow the instructions that are provided in the dialog box and subsequent BIOS screens to turn off the TPM without entering the password. +- Do not clear the TPM on a device you do not own, such as a work or school PC, without being instructed to do so by your IT administrator. -## Clear all the keys from the TPM +- If you want to temporarily suspend TPM operations and you have TPM 1.2 with Windows 10, version 1507 or 1511, you can turn off the TPM. For more information, see [Turn off the TPM](#turn-off-the-tpm), later in this topic. -Clearing the TPM resets it to an unowned state. After clearing the TPM, you need to complete the TPM initialization process before using software that relies on the TPM, such as BitLocker Drive Encryption. By default, the TPM is initialized automatically. +- Always use functionality in the operating system (such as TPM.msc) to the clear the TPM. Do not clear the TPM directly from UEFI. ->**Important:**  Clearing the TPM can result in data loss. To avoid data loss, make sure that you have a backup or recovery method for any data that is protected or encrypted by the TPM. -  -After the TPM is cleared, it is also turned off. - -To temporarily suspend TPM operations, turn off the TPM instead of clearing it. +- Because your TPM security hardware is a physical part of your computer, before clearing the TPM, you might want to read the manuals or instructions that came with your computer, or search the manufacturer's website. Membership in the local Administrators group, or equivalent, is the minimum required to complete this procedure. **To clear the TPM** 1. Open the TPM MMC (tpm.msc). -2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. -3. Under **Actions**, click **Clear TPM**. - >**Warning:**  If the TPM is off, reinitialize it before clearing it. - - Clearing the TPM resets it to factory defaults and turns it off. You will lose all created keys and data that is protected by those keys. -   -4. You will be prompted to restart the computer. During the restart, you will be prompted by the BIOS or UEFI to press a button to confirm you wish to clear the TPM. -## Use the TPM cmdlets +2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. + +3. Under **Actions**, click **Clear TPM**. + +4. You will be prompted to restart the computer. During the restart, you might be prompted by the UEFI to press a button to confirm that you wish to clear the TPM. + +5. After the PC restarts, your TPM will be automatically prepared for use by Windows 10. + +## Turn on or turn off the TPM (TPM 1.2 with Windows 10, version 1507 or 1511) + +Normally, the TPM is turned on as part of the TPM initialization process. You do not normally need to turn the TPM on or off. However, if necessary you can do so by using the TPM MMC. + +### Turn on the TPM + +If you want to use the TPM after you have turned it off, you can use the following procedure to turn on the TPM. + +**To turn on the TPM (TPM 1.2 with Windows 10, version 1507 or 1511 only)** + +1. Open the TPM MMC (tpm.msc). + +2. In the **Action** pane, click **Turn TPM On** to display the **Turn on the TPM Security Hardware** page. Read the instructions on this page. + +3. Click **Shutdown** (or **Restart**), and then follow the UEFI screen prompts. + + After the computer restarts, but before you sign in to Windows, you will be prompted to accept the reconfiguration of the TPM. This ensures that the user has physical access to the computer and that malicious software is not attempting to make changes to the TPM. + +### Turn off the TPM + +If you want to stop using the services that are provided by the TPM, you can use the TPM MMC to turn off the TPM. + +**To turn off the TPM (TPM 1.2 with Windows 10, version 1507 or 1511 only)** + +1. Open the TPM MMC (tpm.msc). + +2. In the **Action** pane, click **Turn TPM Off** to display the **Turn off the TPM security hardware** page. + +3. In the **Turn off the TPM security hardware** dialog box, select a method to enter your owner password and turning off the TPM: + + - If you saved your TPM owner password on a removable storage device, insert it, and then click **I have the owner password file**. In the **Select backup file with the TPM owner password** dialog box, click **Browse** to locate the .tpm file that is saved on your removable storage device, click **Open**, and then click **Turn TPM Off**. + + - If you do not have the removable storage device with your saved TPM owner password, click **I want to enter the password**. In the **Type your TPM owner password** dialog box, type your password (including hyphens), and then click **Turn TPM Off**. + + - If you did not save your TPM owner password or no longer know it, click **I do not have the TPM owner password**, and follow the instructions that are provided in the dialog box and subsequent UEFI screens to turn off the TPM without entering the password. + +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: @@ -166,6 +156,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md b/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md index 11d5fe781d..1e16d409a2 100644 --- a/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md +++ b/windows/keep-secure/installing-digital-certificates-on-windows-10-mobile.md @@ -24,8 +24,8 @@ Certificates in Windows 10 Mobile are primarily used for the following purposes - For installation and licensing of applications (from the Windows Phone Store or a custom company distribution site). -**Warning**   -In Windows 10, Version 1607, if you have multiple certificates provisioned on the device and the Wi-Fi profile provisioned does not have a strict filtering criteria, you may see connection failures when connecting to Wi-Fi. [Learn more about this known issue in Version 1607](https://go.microsoft.com/fwlink/p/?LinkId=786764) +>[!WARNING]   +>In Windows 10, Version 1607, if you have multiple certificates provisioned on the device and the Wi-Fi profile provisioned does not have a strict filtering criteria, you may see connection failures when connecting to Wi-Fi. [Learn more about this known issue in Version 1607](https://go.microsoft.com/fwlink/p/?LinkId=786764) ## Install certificates using Microsoft Edge @@ -33,12 +33,13 @@ A certificate can be posted on a website and made available to users through a d ## Install certificates using email -The Windows 10 Mobile certificate installer supports .cer, .p7b, .pem, and .pfx files. To install certificates via email, make sure your mail filters do not block .cer files. Certificates that are sent via email appear as message attachments. When a certificate is received, a user can tap to review the contents and then tap to install the certificate. Typically, when an identity certificate is installed, the user is prompted for the password (or passphrase) that protects it. +The Windows 10 Mobile certificate installer supports .cer, .p7b, .pem, and .pfx files. Some email programs block .cer files for security reasons. If this is the case in your organization, use an alternative method to deploy the certificate. Certificates that are sent via email appear as message attachments. When a certificate is received, a user can tap to review the contents and then tap to install the certificate. Typically, when an identity certificate is installed, the user is prompted for the password (or passphrase) that protects it. ## Install certificates using mobile device management (MDM) Windows 10 Mobile supports root, CA, and client certificate to be configured via MDM. Using MDM, an administrator can directly add, delete, or query root and CA certificates, and configure the device to enroll a client certificate with a certificate enrollment server that supports Simple Certificate Enrollment Protocol (SCEP). SCEP enrolled client certificates are used by Wi-Fi, VPN, email, and browser for certificate-based client authentication. An MDM server can also query and delete SCEP enrolled client certificate (including user installed certificates), or trigger a new enrollment request before the current certificate is expired. -> **Warning:**  Do not use SCEP for encryption certificates for S/MIME. You must use a PFX certificate profile to support S/MIME on Windows 10 Mobile. For instructions on creating a PFX certificate profile in Microsoft Intune, see [Enable access to company resources using certificate profiles with Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=718216). +>[!WARNING] +>Do not use SCEP for encryption certificates for S/MIME. You must use a PFX certificate profile to support S/MIME on Windows 10 Mobile. For instructions on creating a PFX certificate profile in Microsoft Intune, see [Enable access to company resources using certificate profiles with Microsoft Intune](https://go.microsoft.com/fwlink/p/?LinkID=718216).   **Process of installing certificates using MDM** @@ -50,14 +51,17 @@ Windows 10 Mobile supports root, CA, and client certificate to be configured vi 6. The device connects to Internet-facing point exposed by MDM server. 7. MDM server creates a certificate that is signed with proper CA certificate and returns it to device. - > **Note:**  The device supports the pending function to allow server side to do additional verification before issuing the cert. In this case, a pending status is sent back to the device. The device will periodically contact the server, based on preconfigured retry count and retry period parameters. Retrying ends when either: - A certificate is successfully received from the server - The server returns an error - The number of retries reaches the preconfigured limit + >[!NOTE] + >The device supports the pending function to allow server side to do additional verification before issuing the cert. In this case, a pending status is sent back to the device. The device will periodically contact the server, based on preconfigured retry count and retry period parameters. Retrying ends when either: + > + >- A certificate is successfully received from the server + >- The server returns an error + >- The number of retries reaches the preconfigured limit   8. The cert is installed in the device. Browser, Wi-Fi, VPN, email, and other first party applications have access to this certificate. - > **Note:**  If MDM requested private key being stored in Trusted Process Module (TPM) (configured during enrollment request), the private key will be saved in TPM. Note that SCEP enrolled cert protected by TPM isn’t guarded by a PIN. However, if the certificate is imported to the Passport for Work Key Storage Provider (KSP), it is guarded by the Passport PIN. + >[!NOTE] + >If MDM requested private key stored in Trusted Process Module (TPM) (configured during enrollment request), the private key will be saved in TPM. Note that SCEP enrolled cert protected by TPM isn’t guarded by a PIN. However, if the certificate is imported to the Windows Hello for Business Key Storage Provider (KSP), it is guarded by the Hello PIN.   ## Related topics diff --git a/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md b/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md index 7c1d049314..f82d103fb6 100644 --- a/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md +++ b/windows/keep-secure/interactive-logon-display-user-information-when-the-session-is-locked.md @@ -35,7 +35,7 @@ When a session is locked in a Windows operating system (meaning the user at the - Blank. - Default setting. This translates to “Not defined,” but it will display the user’s full name in the same manner as the **User display name, domain and user names** option. When an option is set, you cannot reset this policy to blank, or not defined. + Default setting. This translates to “Not defined,” but it will display the user’s full name in the same manner as the **User display name** option. When an option is set, you cannot reset this policy to blank, or not defined. ### Best practices diff --git a/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md b/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md index 0177def043..5af92d1bcf 100644 --- a/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md +++ b/windows/keep-secure/interactive-logon-do-not-display-last-user-name.md @@ -34,8 +34,6 @@ If this policy is disabled, the full name of the last user to log on is displaye Your implementation of this policy depends on your security requirements for displayed logon information. If you have devices that store sensitive data, with monitors displayed in unsecured locations, or if you have devices with sensitive data that are remotely accessed, revealing logged on user’s full names or domain account names might contradict your overall security policy. -Depending on your security policy, you might also want to enable the [Interactive logon: Display user information when the session is locked](interactive-logon-display-user-information-when-the-session-is-locked.md) policy, which will prevent the Windows operating system from displaying the logon name when the session is locked or started. - ### Location Computer Configuration\\Windows Settings\\Security Settings\\Local Policies\\Security Options diff --git a/windows/keep-secure/interactive-logon-require-smart-card.md b/windows/keep-secure/interactive-logon-require-smart-card.md index 2441b3c3e7..503713f8e7 100644 --- a/windows/keep-secure/interactive-logon-require-smart-card.md +++ b/windows/keep-secure/interactive-logon-require-smart-card.md @@ -1,5 +1,5 @@ --- -title: Interactive logon Require smart card (Windows 10) +title: Interactive logon Require smart card - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management and security considerations for the Interactive logon Require smart card security policy setting. ms.assetid: c6a8c040-cbc7-472d-8bc5-579ddf3cbd6c ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Interactive logon: Require smart card +# Interactive logon: Require smart card - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md b/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md index c0577fe786..3712b6aed0 100644 --- a/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md +++ b/windows/keep-secure/introduction-to-device-guard-virtualization-based-security-and-code-integrity-policies.md @@ -75,5 +75,5 @@ Another Windows 10 feature that employs VBS is [Credential Guard](credential-gua Credential Guard is targeted at resisting pass-the-hash and pass-the-ticket techniques. By employing multifactor authentication with Credential Guard, organizations can gain additional protection against such threats. -In addition to the client-side enabling of Credential Guard, organizations can deploy mitigations at both the CA and domain controller level to help prevent credential theft. For more information, see the [Additional mitigations](https://technet.microsoft.com/en-us/itpro/windows/keep-secure/credential-guard#additional-mitigations) section in “Protect derived domain credentials with Credential Guard.” + diff --git a/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md b/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md index eec0ada5a4..bc3e8df73d 100644 --- a/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/investigate-machines-windows-defender-advanced-threat-protection.md @@ -21,12 +21,12 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) -The **Machines view** shows a list of the machines in your network, the corresponding number of active alerts for each machine categorized by alert severity levels, and the number of active malware detections. This view allows you to identify machines with the highest risk at a glance, and keep track of all the machines that are reporting telemetry in your network. +The **Machines view** shows a list of the machines in your network, the corresponding number of active alerts for each machine categorized by alert severity levels, and the number of active malware detections. This view allows you to identify machines with the highest risk at a glance, and keep track of all the machines that are reporting sensor data in your network. Use the Machines view in these two main scenarios: - **During onboarding** - - During the onboarding process, the Machines view gradually gets populated with endpoints as they begin to report telemetry. Use this view to track your onboarded endpoints as they appear. Use the available features to sort and filer to see which endpoints have most recently reported telemetry, or download the complete endpoint list as a CSV file for offline analysis. + - During the onboarding process, the Machines view gradually gets populated with endpoints as they begin to report sensor data. Use this view to track your onboarded endpoints as they appear. Use the available features to sort and filer to see which endpoints have most recently reported sensor data, or download the complete endpoint list as a CSV file for offline analysis. - **Day-to-day work** - The **Machines view** enables you to identify machines that are most at risk in a glance. High-risk machines are those with the greatest number and highest-severity alerts. By sorting the machines by risk, you'll be able to identify the most vulnerable machines and take action on them. @@ -34,7 +34,7 @@ The Machines view contains the following columns: - **Machine name** - the name or GUID of the machine - **Domain** - the domain the machine belongs to -- **Last seen** - when the machine last reported telemetry +- **Last seen** - when the machine last reported sensor data - **Internal IP** - the local internal Internet Protocol (IP) address of the machine - **Active Alerts** - the number of alerts reported by the machine by severity - **Active malware detections** - the number of active malware detections reported by the machine @@ -59,7 +59,7 @@ You can filter the view by the following time periods: - 6 months > [!NOTE] -> When you select a time period, the list will only display machines that reported within the selected time period. For example, selecting 1 day will only display a list of machines that reported telemetry within the last 24-hour period. +> When you select a time period, the list will only display machines that reported within the selected time period. For example, selecting 1 day will only display a list of machines that reported sensor data within the last 24-hour period. The threat category filter lets you filter the view by the following categories: @@ -94,7 +94,7 @@ When you investigate a specific machine, you'll see: - **Alerts related to this machine** - **Machine timeline** -The machine details, IP, and reporting sections display some attributes of the machine such as its name, domain, OS, IP address, and how long it's been reporting telemetry to the Windows Defender ATP service. +The machine details, IP, and reporting sections display some attributes of the machine such as its name, domain, OS, IP address, and how long it's been reporting sensor data to the Windows Defender ATP service. The **Alerts related to this machine** section provides a list of alerts that are associated with the machine. This list is a simplified version of the [Alerts queue](alerts-queue-windows-defender-advanced-threat-protection.md), and shows the date that the alert was detected, a short description of the alert, the alert's severity, the alert's threat category, and the alert's status in the queue. diff --git a/windows/keep-secure/limitations-with-wip.md b/windows/keep-secure/limitations-with-wip.md index dc2429d6b3..39aaeb8dc5 100644 --- a/windows/keep-secure/limitations-with-wip.md +++ b/windows/keep-secure/limitations-with-wip.md @@ -25,8 +25,8 @@ This table provides info about the most common problems you might encounter whil - - + + @@ -67,7 +67,7 @@ This table provides info about the most common problems you might encounter whil - + @@ -79,4 +79,7 @@ This table provides info about the most common problems you might encounter whil -
Workaround
Enterprise data on USB drives is tied to the device it was protected on.Data in the new location remains encrypted, but becomes inaccessible on other devices and for other users. For example, the file won't open or the file opens, but doesn't contain readable text.Your enterprise data on USB drives might be tied to the device it was protected on, based on your Azure RMS configuration.If you’re using Azure RMS: Authenticated users can open enterprise data on USB drives, on computers running the latest build from the Windows Insider Program.

If you’re not using Azure RMS: Data in the new location remains encrypted, but becomes inaccessible on other devices and for other users. For example, the file won't open or the file opens, but doesn't contain readable text.

Share files with fellow employees through enterprise file servers or enterprise cloud locations. If data must be shared via USB, employees can decrypt protected files, but it will be audited.

We strongly recommend educating employees about how to limit or eliminate the need for this decryption.

Redirected folders with Client Side Caching are not compatible with WIP. Apps might encounter access errors while attempting to read a cached, offline file.Migrate to use another file synchronization method, such as Work Folders or OneDrive for Business.Migrate to use another file synchronization method, such as Work Folders or OneDrive for Business.

Note
For more info about Work Folders and Offline Files, see the blog, [Work Folders and Offline Files support for Windows Information Protection](https://blogs.technet.microsoft.com/filecab/2016/08/29/work-folders-and-offline-files-support-for-windows-information-protection/). If you're having trouble opening files offline while using Offline Files and WIP, see the support article, [Can't open files offline when you use Offline Files and Windows Information Protection](https://support.microsoft.com/en-us/kb/3187045).

You can't upload an enterprise file to a personal location using Microsoft Edge or Internet Explorer.Webpages that use ActiveX controls can potentially communicate with other outside processes that aren’t protected by using WIP. We recommend that you switch to using Microsoft Edge, the more secure and safer browser that prevents the use of ActiveX controls. We also recommend that you limit the usage of Internet Explorer 11 to only those line-of-business apps that require legacy technology.

For more info, see [Out-of-date ActiveX control blocking](https://technet.microsoft.com/en-us/itpro/internet-explorer/ie11-deploy-guide/out-of-date-activex-control-blocking).

+ + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/maintain-applocker-policies.md b/windows/keep-secure/maintain-applocker-policies.md index 43bd39884e..69cf6d1483 100644 --- a/windows/keep-secure/maintain-applocker-policies.md +++ b/windows/keep-secure/maintain-applocker-policies.md @@ -47,7 +47,7 @@ Before modifying a policy, evaluate how the policy is currently implemented. For ### Step 2: Export the AppLocker policy from the GPO -Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference or test computer. To prepare an AppLocker policy for modification, see [Export an AppLocker policy from a GPO](export-an-applocker-policy-from-a-gpo.md) +Updating an AppLocker policy that is currently enforced in your production environment can have unintended results. Therefore, export the policy from the GPO and update the rule or rules by using AppLocker on your AppLocker reference or test computer. To prepare an AppLocker policy for modification, see [Export an AppLocker policy from a GPO](export-an-applocker-policy-from-a-gpo.md). ### Step 3: Update the AppLocker policy by editing the appropriate AppLocker rule diff --git a/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md b/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md index d91d7bbb04..18f8399a2b 100644 --- a/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md +++ b/windows/keep-secure/manage-identity-verification-using-microsoft-passport.md @@ -93,7 +93,7 @@ When identity providers such as Active Directory or Azure AD enroll a certificat [Introduction to Windows Hello](https://go.microsoft.com/fwlink/p/?LinkId=786649), video presentation on Microsoft Virtual Academy -[What's new in Active Directory Domain Services (AD DS) in Windows Server Technical Preview](https://go.microsoft.com/fwlink/p/?LinkId=708533) +[What's new in Active Directory Domain Services for Windows Server 2016](https://go.microsoft.com/fwlink/p/?LinkId=708533) [Windows Hello face authentication](https://go.microsoft.com/fwlink/p/?LinkId=626024) diff --git a/windows/keep-secure/manage-tpm-commands.md b/windows/keep-secure/manage-tpm-commands.md index c4b6611da4..71f3c2229e 100644 --- a/windows/keep-secure/manage-tpm-commands.md +++ b/windows/keep-secure/manage-tpm-commands.md @@ -13,44 +13,54 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional describes how to manage which Trusted Platform Module (TPM) commands are available to domain users and to local users. -## - After a computer user takes ownership of the TPM, the TPM owner can limit which TPM commands can be run by creating a list of blocked TPM commands. The list can be created and applied to all computers in a domain by using Group Policy, or a list can be created for individual computers by using the TPM MMC. Because some hardware vendors might provide additional commands or the Trusted Computing Group may decide to add commands in the future, the TPM MMC also supports the ability to block new commands. -Domain administrators can configure a list of blocked TPM commands by using Group Policy. Local administrators cannot allow TPM commands that are blocked through Group Policy. For more information about this Group Policy setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-clbtc). +Domain administrators can configure a list of blocked TPM commands by using Group Policy. Local administrators cannot allow TPM commands that are blocked through Group Policy. For more information about this Group Policy setting, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#configure-the-list-of-blocked-tpm-commands). Local administrators can block commands by using the TPM MMC, and commands on the default block list are also blocked unless the Group Policy settings are changed from the default settings. -Two policy settings control the enforcement which allows TPM commands to run. For more information about these policy settings, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-idlb). +Two policy settings control the enforcement which allows TPM commands to run. For more information about these policy settings, see [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md#ignore-the-default-list-of-blocked-tpm-commands). The following procedures describe how to manage the TPM command lists. You must be a member of the local Administrators group. **To block TPM commands by using the Local Group Policy Editor** 1. Open the Local Group Policy Editor (gpedit.msc). If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. - - >**Note:**  Administrators with appropriate rights in a domain can configure a Group Policy Object (GPO) that can be applied through Active Directory Domain Services (AD DS). -   + + > [!NOTE] + > Administrators with appropriate rights in a domain can configure a Group Policy Object (GPO) that can be applied through Active Directory Domain Services (AD DS). + 2. In the console tree, under **Computer Configuration**, expand **Administrative Templates**, and then expand **System**. + 3. Under **System**, click **Trusted Platform Module Services**. + 4. In the details pane, double-click **Configure the list of blocked TPM commands**. + 5. Click **Enabled**, and then click **Show**. + 6. For each command that you want to block, click **Add**, enter the command number, and then click **OK**. - - >**Note:**  For a list of commands, see the [Trusted Platform Module (TPM) Specifications](https://go.microsoft.com/fwlink/p/?linkid=139770). -   + + > [!NOTE] + > For a list of commands, see links in the [TPM Specification](https://www.trustedcomputinggroup.org/tpm-main-specification/). + 7. After you have added numbers for each command that you want to block, click **OK** twice. + 8. Close the Local Group Policy Editor. **To block or allow TPM commands by using the TPM MMC** 1. Open the TPM MMC (tpm.msc) + 2. If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. + 3. In the console tree, click **Command Management**. A list of TPM commands is displayed. + 4. In the list, select a command that you want to block or allow. + 5. Under **Actions**, click **Block Selected Command** or **Allow Selected Command** as needed. If **Allow Selected Command** is unavailable, that command is currently blocked by Group Policy. **To block new commands** @@ -60,17 +70,19 @@ The following procedures describe how to manage the TPM command lists. You must If the **User Account Control** dialog box appears, confirm that the action it displays is what you want, and then click **Yes**. 2. In the console tree, click **Command Management**. A list of TPM commands is displayed. + 3. In the **Action** pane, click **Block New Command**. The **Block New Command** dialog box is displayed. + 4. In the **Command Number** text box, type the number of the new command that you want to block, and then click **OK**. The command number you entered is added to the blocked list. -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: `dism /online /enable-feature /FeatureName:tpm-psh-cmdlets` -For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) +For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [Trusted Platform Module technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/manage-tpm-lockout.md b/windows/keep-secure/manage-tpm-lockout.md index f59a117ee3..3f5e966157 100644 --- a/windows/keep-secure/manage-tpm-lockout.md +++ b/windows/keep-secure/manage-tpm-lockout.md @@ -12,10 +12,11 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional describes how to manage the lockout feature for the Trusted Platform Module (TPM) in Windows. -## About TPM lockout +## About TPM lockout The TPM will lock itself to prevent tampering or malicious attacks. TPM lockout often lasts for a variable amount of time or until the computer is turned off. While the TPM is in lockout mode, it generally returns an error message when it receives commands that require an authorization value. One exception is that the TPM always allows the owner at least one attempt to reset the TPM lockout when it is in lockout mode. @@ -24,49 +25,58 @@ TPM ownership is taken upon first boot by Windows. By default, Windows does not In some cases, encryption keys are protected by a TPM by requiring a valid authorization value to access the key. A common example is configuring BitLocker Drive Encryption to use the TPM plus PIN key protector. In this scenario, the user must type the correct PIN during the boot process to access the volume encryption key protected by the TPM. To prevent malicious users or software from discovering authorization values, TPMs implement protection logic. The protection logic is designed to slow or stop responses from the TPM if it detects that an entity might be trying to guess authorization values. **TPM 1.2** + The industry standards from the Trusted Computing Group (TCG) specify that TPM manufacturers must implement some form of protection logic in TPM 1.2 and TPM 2.0 chips. TPM 1.2 devices implement different protection mechanisms and behavior. In general, the TPM chip takes exponentially longer to respond if incorrect authorization values are sent to the TPM. Some TPM chips may not store failed attempts over time. Other TPM chips may store every failed attempt indefinitely. Therefore, some users may experience increasingly longer delays when they mistype an authorization value that is sent to the TPM. This can prevent them from using the TPM for a period of time. **TPM 2.0** - TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. -If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. +TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. + +If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. ## Reset the TPM lockout by using the TPM MMC -**Note:** This procedure is only available if you have configured Windows to retain the TPM Owner Password. By default, this password is not available in Windows 10 starting with version 1607. -The following procedure explains the steps to reset the TPM lockout by using the TPM MMC. +> [!NOTE] +> This procedure is only available if you have configured Windows to retain the TPM Owner Password. By default, this password is not available in Windows 10 starting with version 1607. + +The following procedure explains the steps to reset the TPM lockout by using the TPM MMC. **To reset the TPM lockout** 1. Open the TPM MMC (tpm.msc). -2. In the **Action** pane, click **Reset TPM Lockout** to start the Reset TPM Lockout Wizard. -3. Choose one of the following methods to enter the TPM owner password: - - If you saved your TPM owner password to a .tpm file, click **I have the owner password file**, and then type the path to the file, or click **Browse** to navigate to the file location. - - If you want to manually enter your TPM owner password, click **I want to enter the owner password**, and then type the password in the text box provided. - >**Note:**  If you enabled BitLocker and your TPM at the same time, and you printed your BitLocker recovery password when you turned on BitLocker, your TPM owner password may have printed with it. -   +2. In the **Action** pane, click **Reset TPM Lockout** to start the Reset TPM Lockout Wizard. + +3. Choose one of the following methods to enter the TPM owner password: + + - If you saved your TPM owner password to a .tpm file, click **I have the owner password file**, and then type the path to the file, or click **Browse** to navigate to the file location. + + - If you want to manually enter your TPM owner password, click **I want to enter the owner password**, and then type the password in the text box provided. + + > [!NOTE] + > If you enabled BitLocker and your TPM at the same time, and you printed your BitLocker recovery password when you turned on BitLocker, your TPM owner password may have printed with it. + ## Use Group Policy to manage TPM lockout settings The TPM Group Policy settings in the following list are located at: **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services\\** -- [Standard User Lockout Duration](trusted-platform-module-services-group-policy-settings.md#bkmk-individual) +- [Standard User Lockout Duration](trusted-platform-module-services-group-policy-settings.md#standard-user-lockout-duration) This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for TPM commands that require authorization. An authorization failure occurs each time a user sends a command to the TPM and receives an error message that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, the user is prevented from sending commands to the TPM that require authorization. -- [Standard User Individual Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#bkmk-tpmgp-suld) +- [Standard User Individual Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#standard-user-individual-lockout-threshold) This policy setting allows you to manage the maximum number of authorization failures for the TPM for each user. This value is the maximum number of authorization failures that each user can have before the user is not allowed to send commands to the TPM that require authorization. If the number of authorization failures equals the duration that is set for the policy setting, the user is prevented from sending commands to the TPM that require authorization. -- [Standard User Total Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#bkmk-total) - +- [Standard User Total Lockout Threshold](trusted-platform-module-services-group-policy-settings.md#standard-user-total-lockout-threshold) + This policy setting allows you to manage the maximum number of authorization failures for the TPM for all standard users. If the total number of authorization failures for all users equals the duration that is set for the policy, all users are prevented from sending commands to the TPM that require authorization. -For information about mitigating dictionary attacks that use the lockout settings, see [TPM fundamentals](tpm-fundamentals.md#bkmk-howtpmmitigates). +For information about mitigating dictionary attacks that use the lockout settings, see [TPM fundamentals](tpm-fundamentals.md#how-the-tpm-mitigates-dictionary-attacks). -## Use the TPM cmdlets +## Use the TPM cmdlets If you are using Windows PowerShell to manage your computers, you can also manage the TPM by using Windows PowerShell. To install the TPM cmdlets, type the following command: @@ -74,6 +84,6 @@ If you are using Windows PowerShell to manage your computers, you can also manag For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -## Additional resources +## Related topics -For more info about TPM, see [TPM technology overview](trusted-platform-module-overview.md#bkmk-additionalresources). +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/mandatory-settings-for-wip.md b/windows/keep-secure/mandatory-settings-for-wip.md index 0e1345c2ae..1c7ea0a9ff 100644 --- a/windows/keep-secure/mandatory-settings-for-wip.md +++ b/windows/keep-secure/mandatory-settings-for-wip.md @@ -17,8 +17,8 @@ localizationpriority: high This list provides all of the tasks and settings that are required for the operating system to turn on Windows Information Protection (WIP), formerly known as enterprise data protection (EDP), in your enterprise. ->**Important**
-All sections provided for more info appear in either the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) or [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md), based on the tool you're using in your enterprise. +>[!IMPORTANT] +>All sections provided for more info appear in either the [Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) or [Create a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md), based on the tool you're using in your enterprise. |Task |Description | @@ -28,4 +28,7 @@ All sections provided for more info appear in either the [Create a Windows Infor |Specify your corporate identity. |You must specify your corporate identity, usually expressed as your primary Internet domain (for example, contoso.com). For more info about where this area is and what it means, see the **Define your enterprise-managed corporate identity** section of the policy creation topics. | |Specify your Enterprise Network Domain Names. |You must specify the DNS suffixes used in your environment. All traffic to the fully-qualified domains appearing in this list will be protected. For more info about where this area is and how to add your suffixes, see the table that appears in the **Choose where apps can access enterprise data** section of the policy creation topics. | |Specify your Enterprise IPv4 or IPv6 Ranges. |Specify the addresses for a valid IPv4 or IPv6 value range within your intranet. These addresses, used with your Enterprise Network Domain Names, define your corporate network boundaries. For more info about where this area is and what it means, see the table that appears in the **Define your enterprise-managed corporate identity** section of the policy creation topics. | -|Include your Data Recovery Agent (DRA) certificate. |This certificate makes sure that any of your WIP-encrypted data can be decrypted, even if the security keys are lost. For more info about where this area is and what it means, see the **Create and verify an Encrypting File System (EFS) DRA certificate** section of the policy creation topics. | \ No newline at end of file +|Include your Data Recovery Agent (DRA) certificate. |This certificate makes sure that any of your WIP-encrypted data can be decrypted, even if the security keys are lost. For more info about where this area is and what it means, see the **Create and verify an Encrypting File System (EFS) DRA certificate** section of the policy creation topics. | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md b/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md index 0fd2edc0d3..55a3242e78 100644 --- a/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/minimum-requirements-windows-defender-advanced-threat-protection.md @@ -61,7 +61,7 @@ Before you configure endpoints, the telemetry and diagnostics service must be en ### Telemetry and diagnostics settings You must ensure that the telemetry and diagnostics service is enabled on all the endpoints in your organization. -By default, this service is enabled, but it's good practice to check to ensure that you'll get telemetry from them. +By default, this service is enabled, but it's good practice to check to ensure that you'll get sensor data from them. **Use the command line to check the Windows 10 telemetry and diagnostics service startup type**: @@ -113,4 +113,4 @@ When Windows Defender is not the active antimalware in your organization and you ## Windows Defender Early Launch Antimalware (ELAM) driver is enabled If you're running Windows Defender as the primary antimalware product on your endpoints, the Windows Defender ATP agent will successfully onboard. -If you're running a third-party antimalware client and use Mobile Device Management solutions or System Center Configuration Manager (current branch) version 1606, you'll need to ensure that the Windows Defender ELAM driver is enabled. For more information on how to validate and enable the Windows Defender ELAM driver see, [Ensure the Windows Defender ELAM driver is enabled](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-the-windows-defender-elam-driver-is-enabled). +If you're running a third-party antimalware client and use Mobile Device Management solutions or System Center Configuration Manager (current branch) version 1606, you'll need to ensure that the Windows Defender ELAM driver is enabled. For more information, see [Ensure that Windows Defender is not disabled by policy](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-that-windows-defender-is-not-disabled-by-a-policy). diff --git a/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md b/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md index 9205bb0153..2a7a40abd6 100644 --- a/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/onboard-configure-windows-defender-advanced-threat-protection.md @@ -23,6 +23,7 @@ localizationpriority: high You need to onboard to Windows Defender ATP before you can use the service. +For more information, see [Onboard your Windows 10 endpoints to Windows Defender ATP](https://www.youtube.com/watch?v=JT7VGYfeRlA&feature=youtu.be). ## In this section Topic | Description diff --git a/windows/keep-secure/overview-create-wip-policy.md b/windows/keep-secure/overview-create-wip-policy.md index f0ae686b47..c3ad6bf5a3 100644 --- a/windows/keep-secure/overview-create-wip-policy.md +++ b/windows/keep-secure/overview-create-wip-policy.md @@ -23,4 +23,8 @@ Microsoft Intune and System Center Configuration Manager helps you create and de |------|------------| |[Create a Windows Information Protection (WIP) policy using Microsoft Intune](create-wip-policy-using-intune.md) |Intune helps you create and deploy your WIP policy, including letting you choose your protected apps, your WIP-protection level, and how to find enterprise data on the network. | |[Create and deploy a Windows Information Protection (WIP) policy using System Center Configuration Manager](create-wip-policy-using-sccm.md) |System Center Configuration Manager helps you create and deploy your WIP policy, including letting you choose your protected apps, your WIP-protection level, and how to find enterprise data on the network. | -|[Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) |Steps to create, verify, and perform a quick recovery using a Encrypting File System (EFS) Data Recovery Agent (DRA) certificate. | \ No newline at end of file +|[Create and verify an Encrypting File System (EFS) Data Recovery Agent (DRA) certificate](create-and-verify-an-efs-dra-certificate.md) |Steps to create, verify, and perform a quick recovery using a Encrypting File System (EFS) Data Recovery Agent (DRA) certificate. | +|[Determine the Enterprise Context of an app running in Windows Information Protection (WIP)](wip-app-enterprise-context.md) |Use the Task Manager to determine whether an app is considered work, personal or exempt by Windows Information Protection (WIP). | + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md b/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md index 31c04c1c61..cf75c935f9 100644 --- a/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md +++ b/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies.md @@ -48,13 +48,13 @@ BitLocker helps prevent unauthorized access to data on lost or stolen computers - Encrypting the entire Windows operating system volume on the hard disk. - Verifying the boot process integrity. -The trusted platform module (TPM)is a hardware component installed in many newer computers by the computer manufacturers. It works with BitLocker to help protect user data and to ensure that a computer has not been tampered with while the system was offline. +The trusted platform module (TPM) is a hardware component installed in many newer computers by the computer manufacturers. It works with BitLocker to help protect user data and to ensure that a computer has not been tampered with while the system was offline. In addition, BitLocker offers the option to lock the normal startup process until the user supplies a personal identification number (PIN) or inserts a removable USB device, such as a flash drive, that contains a startup key. These additional security measures provide multifactor authentication and assurance that the computer will not start or resume from hibernation until the correct PIN or startup key is presented. On computers that do not have a TPM version 1.2 or higher, you can still use BitLocker to encrypt the Windows operating system volume. However, this implementation will require the user to insert a USB startup key to start the computer or resume from hibernation, and does not provide the pre-startup system integrity verification offered by BitLocker working with a TPM. -**BitLocker key protectors** +### BitLocker key protectors | Key protector | Description | | - | - | @@ -65,7 +65,7 @@ On computers that do not have a TPM version 1.2 or higher, you can still use Bi | Recovery password | A 48-digit number used to unlock a volume when it is in recovery mode. Numbers can often be typed on a regular keyboard, if the numbers on the normal keyboard are not responding you can always use the function keys (F1-F10) to input the numbers.| | Recovery key| An encryption key stored on removable media that can be used for recovering data encrypted on a BitLocker volume.|   -**BitLocker authentication methods** +### BitLocker authentication methods | Authentication method | Requires user interaction | Description | | - | - | - | @@ -97,22 +97,9 @@ The protection differences provided by multifactor authentication methods cannot In your deployment plan, identify what TPM-based hardware platforms will be supported. Document the hardware models from an OEM of your choice, so that their configurations can be tested and supported. TPM hardware requires special consideration during all aspects of planning and deployment. -### TPM states of existence +### TPM 1.2 states and initialization -For each of the TPM states of existence, the TPM can transition into another state (for example, moving from disabled to enabled). The states are not exclusive. - -| State | Description | -| - | - | -| Enabled| Most features of the TPM are available.
The TPM may be enabled and disabled multiple times within a boot period, if ownership is taken.| -| Disabled | The TPM restricts most operations. Exceptions include the ability to report TPM capabilities, extend and reset Platform Configuration Register (PCR) functions, and to perform hashing and basic initialization.
The TPM may be enabled and disabled multiple times within a boot period.| -| Activated| Most features of the TPM are available. The TPM may be activated and deactivated only through physical presence which requires a reboot.| -| Deactivated| Similar to disabled, with the exception that ownership can be taken while deactivated and enabled. The TPM may be activated and deactivated only through physical presence which requires a reboot.| -| Owned| Most features of the TPM are available. The TPM has an endorsement key and storage root key, and the owner knows information about owner authorization data.| -| Un-owned| The TPM does not have a storage root key and may or may not have an endorsement key.| -  ->**Important:**  BitLocker cannot use the TPM until it is in the following state: enabled, activated, and owned. When the TPM is in this state and only when it is in this state, all operations are available. -  -The state of the TPM exists independent of the computer’s operating system. Once the TPM is enabled, activated, and owned, the state of the TPM is preserved if the operating system is reinstalled. +For TPM 1.2, there are multiple possible states. Windows 10 automatically initializes the TPM, which brings it to an enabled, activated, and owned state. This is the state that BitLocker requires before it can use the TPM. ### Endorsement keys diff --git a/windows/keep-secure/protect-enterprise-data-using-wip.md b/windows/keep-secure/protect-enterprise-data-using-wip.md index dc661d0dbd..a37553eb2c 100644 --- a/windows/keep-secure/protect-enterprise-data-using-wip.md +++ b/windows/keep-secure/protect-enterprise-data-using-wip.md @@ -93,7 +93,8 @@ WIP gives you a new way to manage data policy enforcement for apps and documents - **Helping prevent accidental data disclosure to removable media.** WIP helps prevent enterprise data from leaking when it's copied or transferred to removable media. For example, if an employee puts enterprise data on a Universal Serial Bus (USB) drive that also has personal data, the enterprise data remains encrypted while the personal data doesn’t. - **Remove access to enterprise data from enterprise-protected devices.** WIP gives admins the ability to revoke enterprise data from one or many MDM-enrolled devices, while leaving personal data alone. This is a benefit when an employee leaves your company, or in the case of a stolen device. After determining that the data access needs to be removed, you can use Microsoft Intune to unenroll the device so when it connects to the network, the user's encryption key for the device is revoked and the enterprise data becomes unreadable. - > **Note**
System Center Configuration Manager also allows you to revoke enterprise data. However, it does it by performing a factory reset of the device. + >[!NOTE] + >For management of Surface devices it is recommended that you use the Current Branch of System Center Configuration Manager.
System Center Configuration Manager also allows you to revoke enterprise data. However, it does it by performing a factory reset of the device. ## How WIP works WIP helps address your everyday challenges in the enterprise. Including: @@ -137,3 +138,7 @@ You can turn off all Windows Information Protection and restrictions, decrypting After deciding to use WIP in your enterprise, you need to: - [Create a Windows Information Protection (WIP) policy](overview-create-wip-policy.md) + + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). diff --git a/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md b/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md index b2d8f3634a..ac0409286d 100644 --- a/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md +++ b/windows/keep-secure/protect-high-value-assets-by-controlling-the-health-of-windows-10-based-devices.md @@ -364,7 +364,7 @@ The following table details the hardware requirements for both virtualization-ba

Support for the IOMMU in Windows 10 enhances system resiliency against DMA attacks.

-

Trusted Platform Module (TPM) 2.0

+

Trusted Platform Module (TPM)

Required to support health attestation and necessary for additional key protections for virtualization-based security.

@@ -455,7 +455,7 @@ The device health attestation solution involves different components that are TP ### Trusted Platform Module -*It’s all about TPM 2.0 and endorsement certificates.* This section describes how PCRs (that contain system configuration data), endorsement key (EK) (that act as an identity card for TPM), SRK (that protect keys) and AIKs (that can report platform state) are used for health attestation reporting. +This section describes how PCRs (that contain system configuration data), endorsement key (EK) (that act as an identity card for TPM), SRK (that protect keys) and AIKs (that can report platform state) are used for health attestation reporting. In a simplified manner, the TPM is a passive component with limited resources. It can calculate random numbers, RSA keys, decrypt short data, store hashes taken when booting the device. diff --git a/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md b/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md index aaf71600b1..f1f62943e3 100644 --- a/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md +++ b/windows/keep-secure/protecting-cluster-shared-volumes-and-storage-area-networks-with-bitlocker.md @@ -33,8 +33,7 @@ Windows PowerShell or the manage-bde command line interface is the preferred met >**Note:**  Mount points can be used to support remote mount points on SMB based network shares. This type of share is not supported for BitLocker encryption.   -For thinly provisioned storage, such as a Dynamic Virtual Hard Disk (VHD), BitLocker runs in Used Disk Space Only encryption mode. You cannot use the **manage-bde –WipeFreeSpace** command to transition the volume to full-volume encryption on these types of volumes. This occurs because Full -Encryption requires an end marker for the volume and dynamically expanding VHDs do not have a static end of volume marker. +For thinly provisioned storage, such as a Dynamic Virtual Hard Disk (VHD), BitLocker runs in Used Disk Space Only encryption mode. You cannot use the **manage-bde -WipeFreeSpace** command to transition the volume to full-volume encryption on these types of volumes. This is blocked in order to avoid expanding thinly provisioned volumes to occupy the entire backing store while wiping the unoccupied (free) space. ### Active Directory-based protector @@ -57,28 +56,22 @@ BitLocker encryption is available for disks before or after addition to a cluste 1. Install the BitLocker Drive Encryption feature if it is not already installed. 2. Ensure the disk is formatted NTFS and has a drive letter assigned to it. -3. Enable BitLocker on the volume using your choice of protector. A password protector is used in the Windows PowerShell script example below. - - ``` syntax - Enable-BitLocker E: -PasswordProtector -Password $pw - ``` - -4. Identify the name of the cluster with Windows PowerShell. +3. Identify the name of the cluster with Windows PowerShell. ``` syntax Get-Cluster ``` -5. Add an **ADAccountOrGroup**protector to the volume using the cluster name using a command such as: +4. Enable BitLocker on the volume of your choice with an **ADAccountOrGroup** protector, using the cluster name. For example, use a command such as: ``` syntax - Add-BitLockerProtector E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ + Enable-BitLocker E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ ``` - >**Warning:**  You must add an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to failover properly in a traditional failover cluster. + >**Warning:**  You must configure an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to fail over properly in a traditional failover cluster.   -6. Repeat steps 1-6 for each disk in the cluster. -7. Add the volume(s) to the cluster. +5. Repeat the preceding steps for each disk in the cluster. +6. Add the volume(s) to the cluster. ### Turning on BitLocker for a clustered disk using Windows PowerShell @@ -97,28 +90,26 @@ When the cluster service owns a disk resource already, it needs to be set into m Get-ClusterResource "Cluster Disk 1" | Suspend-ClusterResource ``` -4. Enable BitLocker on the volume using your choice of protector. A password protector is used in the example below. - - ``` syntax - Enable-BitLocker E: -PasswordProtector -Password $pw - ``` - -5. Identify the name of the cluster with Windows PowerShell +4. Identify the name of the cluster with Windows PowerShell. ``` syntax Get-Cluster ``` -6. Add an **ADAccountOrGroup** protector with the Cluster Name Object (CNO) to the volume using a command such as: +5. Enable BitLocker on the volume of your choice with an **ADAccountOrGroup** protector, using the cluster name. For example, use a command such as: ``` syntax - Add-BitLockerProtector E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ - + Enable-BitLocker E: -ADAccountOrGroupProtector -ADAccountOrGroup CLUSTER$ ``` - >**Warning:**  You must add an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to failover properly in a traditional failover cluster. + >**Warning:**  You must configure an **ADAccountOrGroup** protector using the cluster CNO for a BitLocker enabled volume to either be shared in a Cluster Shared Volume or to fail over properly in a traditional failover cluster.   -7. Repeat steps 1-6 for each disk in the cluster. -8. Add the volume(s) to the cluster +6. Use **Resume-ClusterResource** to take the physical disk resource back out of maintenance mode: + + ``` syntax + Get-ClusterResource "Cluster Disk 1" | Resume-ClusterResource + ``` + +7. Repeat the preceding steps for each disk in the cluster. ### Adding BitLocker encrypted volumes to a cluster using manage-bde diff --git a/windows/keep-secure/recommended-network-definitions-for-wip.md b/windows/keep-secure/recommended-network-definitions-for-wip.md new file mode 100644 index 0000000000..bf9a7ac22a --- /dev/null +++ b/windows/keep-secure/recommended-network-definitions-for-wip.md @@ -0,0 +1,39 @@ +--- +title: Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP) (Windows 10) +description: Recommended URLs to add to your Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). +keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and Neutral Resources, WIP and Enterprise Cloud Resources +ms.prod: w10 +ms.mktglfcycl: explore +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +--- + +# Recommended Enterprise Cloud Resources and Neutral Resources network settings with Windows Information Protection (WIP) + +**Applies to:** + +- Windows 10, version 1607 +- Windows 10 Mobile + +>Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). + +We recommend that you add the following URLs to the Enterprise Cloud Resources and Neutral Resources network settings, when used with Windows Information Protection (WIP). + +## Recommended Enterprise Cloud Resources +This table includes the recommended URLs to add to your Enterprise Cloud Resources network setting, based on the apps you use in your organization. + +|If your organization uses... |Add these entries to your Enterprise Cloud Resources network setting
(Replace "contoso" with your domain name(s) | +|-----------------------------|---------------------------------------------------------------------| +|Office 365 for Business |
  • contoso.sharepoint.com
  • contoso-my.sharepoint.com
  • contoso-files.sharepoint.com
  • tasks.office.com
  • protection.office.com
  • meet.lync.com
  • teams.microsoft.com
| +|Yammer |
  • www.yammer.com
  • yammer.com
  • persona.yammer.com
| +|Microsoft Dynamics |contoso.crm.dynamics.com | +|Visual Studio Online |contoso.visualstudio.com | +|Power BI |contoso.powerbi.com | + +## Recommended Neutral Resources +We recommended adding these URLs if you use the Neutral Resources network setting with Windows Information Protection (WIP). +
    +
  • login.microsoftonline.com
  • +
  • login.windows.net
  • +
\ No newline at end of file diff --git a/windows/keep-secure/remove-computer-from-docking-station.md b/windows/keep-secure/remove-computer-from-docking-station.md index ee3b81a7d3..1823951ae4 100644 --- a/windows/keep-secure/remove-computer-from-docking-station.md +++ b/windows/keep-secure/remove-computer-from-docking-station.md @@ -1,5 +1,5 @@ --- -title: Remove computer from docking station (Windows 10) +title: Remove computer from docking station - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Remove computer from docking station security policy setting. ms.assetid: 229a385a-a862-4973-899a-413b1b5b6c30 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Remove computer from docking station +# Remove computer from docking station - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md b/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md index d2bbb021bb..fad266b5ee 100644 --- a/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md +++ b/windows/keep-secure/requirements-and-deployment-planning-guidelines-for-device-guard.md @@ -26,7 +26,7 @@ This article describes the following: The information in this article is intended for IT professionals, and provides a foundation for [Planning and getting started on the Device Guard deployment process](planning-and-getting-started-on-the-device-guard-deployment-process.md). ->**Note**  If you are an OEM, see the requirements information at [PC OEM requirements for Device Guard and Credential Guard](https://msdn.microsoft.com/library/windows/hardware/mt767514(v=vs.85).aspx). +>**Note**  If you are an OEM, see the requirements information at [PC OEM requirements for Device Guard and Credential Guard](https://msdn.microsoft.com/library/windows/hardware/mt767514.aspx). ## Hardware, firmware, and software requirements for Device Guard diff --git a/windows/keep-secure/requirements-for-deploying-applocker-policies.md b/windows/keep-secure/requirements-for-deploying-applocker-policies.md index e3b6c29aa7..874036e3b6 100644 --- a/windows/keep-secure/requirements-for-deploying-applocker-policies.md +++ b/windows/keep-secure/requirements-for-deploying-applocker-policies.md @@ -24,7 +24,7 @@ The following requirements must be met or addressed before you deploy your AppLo ### Deployment plan -An AppLocker policy deployment plan is the result of investigating which applications are required and necessary in your organization, which apps are optional, and which apps are forbidden. To develop this plan, see [AppLocker Design Guide](applocker-policies-design-guide.md). The following table is an example of the data you need to collect and the decisions you need to make to successfully deploy AppLocker policies on the supported operating systems (as listed in [Requirements to use AppLocker](requirements-to-use-applocker.md). +An AppLocker policy deployment plan is the result of investigating which applications are required and necessary in your organization, which apps are optional, and which apps are forbidden. To develop this plan, see [AppLocker Design Guide](applocker-policies-design-guide.md). The following table is an example of the data you need to collect and the decisions you need to make to successfully deploy AppLocker policies on the supported operating systems (as listed in [Requirements to use AppLocker](requirements-to-use-applocker.md)). diff --git a/windows/keep-secure/requirements-to-use-applocker.md b/windows/keep-secure/requirements-to-use-applocker.md index 60ac319a63..81fe0f76ba 100644 --- a/windows/keep-secure/requirements-to-use-applocker.md +++ b/windows/keep-secure/requirements-to-use-applocker.md @@ -33,12 +33,10 @@ The following table show the on which operating systems AppLocker features are s | Version | Can be configured | Can be enforced | Available rules | Notes | | - | - | - | - | - | -| Windows 10| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL| You can use the [AppLocker CSP](http://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) to configure AppLocker policies on any edition of Windows 10. You can only manage AppLocker with Group Policy on devices running Windows 10 Enterprise and Windows Server 2016. | -| Windows Server 2012 R2| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL| | +| Windows 10| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL| You can use the [AppLocker CSP](http://msdn.microsoft.com/library/windows/hardware/dn920019.aspx) to configure AppLocker policies on any edition of Windows 10. You can only manage AppLocker with Group Policy on devices running Windows 10 Enterprise, Windows 10 Education, and Windows Server 2016. | +| Windows Server 2016
Windows Server 2012 R2
Windows Server 2012| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL| | | Windows 8.1| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL| Only the Enterprise edition supports AppLocker| | Windows RT 8.1| No| No| N/A|| -| Windows Server 2012 Standard| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL|| -| Windows Server 2012 Datacenter| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL|| | Windows 8 Pro| No| No| N/A|| | Windows 8 Enterprise| Yes| Yes| Packaged apps
Executable
Windows Installer
Script
DLL|| | Windows RT| No| No| N/A| | diff --git a/windows/keep-secure/restore-files-and-directories.md b/windows/keep-secure/restore-files-and-directories.md index e8bb7e6f85..bf78f4ff41 100644 --- a/windows/keep-secure/restore-files-and-directories.md +++ b/windows/keep-secure/restore-files-and-directories.md @@ -1,5 +1,5 @@ --- -title: Restore files and directories (Windows 10) +title: Restore files and directories - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Restore files and directories security policy setting. ms.assetid: c673c0fa-6f49-4edd-8c1f-c5e8513f701d ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Restore files and directories +# Restore files and directories - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/security-technologies.md b/windows/keep-secure/security-technologies.md index 8bd5183126..6b82a956c7 100644 --- a/windows/keep-secure/security-technologies.md +++ b/windows/keep-secure/security-technologies.md @@ -11,21 +11,23 @@ author: brianlic-msft # Security technologies -Learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. +As an IT professional, you can use these topics to learn more about the different security technologies that are available in Windows 10 and Windows 10 Mobile. -| Topic | Description | +| Section | Description | |-|-| | [Access control](access-control.md) | Describes access control in Windows, which is the process of authorizing users, groups, and computers to access objects on the network or computer. Key concepts that make up access control are permissions, ownership of objects, inheritance of permissions, user rights, and object auditing. | -| [AppLocker](applocker-overview.md)| This topic provides a description of AppLocker and can help you decide if your organization can benefit from deploying AppLocker application control policies. AppLocker helps you control which apps and files users can run. These include executable files, scripts, Windows Installer files, dynamic-link libraries (DLLs), packaged apps, and packaged app installers.| -| [BitLocker](bitlocker-overview.md)| This topic provides a high-level overview of BitLocker, including a list of system requirements, practical applications, and deprecated features.| -| [Encrypted Hard Drive](encrypted-hard-drive.md) | Encrypted Hard Drive uses the rapid encryption that is provided by BitLocker Drive Encryption to enhance data security and management.| -| [Security auditing](security-auditing-overview.md)| Topics in this section are for IT professionals and describes the security auditing features in Windows and how your organization can benefit from using these technologies to enhance the security and manageability of your network.| -| [Security policy settings](security-policy-settings.md)| This reference topic describes the common scenarios, architecture, and processes for security settings.| -| [Trusted Platform Module](trusted-platform-module-overview.md)| This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM.| -| [User Account Control](user-account-control-overview.md)| User Account Control (UAC) helps prevent malware from damaging a PC and helps organizations deploy a better-managed desktop. With UAC, apps and tasks always run in the security context of a non-administrator account, unless an administrator specifically authorizes administrator-level access to the system. UAC can block the automatic installation of unauthorized apps and prevent inadvertent changes to system settings.| -| [Windows Defender Advanced Threat Protection](windows-defender-advanced-threat-protection.md)| Windows Defender Advanced Threat Protection (Windows Defender ATP) is an out-of-the-box Windows enterprise security service that enables enterprise cybersecurity teams to detect and respond to advanced threats on their networks.| -| [Windows Defender in Windows 10](windows-defender-in-windows-10.md)| This topic provides an overview of Windows Defender, including a list of system requirements and new features.| -| [Windows Firewall with Advanced Security](windows-firewall-with-advanced-security.md) | Windows Firewall with Advanced Security is an important part of a layered security model. By providing host-based, two-way network traffic filtering for a device, Windows Firewall with Advanced Security blocks unauthorized network traffic flowing into or out of the local device. | +| [AppLocker](applocker-overview.md)| Describes AppLocker, and can help you decide if your organization can benefit from deploying AppLocker application control policies. AppLocker helps you control which apps and files users can run. These include executable files, scripts, Windows Installer files, dynamic-link libraries (DLLs), packaged apps, and packaged app installers.| +| [BitLocker](bitlocker-overview.md)| Provides information about BitLocker, which is a data protection feature that integrates with the operating system and addresses the threats of data theft or exposure from lost, stolen, or inappropriately decommissioned computers. | +| [Encrypted Hard Drive](encrypted-hard-drive.md) | Provides information about Encrypted Hard Drive, which uses the rapid encryption that is provided by BitLocker Drive Encryption to enhance data security and management.| +| [Security auditing](security-auditing-overview.md)| Describes how the IT professional can use the security auditing features in Windows, and how organizations can benefit from using these technologies, to enhance the security and manageability of networks.| +| [Security policy settings](security-policy-settings.md)| Provides a collection of reference topics that describe the common scenarios, architecture, and processes for security settings.| +| [Smart Cards](smart-card-windows-smart-card-technical-reference.md) | Provides a collection of references topics about smart cards, which are tamper-resistant portable storage devices that can enhance the security of tasks such as authenticating clients, signing code, securing e-mail, and signing in with a Windows domain account. | +| [Trusted Platform Module](trusted-platform-module-top-node.md)| Provides links to information about the Trusted Platform Module (TPM), which is a secure crypto-processor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. | +| [User Account Control](user-account-control-overview.md)| Provides information about User Account Control (UAC), which helps prevent malware from damaging a PC and helps organizations deploy a better-managed desktop. UAC can help block the automatic installation of unauthorized apps and prevent inadvertent changes to system settings.| +| [Virtual Smart Cards](virtual-smart-card-overview.md) | Provides information about deploying and managing virtual smart cards, which are functionally similar to physical smart cards and appear in Windows as smart cards that are always-inserted. Virtual smart cards use the Trusted Platform Module (TPM) chip that is available on computers in many organizations, rather than requiring the use of a separate physical smart card and reader. | +| [Windows Defender Advanced Threat Protection](windows-defender-advanced-threat-protection.md)| Provides information about Windows Defender Advanced Threat Protection (Windows Defender ATP), an out-of-the-box Windows enterprise security service that enables enterprise cybersecurity teams to detect and respond to advanced threats on their networks.| +| [Windows Defender in Windows 10](windows-defender-in-windows-10.md)| Provides information about Windows Defender, a built-in antimalware solution that helps provide security and antimalware management for desktops, portable computers, and servers. Includes a list of system requirements and new features.| +| [Windows Firewall with Advanced Security](windows-firewall-with-advanced-security.md) | Provides information about Windows Firewall with Advanced Security, which is an important part of a layered security model. By providing host-based, two-way network traffic filtering for a device, Windows Firewall with Advanced Security blocks unauthorized network traffic flowing into or out of the local device. |     diff --git a/windows/keep-secure/select-types-of-rules-to-create.md b/windows/keep-secure/select-types-of-rules-to-create.md index 00ae11caf5..35f8ffd6b2 100644 --- a/windows/keep-secure/select-types-of-rules-to-create.md +++ b/windows/keep-secure/select-types-of-rules-to-create.md @@ -55,7 +55,7 @@ In the Woodgrove Bank example, the line-of-business app for the Bank Tellers bus ### Determine how to allow system files to run -Because AppLocker rules build a list of allowed apps, a rule or rules must be created to allow all Windows files to run. AppLocker provides a means to ensure system files are properly considered in your rule collection by generating the default rules for each rule collection. You can use the default rules as a template when creating your own rules. However, these rules are only meant to function as a starter policy when you are first testing AppLocker rules so that the system files in the Windows folders will be allowed to run. When a default rule is created, it is denoted with "(Default rule)" in its name as it appears in the rule collection. +Because AppLocker rules build a list of allowed apps, a rule or rules must be created to allow all Windows files to run. AppLocker provides a means to ensure system files are properly considered in your rule collection by generating the default rules for each rule collection. You can use the default rules (listed in [AppLocker default rules](working-with-applocker-rules.md#applocker-default-rules)) as a template when creating your own rules. However, these rules are only meant to function as a starter policy when you are first testing AppLocker rules so that the system files in the Windows folders will be allowed to run. When a default rule is created, it is denoted with "(Default rule)" in its name as it appears in the rule collection. You can also create a rule for the system files based on the path condition. In the preceding example, for the Bank Tellers group, all Windows files reside under C:\\Windows and can be defined with the path rule condition type. This will permit access to these files whenever updates are applied and the files change. If you require additional application security, you might need to modify the rules created from the built-in default rule collection. For example, the default rule to allow all users to run .exe files in the Windows folder is based on a path condition that allows all files within the Windows folder to run. The Windows folder contains a Temp subfolder to which the Users group is given the following permissions: diff --git a/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md b/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..6c8623a564 --- /dev/null +++ b/windows/keep-secure/service-status-windows-defender-advanced-threat-protection.md @@ -0,0 +1,54 @@ +--- +title: Check the Windows Defender ATP service status +description: Check Windows Defender ATP service status, see if the service is experiencing issues and review previous issues that have been resolved. +keywords: dashboard, service, issues, service status, current issues, status history, summary of impact, preliminary root cause, resolution, resolution time, expected resolution time +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: mjcaparas +localizationpriority: high +--- + +# Check the Windows Defender Advanced Threat Protection service status + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +The **Service health** provides information on the current status of the Window Defender ATP service. You'll be able to verify that the service status is healthy or if there are current issues. If there are issues, you'll see details related to the issue such as when the issue was detected, what the preliminary root cause is, and the expected resolution time. + +You'll also see information on historical issues that have been resolved and details such as the date and time when the issue was resolved. When there are no issues on the service, you'll see a healthy status. + +You can view details on the service status by clicking the tile from the **Dashboard** or selecting the **Service health** menu from the navigation pane. + +The **Service health** details page has the following tabs: + +- **Current issues** +- **Status History** + +## Current issues +The **Current issues** tab shows the current state of the Windows Defender ATP service. When the service is running smoothly a healthy service status is shown. If there are issues seen, the following service details are shown to help you gain better insight about the issue: + +- Date and time for when the issue was detected +- A short description of the issue +- Update time +- Summary of impact +- Preliminary root cause +- Next steps +- Expected resolution time + +Updates on the progress of an issue is reflected on the page as the issue gets resolved. You'll see updates on information such as an updated estimate resolution time or next steps. + +When an issue is resolved, it gets recorded in the **Status history** tab. + +## Status history +The **Status history** tab reflects all the historical issues that were seen and resolved. You'll see details of the resolved issues along with the other information that were included while it was being resolved. + +### Related topic +- [View the Windows Defender Advanced Threat Protection Dashboard](dashboard-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/shut-down-the-system.md b/windows/keep-secure/shut-down-the-system.md index 0c4f6b24a7..4cde410c2d 100644 --- a/windows/keep-secure/shut-down-the-system.md +++ b/windows/keep-secure/shut-down-the-system.md @@ -1,5 +1,5 @@ --- -title: Shut down the system (Windows 10) +title: Shut down the system - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management, and security considerations for the Shut down the system security policy setting. ms.assetid: c8e8f890-153a-401e-a957-ba6a130304bf ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Shut down the system +# Shut down the system - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md b/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md index 83e27c9e00..348aa4eb2d 100644 --- a/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md +++ b/windows/keep-secure/shutdown-clear-virtual-memory-pagefile.md @@ -1,5 +1,5 @@ --- -title: Shutdown Clear virtual memory pagefile (Windows 10) +title: Shutdown Clear virtual memory pagefile - security policy setting (Windows 10) description: Describes the best practices, location, values, policy management and security considerations for the Shutdown Clear virtual memory pagefile security policy setting. ms.assetid: 31400078-6c56-4891-a6df-6dfb403c4bc9 ms.prod: w10 @@ -9,7 +9,7 @@ ms.pagetype: security author: brianlic-msft --- -# Shutdown: Clear virtual memory pagefile +# Shutdown: Clear virtual memory pagefile - security policy setting **Applies to** - Windows 10 diff --git a/windows/keep-secure/smart-card-architecture.md b/windows/keep-secure/smart-card-architecture.md index 84d38741cf..41b2dcc225 100644 --- a/windows/keep-secure/smart-card-architecture.md +++ b/windows/keep-secure/smart-card-architecture.md @@ -74,7 +74,7 @@ Credential providers must be registered on a computer running Windows, and they ## Smart card subsystem architecture -Vendors provide smart cards and smart card readers, and in many cases the vendors are different for the smart card and the smart card reader. Drivers for smart card readers are written to the [Personal Computer/Smart Card (PC/SC) standard](http://www.pcscworkgroup.com/specifications/overview.php). Each smart card must have a Credential Service Provider (CSP) that uses the CryptoAPI interfaces to enable cryptographic operations, and the WinSCard APIs to enable communications with smart card hardware. +Vendors provide smart cards and smart card readers, and in many cases the vendors are different for the smart card and the smart card reader. Drivers for smart card readers are written to the [Personal Computer/Smart Card (PC/SC) standard](https://www.pcscworkgroup.com/). Each smart card must have a Credential Service Provider (CSP) that uses the CryptoAPI interfaces to enable cryptographic operations, and the WinSCard APIs to enable communications with smart card hardware. ### Base CSP and smart card minidriver architecture diff --git a/windows/keep-secure/smart-card-smart-cards-for-windows-service.md b/windows/keep-secure/smart-card-smart-cards-for-windows-service.md index a0c0edd3dc..1c4f17a7f2 100644 --- a/windows/keep-secure/smart-card-smart-cards-for-windows-service.md +++ b/windows/keep-secure/smart-card-smart-cards-for-windows-service.md @@ -14,7 +14,7 @@ Applies To: Windows 10, Windows Server 2016 This topic for the IT professional and smart card developers describes how the Smart Cards for Windows service (formerly called Smart Card Resource Manager) manages readers and application interactions. -The Smart Cards for Windows service provides the basic infrastructure for all other smart card components as it manages smart card readers and application interactions on the computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For information about these specifications, see the [PC/SC Workgroup Specifications Overview](http://www.pcscworkgroup.com/specifications/overview.php). +The Smart Cards for Windows service provides the basic infrastructure for all other smart card components as it manages smart card readers and application interactions on the computer. It is fully compliant with the specifications set by the PC/SC Workgroup. For information about these specifications, see the [PC/SC Workgroup Specifications website](https://www.pcscworkgroup.com/). The Smart Cards for Windows service runs in the context of a local service, and it is implemented as a shared service of the services host (svchost) process. The Smart Cards for Windows service, Scardsvr, has the following service description: diff --git a/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md b/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md index b60489c882..993c5d1aea 100644 --- a/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md +++ b/windows/keep-secure/switch-pcr-banks-on-tpm-2-0-devices.md @@ -1,6 +1,6 @@ --- -title: Switch PCR banks on TPM 2.0 devices (Windows 10) -description: A Platform Configuration Register (PCR) is a memory location in the TPM that has some unique properties. +title: Understanding PCR banks on TPM 2.0 devices (Windows 10) +description: This topic for the IT professional provides background about what happens when you switch PCR banks on TPM 2.0 devices. ms.assetid: 743FCCCB-99A9-4636-8F48-9ECB3A3D10DE ms.prod: w10 ms.mktglfcycl: deploy @@ -9,10 +9,13 @@ ms.pagetype: security author: brianlic-msft --- -# Switch PCR banks on TPM 2.0 devices +# Understanding PCR banks on TPM 2.0 devices **Applies to** - Windows 10 +- Windows Server 2016 + +For steps on how to switch PCR banks on TPM 2.0 devices on your PC, you should contact your OEM or UEFI vendor. This topic provides background about what happens when you switch PCR banks on TPM 2.0 devices. A Platform Configuration Register (PCR) is a memory location in the TPM that has some unique properties. The size of the value that can be stored in a PCR is determined by the size of a digest generated by an associated hashing algorithm. A SHA-1 PCR can store 20 bytes – the size of a SHA-1 digest. Multiple PCRs associated with the same hashing algorithm are referred to as a PCR bank. @@ -21,7 +24,7 @@ PCR\[N\] = HASHalg( PCR\[N\] || ArgumentOfExtend ) The existing value is concatenated with the argument of the TPM Extend operation. The resulting concatenation is then used as input to the associated hashing algorithm, which computes a digest of the input. This computed digest becomes the new value of the PCR. -The [TCG PC Client Specific Platform TPM Profile for TPM 2.0](https://go.microsoft.com/fwlink/p/?LinkId=746577) defines the inclusion of at least one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the TPM itself. This restriction helps ensure that the value of those PCRs can only be modified via the TPM Extend operation. +The [TCG PC Client Platform TPM Profile Specification](http://www.trustedcomputinggroup.org/pc-client-platform-tpm-profile-ptp-specification/) defines the inclusion of at least one PCR bank with 24 registers. The only way to reset the first 16 PCRs is to reset the TPM itself. This restriction helps ensure that the value of those PCRs can only be modified via the TPM Extend operation. Some TPM PCRs are used as checksums of log events. The log events are extended in the TPM as the events occur. Later, an auditor can validate the logs by computing the expected PCR values from the log and comparing them to the PCR values of the TPM. Since the first 16 TPM PCRs cannot be modified arbitrarily, a match between an expected PCR value in that range and the actual TPM PCR value provides assurance of an unmodified log. @@ -29,8 +32,7 @@ Some TPM PCRs are used as checksums of log events. The log events are extended i To bind the use of a TPM based key to a certain state of the PC, the key can be sealed to an expected set of PCR values. For instance, PCRs 0 through 7 have a well-defined value after the boot process – when the OS is loaded. When the hardware, firmware, or boot loader of the machine changes, the change can be detected in the PCR values. Windows 10 uses this capability to make certain cryptographic keys only available at certain times during the boot process. For instance, the BitLocker key can be used at a certain point in the boot, but not before or after. -It is important to note that this binding to PCR values also includes the hashing algorithm used for the PCR. For instance, a key can be bound to a specific value of the SHA-1 PCR\[12\], if using SHA-256 PCR banks, even with the -same system configuration otherwise, the PCR values will not match. +It is important to note that this binding to PCR values also includes the hashing algorithm used for the PCR. For instance, a key can be bound to a specific value of the SHA-1 PCR\[12\], if using SHA-256 PCR banks, even with the same system configuration. Otherwise, the PCR values will not match. ## What happens when PCR banks are switched? @@ -41,3 +43,7 @@ As a result, if the currently used PCR bank is switched all keys that have been ## What can I do to switch PCRs when BitLocker is already active? Before switching PCR banks you should suspend or disable BitLocker – or have your recovery key ready. For steps on how to switch PCR banks on your PC, you should contact your OEM or UEFI vendor. + +## Related topics + +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) diff --git a/windows/keep-secure/testing-scenarios-for-wip.md b/windows/keep-secure/testing-scenarios-for-wip.md index 45737291cf..cca0a2fa52 100644 --- a/windows/keep-secure/testing-scenarios-for-wip.md +++ b/windows/keep-secure/testing-scenarios-for-wip.md @@ -163,4 +163,7 @@ You can try any of the processes included in these scenarios, but you should foc -
\ No newline at end of file + + +>[!NOTE] +>Help to make this topic better by providing us with edits, additions, and feedback. For info about how to contribute to this topic, see [Contributing to TechNet content](https://github.com/Microsoft/windows-itpro-docs/blob/master/CONTRIBUTING.md). \ No newline at end of file diff --git a/windows/keep-secure/tools-to-use-with-applocker.md b/windows/keep-secure/tools-to-use-with-applocker.md index 5d2d69ff81..a5346774ab 100644 --- a/windows/keep-secure/tools-to-use-with-applocker.md +++ b/windows/keep-secure/tools-to-use-with-applocker.md @@ -24,7 +24,7 @@ The following tools can help you administer the application control policies cre - **Generate Default Rules tool** - AppLocker includes default rules for each rule collection accessed through the Local Security Policy snap-in. These rules are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For info about how to use this tool, see [Create AppLocker default rules](create-applocker-default-rules.md). + AppLocker includes default rules for each rule collection accessed through the Local Security Policy snap-in. These rules are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For info about how to use this tool, see [Create AppLocker default rules](create-applocker-default-rules.md). For a list of the default rules, see [AppLocker default rules](working-with-applocker-rules.md#applocker-default-rules). - **Automatically Generate AppLocker Rules wizard** diff --git a/windows/keep-secure/tpm-fundamentals.md b/windows/keep-secure/tpm-fundamentals.md index 92a6fe9b1d..efb080c89c 100644 --- a/windows/keep-secure/tpm-fundamentals.md +++ b/windows/keep-secure/tpm-fundamentals.md @@ -13,6 +13,7 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional provides a description of the components of the Trusted Platform Module (TPM 1.2 and TPM 2.0) and explains how they are used to mitigate dictionary attacks. @@ -30,109 +31,65 @@ For info about which versions of Windows support which versions of the TPM, see The following sections provide an overview of the technologies that support the TPM: -- [TPM-based Virtual Smart Card](#bkmk-vsc) -- [Measured Boot with support for attestation](#bkmk-measuredboot) -- [Automated provisioning and management of the TPM](#bkmk-autoprov) -- [TPM-based certificate storage](#bkmk-tpmcs) -- [Physical presence interface](#bkmk-physicalpresenceinterface) -- [TPM Cmdlets](#bkmk-tpmcmdlets) -- [TPM Owner Authorization Value](#bkmk-authvalue) -- [States of existence in a TPM](#bkmk-stateex) -- [Endorsement keys](#bkmk-endorsementkeys) -- [TPM Key Attestation](#bkmk-ketattestation) -- [How the TPM mitigates dictionary attacks](#bkmk-howtpmmitigates) -- [How do I check the state of my TPM?](#bkmk-checkstate) -- [What can I do if my TPM is in reduced functionality mode?](#bkmk-fixrfm) +- [Measured Boot with support for attestation](#measured-boot-with-support-for-attestation) + +- [TPM-based Virtual Smart Card](#tpm-based-virtual-smart-card) + +- [TPM-based certificate storage](#tpm-based-certificate-storage) + +- [TPM Cmdlets](#tpm-cmdlets) + +- [Physical presence interface](#physical-presence-interface) + +- [TPM 1.2 states and initialization](#tpm-12-states-and-initialization) + +- [Endorsement keys](#endorsement-keys) + +- [TPM Key Attestation](#key-attestation) + +- [How the TPM mitigates dictionary attacks](#how-the-tpm-mitigates-dictionary-attacks) The following topic describes the TPM Services that can be controlled centrally by using Group Policy settings: -[Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md) +[TPM Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). -## Automated provisioning and management of the TPM - -TPM provisioning can be streamlined to make it easier to deploy systems that are ready for BitLocker and other TPM-dependent features. These enhancements include simplifying the TPM state model to report **Ready**, **Ready with reduced functionality**, or **Not ready**. You can also automatically provision TPMs in the **Ready** state, remote provisioning to remove the requirement for the physical presence of a technician for the initial deployment. In addition, the TPM stack is available in the Windows Preinstallation Environment (Windows PE). - -A number of management settings have been added for easier management and configuration of the TPM through Group Policy. The primary new settings include Active Directory-based backup of TPM owner authentication, the level of owner authentication that should be stored locally on the TPM, and the software-based TPM lockout settings for standard users. For more info about backing up owner authentication to Windows Server 2008 R2 AD DS domains, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). - -## Measured Boot with support for attestation +## Measured Boot with support for attestation The Measured Boot feature provides antimalware software with a trusted (resistant to spoofing and tampering) log of all boot components. Antimalware software can use the log to determine whether components that ran before it are trustworthy versus infected with malware. It can also send the Measured Boot logs to a remote server for evaluation. The remote server can initiate remediation actions by interacting with software on the client or through out-of-band mechanisms, as appropriate. -## TPM-based Virtual Smart Card +## TPM-based Virtual Smart Card -The Virtual Smart Card emulates the functionality of traditional smart cards, but Virtual Smart Cards use the TPM chip that is available on an organization’s computers, rather than requiring the use of a separate physical smart card and reader. This greatly reduces the management and deployment cost of smart cards in an enterprise. To the end user, the Virtual Smart Card is always available on the computer. If a user needs to use more than one computer, a +The Virtual Smart Card emulates the functionality of traditional smart cards, but Virtual Smart Cards use the TPM chip that is available on an organization’s computers, rather than requiring the use of a separate physical smart card and reader. This greatly reduces the management and deployment cost of smart cards in an enterprise. To the end user, the Virtual Smart Card is always available on the computer. If a user needs to use more than one computer, a Virtual Smart Card must be issued to the user for each computer. A computer that is shared among multiple users can host multiple Virtual Smart Cards, one for each user. -## TPM-based certificate storage +## TPM-based certificate storage The TPM can be used to protect certificates and RSA keys. The TPM key storage provider (KSP) provides easy, convenient use of the TPM as a way of strongly protecting private keys. The TPM KSP can be used to generate keys when an organization enrolls for certificates, and the KSP is managed by templates in the UI. The TPM can also be used to protect certificates that are imported from an outside source. TPM-based certificates can be used exactly as standard certificates with the added functionality that the certificate can never leave the TPM from which the keys were generated. The TPM can now be used for crypto-operations through Cryptography API: Next Generation (CNG). For more info, see [Cryptography API: Next Generation](http://msdn.microsoft.com/library/windows/desktop/aa376210.aspx). -## TPM Owner Authorization Value - -For Windows 8 a change to how the TPM owner authorization value is stored in AD DS was implemented in the AD DS schema. The TPM owner authorization value is now stored in a separate object which is linked to the Computer object. -This value was stored as a property in the Computer object itself for the default Windows Server 2008 R2 schemas. Windows Server 2012 domain controllers have the default schema to backup TPM owner authorization information in the separate object. If you are not upgrading your domain controller to Windows Server 2012 you need to extend the schema to support this change. If Active Directory backup of the TPM owner authorization value is enabled in a Windows Server 2008 R2 environment without extending the schema, the TPM provisioning will fail and the TPM will remain in a Not Ready state for computers running Windows 8. - -If your computer is not being joined to a domain the TPM owner authorization value will be stored in the local computer registry. Using BitLocker to encrypt the operating system drive will protect the owner authorization value from being disclosed when the computer is at rest, but there is a risk that a malicious user could obtain the TPM owner authorization value when the computer is unlocked. Therefore, we recommend that in this situation you configure your computer to automatically lock after 30 seconds of inactivity. If automatic locking is not used, then you should consider removing full owner authorization from the computer registry. - -**Registry information** - -Registry key: HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\TPM -DWORD: OSManagedAuthLevel - -| Value Data | Setting | -| - | - | -| 0 | None| -| 2 | Delegated| -| 4 | Full| -  ->**Note:**  If the operating system managed TPM authentication setting is changed from "Full" to "Delegated" the full TPM owner authorization value will be regenerated and any copies of the original TPM owner authorization value will be invalid. If you are backing up the TPM owner authorization value to AD DS, the new owner authorization value will be automatically backed up to AD DS when it is changed. -  -## TPM Cmdlets +## TPM Cmdlets If you are using PowerShell to script and manage your computers, you can now manage the TPM using Windows PowerShell as well. To install the TPM cmdlets use the following command: `dism /online /enable-feature /FeatureName:tpm-psh-cmdlets` -For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -## Physical presence interface +For details about the individual cmdlets, see [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx). -The TCG specifications for TPMs require physical presence to perform some TPM administrative functions, such as turning on and turning off the TPM. Physical presence means a person must physically interact with the system and the -TPM interface to confirm or reject changes to TPM status. This typically cannot be automated with scripts or other automation tools unless the individual OEM supplies them. Here are some are examples of TPM administrative tasks that require physical presence: +## Physical presence interface -- Activating the TPM -- Clearing the existing owner information from the TPM without the owner’s password -- Deactivating the TPM -- Disabling the TPM temporarily without the owner’s password +For TPM 1.2, the TCG specifications for TPMs require physical presence (typically, pressing a key) for turning the TPM on, turning it off, or clearing it. These actions typically cannot be automated with scripts or other automation tools unless the individual OEM supplies them. -## States of existence in a TPM +## TPM 1.2 states and initialization -For each of these TPM 1.2 states of existence, the TPM can transition into another state (for example, moving from disabled to enabled). The states are not exclusive. +For TPM 1.2, there are multiple possible states. Windows 10 automatically initializes the TPM, which brings it to an enabled, activated, and owned state. -These states of existence do not apply for Trusted Platform Module 2.0 because it cannot be turned off from within the operating system environment. +## Endorsement keys -| State | Description | -| - | - | -| Enabled| Most features of the TPM are available.
The TPM can be enabled and disabled multiple times within a boot period, if ownership is taken.| -| Disabled| The TPM restricts most operations. Exceptions include the ability to report TPM capabilities, extend and reset Platform Configuration Register (PCR) functions, and perform hashing and basic initialization.
The TPM can be enabled and disabled multiple times within a start-up period. | -| Activated| Most features of the TPM are available. The TPM can be activated and deactivated only through physical presence, which requires a restart.| -| Deactivated| Similar to the disabled state, with the exception that ownership can be taken when the TPM is deactivated and enabled. The TPM can be activated and deactivated only through physical presence, which requires a restart.| -| Owned| Most features of the TPM are available. The TPM has an endorsement key and storage root key, and the owner knows information about owner authorization data.| -| Unowned| The TPM does not have a storage root key, and it may or may not have an endorsement key.| -  ->**Important:**  Applications cannot use the TPM until the state is enabled, activated, and owned. All operations are available only when the TPM is in this state. -  -The state of the TPM exists independently of the computer’s operating system. When the TPM is enabled, activated, and owned, the state of the TPM is preserved if the operating system is reinstalled. +For a TPM to be usable by a trusted application, it must contain an endorsement key, which is an RSA key pair. The private half of the key pair is held inside the TPM, and it is never revealed or accessible outside the TPM. -## Endorsement keys - -For a TPM to be usable by a trusted application, it must contain an endorsement key, which is an RSA key pair. The private half of the key pair is held inside the TPM, and it is never revealed or accessible outside the TPM. If the -TPM does not contain an endorsement key, the application might cause the TPM to generate one automatically as part of the setup. -An endorsement key can be created at various points in the TPM’s lifecycle, but it needs to be created only once for the lifetime of the TPM. The existence of an endorsement key is a requirement before TPM ownership can be taken. - -## Key attestation +## Key attestation TPM key attestation allows a certification authority to verify that a private key is actually protected by a TPM and that the TPM is one that the certification authority trusts. Endorsement keys which have been proven valid can be used to bind the user identity to a device. Moreover, the user certificate with a TPM attested key provides higher security assurance backed up by the non-exportability, anti-hammering, and isolation of keys provided by a TPM. -## How the TPM mitigates dictionary attacks +## How the TPM mitigates dictionary attacks When a TPM processes a command, it does so in a protected environment, for example, a dedicated microcontroller on a discrete chip or a special hardware-protected mode on the main CPU. A TPM can be used to create a cryptographic key that is not disclosed outside the TPM, but is able to be used in the TPM after the correct authorization value is provided. @@ -144,8 +101,9 @@ Because many entities can use the TPM, a single authorization success cannot res TPM 2.0 has well defined dictionary attack logic behavior. This is in contrast to TPM 1.2 for which the dictionary attack logic was set by the manufacturer, and the logic varied widely throughout the industry. ->**Warning:**  For the purposes of this topic, Windows 8 Certified Hardware also pertains to Windows 8.1 systems. The following references to “Windows” include these supported Windows versions. -  +> [!WARNING] +> For the purposes of this topic, Windows 8 Certified Hardware also pertains to Windows 8.1 systems. The following references to “Windows” include these supported Windows versions. + For Windows 8 Certified Hardware systems with TPM 2.0, the TPM is configured by Windows to lock after 32 authorization failures and to forget one authorization failure every two hours. This means that a user could quickly attempt to use a key with the wrong authorization value 32 times. For each of the 32 attempts, the TPM records if the authorization value was correct or not. This inadvertently causes the TPM to enter a locked state after 32 failed attempts. Attempts to use a key with an authorization value for the next two hours would not return success or failure; instead the response indicates that the TPM is locked. After two hours, one authorization failure is forgotten and the number of authorization failures remembered by the TPM drops to 31, so the TPM leaves the locked state and returns to normal operation. With the correct authorization value, keys could be used normally if no authorization failures occur during the next two hours. If a period of 64 hours elapses with no authorization failures, the TPM does not remember any authorization failures, and 32 failed attempts could occur again. @@ -165,35 +123,15 @@ For example, when BitLocker is used with a TPM plus PIN configuration, it needs The Windows TPM-based smart card, which is a virtual smart card, can be configured to allow sign in to the system. In contrast with physical smart cards, the sign-in process uses a TPM-based key with an authorization value. The following list shows the advantages of virtual smart cards: -Physical smart cards can enforce lockout for only the physical smart card PIN, and they can reset the lockout after the correct PIN is entered. With a virtual smart card, the TPM’s dictionary attack is not reset after a successful authentication. The allowed number of authorization failures before the TPM enters lockout includes many factors. +- Physical smart cards can enforce lockout for only the physical smart card PIN, and they can reset the lockout after the correct PIN is entered. With a virtual smart card, the TPM’s dictionary attack is not reset after a successful authentication. The allowed number of authorization failures before the TPM enters lockout includes many factors. -Hardware manufacturers and software developers have the option to use the security features of the TPM to meet their requirements. +- Hardware manufacturers and software developers have the option to use the security features of the TPM to meet their requirements. -The intent of selecting 32 failures as the lock-out threshold is so users rarely lock the TPM (even when learning to type new passwords or if they frequently lock and unlock their computers). If users lock the TPM, they must to wait two hours or use some other credential to sign in, such as a user name and password. +- The intent of selecting 32 failures as the lock-out threshold is so users rarely lock the TPM (even when learning to type new passwords or if they frequently lock and unlock their computers). If users lock the TPM, they must to wait two hours or use some other credential to sign in, such as a user name and password. -## How do I check the state of my TPM? +## Related topics -You can check the state of the TPM on a PC by running the Trusted Platform Module snap-in (tpm.msc). The **Status** heading tells you the state of your TPM. The TPM can be in one of the following states: **Ready for use**, **Ready for use, with reduced functionality**, and **Not ready for use**. To take advantage of most of the TPM features in Windows 10, the TPM must be **Ready for use**. - -## What can I do if my TPM is in reduced functionality mode? - -If your TPM is in reduced functionality mode, some features that rely on the TPM will not function correctly. This is most often caused by doing a clean installation of Windows 10 on a device where Windows 8.1, Windows 8, or Windows 7 had previously been installed on the same hardware. If your TPM is in reduced functionality mode, the Status heading in the Trusted Platform Module snap-in shows **The TPM is ready for use, with reduced functionality**. -You can fix this by clearing the TPM. - -**To clear the TPM** - -1. Open the Trusted Platform Module snap-in (tpm.msc). -2. Click **Clear TPM**, and then click **Restart.** -3. When the PC is restarting, you might be prompted to press a button on the keyboard to clear the TPM. -4. After the PC restarts, your TPM will be automatically prepared for use by Windows 10. - ->**Note:**  Clearing the TPM causes you to lose all TPM keys and data protected by those keys, such as a virtual smart card. You should not perform this procedure on a device you do not own, such as a work or school PC, without being instructed to do so by your IT administrator. -  -## Additional resources - -- [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md) -- [Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md) +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) - [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [Schema Extensions for Windows Server 2008 R2 to support AD DS backup of TPM information from Windows 8 clients](ad-ds-schema-extensions-to-support-tpm-backup.md) -- [TPM WMI providers](https://go.microsoft.com/fwlink/p/?LinkId=93478) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) +- [TPM WMI providers](https://msdn.microsoft.com/library/aa376476.aspx) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) \ No newline at end of file diff --git a/windows/keep-secure/tpm-recommendations.md b/windows/keep-secure/tpm-recommendations.md index 0b34d5a9a8..20d05b68d2 100644 --- a/windows/keep-secure/tpm-recommendations.md +++ b/windows/keep-secure/tpm-recommendations.md @@ -12,26 +12,21 @@ author: brianlic-msft # TPM recommendations +**Applies to** + **Applies to** - Windows 10 -- Windows 10 Mobile -- Windows Server 2016 -- Windows 10 IoT Core (IoT Core) +- Windows Server 2016 This topic provides recommendations for Trusted Platform Module (TPM) technology for Windows 10. -## Overview +For a basic feature description of TPM, see the [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md). -Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. It has a security-related crypto-processor that is designed to carry out cryptographic operations in a variety of devices and form factors. It includes multiple physical security mechanisms to help prevent malicious software from tampering with the security functions of the TPM. Some of the key advantages of using TPM technology are that you can: +## TPM design and implementation -1. Generate, store, use, and protected cryptographic keys, -2. Use TPM technology for platform device authentication by using a unique endorsement key (EK), and -3. Help enhance platform integrity by taking and storing security measurements. - -The most common TPM functions are used for system integrity measurements and for key creation and use. During the boot process of a system, the boot code that is loaded (including firmware and the operating system components) can be measured and recorded in the TPM. The integrity measurements can be used as evidence for how a system started and to make sure that a TPM-based key was used only when the correct software was used to boot the system. Traditionally, TPMs have been discrete chips soldered to a computer’s motherboard. Such implementations allow the computer’s original equipment manufacturer (OEM) to evaluate and certify the TPM separate from the rest of the system. Although discrete TPM implementations are still common, they can be problematic for integrated devices that are small or have low power consumption. Some newer TPM implementations integrate TPM functionality into the same chipset as other platform components while still providing logical separation similar to discrete TPM chips. -TPMs are passive: they receive commands and return responses. To realize the full benefit of a TPM, the OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. TPMs were originally designed to provide security and privacy benefits to a platform’s owner and users, but newer versions can provide security and privacy benefits to the system hardware itself. Before it can be used for advanced scenarios, however, a TPM must be provisioned. Windows 10 automatically provisions a TPM, but if the user reinstalls the operating system, he or she may need to tell the operating system to explicitly provision the TPM again before it can use all the TPM’s features. +TPMs are passive: they receive commands and return responses. To realize the full benefit of a TPM, the OEM must carefully integrate system hardware and firmware with the TPM to send it commands and react to its responses. TPMs were originally designed to provide security and privacy benefits to a platform’s owner and users, but newer versions can provide security and privacy benefits to the system hardware itself. Before it can be used for advanced scenarios, however, a TPM must be provisioned. Windows 10 automatically provisions a TPM, but if the user is planning to reinstall the operating system, he or she may need to clear the TPM before reinstalling so that Windows can take full advantage of the TPM. The Trusted Computing Group (TCG) is the nonprofit organization that publishes and maintains the TPM specification. The TCG exists to develop, define, and promote vendor-neutral, global industry standards that support a hardware-based root of trust for interoperable trusted computing platforms. The TCG also publishes the TPM specification as the international standard ISO/IEC 11889, using the Publicly Available Specification Submission Process that the Joint Technical Committee 1 defines between the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). @@ -39,9 +34,6 @@ OEMs implement the TPM as a component in a trusted computing platform, such as a The TCG designed the TPM as a low-cost, mass-market security solution that addresses the requirements of different customer segments. There are variations in the security properties of different TPM implementations just as there are variations in customer and regulatory requirements for different sectors. In public-sector procurement, for example, some governments have clearly defined security requirements for TPMs whereas others do not. ->**Note:**  Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. - - ## TPM 1.2 vs. 2.0 comparison From an industry standard, Microsoft has been an industry leader in moving and standardizing on TPM 2.0, which has many key realized benefits across algorithms, crypto, hierarchy, root keys, authorization and NV RAM. @@ -51,16 +43,23 @@ From an industry standard, Microsoft has been an industry leader in moving and s TPM 2.0 products and systems have important security advantages over TPM 1.2, including: - The TPM 1.2 spec only allows for the use of RSA and the SHA-1 hashing algorithm. + - For security reasons, some entities are moving away from SHA-1. Notably, NIST has required many federal agencies to move to SHA-256 as of 2014, and technology leaders, including Microsoft and Google have announced they will remove support for SHA-1 based signing or certificates in 2017. + - TPM 2.0 **enables greater crypto agility** by being more flexible with respect to cryptographic algorithms. - - TPM 2.0 supports SHA-256 as well as ECC, the latter being critical to drive signing and key generation performance. + - TPM 2.0 supports newer algorithms, which can improve drive signing and key generation performance. For the full list of supported algorithms, see the [TCG Algorithm Registry](http://www.trustedcomputinggroup.org/tcg-algorithm-registry/). Some TPMs do not support all algorithms. + + - For the list of algorithms that Windows supports in the platform cryptographic storage provider, see [CNG Cryptographic Algorithm Providers](https://msdn.microsoft.com/library/windows/desktop/bb931354(v=vs.85).aspx). + - TPM 2.0 achieved ISO standardization ([ISO/IEC 11889:2015](http://blogs.microsoft.com/cybertrust/2015/06/29/governments-recognize-the-importance-of-tpm-2-0-through-iso-adoption/)). + - Use of TPM 2.0 may help eliminate the need for OEMs to make exception to standard configurations for certain countries and regions. - TPM 2.0 offers a more **consistent experience** across different implementations. - TPM 1.2 implementations vary in policy settings. This may result in support issues as lockout policies vary. + - TPM 2.0 lockout policy is configured by Windows, ensuring a consistent dictionary attack protection guarantee. - While TPM 1.2 parts are discrete silicon components which are typically soldered on the motherboard, TPM 2.0 is available as a **discrete (dTPM)** silicon component in a single semiconductor package, an **integrated** component incorporated in one or more semiconductor packages - alongside other logic units in the same package(s) - and as a **firmware (fTPM)** based component running in a trusted execution environment (TEE) on a general purpose SoC. @@ -69,22 +68,24 @@ TPM 2.0 products and systems have important security advantages over TPM 1.2, in There are three implementation options for TPMs: -- Discrete TPM chip as a separate component in its own semiconductor package -- Integrated TPM solution, using dedicated hardware integrated into one or more semiconductor packages alongside, but logically separate from, other components +- Discrete TPM chip as a separate component in its own semiconductor package + +- Integrated TPM solution, using dedicated hardware integrated into one or more semiconductor packages alongside, but logically separate from, other components + - Firmware TPM solution, running the TPM in firmware in a Trusted Execution mode of a general purpose computation unit -Windows uses any compatible TPM in the same way. Microsoft does not take a position on which way a TPM should be implemented and there is a wide ecosystem of available TPM solutions which should suit all needs. +Windows uses any compatible TPM in the same way. Microsoft does not take a position on which way a TPM should be implemented and there is a wide ecosystem of available TPM solutions which should suit all needs. -## Is there any importance for TPM for consumer? +## Is there any importance for TPM for consumers? -For end consumers, TPM is behind the scenes but is still very relevant. TPM is used for Windows Hello, Windows Hello for Business and in the future, will be a components of many other key security features in Windows. TPM secures the PIN, helps encrypt passwords, and builds on our overall Windows 10 experience story for security as a critical pillar. Using Windows on a system with a TPM enables a deeper and broader level of security coverage. +For end consumers, TPM is behind the scenes but is still very relevant. TPM is used for Windows Hello, Windows Hello for Business and in the future, will be a component of many other key security features in Windows. TPM secures the PIN, helps encrypt passwords, and builds on our overall Windows 10 experience story for security as a critical pillar. Using Windows on a system with a TPM enables a deeper and broader level of security coverage. ## TPM 2.0 Compliance for Windows 10 ### Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) -- Since July 28, 2016, all new device models, lines or series (or if you are updating the hardware configuration of a existing model, line or series with a major update, such as CPU, graphic cards) must implement and enable by default TPM 2.0 (details in section 3.7, https://msdn.microsoft.com/library/windows/hardware/dn915086(v=vs.85).aspx) - +- Since July 28, 2016, all new device models, lines or series (or if you are updating the hardware configuration of a existing model, line or series with a major update, such as CPU, graphic cards) must implement and enable by default TPM 2.0 (details in section 3.7 of the [Minimum hardware requirements](https://msdn.microsoft.com/library/windows/hardware/dn915086(v=vs.85).aspx) page). + ### IoT Core - TPM is optional on IoT Core. @@ -95,212 +96,28 @@ For end consumers, TPM is behind the scenes but is still very relevant. TPM is ## TPM and Windows Features -The following table defines which Windows features require TPM support. Some features are not applicable to Windows 7/8/8.1 and are noted accordingly. +The following table defines which Windows features require TPM support. - ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Windows FeaturesWindows 7/8/8.1 TPM 1.2Windows 10 TPM 1.2Windows 10 TPM 2.0Details
Measured BootRequiredRequiredRequiredMeasured boot requires TPM 1.2 or 2.0 and UEFI Secure boot.
BitlockerRequiredRequiredRequiredTPM 1.2 or later required or a removable USB memory device such as a flash drive.
Passport: Domain AADJ Joinn/aRequiredRequiredSupports both versions of TPM, but requires TPM with HMAC and EK certificate for key attestation support.
Passport: MSA or Local Accountn/aRequiredRequiredTPM 2.0 is required with HMAC and EK certificate for key attestation support.
Device Encryptionn/aNot RequiredRequiredTPM 2.0 is required for all InstantGo devices.
Device Guard / Configurable Code Integrityn/aOptionalOptional
Credential Guardn/aRequiredRequiredFor Windows 10, version 1511, TPM 1.2 or 2.0 is highly recommended. If you don't have a TPM installed, Credential Guard will still be enabled, but the keys used to encrypt Credential Guard will not be protected by the TPM.
Device Health Attestationn/aRequiredRequired
Windows Hellon/aNot RequiredNot Required
UEFI Secure BootNot RequiredNot RequiredNot Required
Platform Key Storage providern/aRequiredRequired
Virtual Smart Cardn/aRequiredRequired
Certificate storage (TPM bound)n/aRequiredRequired
-  -## Chipset options for TPM 2.0 -There is a vibrant ecosystem of TPM manufacturers. -### Discrete TPM - --- - - - - - - - - - - -
Supplier
    -
  • Infineon
  • -
  • Nuvoton
  • -
  • Atmel
  • -
  • NationZ
  • -
  • ST Micro
  • -
-  -### Integrated TPM - --- - - - - - - - - - - - - -
SupplierChipset
Intel
    -
  • Atom (CloverTrail) -
  • Baytrail
  • -
  • Braswell
  • -
  • 4th generation Core (Haswell)
  • -
  • 5th generation Core (Broadwell)
  • -
  • 6th generation Core (Skylake)
  • -
  • 7th generation Core (Kaby Lake)
  • -
+| Windows Features | Windows 10 TPM 1.2 | Windows 10 TPM 2.0 | Details | +|-------------------------|----------------------|----------------------|----------| +| Measured Boot | Required | Required | Measured boot requires TPM 1.2 or 2.0 and UEFI Secure boot. | +| Bitlocker | Required | Required | TPM 1.2 or later required or a removable USB memory device such as a flash drive. | +| Passport: Domain AADJ Join | Required | Required | Supports both versions of TPM, but requires TPM with HMAC and EK certificate for key attestation support. | +| Passport: MSA or Local Account | Required | Required | TPM 2.0 is required with HMAC and EK certificate for key attestation support. | +| Device Encryption | Not Applicable | Required | TPM 2.0 is required for all InstantGo devices. | +| Device Guard / Configurable Code Integrity | See next column | Recommended | | +| Credential Guard | Required | Required | For Windows 10, version 1511, TPM 1.2 or 2.0 is highly recommended. If you don't have a TPM installed, Credential Guard will still be enabled, but the keys used to encrypt Credential Guard will not be protected by the TPM. | +| Device Health Attestation | Required | Required | | +| Windows Hello | Not Required | Recommended | | +| UEFI Secure Boot | Not Required | Recommended | | +| Platform Key Storage provider | Required | Required | | +| Virtual Smart Card | Required | Required | | +| Certificate storage (TPM bound) | Required | Required | | + +## OEM Status on TPM 2.0 system availability and certified parts -### Firmware TPM - ---- - - - - - - - - - - - - - - - - -
SupplierChipset
AMD
    -
  • Mullins
  • -
  • Beema
  • -
  • Carrizo
  • -
Qualcomm
    -
  • MSM8994
  • -
  • MSM8992
  • -
  • MSM8952
  • -
  • MSM8909
  • -
  • MSM8208
  • -
-  -## OEM Feedback and Status on TPM 2.0 system availability +Government customers and enterprise customers in regulated industries may have acquisition standards that require use of common certified TPM parts. As a result, OEMs, who provide the devices, may be required to use only certified TPM components on their commercial class systems. For more information, contact your OEM or hardware vendor. -### Certified TPM parts +## Related topics -Government customers and enterprise customers in regulated industries may have acquisition standards that require use of common certified TPM parts. As a result, OEMs, who provide the devices, may be required to use only certified TPM components on their commercial class systems. Discrete TPM 2.0 vendors have completion certification. - -### Windows 7 32-bit support - -Even though Windows 7 shipped before the TPM 2.0 spec or products existed, Microsoft backported TPM 2.0 support to Windows 7 64-bit and released it in summer 2014 as a downloadable Windows hotfix for UEFI based Windows 7 systems. Microsoft is not currently planning to backport support to Windows 7 32-bit support. +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) \ No newline at end of file diff --git a/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md b/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md index e3c1d51f68..e95197be01 100644 --- a/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Troubleshoot Windows Defender ATP onboarding issues description: Troubleshoot issues that might arise during the onboarding of endpoints or to the Windows Defender ATP service. -keywords: troubleshoot onboarding, onboarding issues, event viewer, data collection and preview builds, telemetry and diagnostics +keywords: troubleshoot onboarding, onboarding issues, event viewer, data collection and preview builds, sensor data and diagnostics search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -65,7 +65,7 @@ Event ID | Error Type | Resolution steps 5 | Offboarding data was found but couldn't be deleted | Check the permissions on the registry, specifically ```HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection```. 10 | Onboarding data couldn't be written to registry | Check the permissions on the registry, specifically
```HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat```.
Verify that the script was ran as an administrator. 15 | Failed to start SENSE service |Check the service status (```sc query sense``` command). Make sure it's not in an intermediate state (*'Pending_Stopped'*, *'Pending_Running'*) and try to run the script again (with administrator rights). -15 | Failed to start SENSE service | If the message of the error is: System error 577 has occurred. You need to enable the Windows Defender ELAM driver, see [Ensure the Windows Defender ELAM driver is enabled](#ensure-the-windows-defender-elam-driver-is-enabled) for instructions. +15 | Failed to start SENSE service | If the message of the error is: System error 577 has occurred. You need to enable the Windows Defender ELAM driver, see [Ensure that Windows Defender is not disabled by a policy](#ensure-that-windows-defender-is-not-disabled-by-a-policy) for instructions. 30 | The script failed to wait for the service to start running | The service could have taken more time to start or has encountered errors while trying to start. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). 35 | The script failed to find needed onboarding status registry value | When the SENSE service starts for the first time, it writes onboarding status to the registry location
```HKLM\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status```.
The script failed to find it after several seconds. You can manually test it and check if it's there. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). 40 | SENSE service onboarding status is not set to **1** | The SENSE service has failed to onboard properly. For more information on events and errors related to SENSE, see [Review events and errors on endpoints with Event viewer](event-error-codes-windows-defender-advanced-threat-protection.md). @@ -124,7 +124,7 @@ If the deployment tools used does not indicate an error in the onboarding proces - [Ensure the telemetry and diagnostics service is enabled](#ensure-the-telemetry-and-diagnostics-service-is-enabled) - [Ensure the service is set to start](#ensure-the-service-is-set-to-start) - [Ensure the endpoint has an Internet connection](#ensure-the-endpoint-has-an-internet-connection) -- [Ensure the Windows Defender ELAM driver is enabled](#ensure-the-windows-defender-elam-driver-is-enabled) +- [Ensure that Windows Defender is not disabled by a policy](#ensure-that-windows-defender-is-not-disabled-by-a-policy) ### View agent onboarding errors in the endpoint event log @@ -214,7 +214,7 @@ First, you should check that the service is set to start automatically when Wind ### Ensure the endpoint has an Internet connection -The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report telemetry and communicate with the Windows Defender ATP service. +The Window Defender ATP sensor requires Microsoft Windows HTTP (WinHTTP) to report sensor data and communicate with the Windows Defender ATP service. WinHTTP is independent of the Internet browsing proxy settings and other user context applications and must be able to detect the proxy servers that are available in your particular environment. @@ -222,98 +222,31 @@ To ensure that sensor has service connectivity, follow the steps described in th If the verification fails and your environment is using a proxy to connect to the Internet, then follow the steps described in [Configure proxy and Internet connectivity settings](configure-proxy-internet-windows-defender-advanced-threat-protection.md) topic. -### Ensure the Windows Defender ELAM driver is enabled -If your endpoints are running a third-party antimalware client, the Windows Defender ATP agent needs the Windows Defender Early Launch Antimalware (ELAM) driver to be enabled. +### Ensure that Windows Defender is not disabled by a policy +**Problem**: The Windows Defender ATP service does not start after onboarding. -**Check the ELAM driver status:** +**Symptom**: Onboarding successfully completes, but you see error 577 when trying to start the service. -1. Open a command-line prompt on the endpoint: +**Solution**: If your endpoints are running a third-party antimalware client, the Windows Defender ATP agent needs the Windows Defender Early Launch Antimalware (ELAM) driver to be enabled. You must ensure that it's not disabled in system policy. - a. Click **Start**, type **cmd**, and select **Command prompt**. +- Depending on the tool that you use to implement policies, you'll need to verify that the following Windows Defender policies are set to ```0``` or that the settings are cleared: -2. Enter the following command, and press Enter: - ``` - sc qc WdBoot - ``` - If the ELAM driver is enabled, the output will be: + - ```DisableAntiSpyware``` + - ```DisableAntiVirus``` - ``` - [SC] QueryServiceConfig SUCCESS + For example, in Group Policy: - SERVICE_NAME: WdBoot - TYPE : 1 KERNEL_DRIVER - START_TYPE : 0 BOOT_START - ERROR_CONTROL : 1 NORMAL - BINARY_PATH_NAME : \SystemRoot\system32\drivers\WdBoot.sys - LOAD_ORDER_GROUP : Early-Launch - TAG : 0 - DISPLAY_NAME : Windows Defender Boot Driver - DEPENDENCIES : - SERVICE_START_NAME : - ``` - If the ELAM driver is disabled the output will be: - ``` - [SC] QueryServiceConfig SUCCESS + ``` + ``` +- After clearing the policy, run the onboarding steps again on the endpoint. - SERVICE_NAME: WdBoot - TYPE : 1 KERNEL_DRIVER - START_TYPE : 0 DEMAND_START - ERROR_CONTROL : 1 NORMAL - BINARY_PATH_NAME : \SystemRoot\system32\drivers\WdBoot.sys - LOAD_ORDER_GROUP : _Early-Launch - TAG : 0 - DISPLAY_NAME : Windows Defender Boot Driver - DEPENDENCIES : - SERVICE_START_NAME : - ``` +- You can also check the following registry key values to verify that the policy is disabled: -#### Enable the ELAM driver + 1. Open the registry ```key HKEY_LOCAL_MACHINE\ SOFTWARE\Policies\Microsoft\Windows Defender```. + 2. Find the value ```DisableAntiSpyware```. + 3. Ensure that the value is set to 0. -1. Open an elevated PowerShell console on the endpoint: - - a. Click **Start**, type **powershell**. - - b. Right-click **Command prompt** and select **Run as administrator**. - -2. Run the following PowerShell cmdlet: - - ```text - 'Set-ExecutionPolicy -ExecutionPolicy Bypass’ - ``` -3. Run the following PowerShell script: - - ```text - Add-Type @' - using System; - using System.IO; - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - using System.ComponentModel; - - public static class Elam{ - [DllImport("Kernel32", CharSet=CharSet.Auto, SetLastError=true)] - public static extern bool InstallELAMCertificateInfo(SafeFileHandle handle); - - public static void InstallWdBoot(string path) - { - Console.Out.WriteLine("About to call create file on {0}", path); - var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); - var handle = stream.SafeFileHandle; - - Console.Out.WriteLine("About to call InstallELAMCertificateInfo on handle {0}", handle.DangerousGetHandle()); - if (!InstallELAMCertificateInfo(handle)) - { - Console.Out.WriteLine("Call failed."); - throw new Win32Exception(Marshal.GetLastWin32Error()); - } - Console.Out.WriteLine("Call successful."); - } - } - '@ - - $driverPath = $env:SystemRoot + "\System32\Drivers\WdBoot.sys" - [Elam]::InstallWdBoot($driverPath) - ``` + ![Image of registry key for Windows Defender](images/atp-disableantispyware-regkey.png) diff --git a/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md b/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md index fd485e8645..4cb0a35b53 100644 --- a/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/troubleshoot-windows-defender-advanced-threat-protection.md @@ -46,6 +46,7 @@ U.S. region: - winatpfeedback.windows.com - winatpmanagement.windows.com - winatponboarding.windows.com +- winatpservicehealth.windows.com EU region: @@ -57,11 +58,18 @@ EU region: - winatpfeedback.windows.com - winatpmanagement.windows.com - winatponboarding.windows.com +- winatpservicehealth.windows.com ### Windows Defender ATP service shows event or error logs in the Event Viewer See the topic [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md) for a list of event IDs that are reported by the Windows Defender ATP service. The topic also contains troubleshooting steps for event errors. +### Windows Defender ATP service fails to start after a reboot and shows error 577 + +If onboarding endpoints successfully completes but Windows Defender ATP does not start after a reboot and shows error 577, check that Windows Defender is not disabled by a policy. + +For more information, see [Ensure that Windows Defender is not disabled by policy](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md#ensure-that-windows-defender-is-not-disabled-by-a-policy). + ### Related topic - [Troubleshoot Windows Defender Advanced Threat Protection onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) diff --git a/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md b/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md index df382bc1fe..ac8772f7b7 100644 --- a/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md +++ b/windows/keep-secure/troubleshoot-windows-defender-in-windows-10.md @@ -2222,7 +2222,7 @@ Description of the error.

The support for your operating system has expired. Windows Defender is no longer supported on your operating system, has stopped functioning, and is not protecting against malware threats.

- +Event ID: 2050

Symbolic name:

MALWAREPROTECTION_SAMPLESUBMISSION_UPLOADED

Message:

The antimalware engine has uploaded a file for further analysis.
Filename <uploaded filename>
Sha256: <file SHA>

Description:

A file was uploaded to the Windows Defender Antimalware cloud for further analysis or processing.

Event ID: 3002 diff --git a/windows/keep-secure/trusted-platform-module-overview.md b/windows/keep-secure/trusted-platform-module-overview.md index a1b3a32c2d..ba05130ce1 100644 --- a/windows/keep-secure/trusted-platform-module-overview.md +++ b/windows/keep-secure/trusted-platform-module-overview.md @@ -1,6 +1,6 @@ --- title: Trusted Platform Module Technology Overview (Windows 10) -description: This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM. +description: This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. ms.assetid: face8932-b034-4319-86ac-db1163d46538 ms.prod: w10 ms.mktglfcycl: deploy @@ -14,64 +14,70 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 -This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. The topic provides links to other resources about the TPM. +This topic for the IT professional describes the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. -## Feature description +## Feature description Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that is designed to carry out cryptographic operations. The chip includes multiple physical security mechanisms to make it tamper resistant, and malicious software is unable to tamper with the security functions of the TPM. Some of the key advantages of using TPM technology are that you can: - Generate, store, and limit the use of cryptographic keys. + - Use TPM technology for platform device authentication by using the TPM’s unique RSA key, which is burned into itself. + - Help ensure platform integrity by taking and storing security measurements. The most common TPM functions are used for system integrity measurements and for key creation and use. During the boot process of a system, the boot code that is loaded (including firmware and the operating system components) can be measured and recorded in the TPM. The integrity measurements can be used as evidence for how a system started and to make sure that a TPM-based key was used only when the correct software was used to boot the system. TPM-based keys can be configured in a variety of ways. One option is to make a TPM-based key unavailable outside the TPM. This is good to mitigate phishing attacks because it prevents the key from being copied and used without the TPM. TPM-based keys can also be configured to require an authorization value to use them. If too many incorrect authorization guesses occur, the TPM will activate its dictionary attack logic and prevent further authorization value guesses. -Different versions of the TPM are defined in specifications by the Trusted Computing Group (TCG). For more information, consult the TCG Web site (). +Different versions of the TPM are defined in specifications by the Trusted Computing Group (TCG). For more information, consult the [TCG Web site](http://www.trustedcomputinggroup.org/work-groups/trusted-platform-module/). -Windows can automatically provision and manage the TPM. Group Policy settings can be configured to control whether the TPM owner authorization value is backed up in Active Directory. Because the TPM state persists across operating system installations, TPM information is stored in a location in Active Directory that is separate from computer objects. Depending on an enterprise’s security goals, Group Policy can be configured to allow or prevent local administrators from resetting the TPM’s dictionary attack logic. Standard users can use the TPM, but Group Policy controls limit how many authorization failures standard users can attempt so that one user is unable to prevent other users or the administrator from using the TPM. TPM technology can also be used as a virtual smart card and for secure certificate storage. With BitLocker Network Unlock, domain-joined computers are not prompted for a BitLocker PIN. +### Automatic initialization of the TPM with Windows 10 -## Practical applications +Starting with Windows 10, the operating system automatically initializes and takes ownership of the TPM. This means that in most cases, we recommend that you avoid configuring the TPM through the TPM management console, **TPM.msc**. There are a few exceptions, mostly related to resetting or performing a clean installation on a PC. For more information, see [Clear all the keys from the TPM](initialize-and-configure-ownership-of-the-tpm.md#clear-all-the-keys-from-the-tpm). + +In certain specific enterprise scenarios limited to Windows 10, versions 1507 and 1511, Group Policy might be used to back up the TPM owner authorization value in Active Directory. Because the TPM state persists across operating system installations, this TPM information is stored in a location in Active Directory that is separate from computer objects. + +## Practical applications Certificates can be installed or created on computers that are using the TPM. After a computer is provisioned, the RSA private key for a certificate is bound to the TPM and cannot be exported. The TPM can also be used as a replacement for smart cards, which reduces the costs associated with creating and disbursing smart cards. Automated provisioning in the TPM reduces the cost of TPM deployment in an enterprise. New APIs for TPM management can determine if TPM provisioning actions require physical presence of a service technician to approve TPM state change requests during the boot process. -Antimalware software can use the boot measurements of the operating system start state to prove the integrity of a computer running Windows 10, Windows 8.1, Windows 8, Windows Server 2012 R2, or Windows Server 2012. These measurements include the launch of Hyper-V to test that datacenters using virtualization are not running untrusted hypervisors. With BitLocker Network Unlock, IT administrators can push an update without concerns that a computer is waiting for PIN entry. +Antimalware software can use the boot measurements of the operating system start state to prove the integrity of a computer running Windows 10 or Windows Server 2016. These measurements include the launch of Hyper-V to test that datacenters using virtualization are not running untrusted hypervisors. With BitLocker Network Unlock, IT administrators can push an update without concerns that a computer is waiting for PIN entry. -The TPM has several Group Policy settings that can be used to manage how it is used. These settings can be used to manage the owner authorization value, the blocked TPM commands, the standard user lockout, and the backup of the TPM to AD DS. For more info, see [Trusted Platform Module Services Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). +The TPM has several Group Policy settings that might be useful in certain enterprise scenarios. For more info, see [TPM Group Policy Settings](trusted-platform-module-services-group-policy-settings.md). -## New and changed functionality +## New and changed functionality -For more info on new and changed functionality for Trusted Platform Module in Windows 10, see [What's new in Trusted Platform Module?](../whats-new/whats-new-windows-10-version-1507-and-1511.md#trusted-platform-module). +For more info on new and changed functionality for Trusted Platform Module in Windows 10, see [What's new in Trusted Platform Module?](https://technet.microsoft.com/itpro/windows/whats-new/whats-new-windows-10-version-1507-and-1511#trusted-platform-module). -## Device health attestation +## Device health attestation Device health attestation enables enterprises to establish trust based on hardware and software components of a managed device. With device heath attestation, you can configure an MDM server to query a health attestation service that will allow or deny a managed device access to a secure resource. Some things that you can check on the device are: - Is Data Execution Prevention supported and enabled? + - Is BitLocker Drive Encryption supported and enabled? + - Is SecureBoot supported and enabled? ->**Note:**  The device must be running Windows 10 and it must support at least TPM 2.0. -  -## Supported versions +> [!NOTE] +> The device must be running Windows 10 and it must support at least TPM 2.0. -| TPM version | Windows 10 | Windows Server 2012 R2, Windows 8.1, and Windows RT | Windows Server 2012, Windows 8, and Windows RT | Windows Server 2008 R2 and Windows 7 | -| - | - | - | - | - | -| TPM 1.2| X| X| X| X| -| TPM 2.0| X| X| X| X| +## Supported versions -## Additional Resources +| TPM version | Windows 10 | Windows Server 2016 | +|-------------|------------|---------------------| +| TPM 1.2 | X | X | +| TPM 2.0 | X | X | -- [TPM Fundamentals](tpm-fundamentals.md) -- [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) -- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) -  -  +## Related topics + +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) +- [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) diff --git a/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md b/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md index d927f73825..27fa6ec7db 100644 --- a/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md +++ b/windows/keep-secure/trusted-platform-module-services-group-policy-settings.md @@ -13,102 +13,94 @@ author: brianlic-msft **Applies to** - Windows 10 +- Windows Server 2016 This topic for the IT professional describes the Trusted Platform Module (TPM) Services that can be controlled centrally by using Group Policy settings. -## - The TPM Services Group Policy settings are located at: **Computer Configuration\\Administrative Templates\\System\\Trusted Platform Module Services\\** -| Setting | Windows 10, version 1607 | Windows 10, version 1511 and Windows 10, version 1507 | Windows Server 2012 R2, Windows 8.1 and Windows RT | Windows Server 2012, Windows 8 and Windows RT | Windows Server 2008 R2 and Windows 7 | Windows Server 2008 and Windows Vista | -| - | - | - | - | - | - | - | -| [Turn on TPM backup to Active Directory Domain Services](#bkmk-tpmgp-addsbu) | | X| X| X| X| X| -| [Configure the list of blocked TPM commands](#bkmk-tpmgp-clbtc)| X| X| X| X| X| X| -| [Ignore the default list of blocked TPM commands](#bkmk-tpmgp-idlb) | X| X| X| X| X| X| -| [Ignore the local list of blocked TPM commands](#bkmk-tpmgp-illb) | X| X| X| X| X| X| -| [Configure the level of TPM owner authorization information available to the operating system](#bkmk-tpmgp-oauthos)| | X| X| X||| -| [Standard User Lockout Duration](#bkmk-tpmgp-suld)| X| X| X| X||| -| [Standard User Individual Lockout Threshold](#bkmk-individual)| X| X| X| X||| -| [Standard User Total Lockout Threshold](#bkmk-total)| X| X| X| X|||| +| Setting | Windows 10, version 1607 and Windows Server 2016 | Windows 10, version 1511 and Windows 10, version 1507 | +|-----------------|--------------------------------------------------|-------------------------------------------------------| +| [Turn on TPM backup to Active Directory Domain Services](#turn-on-tpm-backup-to-active-directory-domain-services) | | X | +| [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands) | X | X | +| [Ignore the default list of blocked TPM commands](#ignore-the-default-list-of-blocked-tpm-commands) | X | X | +| [Ignore the local list of blocked TPM commands](#ignore-the-local-list-of-blocked-tpm-commands) | X | X | +| [Configure the level of TPM owner authorization information available to the operating system](#configure-the-level-of-tpm-owner-authorization-information-available-to-the-operating-system) | X | X | +| [Standard User Lockout Duration](#standard-user-lockout-duration) | X | X | +| [Standard User Individual Lockout Threshold](#standard-user-individual-lockout-threshold) | X | X | +| [Standard User Total Lockout Threshold](#standard-user-total-lockout-threshold) | X | X | -### Turn on TPM backup to Active Directory Domain Services +### Turn on TPM backup to Active Directory Domain Services This policy setting allows you to manage the Active Directory Domain Services (AD DS) backup of TPM owner information. ->[!NOTE] ->This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). - - TPM owner information includes a cryptographic hash of the TPM owner password. Certain TPM commands can be run only by the TPM owner. This hash authorizes the TPM to run these commands. ->[!IMPORTANT] ->To back up TPM owner information from a computer running Windows 10, version 1507, Windows 10, version 1511, Windows 8.1, or Windows 8, you might need to first set up appropriate schema extensions and access control settings on the domain so that the AD DS backup can succeed. Windows Server 2012 R2 and Windows Server 2012 include the required schema extensions by default. For more information, see [AD DS schema extensions to support TPM backup](ad-ds-schema-extensions-to-support-tpm-backup.md). This functionality is discontinued starting with Windows 10, version 1607. +> [!IMPORTANT] +> The **Turn on TPM backup to Active Directory Domain Services** is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. If you enable this policy setting, TPM owner information will be automatically and silently backed up to AD DS when you use Windows to set or change a TPM owner password. When this policy setting is enabled, a TPM owner password cannot be set or changed unless the computer is connected to the domain and the AD DS backup succeeds. If you disable or do not configure this policy setting, TPM owner information will not be backed up to AD DS. ->[!NOTE] -> The **Turn on TPM backup to Active Directory Domain Services** is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. - - -### Configure the list of blocked TPM commands +### Configure the list of blocked TPM commands This policy setting allows you to manage the Group Policy list of Trusted Platform Module (TPM) commands that are blocked by Windows. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  -If you enable this policy setting, Windows will block the specified commands from being sent to the TPM on the computer. TPM commands are referenced by a command number. For example, command number 129 is **TPM\_OwnerReadInternalPub**, and command number 170 is **TPM\_FieldUpgrade**. To find the command number that is associated with each TPM command, at the command prompt, type **tpm.msc**to open the TPM Management Console and navigate to the **Command Management** section. +If you enable this policy setting, Windows will block the specified commands from being sent to the TPM on the computer. TPM commands are referenced by a command number. For example, command number 129 is **TPM\_OwnerReadInternalPub**, and command number 170 is **TPM\_FieldUpgrade**. To find the command number that is associated with each TPM command, at the command prompt, type **tpm.msc** to open the TPM Management Console and navigate to the **Command Management** section. If you disable or do not configure this policy setting, only those TPM commands that are specified through the default or local lists can be blocked by Windows. The default list of blocked TPM commands is preconfigured by Windows. - You can view the default list by typing **tpm.msc** at the command prompt, navigating to the **Command Management** section, and exposing the **On Default Block List** column. + - The local list of blocked TPM commands is configured outside of Group Policy by running the TPM Management Console or scripting using the **Win32\_Tpm** interface. For information how to enforce or ignore the default and local lists of blocked TPM commands, see -- [Ignore the default list of blocked TPM commands](#bkmk-tpmgp-idlb) -- [Ignore the local list of blocked TPM commands](#bkmk-tpmgp-illb) -### Ignore the default list of blocked TPM commands +- [Ignore the default list of blocked TPM commands](#ignore-the-default-list-of-blocked-tpm-commands) + +- [Ignore the local list of blocked TPM commands](#ignore-the-local-list-of-blocked-tpm-commands) + +### Ignore the default list of blocked TPM commands This policy setting allows you to enforce or ignore the computer's default list of blocked Trusted Platform Module (TPM) commands. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  -The default list of blocked TPM commands is preconfigured by Windows. You can view the default list by typing **tpm.msc** at the command prompt to open the TPM Management Console, navigating to the **Command Management** section, and exposing the **On Default Block List** column. Also see the related policy setting, [Configure the list of blocked TPM commands](#bkmk-tpmgp-clbtc). +The default list of blocked TPM commands is preconfigured by Windows. You can view the default list by typing **tpm.msc** at the command prompt to open the TPM Management Console, navigating to the **Command Management** section, and exposing the **On Default Block List** column. Also see the related policy setting, [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands). If you enable this policy setting, the Windows operating system will ignore the computer's default list of blocked TPM commands, and it will block only those TPM commands that are specified by Group Policy or the local list. If you disable or do not configure this policy setting, Windows will block the TPM commands in the default list, in addition to the commands that are specified by Group Policy and the local list of blocked TPM commands. -### Ignore the local list of blocked TPM commands +### Ignore the local list of blocked TPM commands This policy setting allows you to enforce or ignore the computer's local list of blocked Trusted Platform Module (TPM) commands. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  -The local list of blocked TPM commands is configured outside of Group Policy by typing **tpm.msc** at the command prompt to open the TPM Management Console, or scripting using the **Win32\_Tpm** interface. (The default list of blocked TPM commands is preconfigured by Windows.) Also see the related policy setting to **Configure the list of blocked TPM commands**. +The local list of blocked TPM commands is configured outside of Group Policy by typing **tpm.msc** at the command prompt to open the TPM Management Console, or scripting using the **Win32\_Tpm** interface. (The default list of blocked TPM commands is preconfigured by Windows.) Also see the related policy setting, [Configure the list of blocked TPM commands](#configure-the-list-of-blocked-tpm-commands). If you enable this policy setting, the Windows operating system will ignore the computer's local list of blocked TPM commands, and it will block only those TPM commands that are specified by Group Policy or the default list. If you disable or do not configure this policy setting, Windows will block the TPM commands in the local list, in addition to the commands that are specified in Group Policy and the default list of blocked TPM commands. -### Configure the level of TPM owner authorization information available to the operating system +### Configure the level of TPM owner authorization information available to the operating system This policy setting configures how much of the TPM owner authorization information is stored in the registry of the local computer. Depending on the amount of TPM owner authorization information that is stored locally, the Windows operating system and TPM-based applications can perform certain actions in the TPM that require TPM owner authorization without requiring the user to enter the TPM owner password. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  +> [!IMPORTANT] +> This policy setting is not available in the Windows 10, version 1607 and Windows Server 2016 and later versions of the ADMX files. + There are three TPM owner authentication settings that are managed by the Windows operating system. You can choose a value of **Full**, **Delegate**, or **None**. - **Full**   This setting stores the full TPM owner authorization, the TPM administrative delegation blob, and the TPM user delegation blob in the local registry. With this setting, you can use the TPM without requiring remote or external storage of the TPM owner authorization value. This setting is appropriate for scenarios that do not require you to reset the TPM anti-hammering logic or change the TPM owner authorization value. Some TPM-based applications may require that this setting is changed before features that depend on the TPM anti-hammering logic can be used. + - **Delegated**   This setting stores only the TPM administrative delegation blob and the TPM user delegation blob in the local registry. This setting is appropriate for use with TPM-based applications that depend on the TPM antihammering logic. This is the default setting in Windows. + - **None**   This setting provides compatibility with previous operating systems and applications. You can also use it for scenarios when TPM owner authorization cannot be stored locally. Using this setting might cause issues with some TPM-based applications. ->**Note:**  If the operating system managed TPM authentication setting is changed from **Full** to **Delegated**, the full TPM owner authorization value will be regenerated, and any copies of the previously set TPM owner authorization value will be invalid. -  +> [!NOTE] +> If the operating system managed TPM authentication setting is changed from **Full** to **Delegated**, the full TPM owner authorization value will be regenerated, and any copies of the previously set TPM owner authorization value will be invalid. + **Registry information** Registry key: HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\TPM @@ -117,43 +109,41 @@ DWORD: OSManagedAuthLevel The following table shows the TPM owner authorization values in the registry. -| Value Data | Setting | -| - | - | -| 0 | None| -| 2 | Delegated| -| 4 | Full| +| Value Data | Setting | +|------------|-----------| +| 0 | None | +| 2 | Delegated | +| 4 | Full | +   If you enable this policy setting, the Windows operating system will store the TPM owner authorization in the registry of the local computer according to the TPM authentication setting you choose. -If you disable or do not configure this policy setting, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is also disabled or not configured, the default setting is to store the full TPM authorization value in the local registry. If this policy is disabled or not +If you disable or do not configure this policy setting, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is also disabled or not configured, the default setting is to store the full TPM authorization value in the local registry. If this policy is disabled or not configured, and the **Turn on TPM backup to Active Directory Domain Services** policy setting is enabled, only the administrative delegation and the user delegation blobs are stored in the local registry. -### Standard User Lockout Duration +### Standard User Lockout Duration -This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for Trusted Platform Module (TPM) commands requiring authorization. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, a standard user is prevented from sending commands that require +This policy setting allows you to manage the duration in minutes for counting standard user authorization failures for Trusted Platform Module (TPM) commands requiring authorization. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response that indicates an authorization failure occurred. Authorization failures that are older than the duration you set are ignored. If the number of TPM commands with an authorization failure within the lockout duration equals a threshold, a standard user is prevented from sending commands that require authorization to the TPM. ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  The TPM is designed to protect itself against password guessing attacks by entering a hardware lockout mode when it receives too many commands with an incorrect authorization value. When the TPM enters a lockout mode, it is global for all users (including administrators) and for Windows features such as BitLocker Drive Encryption. This setting helps administrators prevent the TPM hardware from entering a lockout mode by slowing the speed at which standard users can send commands that require authorization to the TPM. For each standard user, two thresholds apply. Exceeding either threshold prevents the user from sending a command that requires authorization to the TPM. Use the following policy settings to set the lockout duration: -- [Standard User Individual Lockout Threshold](#bkmk-individual)   This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. -- [Standard User Total Lockout Threshold](#bkmk-total)   This value is the maximum total number of authorization failures that all standard users can have before all standard users are not allowed to send commands that require authorization to the TPM. +- [Standard User Individual Lockout Threshold](#standard-user-individual-lockout-threshold)   This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. + +- [Standard User Total Lockout Threshold](#standard-user-total-lockout-threshold)   This value is the maximum total number of authorization failures that all standard users can have before all standard users are not allowed to send commands that require authorization to the TPM. An administrator with the TPM owner password can fully reset the TPM's hardware lockout logic by using the TPM Management Console (tpm.msc). Each time an administrator resets the TPM's hardware lockout logic, all prior standard user TPM authorization failures are ignored. This allows standard users to immediately use the TPM normally. If you do not configure this policy setting, a default value of 480 minutes (8 hours) is used. -### Standard User Individual Lockout Threshold +### Standard User Individual Lockout Threshold This policy setting allows you to manage the maximum number of authorization failures for each standard user for the Trusted Platform Module (TPM). This value is the maximum number of authorization failures that each standard user can have before the user is not allowed to send commands that require authorization to the TPM. If the number of authorization failures for the user within the duration that is set for the **Standard User Lockout Duration** policy setting equals this value, the standard user is prevented from sending commands that require authorization to the Trusted Platform Module (TPM). ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  This setting helps administrators prevent the TPM hardware from entering a lockout mode by slowing the speed at which standard users can send commands that require authorization to the TPM. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response indicating an authorization failure occurred. Authorization failures older than the duration are ignored. @@ -162,29 +152,20 @@ An administrator with the TPM owner password can fully reset the TPM's hardware If you do not configure this policy setting, a default value of 4 is used. A value of zero means that the operating system will not allow standard users to send commands to the TPM, which might cause an authorization failure. -### Standard User Total Lockout Threshold +### Standard User Total Lockout Threshold This policy setting allows you to manage the maximum number of authorization failures for all standard users for the Trusted Platform Module (TPM). If the total number of authorization failures for all standard users within the duration that is set for the **Standard User Lockout Duration** policy equals this value, all standard users are prevented from sending commands that require authorization to the Trusted Platform Module (TPM). ->**Note:**  This policy setting applies to the Windows operating systems listed in the [version table](#bkmk-version-table). -  This setting helps administrators prevent the TPM hardware from entering a lockout mode because it slows the speed standard users can send commands requiring authorization to the TPM. An authorization failure occurs each time a standard user sends a command to the TPM and receives an error response indicating an authorization failure occurred. Authorization failures older than the duration are ignored. -For each standard user two thresholds apply. Exceeding either threshold will prevent the standard user from sending a command to the TPM that requires authorization. - -1. The standard user individual lockout value is the maximum number of authorization failures each standard user may have before the user is not allowed to send commands requiring authorization to the TPM. -2. The standard user total lockout threshold value is the maximum total number of authorization failures all standard users may have before all standard users are not allowed to send commands requiring authorization to the TPM. -The TPM is designed to protect itself against password guessing attacks by entering a hardware lockout mode when it receives too many commands with an incorrect authorization value. When the TPM enters a lockout mode, it is global for all users (including administrators) and for Windows features -such as BitLocker Drive Encryption.. - An administrator with the TPM owner password can fully reset the TPM's hardware lockout logic by using the TPM Management Console (tpm.msc). Each time an administrator resets the TPM's hardware lockout logic, all prior standard user TPM authorization failures are ignored. This allows standard users to immediately use the TPM normally. If you do not configure this policy setting, a default value of 9 is used. A value of zero means that the operating system will not allow standard users to send commands to the TPM, which might cause an authorization failure. -## Additional resources +## Related topics -- [Trusted Platform Module Technology Overview](trusted-platform-module-overview.md) +- [Trusted Platform Module](trusted-platform-module-top-node.md) (list of topics) - [TPM Cmdlets in Windows PowerShell](http://technet.microsoft.com/library/jj603116.aspx) -- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](http://technet.microsoft.com/library/jj592683.aspx) +- [Prepare your organization for BitLocker: Planning and Policies - TPM configurations](https://technet.microsoft.com/itpro/windows/keep-secure/prepare-your-organization-for-bitlocker-planning-and-policies#bkmk-tpmconfigurations) \ No newline at end of file diff --git a/windows/keep-secure/trusted-platform-module-top-node.md b/windows/keep-secure/trusted-platform-module-top-node.md new file mode 100644 index 0000000000..ad6428c661 --- /dev/null +++ b/windows/keep-secure/trusted-platform-module-top-node.md @@ -0,0 +1,33 @@ +--- +title: Trusted Platform Module (Windows 10) +description: This topic for the IT professional provides links to information about the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +author: brianlic-msft +--- + +# Trusted Platform Module + +**Applies to** +- Windows 10 +- Windows Server 2016 + +Trusted Platform Module (TPM) technology is designed to provide hardware-based, security-related functions. A TPM chip is a secure crypto-processor that helps you with actions such as generating, storing, and limiting the use of cryptographic keys. The following topics provide details. + + + +| Topic | Description | +|-------|-------------| +| [Trusted Platform Module Overview](trusted-platform-module-overview.md) | Provides an overview of the Trusted Platform Module (TPM) and how Windows uses it for access control and authentication. | +| [TPM fundamentals](tpm-fundamentals.md) | Provides background about how a TPM can work with cryptographic keys. Also describes technologies that work with the TPM, such as TPM-based virtual smart cards. | +| [TPM Group Policy settings](trusted-platform-module-services-group-policy-settings.md) | Describes TPM services that can be controlled centrally by using Group Policy settings. | +| [Back up the TPM recovery information to AD DS](backup-tpm-recovery-information-to-ad-ds.md) | For Windows 10, version 1511 and Windows 10, version 1507 only, describes how to back up a computer’s TPM information to Active Directory Domain Services. | +| [Manage TPM commands](manage-tpm-commands.md) | Describes methods by which a local or domain administrator can block or allow specific TPM commands. | +| [Manage TPM lockout](manage-tpm-lockout.md) | Describes how TPM lockout works (to help prevent tampering or malicious attacks), and outlines ways to work with TPM lockout settings. | +| [Change the TPM owner password](change-the-tpm-owner-password.md) | In most cases, applies to Windows 10, version 1511 and Windows 10, version 1507 only. Tells how to change the TPM owner password. | +| [View status, clear, or troubleshoot the TPM](initialize-and-configure-ownership-of-the-tpm.md) | Describes actions you can take through the TPM snap-in, TPM.msc: view TPM status, troubleshoot TPM initialization, and clear keys from the TPM. Also, for TPM 1.2 and Windows 10, version 1507 or 1511, describes how to turn the TPM on or off. | +| [Understanding PCR banks on TPM 2.0 devices](switch-pcr-banks-on-tpm-2-0-devices.md) | Provides background about what happens when you switch PCR banks on TPM 2.0 devices. | +| [TPM recommendations](tpm-recommendations.md) | Discusses aspects of TPMs such as the difference between TPM 1.2 and 2.0, and the Windows 10 features for which a TPM is required or recommended. | diff --git a/windows/keep-secure/understanding-applocker-default-rules.md b/windows/keep-secure/understanding-applocker-default-rules.md index b0aa99f22e..f0b744d7ad 100644 --- a/windows/keep-secure/understanding-applocker-default-rules.md +++ b/windows/keep-secure/understanding-applocker-default-rules.md @@ -42,5 +42,4 @@ These permissions settings are applied to this folder for app compatibility. How ## Related topics - [How AppLocker works](how-applocker-works-techref.md) -  -  +- [Create AppLocker default rules](create-applocker-default-rules.md) \ No newline at end of file diff --git a/windows/keep-secure/understanding-applocker-rule-collections.md b/windows/keep-secure/understanding-applocker-rule-collections.md index b8adef234c..bfe5fd07ce 100644 --- a/windows/keep-secure/understanding-applocker-rule-collections.md +++ b/windows/keep-secure/understanding-applocker-rule-collections.md @@ -33,3 +33,5 @@ For info about how to enable the DLL rule collection, see [Enable the DLL rule c ## Related topics - [How AppLocker works](how-applocker-works-techref.md) +- [Understanding AppLocker default rules](understanding-applocker-default-rules.md) + diff --git a/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md b/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md index 17fe40b6a1..0fa2a8f258 100644 --- a/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md +++ b/windows/keep-secure/use-applocker-and-software-restriction-policies-in-the-same-domain.md @@ -61,7 +61,7 @@ The following table compares the features and functions of Software Restriction

Enforcement mode

SRP works in the “deny list mode” where administrators can create rules for files that they do not want to allow in this Enterprise whereas the rest of the file are allowed to run by default.

-

SRP can also be configured in the “allow list mode” such that the by default all files are blocked and administrators need to create allow rules for files that they want to allow.

+

SRP can also be configured in the “allow list mode” so that by default all files are blocked and administrators need to create allow rules for files that they want to allow.

AppLocker by default works in the “allow list mode” where only those files are allowed to run for which there is a matching allow rule.

diff --git a/windows/keep-secure/using-event-viewer-with-applocker.md b/windows/keep-secure/using-event-viewer-with-applocker.md index 1b1b80e64f..7a3b0f4f8d 100644 --- a/windows/keep-secure/using-event-viewer-with-applocker.md +++ b/windows/keep-secure/using-event-viewer-with-applocker.md @@ -46,7 +46,7 @@ The following table contains information about the events that you can use to de | 8005| Information| *<File name> * was allowed to run.| Specifies that the script or .msi file is allowed by an AppLocker rule.| | 8006 | Warning| *<File name> * was allowed to run but would have been prevented from running if the AppLocker policy were enforced.| Applied only when the **Audit only ** enforcement mode is enabled. Specifies that the script or .msi file would be blocked if the **Enforce rules ** enforcement mode were enabled. | | 8007 | Error| *<File name> * was not allowed to run.| Access to *<file name> * is restricted by the administrator. Applied only when the **Enforce rules ** enforcement mode is set either directly or indirectly through Group Policy inheritance. The script or .msi file cannot run.| -| 8007| Error| AppLocker disabled on the SKU.| Added in Windows Server 2012 and Windows 8.| +| 8008| Error| AppLocker disabled on the SKU.| Added in Windows Server 2012 and Windows 8.| | 8020| Information| Packaged app allowed.| Added in Windows Server 2012 and Windows 8.| | 8021| Information| Packaged app audited.| Added in Windows Server 2012 and Windows 8.| | 8022| Information| Packaged app disabled.| Added in Windows Server 2012 and Windows 8.| diff --git a/windows/keep-secure/using-owa-with-wip.md b/windows/keep-secure/using-owa-with-wip.md new file mode 100644 index 0000000000..f4046b30a6 --- /dev/null +++ b/windows/keep-secure/using-owa-with-wip.md @@ -0,0 +1,35 @@ +--- +title: Using Outlook Web Access with Windows Information Protection (WIP) (Windows 10) +description: Options for using Outlook Web Access (OWA) with Windows Information Protection (WIP). +keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and OWA configuration +ms.prod: w10 +ms.mktglfcycl: explore +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +--- + +# Using Outlook Web Access with Windows Information Protection (WIP) +**Applies to:** + +- Windows 10, version 1607 +- Windows 10 Mobile + +>Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). + +Because Outlook Web Access (OWA) can be used both personally and as part of your organization, you have the following options to configure it with Windows Information Protection (WIP): + +|Option |OWA behavior | +|-------|-------------| +|Disable OWA. Employees can only use Microsoft Outlook 2016 or the Office 365 Mail app. | Disabled. | +|Don't configure outlook.office.com in any of your networking settings. |All mailboxes are automatically marked as personal. This means employees attempting to copy work content into OWA receive prompts and that files downloaded from OWA aren't automatically protected as corporate data. | +|Do all of the following:
  • Create a domain (such as mail.contoso.com, redirecting to outlook.office.com) that can be used by your employees to access work email.
  • Add the new domain to the Enterprise Cloud Resources network element in your WIP policy.
  • Add the following URLs to the Neutral Resources network element in your WIP policy:
    • outlook.office365.com
    • outlook.office.com
    • outlook-sdf.office.com
    • attachment.outlook.office.net
|Inbox content accessed through the new domain is automatically marked as corporate data, while content accessed through personal email is automatically marked as personal. | +|Add outlook.office.com to the Enterprise Cloud Resources network element in your WIP policy. |All mailboxes are automatically marked as corporate. This means any personal inboxes hosted on Office 365 are also automatically marked as corporate data. | + +>[!NOTE] +>These limitations don’t apply to Outlook 2016 or to the Office 365 Mail and Calendar apps. These apps will work properly, marking an employee’s mailbox as corporate data, regardless of how you’ve configured outlook.office.com in your network settings. + + + + + diff --git a/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md b/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md new file mode 100644 index 0000000000..44a10d1bbe --- /dev/null +++ b/windows/keep-secure/windows-credential-theft-mitigation-guide-abstract.md @@ -0,0 +1,67 @@ +--- +title: Windows 10 Credential Theft Mitigation Guide Abstract (Windows 10) +description: Provides a summary of the Windows 10 credential theft mitigation guide. +ms.assetid: 821ddc1a-f401-4732-82a7-40d1fff5a78a +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +author: justinha +--- + +# Windows 10 Credential Theft Mitigation Guide Abstract + +**Applies to** +- Windows 10 + +This topic provides a summary of the Windows 10 credential theft mitigation guide, which can be downloaded from the [Microsoft Download Center](http://download.microsoft.com/download/C/1/4/C14579CA-E564-4743-8B51-61C0882662AC/Windows 10 credential theft mitigation guide.docx). +This guide explains how credential theft attacks occur and the strategies and countermeasures you can implement to mitigate them, following these security stages: + +- Identify high-value assets +- Protect against known and unknown threats +- Detect pass-the-hash and related attacks +- Respond to suspicious activity +- Recover from a breach + +![Security stages](images\security-stages.png) + +## Attacks that steal credentials + +Learn about the different types of attacks that are used to steal credentials, and the factors that can place your organization at risk. +The types of attacks that are covered include: + +- Pass the hash +- Kerberos pass the ticket +- Kerberos golden ticket and silver ticket +- Key loggers +- Shoulder surfing + +## Credential protection strategies + +This part of the guide helps you consider the mindset of the attacker, with prescriptive guidance about how to prioritize high-value accounts and computers. +You'll learn how to architect a defense against credential theft: + +- Establish a containment model for account privileges +- Harden and restrict administrative hosts +- Ensure that security configurations and best practices are implemented + +## Technical countermeasures for credential theft + +Objectives and expected outcomes are covered for each of these countermeasures: + +- Use Windows 10 with Credential Guard +- Restrict and protect high-privilege domain accounts +- Restrict and protect local accounts with administrative privileges +- Restrict inbound network traffic + +Many other countermeasures are also covered, such as using Microsoft Passport and Windows Hello, or multifactor authentication. + +## Detecting credential attacks + +This sections covers how to detect the use of stolen credentials and how to collect computer events to help you detect credential theft. + +## Responding to suspicious activity + +Learn Microsoft's recommendations for responding to incidents, including how to recover control of compromised accounts, how to investigate attacks, and how to recover from a breach. + + diff --git a/windows/keep-secure/windows-defender-advanced-threat-protection.md b/windows/keep-secure/windows-defender-advanced-threat-protection.md index 7a77dece05..0a9feddff7 100644 --- a/windows/keep-secure/windows-defender-advanced-threat-protection.md +++ b/windows/keep-secure/windows-defender-advanced-threat-protection.md @@ -21,6 +21,8 @@ localizationpriority: high - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=technet-wd-atp-abovefoldlink1) +> >For more info about Windows 10 Enterprise Edition features and functionality, see [Windows 10 Enterprise edition](https://www.microsoft.com/WindowsForBusiness/buy). Windows Defender Advanced Threat Protection (Windows Defender ATP) is a security service that enables enterprise customers to detect, investigate, and respond to advanced threats on their networks. @@ -30,7 +32,7 @@ Windows Defender ATP uses the following combination of technology built into Win - **Endpoint behavioral sensors**: Embedded in Windows 10, these sensors collect and process behavioral signals from the operating system (for example, process, registry, file, and network communications) - and sends this telemetry to your private, isolated, cloud instance of Windows Defender ATP. + and sends this sensor data to your private, isolated, cloud instance of Windows Defender ATP. - **Cloud security analytics**: Leveraging big-data, machine-learning, and @@ -45,7 +47,7 @@ Windows Defender ATP uses the following combination of technology built into Win and augmented by threat intelligence provided by partners, threat intelligence enables Windows Defender ATP to identify attacker tools, techniques, and procedures, and generate alerts when these - are observed in collected telemetry. + are observed in collected sensor data. The following diagram shows these Windows Defender ATP service components: @@ -91,3 +93,6 @@ Topic | Description [Troubleshoot Windows Defender Advanced Threat Protection](troubleshoot-windows-defender-advanced-threat-protection.md) | This topic contains information to help IT Pros find workarounds for the known issues and troubleshoot issues in Windows Defender ATP. [Review events and errors on endpoints with Event Viewer](event-error-codes-windows-defender-advanced-threat-protection.md)| Review events and errors associated with event IDs to determine if further troubleshooting steps are required. [Windows Defender compatibility](defender-compatibility-windows-defender-advanced-threat-protection.md) | Learn about how Windows Defender works in conjunction with Windows Defender ATP. + +## Related topic +[Windows Defender ATP helps detect sophisticated threats](https://www.microsoft.com/itshowcase/Article/Content/854/Windows-Defender-ATP-helps-detect-sophisticated-threats) diff --git a/windows/keep-secure/windows-defender-block-at-first-sight.md b/windows/keep-secure/windows-defender-block-at-first-sight.md index 8abf7c0806..a31f43f6ee 100644 --- a/windows/keep-secure/windows-defender-block-at-first-sight.md +++ b/windows/keep-secure/windows-defender-block-at-first-sight.md @@ -30,6 +30,9 @@ It is enabled by default when certain pre-requisite settings are also enabled. I When a Windows Defender client encounters a suspicious but undetected file, it queries our cloud protection backend. The cloud backend will apply heuristics, machine learning, and automated analysis of the file to determine the files as malicious or clean. +> [!NOTE] +> The Block at first sight feature only use the cloud protection backend for executable files that are downloaded from the Internet, or originating from the Internet zone. A hash value of the EXE file is checked via the cloud backend to determine if this is a previously undetected file. + If the cloud backend is unable to make a determination, the file will be locked by Windows Defender while a copy is uploaded to the cloud. Only after the cloud has received the file will Windows Defender release the lock and let the file run. The cloud will perform additional analysis to reach a determination, blocking all future encounters of that file. In many cases this process can reduce the response time to new malware from hours to seconds. diff --git a/windows/keep-secure/windows-defender-in-windows-10.md b/windows/keep-secure/windows-defender-in-windows-10.md index 7ad3e53061..58ecb02cde 100644 --- a/windows/keep-secure/windows-defender-in-windows-10.md +++ b/windows/keep-secure/windows-defender-in-windows-10.md @@ -18,7 +18,7 @@ author: jasesso Windows Defender in Windows 10 is a built-in antimalware solution that provides security and antimalware management for desktops, portable computers, and servers. This topic provides an overview of Windows Defender, including a list of system requirements and new features. -For more important information about running Windows Defender on a server platform, see [Windows Defender Overview for Windows Server Technical Preview](https://technet.microsoft.com/library/dn765478.aspx). +For more important information about running Windows Defender on a server platform, see [Windows Defender Overview for Windows Server](https://technet.microsoft.com/windows-server-docs/security/windows-defender/windows-defender-overview-windows-server). Take advantage of Windows Defender by configuring settings and definitions using the following tools: - Microsoft Active Directory *Group Policy* for settings diff --git a/windows/keep-secure/wip-app-enterprise-context.md b/windows/keep-secure/wip-app-enterprise-context.md new file mode 100644 index 0000000000..b4ebd4ced4 --- /dev/null +++ b/windows/keep-secure/wip-app-enterprise-context.md @@ -0,0 +1,55 @@ +--- +title: Determine the Enterprise Context of an app running in Windows Information Protection (WIP) (Windows 10) +description: Use the Task Manager to determine whether an app is considered work, personal or exempt by Windows Information Protection (WIP). +keywords: WIP, Windows Information Protection, EDP, Enterprise Data Protection, WIP and Task Manager, app context, enterprise context +ms.prod: w10 +ms.mktglfcycl: explore +ms.sitesec: library +ms.pagetype: security +localizationpriority: high +--- + +# Determine the Enterprise Context of an app running in Windows Information Protection (WIP) +**Applies to:** + +- Windows 10, version 1607 +- Windows 10 Mobile + +>Learn more about what features and functionality are supported in each Windows edition at [Compare Windows 10 Editions](https://www.microsoft.com/en-us/WindowsForBusiness/Compare). + +Use Task Manager to check the context of your apps while running in Windows Information Protection (WIP) to make sure that your organization's policies are applied and running correctly. + +## Viewing the Enterprise Context column in Task Manager +You need to add the Enterprise Context column to the **Details** tab of the Task Manager. + +1. Make sure that you have an active WIP policy deployed and turned on in your organization. + +2. Open the Task Manager (taskmgr.exe), click the **Details** tab, right-click in the column heading area, and click **Select columns**. + + The **Select columns** box appears. + + ![Task Manager, Select column box with Enterprise Context option selected](images/wip-select-column.png) + +3. Scroll down and check the **Enterprise Context** option, and then click **OK** to close the box. + + The **Enterprise Context** column should now be available in Task Manager. + + ![Task Manager, Enterprise Context column highlighted](images/wip-taskmgr.png) + +## Review the Enterprise Context +The **Enterprise Context** column shows you what each app can do with your enterprise data: + +- **Domain.** Shows the employee's work domain (such as, corp.contoso.com). This app is considered work-related and can freely touch and open work data and resources. + +- **Personal.** Shows the text, *Personal*. This app is considered non-work-related and can't touch any work data or resources. + +- **Exempt.** Shows the text, *Exempt*. WIP policies don't apply to these apps (such as, system components). + + >[!IMPORTANT] + >Enlightened apps can change between Work and Personal, depending on the data being touched. For example, Microsoft Word 2016 shows as **Personal** when an employee opens a personal letter, but changes to **Work** when that same employee opens the company financials. + + + + + + diff --git a/windows/keep-secure/working-with-applocker-rules.md b/windows/keep-secure/working-with-applocker-rules.md index 9c528133ef..c6fd38667f 100644 --- a/windows/keep-secure/working-with-applocker-rules.md +++ b/windows/keep-secure/working-with-applocker-rules.md @@ -89,6 +89,7 @@ The following table describes how a publisher condition is applied. | Option | The publisher condition allows or denies… | +|---|---| | **All signed files** | All files that are signed by any publisher.| | **Publisher only**| All files that are signed by the named publisher.| | **Publisher and product name**| All files for the specified product that are signed by the named publisher.| @@ -123,7 +124,7 @@ When you choose the file hash rule condition, the system computes a cryptographi ## AppLocker default rules -AppLocker allows you to generate default rules for each rule collection. +AppLocker includes default rules, which are intended to help ensure that the files that are required for Windows to operate properly are allowed in an AppLocker rule collection. For background, see [Understanding AppLocker default rules](understanding-applocker-default-rules.md), and for steps, see [Create AppLocker default rules](create-applocker-default-rules.md). Executable default rule types include: diff --git a/windows/manage/.vscode/settings.json b/windows/manage/.vscode/settings.json new file mode 100644 index 0000000000..20af2f68a6 --- /dev/null +++ b/windows/manage/.vscode/settings.json @@ -0,0 +1,3 @@ +// Place your settings in this file to overwrite default and user settings. +{ +} \ No newline at end of file diff --git a/windows/manage/TOC.md b/windows/manage/TOC.md index 54af0df920..d68415cde7 100644 --- a/windows/manage/TOC.md +++ b/windows/manage/TOC.md @@ -1,7 +1,21 @@ # [Manage and update Windows 10](index.md) ## [Administrative Tools in Windows 10](administrative-tools-in-windows-10.md) -## [Cortana integration in your business or enterprise](manage-cortana-in-enterprise.md) +## [Cortana integration in your business or enterprise](cortana-at-work-overview.md) +### [Testing scenarios using Cortana in your business or organization](cortana-at-work-testing-scenarios.md) +#### [Test scenario 1 - Sign-in to Azure AD and use Cortana to manage the notebook](cortana-at-work-scenario-1.md) +#### [Test scenario 2 - Test scenario 2 - Perform a quick search with Cortana at work](cortana-at-work-scenario-2.md) +#### [Test scenario 3 - Set a reminder for a specific location using Cortana at work](cortana-at-work-scenario-3.md) +#### [Test scenario 4 - Use Cortana at work to find your upcoming meetings](cortana-at-work-scenario-4.md) +#### [Test scenario 5 - Use Cortana to send email to a co-worker](cortana-at-work-scenario-5.md) +#### [Test scenario 6 - Use Cortana and Windows Information Protection (WIP) to help protect your organization’s data on a device](cortana-at-work-scenario-6.md) +### [Set up and test Cortana with Office 365 in your organization](cortana-at-work-o365.md) +### [Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization](cortana-at-work-crm.md) +### [Set up and test Cortana for Power BI in your organization](cortana-at-work-powerbi.md) +### [Set up and test custom voice commands in Cortana for your organization](cortana-at-work-voice-commands.md) +### [Use Group Policy and mobile device management (MDM) settings to configure Cortana in your organization](cortana-at-work-policy-settings.md) +### [Send feedback about Cortana at work back to Microsoft](cortana-at-work-feedback.md) ## [Update Windows 10 in the enterprise](waas-update-windows-10.md) +### [Quick guide to Windows as a service](waas-quick-start.md) ### [Overview of Windows as a service](waas-overview.md) ### [Prepare servicing strategy for Windows 10 updates](waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](waas-deployment-rings-windows-10-updates.md) @@ -24,13 +38,15 @@ ### [Manage Windows 10 and Windows Store tips, tricks, and suggestions](manage-tips-and-suggestions.md) ### [New policies for Windows 10](new-policies-for-windows-10.md) ### [Group Policies that apply only to Windows 10 Enterprise and Windows 10 Education](group-policies-for-enterprise-and-education-editions.md) -### [Changes to Group Policy settings for Windows 10 Start](changes-to-start-policies-in-windows-10.md) +### [Changes to Group Policy settings for Windows 10 Start menu](changes-to-start-policies-in-windows-10.md) ### [Windows 10 Mobile and MDM](windows-10-mobile-and-mdm.md) ### [Introduction to configuration service providers (CSPs)](how-it-pros-can-use-configuration-service-providers.md) ## [Windows Spotlight on the lock screen](windows-spotlight.md) ## [Manage Windows 10 Start and taskbar layout](windows-10-start-layout-options-and-policies.md) ### [Configure Windows 10 taskbar](configure-windows-10-taskbar.md) ### [Customize and export Start layout](customize-and-export-start-layout.md) +### [Start layout XML for desktop editions of Windows 10 (reference)](start-layout-xml-desktop.md) +### [Start layout XML for mobile editions of Windows 10 (reference)](start-layout-xml-mobile.md) ### [Customize Windows 10 Start and taskbar with Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) ### [Customize Windows 10 Start and taskbar with ICD and provisioning packages](customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md) ### [Customize Windows 10 Start with mobile device management (MDM)](customize-windows-10-start-screens-by-using-mobile-device-management.md) diff --git a/windows/manage/administrative-tools-in-windows-10.md b/windows/manage/administrative-tools-in-windows-10.md index 3db6a42541..a7d5203f8a 100644 --- a/windows/manage/administrative-tools-in-windows-10.md +++ b/windows/manage/administrative-tools-in-windows-10.md @@ -26,9 +26,6 @@ The tools in the folder might vary depending on which edition of Windows you are These tools were included in previous versions of Windows and the associated documentation for each tool should help you use these tools in Windows 10. The following list links to documentation for each tool. -**Tip**   -If the content that is linked to a tool in the following list doesn't provide the information you need to use that tool, send us a comment by using the **Was this page helpful?** feature on this **Administrative Tools in Windows 10** page. Details about the information you want for a tool will help us plan future content. -   - [Component Services]( https://go.microsoft.com/fwlink/p/?LinkId=708489) @@ -49,7 +46,8 @@ If the content that is linked to a tool in the following list doesn't provide th - [Windows Firewall with Advanced Security](https://go.microsoft.com/fwlink/p/?LinkId=708503) - [Windows Memory Diagnostic]( https://go.microsoft.com/fwlink/p/?LinkId=708507) -  +>[!TIP]   +>If the content that is linked to a tool in the following list doesn't provide the information you need to use that tool, send us a comment by using the **Was this page helpful?** feature on this **Administrative Tools in Windows 10** page. Details about the information you want for a tool will help us plan future content.    diff --git a/windows/manage/change-history-for-manage-and-update-windows-10.md b/windows/manage/change-history-for-manage-and-update-windows-10.md index 50f89c5dea..c9e8313b65 100644 --- a/windows/manage/change-history-for-manage-and-update-windows-10.md +++ b/windows/manage/change-history-for-manage-and-update-windows-10.md @@ -12,6 +12,27 @@ author: jdeckerMS This topic lists new and updated topics in the [Manage and update Windows 10](index.md) documentation for [Windows 10 and Windows 10 Mobile](../index.md). +>If you're looking for **update history** for Windows 10, see [Windows 10 and Windows Server 2016 update history](https://support.microsoft.com/help/12387/windows-10-update-history). + +## January 2017 + +| New or changed topic | Description | +| --- | --- | +| [Cortana integration in your business or enterprise](cortana-at-work-overview.md) | New | +| [Start layout XML for desktop editions of Windows 10](start-layout-xml-desktop.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Start layout XML for mobile editions of Windows 10](start-layout-xml-mobile.md) | New (previously published in Hardware Dev Center on MSDN) | +| [Quick guide to Windows as a service](waas-quick-start.md) | Added video that explains how Windows as a service works. | + + + +## December 2016 + +| New or changed topic | Description | +| --- | --- | +| [Quick guide to Windows as a service](waas-quick-start.md) | New | +| [Manage Windows 10 in your organization - transitioning to modern management](manage-windows-10-in-your-organization-modern-management.md) | Added video demonstration of the latest in modern management for Windows 10 | +| [Windows Store for Business overview](windows-store-for-business-overview.md) | Updated list of supported markets. | + ## November 2016 | New or changed topic | Description | diff --git a/windows/manage/changes-to-start-policies-in-windows-10.md b/windows/manage/changes-to-start-policies-in-windows-10.md index 743009e354..6cba8aeed7 100644 --- a/windows/manage/changes-to-start-policies-in-windows-10.md +++ b/windows/manage/changes-to-start-policies-in-windows-10.md @@ -1,5 +1,5 @@ --- -title: Changes to Group Policy settings for Windows 10 Start (Windows 10) +title: Changes to Group Policy settings for Windows 10 Start menu (Windows 10) description: Windows 10 has a brand new Start experience. ms.assetid: 612FB68A-3832-451F-AA97-E73791FEAA9F keywords: ["group policy", "start menu", "start screen"] diff --git a/windows/manage/configure-devices-without-mdm.md b/windows/manage/configure-devices-without-mdm.md index b28734a5f6..04ba35f499 100644 --- a/windows/manage/configure-devices-without-mdm.md +++ b/windows/manage/configure-devices-without-mdm.md @@ -104,11 +104,14 @@ When you run Windows ICD, you have several options for creating your package. 6. Toggle **On** or **Off** for wireless network connectivity. If you select **On**, enter the SSID, type, and (if required) password for the wireless network. 7. Click **Enroll into Active Directory**. 8. Toggle **Yes** or **No** for Active Directory enrollment. If you select **Yes**, enter the credentials for an account with permissions to enroll the device. (Optional) Enter a user name and password to create a local administrator account. + > [!WARNING] > If you don't create a local administrator account and the device fails to enroll in Active Directory for any reason, you will have to reimage the device and start over. As a best practice, we recommend: - - Use a least-privileged domain account to join the device to the domain. - - Create a temporary administrator account to use for debugging or reprovisioning if the device fails to enroll successfully. - - [Use Group Policy to delete the temporary administrator account](https://blogs.technet.microsoft.com/canitpro/2014/12/10/group-policy-creating-a-standard-local-admin-account/) after the device is enrolled in Active Directory. + > + >- Use a least-privileged domain account to join the device to the domain. + >- Create a temporary administrator account to use for debugging or reprovisioning if the device fails to enroll successfully. + >- [Use Group Policy to delete the temporary administrator account](https://blogs.technet.microsoft.com/canitpro/2014/12/10/group-policy-creating-a-standard-local-admin-account/) after the device is enrolled in Active Directory. + 9. Click **Finish**. 10. Review your settings in the summary. You can return to previous pages to change your selections. Then, under **Protect your package**, toggle **Yes** or **No** to encrypt the provisioning package. If you select **Yes**, enter a password. This password must be entered to apply the encrypted provisioning package. 11. Click **Create**. diff --git a/windows/manage/configure-windows-10-taskbar.md b/windows/manage/configure-windows-10-taskbar.md index 8f9c046ff2..bd5e26f4ba 100644 --- a/windows/manage/configure-windows-10-taskbar.md +++ b/windows/manage/configure-windows-10-taskbar.md @@ -17,14 +17,14 @@ Starting in Windows 10, version 1607, administrators can pin additional apps to You can specify different taskbar configurations based on device locale and region. There is no limit on the number of apps that you can pin. You specify apps using the [Application User Model ID (AUMID)](https://go.microsoft.com/fwlink/p/?LinkId=614867) or Desktop Application Link Path (the local path to the application). -If you specify an app to be pinned that is not installed on the computer, it won't appear on the taskbar. +If you specify an app to be pinned that is not provisioned for the user on the computer, the pinned icon won't appear on the taskbar. -The order of apps in the xml file dictates order of apps on taskbar from left to right, to the right of any existing apps pinned by user. +The order of apps in the XML file dictates the order of pinned apps on the taskbar from left to right, to the right of any existing apps pinned by the user. > [!NOTE] > In operating systems configured to use a right-to-left language, the taskbar order will be reversed. -The following example shows how apps will be pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps that you pin using XML to the right (green square). +The following example shows how apps will be pinned: Windows default apps to the left (blue circle), apps pinned by the user in the center (orange triangle), and apps that you pin using the XML file to the right (green square). ![Windows left, user center, enterprise to the right](images/taskbar-generic.png) @@ -41,21 +41,21 @@ To configure the taskbar: 3. Apply the layout modification XML file to devices using [Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) or a [provisioning package created in Windows Imaging and Configuration Designer (Windows ICD)](customize-windows-10-start-screens-by-using-provisioning-packages-and-icd.md). >[!IMPORTANT] ->If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user unpins that app, the user's change will be overwritten the next time the configuration is applied. To apply a taskbar configuration and allow users to make changes that will persist, apply your configuration by using Group Policy. +>If you use a provisioning package to configure the taskbar, your configuration will be reapplied each time the explorer.exe process restarts. If your configuration pins an app and the user then unpins that app, the user's change will be overwritten the next time the configuration is applied. To apply a taskbar configuration that allows users to make changes that will persist, apply your configuration by using Group Policy. ### Tips for finding AUMID and Desktop Application Link Path In the layout modification XML file, you will need to add entries for applications in the XML markup. In order to pin an application, you need either its AUMID or Desktop Application Link Path. The easiest way to find this data for an application is to: -1. Pin the application to the Start menu +1. Pin the application to the Start menu on a reference or testing PC. 2. Open Windows PowerShell and run the `Export-StartLayout` cmdlet. 3. Open the generated XML file. -4. Look for an entry corresponding to the app you pinned . +4. Look for an entry corresponding to the app you pinned. 5. Look for a property labeled `AppUserModelID` or `DesktopApplicationLinkPath`. -### Sample taskbar configuration XML +### Sample taskbar configuration XML file ```xml @@ -75,7 +75,7 @@ The easiest way to find this data for an application is to: ``` -### Sample taskbar configuration added to Start layout XML +### Sample taskbar configuration added to Start layout XML file ```xml @@ -139,7 +139,7 @@ The `` section will append listed apps to the tas ![additional apps pinned to taskbar](images/taskbar-default-plus.png) -##Remove default apps and add your own +## Remove default apps and add your own By adding `PinListPlacement="Replace"` to ``, you remove all default pinned apps; only the apps that you specify will be pinned to the taskbar. @@ -218,7 +218,7 @@ The following example shows you how to configure taskbars by country or region. ``` -When the preceding example XML is applied, the resulting taskbar for computers in the US or UK: +When the preceding example XML file is applied, the resulting taskbar for computers in the US or UK: ![taskbar for US and UK locale](images/taskbar-region-usuk.png) @@ -289,7 +289,9 @@ The resulting taskbar for computers in any other country region: ## Related topics -[Manage Windows 10 Start and taskbar layout ](windows-10-start-layout-options-and-policies.md)[Customize and export Start layout](customize-and-export-start-layout.md) +[Manage Windows 10 Start and taskbar layout ](windows-10-start-layout-options-and-policies.md) + +[Customize and export Start layout](customize-and-export-start-layout.md) [Customize Windows 10 Start and taskbar with Group Policy](customize-windows-10-start-screens-by-using-group-policy.md) diff --git a/windows/manage/configure-windows-telemetry-in-your-organization.md b/windows/manage/configure-windows-telemetry-in-your-organization.md index 3bb9df599b..a7f9bbef7e 100644 --- a/windows/manage/configure-windows-telemetry-in-your-organization.md +++ b/windows/manage/configure-windows-telemetry-in-your-organization.md @@ -148,6 +148,7 @@ The following table defines the endpoints for telemetry services: | Connected User Experience and Telemetry component | v10.vortex-win.data.microsoft.com
settings-win.data.microsoft.com | | [Windows Error Reporting](http://msdn.microsoft.com/library/windows/desktop/bb513641.aspx) | watson.telemetry.microsoft.com | | [Online Crash Analysis](http://msdn.microsoft.com/library/windows/desktop/ee416349.aspx) | oca.telemetry.microsoft.com | +| OneDrive app for Windows 10 | vortex.data.microsoft.com/collect/v1 | ### Data use and access diff --git a/windows/manage/connect-to-remote-aadj-pc.md b/windows/manage/connect-to-remote-aadj-pc.md index b05c575380..8424e7c1c3 100644 --- a/windows/manage/connect-to-remote-aadj-pc.md +++ b/windows/manage/connect-to-remote-aadj-pc.md @@ -25,7 +25,7 @@ From its release, Windows 10 has supported remote connections to PCs that are jo ## Set up - Both PCs (local and remote) must be running Windows 10, version 1607. Remote connection to an Azure AD-joined PC that is running earlier versions of Windows 10 is not supported. -- Ensure [Remote Credential Guard](../keep-secure/remote-credential-guard.md), a new feature in Windows 10, version 1607, is turned off on the client PC. +- Ensure [Remote Credential Guard](../keep-secure/remote-credential-guard.md), a new feature in Windows 10, version 1607, is turned off on the client PC that you are using to connect to the remote PC. - On the PC that you want to connect to: 1. Open system properties for the remote PC. 2. Enable **Allow remote connections to this computer** and select **Allow connections only from computers running Remote Desktop with Network Level Authentication**. diff --git a/windows/manage/cortana-at-work-crm.md b/windows/manage/cortana-at-work-crm.md new file mode 100644 index 0000000000..834bde8a92 --- /dev/null +++ b/windows/manage/cortana-at-work-crm.md @@ -0,0 +1,62 @@ +--- +title: Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization (Windows 10) +description: How to set up Cortana to help your salespeople get proactive insights on important CRM activities, including sales leads, accounts, and opportunities; presenting the most relevant info at any given time. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Set up and test Cortana with Microsoft Dynamics CRM (Preview feature) in your organization +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +Cortana integration is a Preview feature that's available for your test or dev environment, starting with the CRM Online 2016 Update. If you decide to use this Preview feature, you'll need to turn in on and accept the license terms. After that, your salespeople will get proactive insights from Cortana on important CRM activities, including sales leads, accounts, and opportunities; presenting the most relevant info at any given time. This can even include getting company-specific news that surfaces when the person is meeting with a representative from another company. + +>[!NOTE] +>For more info about Dynamics CRM integration, how to turn on Cortana, and how to provide feedback, see [Preview feature: Set up Cortana integration](http://go.microsoft.com/fwlink/p/?LinkId=746819). + +![Cortana at work, showing the sales data pulled from Dynamics CRM](images/cortana-crm-screen.png) + +## Turn on Cortana with Dynamics CRM in your organization +You must be a CRM administrator to turn on and use Preview features. For more info about what Preview features are and how to use them, see [What are Preview features and how do I enable them](http://go.microsoft.com/fwlink/p/?LinkId=746817)? + +**To turn on Cortana with Dynamics CRM** + +1. Go to **Settings**, and then click **Administration**. + +2. Choose **System Settings**, and then click the **Previews** tab. + +3. Read the license terms, and if you agree, select the **I’ve read and agree to the license terms** check box. + +4. For each preview feature you want to enable, click **Yes**. + +## Turn on Cortana with Dynamics CRM on your employees’ devices +You must tell your employees to turn on Cortana, before they’ll be able to use it with Dynamics CRM. + +**To turn on local Cortana with Dynamics CRM** + +1. Click on the **Cortana** search box in the taskbar, and then click the **Notebook** icon. + +2. Click on **Connected Services**, click **Dynamics CRM**, and then click **Connect**. + + ![Cotana at work, showing how to turn on the connected services for Dynamics CRM](images/cortana-connect-crm.png) + + The employee can also disconnect by clicking **Disconnect** from the **Dynamics CRM** screen. + +## Turn off Cortana with Dynamics CRM +Cortana can only access data in Dynamics CRM when it’s turned on. If you don’t want Cortana to access your corporate data, you can turn it off. + +**To turn off Cortana with Dynamics CRM** +1. Go to **Settings**, and then click **Administration**. + +2. Choose **System Settings**, and then click the **Previews** tab. + +3. Click **No** for **Cortana**. + + All Dynamics CRM functionality related to Cortana is turned off in your organization. \ No newline at end of file diff --git a/windows/manage/cortana-at-work-feedback.md b/windows/manage/cortana-at-work-feedback.md new file mode 100644 index 0000000000..ca24c22703 --- /dev/null +++ b/windows/manage/cortana-at-work-feedback.md @@ -0,0 +1,24 @@ +--- +title: Send feedback about Cortana at work back to Microsoft (Windows 10) +description: How to send feedback to Microsoft about Cortana at work. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Send feedback about Cortana at work back to Microsoft +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +We ask that you report bugs and issues. To provide feedback, you can click the **Feedback** icon in the Cortana window. When you send this form to Microsoft it also includes troubleshooting info, in case you run into problems. + +![Cortana at work, showing how to provide feedback to Microsoft](images/cortana-feedback.png) + +If you don't want to use the feedback tool in Cortana, you can add feedback through the general Windows Insider Preview feedback app. For info about the Insider Preview feedback app, see [How to use Windows Insider Preview – Updates and feedback](http://windows.microsoft.com/en-us/windows/preview-updates-feedback-pc). + diff --git a/windows/manage/cortana-at-work-o365.md b/windows/manage/cortana-at-work-o365.md new file mode 100644 index 0000000000..d58663dc00 --- /dev/null +++ b/windows/manage/cortana-at-work-o365.md @@ -0,0 +1,72 @@ +--- +title: Set up and test Cortana with Office 365 in your organization (Windows 10) +description: How to connect Cortana to Office 365 so your employees are notified about regular meetings, unusual events, such as meetings over lunch or during a typical commute time, and about early meetings, even setting an alarm so the employee isn’t late. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Set up and test Cortana with Office 365 in your organization +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +Cortana in Windows 10 is already great at letting your employees quickly see what the day is going to look like, do meeting prep work like researching people in LinkedIn or getting documents ready, see where and when their meetings are going to be, get a sense of travel times to and from work, and even get updates from a calendar for upcoming trips. + +But Cortana works even harder when she connects to Office 365, helping employees to be notified about unusual events, such as meetings over lunch or during a typical commute time, and about early meetings, even setting an alarm so the employee isn’t late. + +![Cortana at work, showing the day's schedule pulled from Office 365](images/cortana-o365-screen.png) + +We’re continuing to add more and more capabilities to Cortana so she can become even more helpful with your productivity-related tasks, such as emailing, scheduling, and other tasks that are important to help you be successful. + +>[!NOTE] +>For a quick review of the frequently asked questions about Cortana and Office 365 integration, see the blog post, [An early look at Cortana integration with Office 365](http://go.microsoft.com/fwlink/p/?LinkId=717379). + +## Before you begin +There are a few things to be aware of before you start using Cortana with Office 365 in your organization. + +- **Software requirements.** O365 integration with Cortana is available in all countries/regions where Cortana is supported for consumers today. This includes the United States, United Kingdom, Canada, France, Italy, Germany, Spain, China, Japan, India, and Australia. As Cortana comes to more countries, it will also become available to organizations. + +- **Azure Active Directory (Azure AD) account.** Before your employees can use Cortana in your org, they must be logged in using their Azure AD account through Cortana’s notebook. They must also authorize Cortana to access Office 365 on their behalf. + +- **Office 365 Trust Center.** Cortana isn't a service covered by the Office 365 Trust Center. [Learn more about how Cortana treats your data](http://go.microsoft.com/fwlink/p/?LinkId=536419). + +- **Troubleshooting tips.** If you run into issues, check out these [troubleshooting tips](http://go.microsoft.com/fwlink/p/?LinkId=620763). + +## Turn on Cortana with Office 365 on employees’ devices +You must tell your employees to turn on Cortana before they’ll be able to use it with Office 365. + +**To turn on local Cortana with Office 365** + +1. Click on the **Cortana** search box in the taskbar, and then click the **Notebook** icon. + +2. Click on **Connected Services**, click **Office 365**, and then click **Connect**. + + ![Cotana at work, showing how to turn on the connected services for Office 365](images/cortana-connect-o365.png) + + The employee can also disconnect by clicking **Disconnect** from the **Office 365** screen. + +## Turn off Cortana with Office 365 +Cortana can only access data in your Office 365 org when it’s turned on. If you don’t want Cortana to access your corporate data, you can turn it off in the Office 365 admin center. + +**To turn off Cortana with Office 365** +1. [Sign in to Office 365](http://www.office.com/signin) using your Azure AD account. + +2. Go to the [Office 365 admin center](https://support.office.com/en-us/article/Office-365-admin-center-58537702-d421-4d02-8141-e128e3703547). + +3. Expand **Service Settings**, and select **Cortana**. + +4. Click **Cortana** to toggle Cortana off. + + All Office 365 functionality related to Cortana is turned off in your organization and your employees are unable to use her at work. + + + + + + diff --git a/windows/manage/cortana-at-work-overview.md b/windows/manage/cortana-at-work-overview.md new file mode 100644 index 0000000000..96064364c3 --- /dev/null +++ b/windows/manage/cortana-at-work-overview.md @@ -0,0 +1,64 @@ +--- +title: Cortana integration in your business or enterprise (Windows 10) +description: The world’s first personal digital assistant helps users get things done, even at work. Cortana includes powerful configuration options specifically to optimize for unique small to medium-sized business and enterprise environments. +ms.prod: w10 +ms.mktglfcycl: manage +ms.sitesec: library +localizationpriority: high +--- + +# Cortana integration in your business or enterprise +**Applies to:** + +- Windows 10, Windows Insider Program +- Windows 10 Mobile, Windows Insider Program + +>[!IMPORTANT] +>Some information relates to prereleased product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +## Who is Cortana? +Cortana is Microsoft’s personal digital assistant, who helps busy people get things done, even while at work. +Cortana has powerful configuration options, specifically optimized for your business. By signing in with an Azure Active Directory (Azure AD) account, your employees can give Cortana access to their enterprise/work identity, while getting all the functionality Cortana provides to them outside of work. + +Using Azure AD also means that you can remove an employee’s profile (for example, when an employee leaves your organization) while respecting Windows Information Protection (WIP) policies and ignoring enterprise content, such as emails, calendar items, and people lists that are marked as enterprise data. + +![Cortana at work, showing the About me screen](images/cortana-about-me.png) + +## Where is Cortana available for use in my organization? +You can use Cortana at work in all countries/regions where Cortana is supported for consumers. This includes the United States, United Kingdom, Canada, France, Italy, Germany, Spain, China, Japan, India, and Australia. As Cortana comes to more countries, she will also become available to enterprise customers. + +Cortana is available on Windows 10, Windows Insider Program and with limited functionality on Windows Phone 8.1, Windows Insider Program. + +## Required hardware and software +Cortana requires the following hardware and software to successfully run the included scenario in your organization. + +|Hardware |Description | +|---------|------------| +|Microphone |For speech interaction with Cortana. If you don't have a microphone, you can still interact with Cortana by typing in the Cortana Search Box in the taskbar. | +|Windows Phone |For location-specific reminders. You can also use a desktop device to run through this scenario, but location accuracy is usually better on phones. | +|Desktop devices |For non-phone-related scenarios. | + + +|Software |Minimum version | +|---------|------------| +|Client operating system |