From 42dbc9d9d2a1906b1721fdc24851007db6aca175 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Wed, 10 Jul 2019 12:32:01 -0700 Subject: [PATCH 01/27] Added ApplicationControlCSP content --- .../mdm/applicationcontrol-csp-ddf.md | 906 ++++++++++++++++++ .../mdm/applicationcontrol-csp.md | 191 ++++ .../provisioning-csp-applicationcontrol.png | Bin 0 -> 22335 bytes 3 files changed, 1097 insertions(+) create mode 100644 windows/client-management/mdm/applicationcontrol-csp-ddf.md create mode 100644 windows/client-management/mdm/applicationcontrol-csp.md create mode 100644 windows/client-management/mdm/images/provisioning-csp-applicationcontrol.png diff --git a/windows/client-management/mdm/applicationcontrol-csp-ddf.md b/windows/client-management/mdm/applicationcontrol-csp-ddf.md new file mode 100644 index 0000000000..85e0516dfd --- /dev/null +++ b/windows/client-management/mdm/applicationcontrol-csp-ddf.md @@ -0,0 +1,906 @@ +--- +title: EnrollmentStatusTracking CSP +description: EnrollmentStatusTracking CSP +ms.author: dansimp@microsoft.com +ms.topic: article +ms.prod: w10 +ms.technology: windows +author: ManikaDhiman +ms.date: 05/17/2019 +--- + +# EnrollmentStatusTracking DDF + + +This topic shows the OMA DM device description framework (DDF) for the **EnrollmentStatusTracking** configuration service provider. DDF files are used only with OMA DM provisioning XML. + +Looking for the DDF XML files? See [CSP DDF files download](configuration-service-provider-reference.md#csp-ddf-files-download). + +### EnrollmentStatusTracking CSP + +```xml + +]> + + 1.2 + + EnrollmentStatusTracking + ./User/Vendor/MSFT + + + + + These settings are used to communicate what policies the Enrollment Status Page (ESP) should block on. Using these settings, policy providers register themselves and the set of policies that need to be tracked. The ESP will include the counts of these policy sets in the status message to the user, and blocks progress on that page until all policies are provisioned. The policy provider is expected to drive the status updates by updating the appropriate node values, which will then be reflected in the ESP status message. + + + + + + + + + + + com.microsoft/1.0/MDM/EnrollmentStatusTracking + + + + Setup + + + + + These settings are read by the Enrollment Status Page (ESP) during the Account Setup phase. Policy providers use these nodes to communicate progress state back to the ESP, which is then displayed to the user through progress message updates. + + + + + + + + + + + + + + + + + + Apps + + + + + Policy providers use these settings to communicate to the ESP which app installations it should block on and provide progress in the status message to the user. + + + + + + + + + + + + + + + + + + PolicyProviders + + + + + These settings are read by the Enrollment Status Page (ESP) during the Device Setup phase. Policy providers use these nodes to communicate progress state back to the ESP, which is then displayed to the user through progress message updates. + + + + + + + + + + + + + + + + + + + + + + + + + + This node represents an app policy provider for the Enrollment Status Page (ESP). Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. + + + + + + + + + + + + + ProviderName + + + + + + TrackingPoliciesCreated + + + + + + + + Indicates when the provider has created the required policies for the ESP to use for tracking app installation progress. The policy provider itself is expected to set the value of this node, not the MDM server. + + + + + + + + + + + + + + text/plain + + + + + + + Tracking + + + + + This node represents an app policy provider for the Enrollment Status Page (ESP). Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. + + + + + + + + + + + + + + + + + + + + + + + + + + The name of the provider responsible for installing these apps and providing status back to the Enrollment Status Page. + + + + + + + + + + + + + ProviderName + + + + + + + + + + + + + + A unique name for the app whose progress should be tracked in the ESP. The app name can be arbitrary as it is not used directly by the ESP, so the value can be defined however the policy provider chooses. + + + + + + + + + + + + + AppName + + + + + + TrackingUri + + + + + + + + An optional URI to another CSP for tracking the apps installation. If this value is not set, installation status is derived from the InstallationState node. + + + + + + + + + + + + + + text/plain + + + + + InstallationState + + + + + + + + The installation state for the app. This node should be updated by the policy providers (not the MDM server) so the ESP can track the installation progress and update the status message. Expected values: 1 = NotInstalled, 2 = InProgress, 3 = Completed, 4 = Error + + + + + + + + + + + + + + text/plain + + + + + RebootRequired + + + + + + + + An optional node indicating if the app installation requires the ESP to issue a reboot. This node should be set by the policy provider installing the app (not the MDM server). Expected values: 1 = NotRequired, 2 = SoftReboot, 3 = HardReboot. If this node is not set, the ESP will not reboot the device for this app install. + + + + + + + + + + + + + + text/plain + + + + + + + + + HasProvisioningCompleted + + + + + false + This node is set by the Enrollment Status Page (ESP) when it completes. Providers are able to query this node to determine if the ESP is showing, allowing them to bifurcate their logic accordingly. For instance, when an app install requires a reboot, the policy provider should let the ESP issue the reboot by setting RebootRequired value for that app if and only if the ESP is running, otherwise, the policy provider is responsible for issuing a reboot themselves. + + + + + + + + + + + + + + text/plain + + + + + + + EnrollmentStatusTracking + ./Device/Vendor/MSFT + + + + + These settings are used to communicate what policies the Enrollment Status Page (ESP) should block on. Using these settings, policy providers register themselves and the set of policies that need to be tracked. The ESP will include the counts of these policy sets in the status message to the user, and blocks progress on that page until all policies are provisioned. The policy provider is expected to drive the status updates by updating the appropriate node values, which will then be reflected in the ESP status message. + + + + + + + + + + + com.microsoft/1.0/MDM/EnrollmentStatusTracking + + + + DevicePreparation + + + + + These settings are read by the Enrollment Status Page (ESP) during the Device Preparation phase. These setting are used to orchestrate any setup activities prior to provisioning the device in the Device Setup phase of the ESP. + + + + + + + + + + + + + + + + + + PolicyProviders + + + + + These nodes indicate to the Enrollment Status Page (ESP) that it should wait in the Device Preparation phase until all PolicyProviders are installed or marked as not required. + + + + + + + + + + + + + + + + + + + + + + + + + + This node represents a policy provider for the Enrollment Status Page (ESP). The node should be given a unique name for the policy provider. Registration of a policy provider indicates to the Enrollment Status Page that it should block in the Device Preparation phase until the provider sets its InstallationState node to 1 (not required) or 2 (complete). Once all registered policy providers have been marked as completed (or not required), the Enrollment Status Page will progress to the Device Setup phase. + + + + + + + + + + ProviderName + + + + + + InstallationState + + + + + + + + This node communicates the policy provider installation state back to the Enrollment Status Page. Expected values: 1 = NotInstalled, 2 = NotRequired, 3= Completed, 4 = Error. + + + + + + + + + + + + + + text/plain + + + + + LastError + + + + + + + + If a policy provider fails to install, it can optionally set an HRESULT error code that the Enrollment Status Page can display in an error message to the user. This node will only be read by the Enrollment Status Page when the provider's InstallationState node is set to 3 (Error). This node is only intended to be set by the policy provider itself, not the MDM server. + + + + + + + + + + + text/plain + + + + + Timeout + + + + + + + + An optional timeout (in minutes) for provider installation to complete before the Enrollment Status Page shows an error. Provider installation is considered complete when the InstallationState node is set to 2 (NotRequired) or 3 (Complete). If no timeout value is supplied the ESP will choose a default timeout value of 15 minutes. + + + + + + + + + + + + + + text/plain + + + + + TrackedResourceTypes + + + + + + + + This node's children registers which resource types the policy provider supports for provisioning. Only registered providers for a particular resource type will have their policies incorporated with Enrollment Status Page tracking message. + + + + + + + + + + + + + + + + + + Apps + + + + + + + + false + This node registers the policy provider for App provisioning. + + + + + + + + + + + + + + text/plain + + + + + + + + + Setup + + + + + These settings are read by the Enrollment Status Page (ESP) during the Device Setup phase. Policy providers use these nodes to communicate progress state back to the ESP, which is then displayed to the user through progress message updates. + + + + + + + + + + + + + + + + + + Apps + + + + + These settings are used to communicate what policies the Enrollment Status Page (ESP) should block on. Using these settings, policy providers register themselves and the set of policies that need to be tracked. The ESP will include the counts of these policy sets in the status message to the user, and blocks progress on that page until all policies are provisioned. The policy provider is expected to drive the status updates by updating the appropriate node values, which will then be reflected in the ESP status message. + + + + + + + + + + + + + + + + + + PolicyProviders + + + + + App policy providers for this CSP. These are the policy providers the ESP should wait on before showing the tracking message with status to the user. + + + + + + + + + + + + + + + + + + + + + + + + + + This node represents an app policy provider for the Enrollment Status Page (ESP). Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. + + + + + + + + + + + + + ProviderName + + + + + + TrackingPoliciesCreated + + + + + + + + Indicates when the provider has created the required policies for the ESP to use for tracking app installation progress. The policy provider itself is expected to set the value of this node, not the MDM server. + + + + + + + + + + + + + + text/plain + + + + + + + Tracking + + + + + These are the set of apps that are being tracked by the Enrollment Status Page. + + + + + + + + + + + + + + + + + + + + + + + + + + The name of the provider responsible for installing these apps and providing status back to the Enrollment Status Page. + + + + + + + + + + + + + ProviderName + + + + + + + + + + + + + + A unique name for the app whose progress should be tracked in the ESP. The app name can be arbitrary as it is not used directly by the ESP, so the value can be defined however the policy provider chooses. + + + + + + + + + + + + + AppName + + + + + + TrackingUri + + + + + + + + An optional URI to another CSP for tracking the apps installation. If this value is not set, installation status is derived from the InstallationState node. + + + + + + + + + + + + + + text/plain + + + + + InstallationState + + + + + + + + The installation state for the app. This node should be updated by the policy providers (not the MDM server) so the ESP can track the installation progress and update the status message. Expected values: 1 = NotInstalled, 2 = InProgress, 3 = Completed, 4 = Error + + + + + + + + + + + + + + text/plain + + + + + RebootRequired + + + + + + + + An optional node indicating if the app installation requires the ESP to issue a reboot. This node should be set by the policy provider installing the app (not the MDM server). Expected values: 1 = NotRequired, 2 = SoftReboot, 3 = HardReboot. If this node is not set, the ESP will not reboot the device for this app install. + + + + + + + + + + + + + + text/plain + + + + + + + + + HasProvisioningCompleted + + + + + false + This node is set by the Enrollment Status Page (ESP) when it completes. Providers are able to query this node to determine if the ESP is showing, allowing them to bifurcate their logic accordingly. For instance, when an app install requires a reboot, the policy provider should let the ESP issue the reboot by setting RebootRequired value for that app if and only if the ESP is running, otherwise, the policy provider is responsible for issuing a reboot themselves. + + + + + + + + + + + + + + text/plain + + + + + + + +``` \ No newline at end of file diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md new file mode 100644 index 0000000000..d352156f6c --- /dev/null +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -0,0 +1,191 @@ +--- +title: ApplicationControl CSP +description: ApplicationControl CSP +ms.author: dansimp@microsoft.com +ms.topic: article +ms.prod: w10 +ms.technology: windows +author: ManikaDhiman +ms.date: 05/21/2019 +--- + +# ApplicationControl CSP + +Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike the AppLocker CSP, the ApplicationControl CSP correctly detects the presence of the no-reboot option and consequently does not schedule a reboot. +Existing WDAC policies which were deployed using the AppLocker CSP’s CodeIntegrity node can be deployed via the ApplicationControl CSP URI. Although WDAC policy deployment via the AppLocker CSP will continue to be supported, all new feature work will occur in the ApplicationControl CSP only. + +The ApplicationControl CSP was added in Windows 10, version 1903. + +The following diagram shows the ApplicationControl CSP in tree format. + +![tree diagram for applicationcontrol csp](images/provisioning-csp-applicationcontrol.png) + +**./Vendor/MSFT/ApplicationControl** +Defines the root node for the ApplicationControl CSP. + +Scope is permanent. Supported operation is Get. + +**ApplicationControl/Policies** +This subtree contains all the policies, which are each identified by their GUID. + +Scope is permanent. Supported operation is Get. + +**ApplicationControl/Policies/_Policy GUID_** +The ApplicationControl CSP enforces that the “ID” segment of a given policy URI is the same GUID as the policy ID in the policy blob. Each Policy GUID node contains a Policy node and a corresponding PolicyInfo node. + +Scope is dynamic. Supported operation is Get. + +**ApplicationControl/Policies/_Policy GUID_/Policy** +This node is the policy binary itself, which is encoded as base64. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +Value type is b64. Supported value is any well-formed WDAC policy, i.e. the base64-encoded content output by the ConvertFrom-CIPolicy cmdlet. + +Default value is empty. + + +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo** +This subtree has nodes containing information which describes the policy indicated by the GUID. + +Scope is dynamic. Supported operation is Get. + +**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/Version** +This node provides the version of the policy indicated by the GUID. Stored as a string, but when parsing use a uint64 as the containing data type. + +Scope is dynamic. Supported operation is Get. + +Value type is char. + +**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsEffective** +This node specifies whether a policy is actually loaded by the enforcement engine and is in effect on a system. + +Scope is dynamic. Supported operation is Get. + +Value type is bool. Supported values are as follows: +- True — Indicates that the policy is actually loaded by the enforcement engine and is in effect on a system. +- False — Indicates that the policy is not loaded by the enforcement engine and is not in effect on a system. This is the default. + + +**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsDeployed** +This node specifies whether a policy is on the system and is present on the physical machine. + +Scope is dynamic. Supported operation is Get. + +Value type is bool. Supported values are as follows: +- True — Indicates that the policy is on the system and is present on the physical machine. +- False — Indicates that the policy is not on the system and is not present on the physical machine. This is the default. + + +**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsAuthorized** +This node specifies whether the policy is authorized to be loaded by the enforcement engine on the system. If not authorized, a policy cannot take effect on the system. + +Scope is dynamic. Supported operation is Get. + +Value type is bool. Supported values are as follows: +- True — Indicates that the policy is authorized to be loaded by the enforcement engine on the system. +- False — Indicates that the policy is not authorized to be loaded by the enforcement engine on the system. This is the default. + + +The following table provides the policy output based on different combinations of PolicyInfo nodes values: + +**EnrollmentStatusTracking/DevicePreparation/PolicyProviders/*ProviderName*/TrackedResourceTypes** +Required. This node is supported only in device context. +This node's children register which resource types the policy provider supports for provisioning. Only registered providers for a particular resource type will have their policies incorporated with ESP tracking message. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +**EnrollmentStatusTracking/DevicePreparation/PolicyProviders/*ProviderName*/TrackedResourceTypes/Apps** +Required. This node is supported only in device context. +This node specifies if the policy provider is registered for app provisioning. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +Value type is boolean. Expected values are as follows: +- false — Indicates that the policy provider is not registered for app provisioning. This is the default. +- true — Indicates that the policy provider is registered for app provisioning. + +**EnrollmentStatusTracking/Setup** +Required. This node is supported in both user context and device context. +Provides the settings that ESP reads during the account setup phase in the user context and device setup phase in the device context. Policy providers use this node to communicate progress status back to the ESP, which is then displayed to the user through progress messages. + +Scope is permanent. Supported operation is Get. + +**EnrollmentStatusTracking/Setup/Apps** +Required. This node is supported in both user context and device context. +Provides the settings to communicate to the ESP which app installations it should block on and provide progress in the status message to the user. + +Scope is permanent. Supported operation is Get. + +**EnrollmentStatusTracking/Setup/Apps/PolicyProviders** +Required. This node is supported in both user context and device context. +Specifies the app policy providers for this CSP. These are the policy providers the ESP should wait on before showing the tracking message with the status to the user. + +Scope is permanent. Supported operation is Get. + +**EnrollmentStatusTracking/Setup/Apps/PolicyProviders**/***ProviderName*** +Optional. This node is supported in both user context and device context. +Represents an app policy provider for the ESP. Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +**EnrollmentStatusTracking/Setup/Apps/PolicyProviders/*ProviderName*/TrackingPoliciesCreated** +Required. This node is supported in both user context and device context. +Indicates if the provider has created the required policies for the ESP to use for tracking app installation progress. The policy provider itself is expected to set the value of this node, not the MDM server. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +Value type is boolean. The expected values are as follows: +- true — Indicates that the provider has created the required policies. +- false — Indicates that the provider has not created the required policies. This is the default. + +**EnrollmentStatusTracking/Setup/Apps/Tracking** +Required. This node is supported in both user context and device context. +Root node for the app installations being tracked by the ESP. + +Scope is permanent. Supported operation is Get. + +**EnrollmentStatusTracking/Setup/Apps/Tracking/_ProviderName_** +Optional. This node is supported in both user context and device context. +Indicates the provider name responsible for installing the apps and providing status back to ESP. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +**EnrollmentStatusTracking/Setup/Apps/Tracking/*ProviderName*/_AppName_** +Optional. This node is supported in both user context and device context. +Represents a unique name for the app whose progress should be tracked by the ESP. The policy provider can define any arbitrary app name as ESP does not use the app name directly. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +**EnrollmentStatusTracking/Setup/Apps/Tracking/*ProviderName*/*AppName*/InstallationState** +Optional. This node is supported in both user context and device context. +Represents the installation state for the app. The policy providers (not the MDM server) must update this node for the ESP to track the installation progress and update the status message. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +Value type is integer. Expected values are as follows: +- 1 — NotInstalled +- 2 — InProgress +- 3 — Completed +- 4 — Error + +**EnrollmentStatusTracking/Setup/Apps/Tracking/*ProviderName*/*AppName*/RebootRequired** +Optional. This node is supported in both user context and device context. +Indicates if the app installation requires ESP to issue a reboot. The policy providers installing the app (not the MDM server) must set this node. If the policy providers do not set this node, the ESP will not reboot the device for the app installation. + +Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + +Value type is integer. Expected values are as follows: +- 1 — NotRequired +- 2 — SoftReboot +- 3 — HardReboot + +**EnrollmentStatusTracking/Setup/HasProvisioningCompleted** +Required. This node is supported in both user context and device context. +ESP sets this node when it completes. Providers can query this node to determine if the ESP is showing, which allows them to determine if they still need to provide status updates for the ESP through this CSP. + +Scope is permanent. Supported operation is Get. + +Value type is boolean. Expected values are as follows: +- true — Indicates that ESP has completed. This is the default. +- false — Indicates that ESP is displayed, and provisioning is still going. \ No newline at end of file diff --git a/windows/client-management/mdm/images/provisioning-csp-applicationcontrol.png b/windows/client-management/mdm/images/provisioning-csp-applicationcontrol.png new file mode 100644 index 0000000000000000000000000000000000000000..012b0b392b9b87be370a7c80e0c2756e61141fe7 GIT binary patch literal 22335 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 Date: Wed, 10 Jul 2019 16:59:05 -0700 Subject: [PATCH 02/27] Added content --- .../mdm/applicationcontrol-csp-ddf.md | 886 +++--------------- .../mdm/applicationcontrol-csp.md | 217 +++-- ...ew-in-windows-mdm-enrollment-management.md | 5 + 3 files changed, 258 insertions(+), 850 deletions(-) diff --git a/windows/client-management/mdm/applicationcontrol-csp-ddf.md b/windows/client-management/mdm/applicationcontrol-csp-ddf.md index 85e0516dfd..fa0bee9334 100644 --- a/windows/client-management/mdm/applicationcontrol-csp-ddf.md +++ b/windows/client-management/mdm/applicationcontrol-csp-ddf.md @@ -1,22 +1,22 @@ --- -title: EnrollmentStatusTracking CSP -description: EnrollmentStatusTracking CSP +title: ApplicationControl CSP +description: ApplicationControl CSP ms.author: dansimp@microsoft.com ms.topic: article ms.prod: w10 ms.technology: windows author: ManikaDhiman -ms.date: 05/17/2019 +ms.date: 07/10/2019 --- -# EnrollmentStatusTracking DDF +# ApplicationControl CSP DDF -This topic shows the OMA DM device description framework (DDF) for the **EnrollmentStatusTracking** configuration service provider. DDF files are used only with OMA DM provisioning XML. +This topic shows the OMA DM device description framework (DDF) for the **ApplicationControl** configuration service provider. DDF files are used only with OMA DM provisioning XML. Looking for the DDF XML files? See [CSP DDF files download](configuration-service-provider-reference.md#csp-ddf-files-download). -### EnrollmentStatusTracking CSP +### ApplicationControl CSP ```xml @@ -26,13 +26,13 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic 1.2 - EnrollmentStatusTracking - ./User/Vendor/MSFT + ApplicationControl + ./Vendor/MSFT - These settings are used to communicate what policies the Enrollment Status Page (ESP) should block on. Using these settings, policy providers register themselves and the set of policies that need to be tracked. The ESP will include the counts of these policy sets in the status message to the user, and blocks progress on that page until all policies are provisioned. The policy provider is expected to drive the status updates by updating the appropriate node values, which will then be reflected in the ESP status message. + Root Node of the ApplicationControl CSP @@ -43,16 +43,16 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic - com.microsoft/1.0/MDM/EnrollmentStatusTracking + - Setup + Policies - These settings are read by the Enrollment Status Page (ESP) during the Account Setup phase. Policy providers use these nodes to communicate progress state back to the ESP, which is then displayed to the user through progress message updates. + Beginning of a Subtree that contains all policies. @@ -62,373 +62,34 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic - - - + Policies - Apps + - Policy providers use these settings to communicate to the ESP which app installations it should block on and provide progress in the status message to the user. + The GUID of the Policy - + - + - - - + Policy GUID - PolicyProviders - - - - - These settings are read by the Enrollment Status Page (ESP) during the Device Setup phase. Policy providers use these nodes to communicate progress state back to the ESP, which is then displayed to the user through progress message updates. - - - - - - - - - - - - - - - - - - - - - - - - - - This node represents an app policy provider for the Enrollment Status Page (ESP). Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. - - - - - - - - - - - - - ProviderName - - - - - - TrackingPoliciesCreated - - - - - - - - Indicates when the provider has created the required policies for the ESP to use for tracking app installation progress. The policy provider itself is expected to set the value of this node, not the MDM server. - - - - - - - - - - - - - - text/plain - - - - - - - Tracking - - - - - This node represents an app policy provider for the Enrollment Status Page (ESP). Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. - - - - - - - - - - - - - - - - - - - - - - - - - - The name of the provider responsible for installing these apps and providing status back to the Enrollment Status Page. - - - - - - - - - - - - - ProviderName - - - - - - - - - - - - - - A unique name for the app whose progress should be tracked in the ESP. The app name can be arbitrary as it is not used directly by the ESP, so the value can be defined however the policy provider chooses. - - - - - - - - - - - - - AppName - - - - - - TrackingUri - - - - - - - - An optional URI to another CSP for tracking the apps installation. If this value is not set, installation status is derived from the InstallationState node. - - - - - - - - - - - - - - text/plain - - - - - InstallationState - - - - - - - - The installation state for the app. This node should be updated by the policy providers (not the MDM server) so the ESP can track the installation progress and update the status message. Expected values: 1 = NotInstalled, 2 = InProgress, 3 = Completed, 4 = Error - - - - - - - - - - - - - - text/plain - - - - - RebootRequired - - - - - - - - An optional node indicating if the app installation requires the ESP to issue a reboot. This node should be set by the policy provider installing the app (not the MDM server). Expected values: 1 = NotRequired, 2 = SoftReboot, 3 = HardReboot. If this node is not set, the ESP will not reboot the device for this app install. - - - - - - - - - - - - - - text/plain - - - - - - - - - HasProvisioningCompleted - - - - - false - This node is set by the Enrollment Status Page (ESP) when it completes. Providers are able to query this node to determine if the ESP is showing, allowing them to bifurcate their logic accordingly. For instance, when an app install requires a reboot, the policy provider should let the ESP issue the reboot by setting RebootRequired value for that app if and only if the ESP is running, otherwise, the policy provider is responsible for issuing a reboot themselves. - - - - - - - - - - - - - - text/plain - - - - - - - EnrollmentStatusTracking - ./Device/Vendor/MSFT - - - - - These settings are used to communicate what policies the Enrollment Status Page (ESP) should block on. Using these settings, policy providers register themselves and the set of policies that need to be tracked. The ESP will include the counts of these policy sets in the status message to the user, and blocks progress on that page until all policies are provisioned. The policy provider is expected to drive the status updates by updating the appropriate node values, which will then be reflected in the ESP status message. - - - - - - - - - - - com.microsoft/1.0/MDM/EnrollmentStatusTracking - - - - DevicePreparation - - - - - These settings are read by the Enrollment Status Page (ESP) during the Device Preparation phase. These setting are used to orchestrate any setup activities prior to provisioning the device in the Device Setup phase of the ESP. - - - - - - - - - - - - - - - - - - PolicyProviders - - - - - These nodes indicate to the Enrollment Status Page (ESP) that it should wait in the Device Preparation phase until all PolicyProviders are installed or marked as not required. - - - - - - - - - - - - - - - - - - + Policy @@ -436,210 +97,29 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic - This node represents a policy provider for the Enrollment Status Page (ESP). The node should be given a unique name for the policy provider. Registration of a policy provider indicates to the Enrollment Status Page that it should block in the Device Preparation phase until the provider sets its InstallationState node to 1 (not required) or 2 (complete). Once all registered policy providers have been marked as completed (or not required), the Enrollment Status Page will progress to the Device Setup phase. + The policy binary encoded as base64 - + - + - ProviderName + Policy - - InstallationState - - - - - - - - This node communicates the policy provider installation state back to the Enrollment Status Page. Expected values: 1 = NotInstalled, 2 = NotRequired, 3= Completed, 4 = Error. - - - - - - - - - - - - - - text/plain - - - - - LastError - - - - - - - - If a policy provider fails to install, it can optionally set an HRESULT error code that the Enrollment Status Page can display in an error message to the user. This node will only be read by the Enrollment Status Page when the provider's InstallationState node is set to 3 (Error). This node is only intended to be set by the policy provider itself, not the MDM server. - - - - - - - - - - - text/plain - - - - - Timeout - - - - - - - - An optional timeout (in minutes) for provider installation to complete before the Enrollment Status Page shows an error. Provider installation is considered complete when the InstallationState node is set to 2 (NotRequired) or 3 (Complete). If no timeout value is supplied the ESP will choose a default timeout value of 15 minutes. - - - - - - - - - - - - - - text/plain - - - - - TrackedResourceTypes - - - - - - - - This node's children registers which resource types the policy provider supports for provisioning. Only registered providers for a particular resource type will have their policies incorporated with Enrollment Status Page tracking message. - - - - - - - - - - - - - - - - - - Apps - - - - - - - - false - This node registers the policy provider for App provisioning. - - - - - - - - - - - - - - text/plain - - - - - - - - Setup - - - - - These settings are read by the Enrollment Status Page (ESP) during the Device Setup phase. Policy providers use these nodes to communicate progress state back to the ESP, which is then displayed to the user through progress message updates. - - - - - - - - - - - - - - - - - - Apps - - - - - These settings are used to communicate what policies the Enrollment Status Page (ESP) should block on. Using these settings, policy providers register themselves and the set of policies that need to be tracked. The ESP will include the counts of these policy sets in the status message to the user, and blocks progress on that page until all policies are provisioned. The policy provider is expected to drive the status updates by updating the appropriate node values, which will then be reflected in the ESP status message. - - - - - - - - - - - - - - - - - PolicyProviders + PolicyInfo - App policy providers for this CSP. These are the policy providers the ESP should wait on before showing the tracking message with status to the user. + Information Describing the Policy indicated by the GUID @@ -647,260 +127,148 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic - + - - - + PolicyInfo - + Version - - - - This node represents an app policy provider for the Enrollment Status Page (ESP). Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. + Version of the Policy indicated by the GUID, as a string. When parsing use a uint64 as the containing data type - + - + - - - - ProviderName + Version - + text/plain - - TrackingPoliciesCreated - - - - - - - - Indicates when the provider has created the required policies for the ESP to use for tracking app installation progress. The policy provider itself is expected to set the value of this node, not the MDM server. - - - - - - - - - - - - - - text/plain - - - - - - Tracking - - - - - These are the set of apps that are being tracked by the Enrollment Status Page. - - - - - - - - - - - - - - - - - + IsEffective - - - - The name of the provider responsible for installing these apps and providing status back to the Enrollment Status Page. + Whether the Policy indicated by the GUID is Effective on the system (loaded by the enforcement engine and in effect) - + - + - - - - ProviderName + IsEffective - + text/plain + + + + + IsDeployed + + + + + Whether the Policy indicated by the GUID is deployed on the system (on the physical machine) + + + + + + + + + + IsDeployed + + text/plain + + + + + IsAuthorized + + + + + Whether the Policy indicated by the GUID is authorized to be loaded by the enforcement engine on the system + + + + + + + + + + IsAuthorized + + text/plain + + + + + Status + + + + + The Current Status of the Policy Indicated by the Policy GUID + + + + + + + + + + Status + + text/plain + + + + + FriendlyName + + + + + The FriendlyName of the Policy Indicated by the Policy GUID + + + + + + + + + + FriendlyName + + text/plain - - - - - - - - - - A unique name for the app whose progress should be tracked in the ESP. The app name can be arbitrary as it is not used directly by the ESP, so the value can be defined however the policy provider chooses. - - - - - - - - - - - - - AppName - - - - - - TrackingUri - - - - - - - - An optional URI to another CSP for tracking the apps installation. If this value is not set, installation status is derived from the InstallationState node. - - - - - - - - - - - - - - text/plain - - - - - InstallationState - - - - - - - - The installation state for the app. This node should be updated by the policy providers (not the MDM server) so the ESP can track the installation progress and update the status message. Expected values: 1 = NotInstalled, 2 = InProgress, 3 = Completed, 4 = Error - - - - - - - - - - - - - - text/plain - - - - - RebootRequired - - - - - - - - An optional node indicating if the app installation requires the ESP to issue a reboot. This node should be set by the policy provider installing the app (not the MDM server). Expected values: 1 = NotRequired, 2 = SoftReboot, 3 = HardReboot. If this node is not set, the ESP will not reboot the device for this app install. - - - - - - - - - - - - - - text/plain - - - - - - HasProvisioningCompleted - - - - - false - This node is set by the Enrollment Status Page (ESP) when it completes. Providers are able to query this node to determine if the ESP is showing, allowing them to bifurcate their logic accordingly. For instance, when an app install requires a reboot, the policy provider should let the ESP issue the reboot by setting RebootRequired value for that app if and only if the ESP is running, otherwise, the policy provider is responsible for issuing a reboot themselves. - - - - - - - - - - - - - - text/plain - - - - ``` \ No newline at end of file diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md index d352156f6c..789a0fdafd 100644 --- a/windows/client-management/mdm/applicationcontrol-csp.md +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -50,14 +50,14 @@ This subtree has nodes containing information which describes the policy indicat Scope is dynamic. Supported operation is Get. -**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/Version** +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo/Version** This node provides the version of the policy indicated by the GUID. Stored as a string, but when parsing use a uint64 as the containing data type. Scope is dynamic. Supported operation is Get. Value type is char. -**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsEffective** +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsEffective** This node specifies whether a policy is actually loaded by the enforcement engine and is in effect on a system. Scope is dynamic. Supported operation is Get. @@ -67,7 +67,7 @@ Value type is bool. Supported values are as follows: - False — Indicates that the policy is not loaded by the enforcement engine and is not in effect on a system. This is the default. -**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsDeployed** +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsDeployed** This node specifies whether a policy is on the system and is present on the physical machine. Scope is dynamic. Supported operation is Get. @@ -77,7 +77,7 @@ Value type is bool. Supported values are as follows: - False — Indicates that the policy is not on the system and is not present on the physical machine. This is the default. -**EApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsAuthorized** +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsAuthorized** This node specifies whether the policy is authorized to be loaded by the enforcement engine on the system. If not authorized, a policy cannot take effect on the system. Scope is dynamic. Supported operation is Get. @@ -87,105 +87,140 @@ Value type is bool. Supported values are as follows: - False — Indicates that the policy is not authorized to be loaded by the enforcement engine on the system. This is the default. -The following table provides the policy output based on different combinations of PolicyInfo nodes values: +The following table provides the result of this policy based on different values of IsAuthorized, IsDeployed, and IsEffective nodes: +|IsAuthorized|IsDeployed|IsEffective|Resultant| +|------------|----------|-----------|---------| +|True|True|True|Policy is currently running and in effect.| +|True|True|False|Policy requires a reboot to take effect.| +|True|False|True|Policy requires a reboot to unload from CI.| +|False|True|True|Not Reachable.| +|True|False|False|*Not Reachable.| +|False|True|False|*Not Reachable.| +|False|False|True|Not Reachable.| +|False|False|False|*Not Reachable.| +```*``` denotes a valid intermediary state; however, if an MDM transaction results in this state configuration, the END_COMMAND_PROCESSING will result in a fail. -**EnrollmentStatusTracking/DevicePreparation/PolicyProviders/*ProviderName*/TrackedResourceTypes** -Required. This node is supported only in device context. -This node's children register which resource types the policy provider supports for provisioning. Only registered providers for a particular resource type will have their policies incorporated with ESP tracking message. +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo/Status** +This node specifies whether the deployment of the policy indicated by the GUID was successful. -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. +Scope is dynamic. Supported operation is Get. -**EnrollmentStatusTracking/DevicePreparation/PolicyProviders/*ProviderName*/TrackedResourceTypes/Apps** -Required. This node is supported only in device context. -This node specifies if the policy provider is registered for app provisioning. +Value type is integer. Default value is 0 == OK. -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. +**ApplicationControl/Policies/_Policy GUID_/PolicyInfo/FriendlyName** +This node provides the friendly name of the policy indicated by the policy GUID. -Value type is boolean. Expected values are as follows: -- false — Indicates that the policy provider is not registered for app provisioning. This is the default. -- true — Indicates that the policy provider is registered for app provisioning. +Scope is dynamic. Supported operation is Get. -**EnrollmentStatusTracking/Setup** -Required. This node is supported in both user context and device context. -Provides the settings that ESP reads during the account setup phase in the user context and device setup phase in the device context. Policy providers use this node to communicate progress status back to the ESP, which is then displayed to the user through progress messages. +Value type is char. -Scope is permanent. Supported operation is Get. +## ApplicationControl CSP usage guidance -**EnrollmentStatusTracking/Setup/Apps** -Required. This node is supported in both user context and device context. -Provides the settings to communicate to the ESP which app installations it should block on and provide progress in the status message to the user. +To use this CSP: +- Know a generated policy’s GUID, which can be found in the policy xml as ``````. +- Convert the policies to binary format using the ConvertFrom-CIPolicy cmdlet in order to be deployed. The binary policy may be signed or unsigned. +- Create a policy node (a Base64-encoded blob of the binary policy representation) using the certutil -encode command line tool. -Scope is permanent. Supported operation is Get. + Sample certutil invocation: + ``` + certutil -encode WinSiPolicy.p7b WinSiPolicy.cer + ``` + Alternatively, you can use the following PowerShell invocation: + ``` + [Convert]::ToBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path )) + ``` + If you are using hybrid MDM management with System Center Configuration Manager or using Intune, ensure that you use Base64 as the Data type when using Custom OMA-URI functionality to apply the Code Integrity policy. -**EnrollmentStatusTracking/Setup/Apps/PolicyProviders** -Required. This node is supported in both user context and device context. -Specifies the app policy providers for this CSP. These are the policy providers the ESP should wait on before showing the tracking message with the status to the user. +- Deploy the policy: + - To deploy a new base policy using the CSP, perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data}. Refer to the the Format section in the Example 1 snippet). -Scope is permanent. Supported operation is Get. + - To deploy base policy and supplemental policies: + - Perform an ADD as described above first with the GUID and policy data for the base policy + - Repeat for each base or supplemental policy in turn (with its own GUID and data) -**EnrollmentStatusTracking/Setup/Apps/PolicyProviders**/***ProviderName*** -Optional. This node is supported in both user context and device context. -Represents an app policy provider for the ESP. Existence of this node indicates to the ESP that it should not show the tracking status message until the TrackingPoliciesCreated node has been set to true. + The following example shows the deployment of two base policies and a supplemental policy (which already specifies the base policy it supplements and does not need that reflected in the ADD). -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. + **Example 1: Add first base policy** + ``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy + + + b64 + + {Base1Data} + + + ``` + **Example 2: Add second base policy** + ``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy + + + b64 + + {Base2Data} + + + ``` + **Example 3: Add supplemental policy** + ``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy + + + b64 + + {Supplemental1Data} + + + ``` +- Perform a GET operation using a deployed policy’s GUID to interrogate/inspect the policy itself or information about it. + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy (raw p7b) + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Version (policy version) + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsEffective (is the policy in effect) + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsDeployed (is the policy on the system) + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsAuthorized (is the policy authorized on the system) + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Status (was the deployment successful) + - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/FriendlyName (the friendly name per the policy) -**EnrollmentStatusTracking/Setup/Apps/PolicyProviders/*ProviderName*/TrackingPoliciesCreated** -Required. This node is supported in both user context and device context. -Indicates if the provider has created the required policies for the ESP to use for tracking app installation progress. The policy provider itself is expected to set the value of this node, not the MDM server. + **Sample Get command** + ``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy + + + + ``` +- Delete the policy. + To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy**. -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. - -Value type is boolean. The expected values are as follows: -- true — Indicates that the provider has created the required policies. -- false — Indicates that the provider has not created the required policies. This is the default. - -**EnrollmentStatusTracking/Setup/Apps/Tracking** -Required. This node is supported in both user context and device context. -Root node for the app installations being tracked by the ESP. - -Scope is permanent. Supported operation is Get. - -**EnrollmentStatusTracking/Setup/Apps/Tracking/_ProviderName_** -Optional. This node is supported in both user context and device context. -Indicates the provider name responsible for installing the apps and providing status back to ESP. - -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. - -**EnrollmentStatusTracking/Setup/Apps/Tracking/*ProviderName*/_AppName_** -Optional. This node is supported in both user context and device context. -Represents a unique name for the app whose progress should be tracked by the ESP. The policy provider can define any arbitrary app name as ESP does not use the app name directly. - -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. - -**EnrollmentStatusTracking/Setup/Apps/Tracking/*ProviderName*/*AppName*/InstallationState** -Optional. This node is supported in both user context and device context. -Represents the installation state for the app. The policy providers (not the MDM server) must update this node for the ESP to track the installation progress and update the status message. - -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. - -Value type is integer. Expected values are as follows: -- 1 — NotInstalled -- 2 — InProgress -- 3 — Completed -- 4 — Error - -**EnrollmentStatusTracking/Setup/Apps/Tracking/*ProviderName*/*AppName*/RebootRequired** -Optional. This node is supported in both user context and device context. -Indicates if the app installation requires ESP to issue a reboot. The policy providers installing the app (not the MDM server) must set this node. If the policy providers do not set this node, the ESP will not reboot the device for the app installation. - -Scope is dynamic. Supported operations are Get, Add, Delete, and Replace. - -Value type is integer. Expected values are as follows: -- 1 — NotRequired -- 2 — SoftReboot -- 3 — HardReboot - -**EnrollmentStatusTracking/Setup/HasProvisioningCompleted** -Required. This node is supported in both user context and device context. -ESP sets this node when it completes. Providers can query this node to determine if the ESP is showing, which allows them to determine if they still need to provide status updates for the ESP through this CSP. - -Scope is permanent. Supported operation is Get. - -Value type is boolean. Expected values are as follows: -- true — Indicates that ESP has completed. This is the default. -- false — Indicates that ESP is displayed, and provisioning is still going. \ No newline at end of file + > [!Note] + > Only signed things should be able to update signed policies. Hence, performing a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** is not sufficient to delete a signed policy. + + To delete a signed policy, first replace it with a signed update allowing unsigned policy, then deploy another update with unsigned policy, then perform delete. + + **Delete a policy** + ``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy + + + + ``` \ No newline at end of file diff --git a/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md b/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md index 3ca4486f3b..754e6e0023 100644 --- a/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md +++ b/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md @@ -140,6 +140,10 @@ For details about Microsoft mobile device management protocols for Windows 10 s EnrollmentStatusTracking CSP

Added new CSP in Windows 10, version 1903.

+ +ApplicationStatus CSP +

Added new CSP in Windows 10, version 1903.

+ @@ -1885,6 +1889,7 @@ How do I turn if off? | The service can be stopped from the "Services" console o |New or updated topic | Description| |--- | ---| +|[ApplicationControl CSP](applicationcontrol-csp.md)|Added new CSP in Windows 10, version 1903.| |Create a custom configuration service provider|Deleted the following documents from the CSP reference because extensibility via CSPs is not currently supported:
Create a custom configuration service provider
Design a custom configuration service provider
IConfigServiceProvider2
IConfigServiceProvider2::ConfigManagerNotification
IConfigServiceProvider2::GetNode
ICSPNode
ICSPNode::Add
ICSPNode::Clear
ICSPNode::Copy
ICSPNode::DeleteChild
ICSPNode::DeleteProperty
ICSPNode::Execute
ICSPNode::GetChildNodeNames
ICSPNode::GetProperty
ICSPNode::GetPropertyIdentifiers
ICSPNode::GetValue
ICSPNode::Move
ICSPNode::SetProperty
ICSPNode::SetValue
ICSPNodeTransactioning
ICSPValidate
Samples for writing a custom configuration service provider| From 7443ae724d152f7401602f86061419a861fa5bb9 Mon Sep 17 00:00:00 2001 From: Denise Vangel-MSFT Date: Fri, 12 Jul 2019 12:38:15 -0700 Subject: [PATCH 03/27] Update install-apps-on-surface-hub.md --- devices/surface-hub/install-apps-on-surface-hub.md | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/surface-hub/install-apps-on-surface-hub.md b/devices/surface-hub/install-apps-on-surface-hub.md index 4f1de2f5cf..d559575749 100644 --- a/devices/surface-hub/install-apps-on-surface-hub.md +++ b/devices/surface-hub/install-apps-on-surface-hub.md @@ -12,6 +12,7 @@ ms.author: dansimp ms.topic: article ms.date: 10/23/2018 ms.localizationpriority: medium +audience: ITPro --- # Install apps on your Microsoft Surface Hub From ebb304f60acb806637d4edeb3715c865d4a9a193 Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Fri, 12 Jul 2019 13:17:04 -0700 Subject: [PATCH 04/27] Added more content --- .../mdm/applicationcontrol-csp.md | 178 +++++++++--------- ...ew-in-windows-mdm-enrollment-management.md | 2 +- 2 files changed, 92 insertions(+), 88 deletions(-) diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md index 789a0fdafd..d7460e498b 100644 --- a/windows/client-management/mdm/applicationcontrol-csp.md +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -11,8 +11,8 @@ ms.date: 05/21/2019 # ApplicationControl CSP -Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike the AppLocker CSP, the ApplicationControl CSP correctly detects the presence of the no-reboot option and consequently does not schedule a reboot. -Existing WDAC policies which were deployed using the AppLocker CSP’s CodeIntegrity node can be deployed via the ApplicationControl CSP URI. Although WDAC policy deployment via the AppLocker CSP will continue to be supported, all new feature work will occur in the ApplicationControl CSP only. +Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike AppLocker CSP, the ApplicationControl CSP correctly detects the presence of no-reboot option and consequently does not schedule a reboot. +Existing WDAC policies which were deployed using the AppLocker CSP’s CodeIntegrity node can now be deployed using the ApplicationControl CSP URI. Although WDAC policy deployment via the AppLocker CSP will continue to be supported, all new feature work will occur in the ApplicationControl CSP only. The ApplicationControl CSP was added in Windows 10, version 1903. @@ -26,7 +26,7 @@ Defines the root node for the ApplicationControl CSP. Scope is permanent. Supported operation is Get. **ApplicationControl/Policies** -This subtree contains all the policies, which are each identified by their GUID. +This node contains all the policies, each identified by their GUID. Scope is permanent. Supported operation is Get. @@ -44,9 +44,8 @@ Value type is b64. Supported value is any well-formed WDAC policy, i.e. the base Default value is empty. - **ApplicationControl/Policies/_Policy GUID_/PolicyInfo** -This subtree has nodes containing information which describes the policy indicated by the GUID. +This node is the subtree for nodes that describe the policy indicated by the GUID. Scope is dynamic. Supported operation is Get. @@ -65,17 +64,15 @@ Scope is dynamic. Supported operation is Get. Value type is bool. Supported values are as follows: - True — Indicates that the policy is actually loaded by the enforcement engine and is in effect on a system. - False — Indicates that the policy is not loaded by the enforcement engine and is not in effect on a system. This is the default. - **ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsDeployed** -This node specifies whether a policy is on the system and is present on the physical machine. +This node specifies whether a policy is deployed on the system and is present on the physical machine. Scope is dynamic. Supported operation is Get. Value type is bool. Supported values are as follows: -- True — Indicates that the policy is on the system and is present on the physical machine. -- False — Indicates that the policy is not on the system and is not present on the physical machine. This is the default. - +- True — Indicates that the policy is deployed on the system and is present on the physical machine. +- False — Indicates that the policy is not deployed on the system and is not present on the physical machine. This is the default. **ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsAuthorized** This node specifies whether the policy is authorized to be loaded by the enforcement engine on the system. If not authorized, a policy cannot take effect on the system. @@ -85,7 +82,6 @@ Scope is dynamic. Supported operation is Get. Value type is bool. Supported values are as follows: - True — Indicates that the policy is authorized to be loaded by the enforcement engine on the system. - False — Indicates that the policy is not authorized to be loaded by the enforcement engine on the system. This is the default. - The following table provides the result of this policy based on different values of IsAuthorized, IsDeployed, and IsEffective nodes: |IsAuthorized|IsDeployed|IsEffective|Resultant| @@ -116,8 +112,8 @@ Value type is char. ## ApplicationControl CSP usage guidance -To use this CSP: -- Know a generated policy’s GUID, which can be found in the policy xml as ``````. +Here are the usage guidance for ApplicationControl CSP: +- Know a generated policy’s GUID, which can be found in the policy xml as ``. - Convert the policies to binary format using the ConvertFrom-CIPolicy cmdlet in order to be deployed. The binary policy may be signed or unsigned. - Create a policy node (a Base64-encoded blob of the binary policy representation) using the certutil -encode command line tool. @@ -129,92 +125,100 @@ To use this CSP: ``` [Convert]::ToBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path )) ``` - If you are using hybrid MDM management with System Center Configuration Manager or using Intune, ensure that you use Base64 as the Data type when using Custom OMA-URI functionality to apply the Code Integrity policy. +> [!NOTE] +> If you are using hybrid MDM management with System Center Configuration Manager or using Intune, ensure that you use Base64 as the data type when using Custom OMA-URI functionality to apply the Code Integrity policy. -- Deploy the policy: - - To deploy a new base policy using the CSP, perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data}. Refer to the the Format section in the Example 1 snippet). +## Deploy policies using ApplicationControl CSP +To deploy a new base policy using the CSP, perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data}. Refer to the the Format section in the Example 1 below. - - To deploy base policy and supplemental policies: - - Perform an ADD as described above first with the GUID and policy data for the base policy - - Repeat for each base or supplemental policy in turn (with its own GUID and data) +To deploy base policy and supplemental policies: +- Perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data} with the GUID and policy data for the base policy +- Repeat for each base or supplemental policy (with its own GUID and data) - The following example shows the deployment of two base policies and a supplemental policy (which already specifies the base policy it supplements and does not need that reflected in the ADD). +The following example shows the deployment of two base policies and a supplemental policy (which already specifies the base policy it supplements and does not need that reflected in the ADD). - **Example 1: Add first base policy** - ``` - - 1 - - - ./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy - - - b64 - - {Base1Data} - - - ``` - **Example 2: Add second base policy** - ``` - - 1 - - - ./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy - - - b64 - +**Example 1: Add first base policy** +``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{Base1GUID}/Policy + + + b64 + + {Base1Data} + + +``` +**Example 2: Add second base policy** +``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy + + + b64 + {Base2Data} - - - ``` - **Example 3: Add supplemental policy** - ``` - - 1 + + +``` +**Example 3: Add supplemental policy** +``` + + 1 + + + ./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy + + + b64 + + {Supplemental1Data} + + +``` +## Get policy + +Perform a GET using a deployed policy’s GUID to interrogate/inspect the policy itself or information about it. +The following table displays the result of Get operation on different nodes: + +|Nodes|Get Operation Results| +|-------------|------| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy|raw p7b| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Version|policy version| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsEffective|is the policy in effect| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsDeployed|is the policy on the system| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsAuthorized|is the policy authorized on the system| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Status|was the deployment successful| +|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/FriendlyName|the friendly name per the policy| + +**Sample Get command** +``` + + 1 - ./Vendor/MSFT/ApplicationControl/Policies/{Supplemental1GUID}/Policy + ./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy - - b64 - - {Supplemental1Data} - - ``` -- Perform a GET operation using a deployed policy’s GUID to interrogate/inspect the policy itself or information about it. - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy (raw p7b) - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Version (policy version) - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsEffective (is the policy in effect) - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsDeployed (is the policy on the system) - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsAuthorized (is the policy authorized on the system) - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Status (was the deployment successful) - - ./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/FriendlyName (the friendly name per the policy) + +``` - **Sample Get command** - ``` - - 1 - - - ./Vendor/MSFT/ApplicationControl/Policies/{PolicyGUID}/Policy - - - - ``` -- Delete the policy. - To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy**. +## Delete the policy +To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy**. - > [!Note] - > Only signed things should be able to update signed policies. Hence, performing a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** is not sufficient to delete a signed policy. +> [!Note] +> Only signed things should be able to update signed policies. Hence, performing a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** is not sufficient to delete a signed policy. - To delete a signed policy, first replace it with a signed update allowing unsigned policy, then deploy another update with unsigned policy, then perform delete. +To delete a signed policy, first replace it with a signed update allowing unsigned policy, then deploy another update with unsigned policy, then perform delete. - **Delete a policy** - ``` +**Delete a policy** +``` 1 @@ -223,4 +227,4 @@ To use this CSP: - ``` \ No newline at end of file +``` \ No newline at end of file diff --git a/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md b/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md index 754e6e0023..73f2ac1d13 100644 --- a/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md +++ b/windows/client-management/mdm/new-in-windows-mdm-enrollment-management.md @@ -141,7 +141,7 @@ For details about Microsoft mobile device management protocols for Windows 10 s

Added new CSP in Windows 10, version 1903.

-ApplicationStatus CSP +ApplicationControl CSP

Added new CSP in Windows 10, version 1903.

From 2655a6b0fb74dc258639895131b8c8756887669b Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Fri, 12 Jul 2019 14:34:32 -0700 Subject: [PATCH 05/27] minor updates --- .../mdm/applicationcontrol-csp.md | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md index d7460e498b..a3c06c8189 100644 --- a/windows/client-management/mdm/applicationcontrol-csp.md +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -12,7 +12,7 @@ ms.date: 05/21/2019 # ApplicationControl CSP Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike AppLocker CSP, the ApplicationControl CSP correctly detects the presence of no-reboot option and consequently does not schedule a reboot. -Existing WDAC policies which were deployed using the AppLocker CSP’s CodeIntegrity node can now be deployed using the ApplicationControl CSP URI. Although WDAC policy deployment via the AppLocker CSP will continue to be supported, all new feature work will occur in the ApplicationControl CSP only. +Existing WDAC policies deployed using AppLocker CSP’s CodeIntegrity node can now be deployed using ApplicationControl CSP URI. Although WDAC policy deployment via AppLocker CSP will continue to be supported, all new feature work will occur in ApplicationControl CSP only. The ApplicationControl CSP was added in Windows 10, version 1903. @@ -26,7 +26,7 @@ Defines the root node for the ApplicationControl CSP. Scope is permanent. Supported operation is Get. **ApplicationControl/Policies** -This node contains all the policies, each identified by their GUID. +This node contains all the policies, each identified by their globally unique identifier (GUID). Scope is permanent. Supported operation is Get. @@ -45,7 +45,7 @@ Value type is b64. Supported value is any well-formed WDAC policy, i.e. the base Default value is empty. **ApplicationControl/Policies/_Policy GUID_/PolicyInfo** -This node is the subtree for nodes that describe the policy indicated by the GUID. +This node contains the nodes that describe the policy indicated by the GUID. Scope is dynamic. Supported operation is Get. @@ -110,35 +110,35 @@ Scope is dynamic. Supported operation is Get. Value type is char. -## ApplicationControl CSP usage guidance +## Usage guidance -Here are the usage guidance for ApplicationControl CSP: +To use ApplicationControl CSP, you must: - Know a generated policy’s GUID, which can be found in the policy xml as ``. - Convert the policies to binary format using the ConvertFrom-CIPolicy cmdlet in order to be deployed. The binary policy may be signed or unsigned. -- Create a policy node (a Base64-encoded blob of the binary policy representation) using the certutil -encode command line tool. +- Create a policy node (a Base64-encoded blob of the binary policy representation) using the [certutil -encode](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#BKMK_encode) command line tool. - Sample certutil invocation: - ``` - certutil -encode WinSiPolicy.p7b WinSiPolicy.cer - ``` - Alternatively, you can use the following PowerShell invocation: - ``` - [Convert]::ToBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path )) - ``` -> [!NOTE] -> If you are using hybrid MDM management with System Center Configuration Manager or using Intune, ensure that you use Base64 as the data type when using Custom OMA-URI functionality to apply the Code Integrity policy. +Here is a sample certutil invocation: +``` +certutil -encode WinSiPolicy.p7b WinSiPolicy.cer +``` +An alternative to using certutil would be to use the following PowerShell invocation: +``` +[Convert]::ToBase64String($(Get-Content -Encoding Byte -ReadCount 0 -Path )) +``` +If you are using hybrid MDM management with System Center Configuration Manager or using Intune, ensure that you are using Base64 as the Data type when using Custom OMA-URI +functionality to apply the Code Integrity policy. -## Deploy policies using ApplicationControl CSP +### Deploy policies To deploy a new base policy using the CSP, perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data}. Refer to the the Format section in the Example 1 below. To deploy base policy and supplemental policies: -- Perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data} with the GUID and policy data for the base policy -- Repeat for each base or supplemental policy (with its own GUID and data) +- Perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data} with the GUID and policy data for the base policy. +- Repeat for each base or supplemental policy (with its own GUID and data). The following example shows the deployment of two base policies and a supplemental policy (which already specifies the base policy it supplements and does not need that reflected in the ADD). **Example 1: Add first base policy** -``` +```xml 1 @@ -153,22 +153,22 @@ The following example shows the deployment of two base policies and a supplement ``` **Example 2: Add second base policy** -``` +```xml 1 ./Vendor/MSFT/ApplicationControl/Policies/{Base2GUID}/Policy - + b64 - - {Base2Data} + + {Base2Data} ``` **Example 3: Add supplemental policy** -``` +```xml 1 @@ -178,17 +178,17 @@ The following example shows the deployment of two base policies and a supplement b64 - {Supplemental1Data} + {Supplemental1Data} ``` -## Get policy +### Get policies Perform a GET using a deployed policy’s GUID to interrogate/inspect the policy itself or information about it. The following table displays the result of Get operation on different nodes: -|Nodes|Get Operation Results| -|-------------|------| +|Nodes | Get Results| +|------------- | ------| |./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy|raw p7b| |./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Version|policy version| |./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsEffective|is the policy in effect| @@ -198,7 +198,7 @@ The following table displays the result of Get operation on different nodes: |./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/FriendlyName|the friendly name per the policy| **Sample Get command** -``` +```xml 1 @@ -209,7 +209,7 @@ The following table displays the result of Get operation on different nodes: ``` -## Delete the policy +### Delete policies To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy**. > [!Note] @@ -218,7 +218,7 @@ To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationCon To delete a signed policy, first replace it with a signed update allowing unsigned policy, then deploy another update with unsigned policy, then perform delete. **Delete a policy** -``` +```xml 1 From 4178131ea48cfb9e13d94860102d7e022c88cae6 Mon Sep 17 00:00:00 2001 From: John Kaiser <35939694+CoveMiner@users.noreply.github.com> Date: Fri, 12 Jul 2019 23:00:10 +0100 Subject: [PATCH 06/27] Add links to adoption kit --- devices/surface-hub/surface-hub-2s-adoption-kit.md | 4 ++++ devices/surface-hub/surface-hub-2s-change-history.md | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/devices/surface-hub/surface-hub-2s-adoption-kit.md b/devices/surface-hub/surface-hub-2s-adoption-kit.md index 86b18eea48..5db482d457 100644 --- a/devices/surface-hub/surface-hub-2s-adoption-kit.md +++ b/devices/surface-hub/surface-hub-2s-adoption-kit.md @@ -22,6 +22,8 @@ Microsoft has developed downloadable materials that you can make available for y - Training guide – help desk - Training guide – Microsoft Teams desktop +[Download all training guides](http://download.microsoft.com/download/2/2/3/2234F70E-E65A-4790-93DF-F4C373A75B8E/SurfaceHub2S-TrainerGuides-July2019.zip) + ## End user guides - Guide to Navigation on Surface Hub our - Guide to Office 365 on Surface Hub @@ -39,3 +41,5 @@ Microsoft has developed downloadable materials that you can make available for y - Sign in to view meetings and files - Whiteboard advanced - Whiteboard tools + +[Download all user guides and quick reference cards](http://download.microsoft.com/download/E/7/F/E7FC6611-BB55-43E1-AF36-7BD5CE6E0FE0/SurfaceHub2S-EndUserGuides-July2019.zip) \ No newline at end of file diff --git a/devices/surface-hub/surface-hub-2s-change-history.md b/devices/surface-hub/surface-hub-2s-change-history.md index b5e7f65852..cb676f082b 100644 --- a/devices/surface-hub/surface-hub-2s-change-history.md +++ b/devices/surface-hub/surface-hub-2s-change-history.md @@ -16,6 +16,13 @@ ms.localizationpriority: Normal This topic summarizes new and updated content in the Surface Hub 2S documentation library. +## July 2019 + +Changes | Description +|:--- |:--- | +| Surface Hub 2S Adoption Kit | New | + + ## June 2019 Changes | Description From 9821ea2e51d0eb6b13009eb548e401e3a78d476d Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Fri, 12 Jul 2019 15:28:41 -0700 Subject: [PATCH 07/27] content updates --- .../mdm/applicationcontrol-csp.md | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md index a3c06c8189..f691632d9a 100644 --- a/windows/client-management/mdm/applicationcontrol-csp.md +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -11,8 +11,8 @@ ms.date: 05/21/2019 # ApplicationControl CSP -Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike AppLocker CSP, the ApplicationControl CSP correctly detects the presence of no-reboot option and consequently does not schedule a reboot. -Existing WDAC policies deployed using AppLocker CSP’s CodeIntegrity node can now be deployed using ApplicationControl CSP URI. Although WDAC policy deployment via AppLocker CSP will continue to be supported, all new feature work will occur in ApplicationControl CSP only. +Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike [AppLocker CSP](applocker-csp.md), the ApplicationControl CSP correctly detects the presence of no-reboot option and consequently does not schedule a reboot. +Existing WDAC policies deployed using AppLocker CSP’s CodeIntegrity node can now be deployed using ApplicationControl CSP URI. Although WDAC policy deployment via AppLocker CSP will continue to be supported, all new feature work will be done in ApplicationControl CSP only. The ApplicationControl CSP was added in Windows 10, version 1903. @@ -26,12 +26,12 @@ Defines the root node for the ApplicationControl CSP. Scope is permanent. Supported operation is Get. **ApplicationControl/Policies** -This node contains all the policies, each identified by their globally unique identifier (GUID). +An interior node that contains all the policies, each identified by their globally unique identifier (GUID). Scope is permanent. Supported operation is Get. **ApplicationControl/Policies/_Policy GUID_** -The ApplicationControl CSP enforces that the “ID” segment of a given policy URI is the same GUID as the policy ID in the policy blob. Each Policy GUID node contains a Policy node and a corresponding PolicyInfo node. +The ApplicationControl CSP enforces that the “ID” segment of a given policy URI is the same GUID as the policy ID in the policy blob. Each *Policy GUID* node contains a Policy node and a corresponding PolicyInfo node. Scope is dynamic. Supported operation is Get. @@ -45,7 +45,7 @@ Value type is b64. Supported value is any well-formed WDAC policy, i.e. the base Default value is empty. **ApplicationControl/Policies/_Policy GUID_/PolicyInfo** -This node contains the nodes that describe the policy indicated by the GUID. +An interior node that contains the nodes that describe the policy indicated by the GUID. Scope is dynamic. Supported operation is Get. @@ -84,8 +84,9 @@ Value type is bool. Supported values are as follows: - False — Indicates that the policy is not authorized to be loaded by the enforcement engine on the system. This is the default. The following table provides the result of this policy based on different values of IsAuthorized, IsDeployed, and IsEffective nodes: -|IsAuthorized|IsDeployed|IsEffective|Resultant| -|------------|----------|-----------|---------| + +|IsAuthorized | IsDeployed | IsEffective | Resultant | +|------------ | ---------- | ----------- | --------- | |True|True|True|Policy is currently running and in effect.| |True|True|False|Policy requires a reboot to take effect.| |True|False|True|Policy requires a reboot to unload from CI.| @@ -94,7 +95,8 @@ The following table provides the result of this policy based on different values |False|True|False|*Not Reachable.| |False|False|True|Not Reachable.| |False|False|False|*Not Reachable.| -```*``` denotes a valid intermediary state; however, if an MDM transaction results in this state configuration, the END_COMMAND_PROCESSING will result in a fail. + +`*` denotes a valid intermediary state; however, if an MDM transaction results in this state configuration, the END_COMMAND_PROCESSING will result in a fail. **ApplicationControl/Policies/_Policy GUID_/PolicyInfo/Status** This node specifies whether the deployment of the policy indicated by the GUID was successful. @@ -129,10 +131,10 @@ If you are using hybrid MDM management with System Center Configuration Manager functionality to apply the Code Integrity policy. ### Deploy policies -To deploy a new base policy using the CSP, perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data}. Refer to the the Format section in the Example 1 below. +To deploy a new base policy using the CSP, perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/Policy** using the Base64-encoded policy node as {Data}. Refer to the the Format section in the Example 1 below. To deploy base policy and supplemental policies: -- Perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** using the Base64-encoded policy node as {Data} with the GUID and policy data for the base policy. +- Perform an ADD on **./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/Policy** using the Base64-encoded policy node as {Data} with the GUID and policy data for the base policy. - Repeat for each base or supplemental policy (with its own GUID and data). The following example shows the deployment of two base policies and a supplemental policy (which already specifies the base policy it supplements and does not need that reflected in the ADD). @@ -185,19 +187,20 @@ The following example shows the deployment of two base policies and a supplement ### Get policies Perform a GET using a deployed policy’s GUID to interrogate/inspect the policy itself or information about it. + The following table displays the result of Get operation on different nodes: |Nodes | Get Results| |------------- | ------| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy|raw p7b| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Version|policy version| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsEffective|is the policy in effect| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsDeployed|is the policy on the system| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/IsAuthorized|is the policy authorized on the system| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/Status|was the deployment successful| -|./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/PolicyInfo/FriendlyName|the friendly name per the policy| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/Policy|raw p7b| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/PolicyInfo/Version|Policy version| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsEffective|Is the policy in effect| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsDeployed|Is the policy on the system| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/PolicyInfo/IsAuthorized|Is the policy authorized on the system| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/PolicyInfo/Status|Was the deployment successful| +|./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/PolicyInfo/FriendlyName|Friendly name per the policy| -**Sample Get command** +The following is an example of Get command: ```xml 1 @@ -215,9 +218,12 @@ To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationCon > [!Note] > Only signed things should be able to update signed policies. Hence, performing a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** is not sufficient to delete a signed policy. -To delete a signed policy, first replace it with a signed update allowing unsigned policy, then deploy another update with unsigned policy, then perform delete. +To delete a signed policy: +1. Replace it with a signed update allowing unsigned policy. +2. Deploy another update with unsigned policy. +3. Perform delete. -**Delete a policy** +The following is an example of Delete command: ```xml 1 From c30b94b117f42da5c125f99ca0700ccadd6d9e5c Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Fri, 12 Jul 2019 15:34:00 -0700 Subject: [PATCH 08/27] Updated TOC --- windows/client-management/mdm/TOC.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows/client-management/mdm/TOC.md b/windows/client-management/mdm/TOC.md index 2777f01ddd..d77896805e 100644 --- a/windows/client-management/mdm/TOC.md +++ b/windows/client-management/mdm/TOC.md @@ -55,6 +55,8 @@ ### [AllJoynManagement CSP](alljoynmanagement-csp.md) #### [AllJoynManagement DDF](alljoynmanagement-ddf.md) ### [APPLICATION CSP](application-csp.md) +### [ApplicationControl CSP](applicationcontrol-csp.md) +#### [ApplicationControl DDF file](applicationcontrol-csp-ddf.md) ### [AppLocker CSP](applocker-csp.md) #### [AppLocker DDF file](applocker-ddf-file.md) #### [AppLocker XSD](applocker-xsd.md) From f9480853c12c5b3ee9f870211202aa8accd46ecc Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Fri, 12 Jul 2019 15:52:15 -0700 Subject: [PATCH 09/27] Minor updates --- windows/client-management/mdm/applicationcontrol-csp.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md index f691632d9a..f9b194f07c 100644 --- a/windows/client-management/mdm/applicationcontrol-csp.md +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -213,10 +213,10 @@ The following is an example of Get command: ``` ### Delete policies -To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy**. +To delete an unsigned policy, perform a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/Policy**. > [!Note] -> Only signed things should be able to update signed policies. Hence, performing a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_PolicyGUID_/Policy** is not sufficient to delete a signed policy. +> Only signed things should be able to update signed policies. Hence, performing a DELETE on **./Vendor/MSFT/ApplicationControl/Policies/_Policy GUID_/Policy** is not sufficient to delete a signed policy. To delete a signed policy: 1. Replace it with a signed update allowing unsigned policy. From 286fac5cba74199bd0642bb9ed1328d442c8860d Mon Sep 17 00:00:00 2001 From: denisebmsft Date: Fri, 12 Jul 2019 19:26:50 -0700 Subject: [PATCH 10/27] Update surface-hub-2s-adoption-kit.md added links to downloads --- .../surface-hub-2s-adoption-kit.md | 42 ++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/devices/surface-hub/surface-hub-2s-adoption-kit.md b/devices/surface-hub/surface-hub-2s-adoption-kit.md index 86b18eea48..2f33866050 100644 --- a/devices/surface-hub/surface-hub-2s-adoption-kit.md +++ b/devices/surface-hub/surface-hub-2s-adoption-kit.md @@ -16,26 +16,30 @@ ms.localizationpriority: Normal Microsoft has developed downloadable materials that you can make available for your users to aid in adoption of Surface Hub 2S. ## Training guides -- Surface Hub adoption toolkit -- Training guide – end user -- Training guide – power user -- Training guide – help desk -- Training guide – Microsoft Teams desktop +- [Surface Hub adoption toolkit](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/SurfaceHubAdoptionToolKit.pdf) +- [Training guide – end user](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/TrainingGuide-SurfaceHub2S-EndUser.pdf) +- [Training guide – power user](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/TrainingGuide-SurfaceHub2S-PowerUser.pdf) +- [Training guide – help desk](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Training%20Guide-SurfaceHub2S-HelpDesk.pdf) +- [Training guide – Microsoft Teams desktop](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub2S-Teams.pptx) + +[Download all training guides](http://download.microsoft.com/download/2/2/3/2234F70E-E65A-4790-93DF-F4C373A75B8E/SurfaceHub2S-TrainerGuides-July2019.zip) ## End user guides -- Guide to Navigation on Surface Hub our -- Guide to Office 365 on Surface Hub -- Guide to Microsoft Whiteboard on Surface Hub -- Guide to Microsoft Teams on Surface Hub +- [Guide to Navigation on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub%202S-Navigation.pptx) +- [Guide to Office 365 on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-Surface%20Hub%202S-Office365.pptx) +- [Guide to Microsoft Whiteboard on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub2S-Whiteboard.pptx) +- [Guide to Microsoft Teams on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub2S-Teams.pptx) ## Quick reference cards -- Connect your PC -- Join a Teams Meeting -- Manage a Teams meeting -- Navigation basics -- Schedule a Teams meeting -- Start a new Teams meeting -- Share or send a file -- Sign in to view meetings and files -- Whiteboard advanced -- Whiteboard tools +- [Connect your PC](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCConnectYourPC.pdf) +- [Join a Teams Meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCJoinTeamsMeeting.pdf) +- [Manage a Teams meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCManageTeamsMeeting.pdf) +- [Navigation basics](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCNavigationBasics.pdf) +- [Schedule a Teams meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCScheduleTeamsMeeting.pdf) +- [Start a new Teams meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCStartNewTeamsMeeting.pdf) +- [Share or send a file](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCShareSendFile.pdf) +- [Sign in to view meetings and files](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCSignInToViewMeetingsFiles.pdf) +- [Whiteboard advanced](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCWhiteboardAdvanced.pdf) +- [Whiteboard tools](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCWhiteboardTools.pdf) + +[Download all user guides and quick reference cards](http://download.microsoft.com/download/E/7/F/E7FC6611-BB55-43E1-AF36-7BD5CE6E0FE0/SurfaceHub2S-EndUserGuides-July2019.zip) \ No newline at end of file From ec3eb7db8e9a7a6679cebe2158da6a496225885d Mon Sep 17 00:00:00 2001 From: ManikaDhiman Date: Mon, 15 Jul 2019 10:35:25 -0700 Subject: [PATCH 11/27] Added SKU info --- .../mdm/applicationcontrol-csp.md | 10 +++---- ...onfiguration-service-provider-reference.md | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/windows/client-management/mdm/applicationcontrol-csp.md b/windows/client-management/mdm/applicationcontrol-csp.md index f9b194f07c..4f5c622cc0 100644 --- a/windows/client-management/mdm/applicationcontrol-csp.md +++ b/windows/client-management/mdm/applicationcontrol-csp.md @@ -11,17 +11,17 @@ ms.date: 05/21/2019 # ApplicationControl CSP -Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike [AppLocker CSP](applocker-csp.md), the ApplicationControl CSP correctly detects the presence of no-reboot option and consequently does not schedule a reboot. +Windows Defender Application Control (WDAC) policies can be managed from an MDM server through ApplicationControl configuration service provider (CSP). This CSP provides expanded diagnostic capabilities and support for [multiple policies](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deploy-multiple-windows-defender-application-control-policies) (introduced in Windows 10, version 1903). It also provides support for rebootless policy deployment (introduced in Windows 10, version 1709). Unlike [AppLocker CSP](applocker-csp.md), ApplicationControl CSP correctly detects the presence of no-reboot option and consequently does not schedule a reboot. Existing WDAC policies deployed using AppLocker CSP’s CodeIntegrity node can now be deployed using ApplicationControl CSP URI. Although WDAC policy deployment via AppLocker CSP will continue to be supported, all new feature work will be done in ApplicationControl CSP only. -The ApplicationControl CSP was added in Windows 10, version 1903. +ApplicationControl CSP was added in Windows 10, version 1903. -The following diagram shows the ApplicationControl CSP in tree format. +The following diagram shows ApplicationControl CSP in tree format. ![tree diagram for applicationcontrol csp](images/provisioning-csp-applicationcontrol.png) **./Vendor/MSFT/ApplicationControl** -Defines the root node for the ApplicationControl CSP. +Defines the root node for ApplicationControl CSP. Scope is permanent. Supported operation is Get. @@ -31,7 +31,7 @@ An interior node that contains all the policies, each identified by their global Scope is permanent. Supported operation is Get. **ApplicationControl/Policies/_Policy GUID_** -The ApplicationControl CSP enforces that the “ID” segment of a given policy URI is the same GUID as the policy ID in the policy blob. Each *Policy GUID* node contains a Policy node and a corresponding PolicyInfo node. +ApplicationControl CSP enforces that the “ID” segment of a given policy URI is the same GUID as the policy ID in the policy blob. Each *Policy GUID* node contains a Policy node and a corresponding PolicyInfo node. Scope is dynamic. Supported operation is Get. diff --git a/windows/client-management/mdm/configuration-service-provider-reference.md b/windows/client-management/mdm/configuration-service-provider-reference.md index 06824c4c4a..a282ba8384 100644 --- a/windows/client-management/mdm/configuration-service-provider-reference.md +++ b/windows/client-management/mdm/configuration-service-provider-reference.md @@ -172,6 +172,34 @@ Additional lists: + +[ApplicationControl CSP](applicationcontrol-csp.md) + + + + + + + + + + + + + + + + + + + + + +
HomeProBusinessEnterpriseEducationMobileMobile Enterprise
check mark6check mark6check mark6check mark6check mark6check mark6check mark6
+ + + + [AppLocker CSP](applocker-csp.md) From 795269a7d8f79ba383f3ec406f58aee3f451be95 Mon Sep 17 00:00:00 2001 From: Mapalko Date: Mon, 15 Jul 2019 14:43:22 -0700 Subject: [PATCH 12/27] add key trust RDP info --- .../hello-for-business/hello-deployment-guide.md | 3 +++ .../identity-protection/hello-for-business/hello-faq.md | 3 +++ .../identity-protection/hello-for-business/hello-overview.md | 4 +++- .../hello-for-business/hello-planning-guide.md | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/windows/security/identity-protection/hello-for-business/hello-deployment-guide.md b/windows/security/identity-protection/hello-for-business/hello-deployment-guide.md index da365a7f4e..b7cb9450d8 100644 --- a/windows/security/identity-protection/hello-for-business/hello-deployment-guide.md +++ b/windows/security/identity-protection/hello-for-business/hello-deployment-guide.md @@ -52,6 +52,9 @@ The trust model determines how you want users to authenticate to the on-premises * The certificate-trust model is for enterprise that *do* want to issue end-entity certificates to their users and have the benefits of certificate expiration and renewal, similar to how smart cards work today. * The certificate trust model also supports enterprises which are not ready to deploy Windows Server 2016 Domain Controllers. +>[!NOTE] +>RDP does not support authentication with Windows Hello for business key trust deployments. RDP is only supported with certificate trust deployments at this time. + Following are the various deployment guides included in this topic: - [Hybrid Azure AD Joined Key Trust Deployment](hello-hybrid-key-trust.md) - [Hybrid Azure AD Joined Certificate Trust Deployment](hello-hybrid-cert-trust.md) diff --git a/windows/security/identity-protection/hello-for-business/hello-faq.md b/windows/security/identity-protection/hello-for-business/hello-faq.md index 116bff8b92..107b3b238b 100644 --- a/windows/security/identity-protection/hello-for-business/hello-faq.md +++ b/windows/security/identity-protection/hello-for-business/hello-faq.md @@ -27,6 +27,9 @@ Windows Hello for Business is the modern, two-factor credential for Windows 10. ## What about convenience PIN? Microsoft is committed to its vision of a world without passwords. We recognize the *convenience* provided by convenience PIN, but it stills uses a password for authentication. Microsoft recommends customers using Windows 10 and convenience PINs should move to Windows Hello for Business. New Windows 10 deployments should deploy Windows Hello for Business and not convenience PINs. Microsoft will be deprecating convenience PINs in the future and will publish the date early to ensure customers have adequate lead time to deploy Windows Hello for Business. +## Can I use Windows Hello for Business key trust and RDP? +RDP currently does not support key based authentication and does not support self signed certificates. RDP with Windows Hello for Business is currently only supported with certificate based deployments. + ## Can I deploy Windows Hello for Business using System Center Configuration Manager? Windows Hello for Business deployments using System Center Configuration Manager need to move to the hybrid deployment model that uses Active Directory Federation Services. Deployments using System Center Configuration Manager will no longer be supported after November 2018. diff --git a/windows/security/identity-protection/hello-for-business/hello-overview.md b/windows/security/identity-protection/hello-for-business/hello-overview.md index cd6424eb47..295be4d248 100644 --- a/windows/security/identity-protection/hello-for-business/hello-overview.md +++ b/windows/security/identity-protection/hello-for-business/hello-overview.md @@ -92,7 +92,9 @@ For details, see [How Windows Hello for Business works](hello-how-it-works.md). ## Comparing key-based and certificate-based authentication -Windows Hello for Business can use either keys (hardware or software) or certificates in hardware or software. Enterprises that have a public key infrastructure (PKI) for issuing and managing certificates can continue to use PKI in combination with Windows Hello. Enterprises that do not use PKI or want to reduce the effort associated with managing certificates can rely on key-based credentials for Windows Hello but still use certificates on their domain controllers as a root of trust. +Windows Hello for Business can use either keys (hardware or software) or certificates in hardware or software. Enterprises that have a public key infrastructure (PKI) for issuing and managing end user certificates can continue to use PKI in combination with Windows Hello. Enterprises that do not use PKI or want to reduce the effort associated with managing user certificates can rely on key-based credentials for Windows Hello but still use certificates on their domain controllers as a root of trust. + +Windows Hello for Business with a key does not support RDP. RDP does not support authentication with a key or a self signed certificate. RDP with Windows Hello for Business is supported with certificate based deployments. ## Learn more diff --git a/windows/security/identity-protection/hello-for-business/hello-planning-guide.md b/windows/security/identity-protection/hello-for-business/hello-planning-guide.md index 97ceac8319..c61e51d04e 100644 --- a/windows/security/identity-protection/hello-for-business/hello-planning-guide.md +++ b/windows/security/identity-protection/hello-for-business/hello-planning-guide.md @@ -80,6 +80,9 @@ The key trust type does not require issuing authentication certificates to end u The certificate trust type issues authentication certificates to end users. Users authenticate using a certificate requested using a hardware-bound key created during the built-in provisioning experience. Unlike key trust, certificate trust does not require Windows Server 2016 domain controllers (but still requires [Windows Server 2016 Active Directory schema](https://docs.microsoft.com/windows/security/identity-protection/hello-for-business/hello-hybrid-cert-trust-prereqs#directories)). Users can use their certificate to authenticate to any Windows Server 2008 R2, or later, domain controller. +>[!NOTE] +>RDP does not support authentication with Windows Hello for business key trust deployments. RDP is only supported with certificate trust deployments at this tim + #### Device registration All devices included in the Windows Hello for Business deployment must go through device registration. Device registration enables devices to authenticate to identity providers. For cloud only and hybrid deployment, the identity provider is Azure Active Directory. For on-premises deployments, the identity provider is the on-premises server running the Windows Server 2016 Active Directory Federation Services (AD FS) role. From 9b48f99184f360acbf9299eceed406375207f837 Mon Sep 17 00:00:00 2001 From: Robert Mazzoli Date: Wed, 17 Jul 2019 07:26:52 -0700 Subject: [PATCH 13/27] Updated links on Surface Hub 2S adoption kit topic --- .../surface-hub-2s-adoption-kit.md | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/devices/surface-hub/surface-hub-2s-adoption-kit.md b/devices/surface-hub/surface-hub-2s-adoption-kit.md index 2f33866050..46e2247c30 100644 --- a/devices/surface-hub/surface-hub-2s-adoption-kit.md +++ b/devices/surface-hub/surface-hub-2s-adoption-kit.md @@ -12,34 +12,38 @@ ms.date: 07/08/2019 ms.localizationpriority: Normal --- - # Surface Hub 2S adoption toolkit -Microsoft has developed downloadable materials that you can make available for your users to aid in adoption of Surface Hub 2S. +# Surface Hub 2S adoption toolkit + +Microsoft has developed downloadable materials that you can make available for your users to aid in adoption of Surface Hub 2S. ## Training guides -- [Surface Hub adoption toolkit](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/SurfaceHubAdoptionToolKit.pdf) -- [Training guide – end user](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/TrainingGuide-SurfaceHub2S-EndUser.pdf) -- [Training guide – power user](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/TrainingGuide-SurfaceHub2S-PowerUser.pdf) -- [Training guide – help desk](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Training%20Guide-SurfaceHub2S-HelpDesk.pdf) -- [Training guide – Microsoft Teams desktop](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub2S-Teams.pptx) + +- [Surface Hub adoption toolkit](downloads/SurfaceHubAdoptionToolKit.pdf) +- [Training guide – end user](downloads/TrainingGuide-SurfaceHub2S-EndUser.pdf) +- [Training guide – power user](downloads/TrainingGuide-SurfaceHub2S-PowerUser.pdf) +- [Training guide – help desk](downloads/TrainingGuide-SurfaceHub2S-HelpDesk.pdf) +- [Training guide – Microsoft Teams desktop](downloads/Guide-SurfaceHub2S-Teams.pptx) [Download all training guides](http://download.microsoft.com/download/2/2/3/2234F70E-E65A-4790-93DF-F4C373A75B8E/SurfaceHub2S-TrainerGuides-July2019.zip) ## End user guides -- [Guide to Navigation on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub%202S-Navigation.pptx) -- [Guide to Office 365 on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-Surface%20Hub%202S-Office365.pptx) -- [Guide to Microsoft Whiteboard on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub2S-Whiteboard.pptx) -- [Guide to Microsoft Teams on Surface Hub](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/Guide-SurfaceHub2S-Teams.pptx) -## Quick reference cards -- [Connect your PC](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCConnectYourPC.pdf) -- [Join a Teams Meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCJoinTeamsMeeting.pdf) -- [Manage a Teams meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCManageTeamsMeeting.pdf) -- [Navigation basics](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCNavigationBasics.pdf) -- [Schedule a Teams meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCScheduleTeamsMeeting.pdf) -- [Start a new Teams meeting](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCStartNewTeamsMeeting.pdf) -- [Share or send a file](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCShareSendFile.pdf) -- [Sign in to view meetings and files](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCSignInToViewMeetingsFiles.pdf) -- [Whiteboard advanced](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCWhiteboardAdvanced.pdf) -- [Whiteboard tools](https://github.com/MicrosoftDocs/windows-docs-pr/raw/live/devices/surface-hub/downloads/QRCWhiteboardTools.pdf) +- [Guide to Navigation on Surface Hub](downloads/Guide-SurfaceHub2S-Navigation.pptx) +- [Guide to Office 365 on Surface Hub](downloads/Guide-SurfaceHub2S-Office365.pptx) +- [Guide to Microsoft Whiteboard on Surface Hub](downloads/Guide-SurfaceHub2S-Whiteboard.pptx) +- [Guide to Microsoft Teams on Surface Hub](downloads/Guide-SurfaceHub2S-Teams.pptx) -[Download all user guides and quick reference cards](http://download.microsoft.com/download/E/7/F/E7FC6611-BB55-43E1-AF36-7BD5CE6E0FE0/SurfaceHub2S-EndUserGuides-July2019.zip) \ No newline at end of file +## Quick reference cards + +- [Connect your PC](downloads/QRCConnectYourPC.pdf) +- [Join a Teams Meeting](downloads/QRCJoinTeamsMeeting.pdf) +- [Manage a Teams meeting](downloads/QRCManageTeamsMeeting.pdf) +- [Navigation basics](downloads/QRCNavigationBasics.pdf) +- [Schedule a Teams meeting](downloads/QRCScheduleTeamsMeeting.pdf) +- [Start a new Teams meeting](downloads/QRCStartNewTeamsMeeting.pdf) +- [Share or send a file](downloads/QRCShareSendFile.pdf) +- [Sign in to view meetings and files](downloads/QRCSignInToViewMeetingsFiles.pdf) +- [Whiteboard advanced](downloads/QRCWhiteboardAdvanced.pdf) +- [Whiteboard tools](downloads/QRCWhiteboardTools.pdf) + +[Download all user guides and quick reference cards](http://download.microsoft.com/download/E/7/F/E7FC6611-BB55-43E1-AF36-7BD5CE6E0FE0/SurfaceHub2S-EndUserGuides-July2019.zip) \ No newline at end of file From 69909fe7f913ca4530bc816b09b257339e182bfa Mon Sep 17 00:00:00 2001 From: John Kaiser <35939694+CoveMiner@users.noreply.github.com> Date: Wed, 17 Jul 2019 16:43:51 +0200 Subject: [PATCH 14/27] Update surface-hub-2s-techspecs.md Updates tech specs with power consumption info --- devices/surface-hub/surface-hub-2s-techspecs.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devices/surface-hub/surface-hub-2s-techspecs.md b/devices/surface-hub/surface-hub-2s-techspecs.md index e009e2d514..98731bf307 100644 --- a/devices/surface-hub/surface-hub-2s-techspecs.md +++ b/devices/surface-hub/surface-hub-2s-techspecs.md @@ -17,6 +17,7 @@ ms.localizationpriority: Normal |**Item**|**Details**| |:------ |:--------- | |**Dimensions**| 29.2" x 43.2" x 3.0” (741 mm x 1097 mm x 76 mm) | +|**Shipping dimensions**| 47.64" x 36.89" x 9.92" (1,210 mm x 937 mm x 252 mm)| |**Weight**| 61.6 lbs. (28 kg) | |**Resolution**| 3840 x 2560 | |**Display**| PixelSense Display, 3:2 aspect ratio, 10-bit color, 15.5 mm border, anti-glare, IPS LCD | @@ -31,6 +32,11 @@ ms.localizationpriority: Normal |**Exterior**| Casing: Precision machined aluminum with mineral-composite resin
Color: Platinum
Physical Buttons: Power, Volume, Source | |**What’s in the box**| One Surface Hub 2S
One Surface Hub 2 Pen
One Surface Hub 2 Camera
2.5 m AC Power Cable
Quick Start Guide | |**Warranty**| 1-year limited hardware warranty | +|**BTU**| 1518 BTU/hr | +|**Input Voltage**| 50/60Hz 110/230v nominal, 90-265v max | +|**Input power, operating**| 445 W (495 W Surge Load) | +|**Input Current**| 5.46 A | +|**Input Power, standby**| 5 W max | > [!NOTE] > 1 System software uses significant storage space. Available storage is subject to change based on system software updates and apps usage. 1 GB= 1 billion bytes. See Surface.com/Storage for more details.
2 Software license required for some features. Sold separately.
From ed13e1db3da0b993b1c39928df4e7b24cbcd08d3 Mon Sep 17 00:00:00 2001 From: lomayor Date: Wed, 17 Jul 2019 15:59:28 -0700 Subject: [PATCH 15/27] Fixes to investigate machines --- .../images/timeline-machine.png | Bin 82730 -> 93337 bytes .../investigate-machines.md | 18 +++++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/images/timeline-machine.png b/windows/security/threat-protection/microsoft-defender-atp/images/timeline-machine.png index 6a13d4d007a087deca8b74e9fca41fda457676a2..146dca1470a1413dc9602577f922b82bc71dc8d9 100644 GIT binary patch literal 93337 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 V0+AQlNLy2=%q3GRlTxHx)IaXSejfk; literal 82730 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[!NOTE] > For firewall events to be displayed, you'll need to enable the audit policy, see [Audit Filtering Platform connection](https://docs.microsoft.com/windows/security/threat-protection/auditing/audit-filtering-platform-connection). @@ -131,15 +131,15 @@ Some of the functionality includes: - Export detailed machine timeline events - Export the machine timeline for the current date or a specified date range up to seven days. -Along with event time and users, one of the main categories on the timeline is "Details". They describe what happened in the events. The list of possible details are: +Each event includes an **Additional information** section that provides more detail depending on the type of event: -- Contained by Application Guard -- Active threat detected - when the detection happened, the threat was executing (i.e. it was running) -- Remediation unsuccessful - remediation was invoked but failed -- Remediation successful - the threat was stopped and cleaned up -- Warning bypassed by user - SmartScreen warning appeared but the user dismissed it -- Suspicious script detected -- Alert category (e.g. lateral movement)- if the event is correlated to an alert, the tag will show the alert category +- Contained by Application Guard - the web browser event was restricted by an isolated container +- Active threat detected - the threat detection occurred while the threat is running +- Remediation unsuccessful - an attempt to remediate the detected threat was invoked but failed +- Remediation successful - the detected threat was stopped and cleaned +- Warning bypassed by user - the SmartScreen warning was dismissed and overridden by a user +- Suspicious script detected - a potentially malicious script was found running +- The alert category - if the event led to the generation of an alert, the alert category ("Lateral Movement", for example) is provided You can also use the [Artifact timeline](investigate-alerts.md#artifact-timeline) feature to see the correlation between alerts and events on a specific machine. From 9807adbec2ad19e79434d3b9ee186575a82abf17 Mon Sep 17 00:00:00 2001 From: lomayor Date: Wed, 17 Jul 2019 16:05:05 -0700 Subject: [PATCH 16/27] Update investigate-machines.md --- .../microsoft-defender-atp/investigate-machines.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/investigate-machines.md b/windows/security/threat-protection/microsoft-defender-atp/investigate-machines.md index fb0267f08b..c79fa83c94 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/investigate-machines.md +++ b/windows/security/threat-protection/microsoft-defender-atp/investigate-machines.md @@ -131,10 +131,10 @@ Some of the functionality includes: - Export detailed machine timeline events - Export the machine timeline for the current date or a specified date range up to seven days. -Each event includes an **Additional information** section that provides more detail depending on the type of event: +More details about certain events are provided in the **Additional information** section. These details vary depending on the type of event, for example: -- Contained by Application Guard - the web browser event was restricted by an isolated container -- Active threat detected - the threat detection occurred while the threat is running +- Contained by Application Guard - the web browser event was restricted by an isolated container +- Active threat detected - the threat detection occurred while the threat was running - Remediation unsuccessful - an attempt to remediate the detected threat was invoked but failed - Remediation successful - the detected threat was stopped and cleaned - Warning bypassed by user - the SmartScreen warning was dismissed and overridden by a user From 8731b7423f31ca49a3523fa1d06d7c06d692c38c Mon Sep 17 00:00:00 2001 From: lomayor Date: Wed, 17 Jul 2019 21:04:00 -0700 Subject: [PATCH 17/27] Update configure-machines-security-baseline.md --- .../configure-machines-security-baseline.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md index d91d24bb04..fc3ec38f5f 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md @@ -41,6 +41,9 @@ The Windows Intune security baseline provides a comprehensive set of recommended Both baselines are maintained so that they complement one another and have identical values for shared settings. Deploying both baselines to the same machine will not result in conflicts. Ideally, machines onboarded to Microsoft Defender ATP are deployed both baselines: the Windows Intune security baseline to initially secure Windows and then the Microsoft Defender ATP security baseline layered on top to optimally configure the Microsoft Defender ATP security controls. +>[!NOTE] +>The Windows Defender ATP security baseline [turns on Windows Hello for Business](https://docs.microsoft.com/intune/security-baseline-settings-defender-atp#windows-hello-for-business). This will require a secondary authentication method that is typically unavailable with RDP and other remote interactive sessions used to access virtual machines (VMs). Before applying the security baseline on VMs, consider modifying the baseline to turn off Windows Hello for Business. + ## Get permissions to manage security baselines in Intune By default, only users who have been assigned the Global Administrator or the Intune Service Administrator role on Azure AD can manage security baseline profiles. If you haven’t been assigned either role, work with a Global Administrator or an Intune Service Administrator to [create a custom role in Intune](https://docs.microsoft.com/intune/create-custom-role#to-create-a-custom-role) with full permissions to security baselines and then assign that role to your Azure AD group. From b7d38ad81e552514884bd513edc4f9c1806a5328 Mon Sep 17 00:00:00 2001 From: lomayor Date: Wed, 17 Jul 2019 21:41:18 -0700 Subject: [PATCH 18/27] corrected ms.topic metadata values --- .../microsoft-defender-atp/configure-machines-asr.md | 2 +- .../microsoft-defender-atp/configure-machines-onboarding.md | 2 +- .../configure-machines-security-baseline.md | 2 +- .../microsoft-defender-atp/configure-machines.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-asr.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-asr.md index 9b0a3173f6..d6b0b6bed5 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-asr.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-asr.md @@ -14,7 +14,7 @@ ms.localizationpriority: medium manager: dansimp audience: ITPro ms.collection: M365-security-compliance -ms.topic: procedural +ms.topic: article --- # Optimize ASR rule deployment and detections diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-onboarding.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-onboarding.md index f09ddf1096..70cfffed50 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-onboarding.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-onboarding.md @@ -14,7 +14,7 @@ ms.localizationpriority: medium manager: dansimp audience: ITPro ms.collection: M365-security-compliance -ms.topic: procedural +ms.topic: article --- # Get machines onboarded to Microsoft Defender ATP diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md index fc3ec38f5f..20c8764a22 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md @@ -14,7 +14,7 @@ ms.localizationpriority: medium manager: dansimp audience: ITPro ms.collection: M365-security-compliance -ms.topic: procedural +ms.topic: article --- # Increase compliance to the Microsoft Defender ATP security baseline diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines.md index 31fbc743c6..cce444980a 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines.md @@ -14,7 +14,7 @@ ms.localizationpriority: medium manager: dansimp audience: ITPro ms.collection: M365-security-compliance -ms.topic: procedural +ms.topic: conceptual --- # Ensure your machines are configured properly From 8b62d5f202f849d1e6715c3d6eec252ea59178a9 Mon Sep 17 00:00:00 2001 From: Robert Mazzoli Date: Thu, 18 Jul 2019 07:04:56 -0700 Subject: [PATCH 19/27] Corrected Surface Hub file names (removed spaces) --- ...e365.pptx => Guide-Surface Hub2S-Office365.pptx} | Bin ...tion.pptx => Guide-SurfaceHub2S-Navigation.pptx} | Bin ....pdf => TrainingGuide-SurfaceHub2S-HelpDesk.pdf} | Bin 3 files changed, 0 insertions(+), 0 deletions(-) rename devices/surface-hub/downloads/{Guide-Surface Hub 2S-Office365.pptx => Guide-Surface Hub2S-Office365.pptx} (100%) rename devices/surface-hub/downloads/{Guide-SurfaceHub 2S-Navigation.pptx => Guide-SurfaceHub2S-Navigation.pptx} (100%) rename devices/surface-hub/downloads/{Training Guide-SurfaceHub2S-HelpDesk.pdf => TrainingGuide-SurfaceHub2S-HelpDesk.pdf} (100%) diff --git a/devices/surface-hub/downloads/Guide-Surface Hub 2S-Office365.pptx b/devices/surface-hub/downloads/Guide-Surface Hub2S-Office365.pptx similarity index 100% rename from devices/surface-hub/downloads/Guide-Surface Hub 2S-Office365.pptx rename to devices/surface-hub/downloads/Guide-Surface Hub2S-Office365.pptx diff --git a/devices/surface-hub/downloads/Guide-SurfaceHub 2S-Navigation.pptx b/devices/surface-hub/downloads/Guide-SurfaceHub2S-Navigation.pptx similarity index 100% rename from devices/surface-hub/downloads/Guide-SurfaceHub 2S-Navigation.pptx rename to devices/surface-hub/downloads/Guide-SurfaceHub2S-Navigation.pptx diff --git a/devices/surface-hub/downloads/Training Guide-SurfaceHub2S-HelpDesk.pdf b/devices/surface-hub/downloads/TrainingGuide-SurfaceHub2S-HelpDesk.pdf similarity index 100% rename from devices/surface-hub/downloads/Training Guide-SurfaceHub2S-HelpDesk.pdf rename to devices/surface-hub/downloads/TrainingGuide-SurfaceHub2S-HelpDesk.pdf From 8b7eb3f8f9f1315883efcd87882eb9d5c5576a70 Mon Sep 17 00:00:00 2001 From: Robert Mazzoli Date: Thu, 18 Jul 2019 07:08:21 -0700 Subject: [PATCH 20/27] Added manager metadata field --- devices/surface-hub/surface-hub-2s-adoption-kit.md | 1 + 1 file changed, 1 insertion(+) diff --git a/devices/surface-hub/surface-hub-2s-adoption-kit.md b/devices/surface-hub/surface-hub-2s-adoption-kit.md index 46e2247c30..dc4ea1a959 100644 --- a/devices/surface-hub/surface-hub-2s-adoption-kit.md +++ b/devices/surface-hub/surface-hub-2s-adoption-kit.md @@ -6,6 +6,7 @@ ms.prod: surface-hub ms.sitesec: library author: robmazz ms.author: robmazz +manager: laurawi audience: Admin ms.topic: article ms.date: 07/08/2019 From 38bd9394b0cc6ecbe318fc5a84513c2e91925467 Mon Sep 17 00:00:00 2001 From: Robert Mazzoli Date: Thu, 18 Jul 2019 07:19:02 -0700 Subject: [PATCH 21/27] Another file rename to correct error --- ...ce365.pptx => Guide-SurfaceHub2S-Office365.pptx} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename devices/surface-hub/downloads/{Guide-Surface Hub2S-Office365.pptx => Guide-SurfaceHub2S-Office365.pptx} (100%) diff --git a/devices/surface-hub/downloads/Guide-Surface Hub2S-Office365.pptx b/devices/surface-hub/downloads/Guide-SurfaceHub2S-Office365.pptx similarity index 100% rename from devices/surface-hub/downloads/Guide-Surface Hub2S-Office365.pptx rename to devices/surface-hub/downloads/Guide-SurfaceHub2S-Office365.pptx From 61a5af09b37c7105026ac4f5d400200c09a8518c Mon Sep 17 00:00:00 2001 From: lomayor Date: Thu, 18 Jul 2019 08:54:18 -0700 Subject: [PATCH 22/27] Update configure-machines-security-baseline.md --- .../configure-machines-security-baseline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md index 20c8764a22..b40a3302ef 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md @@ -42,7 +42,7 @@ The Windows Intune security baseline provides a comprehensive set of recommended Both baselines are maintained so that they complement one another and have identical values for shared settings. Deploying both baselines to the same machine will not result in conflicts. Ideally, machines onboarded to Microsoft Defender ATP are deployed both baselines: the Windows Intune security baseline to initially secure Windows and then the Microsoft Defender ATP security baseline layered on top to optimally configure the Microsoft Defender ATP security controls. >[!NOTE] ->The Windows Defender ATP security baseline [turns on Windows Hello for Business](https://docs.microsoft.com/intune/security-baseline-settings-defender-atp#windows-hello-for-business). This will require a secondary authentication method that is typically unavailable with RDP and other remote interactive sessions used to access virtual machines (VMs). Before applying the security baseline on VMs, consider modifying the baseline to turn off Windows Hello for Business. +>The Windows Defender ATP security baseline has been optimized for physical devices and is currently not recommended for use on virtual machines (VMs) or VDI endpoints. Certain baseline settings can impact remote interactive sessions on virtualized environments. ## Get permissions to manage security baselines in Intune From ab7515d45c98b4bab0e870a5c4d79372fc0a8c74 Mon Sep 17 00:00:00 2001 From: lomayor Date: Thu, 18 Jul 2019 08:58:37 -0700 Subject: [PATCH 23/27] Update configure-machines-security-baseline.md --- .../configure-machines-security-baseline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md index b40a3302ef..14dbc385d6 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-machines-security-baseline.md @@ -42,7 +42,7 @@ The Windows Intune security baseline provides a comprehensive set of recommended Both baselines are maintained so that they complement one another and have identical values for shared settings. Deploying both baselines to the same machine will not result in conflicts. Ideally, machines onboarded to Microsoft Defender ATP are deployed both baselines: the Windows Intune security baseline to initially secure Windows and then the Microsoft Defender ATP security baseline layered on top to optimally configure the Microsoft Defender ATP security controls. >[!NOTE] ->The Windows Defender ATP security baseline has been optimized for physical devices and is currently not recommended for use on virtual machines (VMs) or VDI endpoints. Certain baseline settings can impact remote interactive sessions on virtualized environments. +>The Microsoft Defender ATP security baseline has been optimized for physical devices and is currently not recommended for use on virtual machines (VMs) or VDI endpoints. Certain baseline settings can impact remote interactive sessions on virtualized environments. ## Get permissions to manage security baselines in Intune From 50287011c2dc185c809413a170c0c72bf32dc163 Mon Sep 17 00:00:00 2001 From: Marty Hernandez Avedon Date: Thu, 18 Jul 2019 13:02:07 -0400 Subject: [PATCH 24/27] Removing duplicate headings from TOC (#639) * first pass * second pass * fixed typo * remove dups * remove topics rename titles * updates * worked on threatprotection toc to match * fixed broken links * test * update toc items * fix warnings * update * update levels * skip * update toc title --- windows/security/threat-protection/TOC.md | 830 ++++++++++-------- .../configure-endpoints.md | 5 +- .../{TOC.md => oldTOC.md} | 349 +++++--- 3 files changed, 671 insertions(+), 513 deletions(-) rename windows/security/threat-protection/microsoft-defender-atp/{TOC.md => oldTOC.md} (70%) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index eed873bdf4..4e7cc95c8e 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -1,436 +1,492 @@ # [Threat protection](index.md) -## [Microsoft Defender Advanced Threat Protection](microsoft-defender-atp/microsoft-defender-advanced-threat-protection.md) +## [Overview]() +### [What is Microsoft Defender Advanced Threat Protection?](microsoft-defender-atp/microsoft-defender-advanced-threat-protection.md) +### [Overview of Microsoft Defender ATP capabilities](microsoft-defender-atp/overview.md) +### [Attack surface reduction]() +#### [Hardware-based isolation]() +##### [Hardware-based isolation in Windows 10](microsoft-defender-atp/overview-hardware-based-isolation.md) -### [Overview](microsoft-defender-atp/overview.md) -#### [Attack surface reduction](microsoft-defender-atp/overview-attack-surface-reduction.md) -##### [Hardware-based isolation](microsoft-defender-atp/overview-hardware-based-isolation.md) -###### [Application isolation](windows-defender-application-guard/wd-app-guard-overview.md) -####### [System requirements](windows-defender-application-guard/reqs-wd-app-guard.md) -###### [System integrity](windows-defender-system-guard/system-guard-how-hardware-based-root-of-trust-helps-protect-windows.md) -##### [Application control](windows-defender-application-control/windows-defender-application-control.md) -##### [Exploit protection](windows-defender-exploit-guard/exploit-protection-exploit-guard.md) -##### [Network protection](windows-defender-exploit-guard/network-protection-exploit-guard.md) -##### [Controlled folder access](windows-defender-exploit-guard/controlled-folders-exploit-guard.md) -##### [Attack surface reduction](windows-defender-exploit-guard/attack-surface-reduction-exploit-guard.md) -##### [Network firewall](windows-firewall/windows-firewall-with-advanced-security.md) -#### [Next generation protection](windows-defender-antivirus/windows-defender-antivirus-in-windows-10.md) -#### [Endpoint detection and response](microsoft-defender-atp/overview-endpoint-detection-response.md) -##### [Security operations dashboard](microsoft-defender-atp/security-operations-dashboard.md) +##### [Application isolation]() +###### [Application guard overview](windows-defender-application-guard/wd-app-guard-overview.md) +###### [System requirements](windows-defender-application-guard/reqs-wd-app-guard.md) -##### [Incidents queue](microsoft-defender-atp/incidents-queue.md) -###### [View and organize the Incidents queue](microsoft-defender-atp/view-incidents-queue.md) -###### [Manage incidents](microsoft-defender-atp/manage-incidents.md) -###### [Investigate incidents](microsoft-defender-atp/investigate-incidents.md) +##### [System integrity](windows-defender-system-guard/system-guard-how-hardware-based-root-of-trust-helps-protect-windows.md) +#### [Application control](windows-defender-application-control/windows-defender-application-control.md) +#### [Exploit protection](windows-defender-exploit-guard/exploit-protection-exploit-guard.md) +#### [Network protection](windows-defender-exploit-guard/network-protection-exploit-guard.md) +#### [Controlled folder access](windows-defender-exploit-guard/controlled-folders-exploit-guard.md) +#### [Attack surface reduction](windows-defender-exploit-guard/attack-surface-reduction-exploit-guard.md) +#### [Network firewall](windows-firewall/windows-firewall-with-advanced-security.md) +### [Next generation protection](windows-defender-antivirus/windows-defender-antivirus-in-windows-10.md) -##### Alerts queue -###### [View and organize the Alerts queue](microsoft-defender-atp/alerts-queue.md) -###### [Manage alerts](microsoft-defender-atp/manage-alerts.md) -###### [Investigate alerts](microsoft-defender-atp/investigate-alerts.md) -###### [Investigate files](microsoft-defender-atp/investigate-files.md) -###### [Investigate machines](microsoft-defender-atp/investigate-machines.md) -###### [Investigate an IP address](microsoft-defender-atp/investigate-ip.md) -###### [Investigate a domain](microsoft-defender-atp/investigate-domain.md) -###### [Investigate a user account](microsoft-defender-atp/investigate-user.md) +### [Endpoint detection and response]() +#### [Endpoint detection and response overview](microsoft-defender-atp/overview-endpoint-detection-response.md) +#### [Security operations dashboard](microsoft-defender-atp/security-operations-dashboard.md) + +#### [Incidents queue]() +##### [View and organize the Incidents queue](microsoft-defender-atp/view-incidents-queue.md) +##### [Manage incidents](microsoft-defender-atp/manage-incidents.md) +##### [Investigate incidents](microsoft-defender-atp/investigate-incidents.md) + +#### [Alerts queue]() +##### [View and organize the Alerts queue](microsoft-defender-atp/alerts-queue.md) +##### [Manage alerts](microsoft-defender-atp/manage-alerts.md) +##### [Investigate alerts](microsoft-defender-atp/investigate-alerts.md) +##### [Investigate files](microsoft-defender-atp/investigate-files.md) +##### [Investigate machines](microsoft-defender-atp/investigate-machines.md) +##### [Investigate an IP address](microsoft-defender-atp/investigate-ip.md) +##### [Investigate a domain](microsoft-defender-atp/investigate-domain.md) +##### [Investigate a user account](microsoft-defender-atp/investigate-user.md) -##### Machines list -###### [View and organize the Machines list](microsoft-defender-atp/machines-view-overview.md) -###### [Manage machine group and tags](microsoft-defender-atp/machine-tags.md) -###### [Alerts related to this machine](microsoft-defender-atp/investigate-machines.md#alerts-related-to-this-machine) -###### [Machine timeline](microsoft-defender-atp/investigate-machines.md#machine-timeline) -####### [Search for specific events](microsoft-defender-atp/investigate-machines.md#search-for-specific-events) -####### [Filter events from a specific date](microsoft-defender-atp/investigate-machines.md#filter-events-from-a-specific-date) -####### [Export machine timeline events](microsoft-defender-atp/investigate-machines.md#export-machine-timeline-events) -####### [Navigate between pages](microsoft-defender-atp/investigate-machines.md#navigate-between-pages) +#### [Machines list]() +##### [View and organize the Machines list](microsoft-defender-atp/machines-view-overview.md) +##### [Manage machine group and tags](microsoft-defender-atp/machine-tags.md) +##### [Alerts related to this machine](microsoft-defender-atp/investigate-machines.md#alerts-related-to-this-machine) +##### [Machine timeline]() +###### [View machine profile](microsoft-defender-atp/investigate-machines.md#machine-timeline) +###### [Search for specific events](microsoft-defender-atp/investigate-machines.md#search-for-specific-events) +###### [Filter events from a specific date](microsoft-defender-atp/investigate-machines.md#filter-events-from-a-specific-date) +###### [Export machine timeline events](microsoft-defender-atp/investigate-machines.md#export-machine-timeline-events) +###### [Navigate between pages](microsoft-defender-atp/investigate-machines.md#navigate-between-pages) -##### [Take response actions](microsoft-defender-atp/response-actions.md) -###### [Take response actions on a machine](microsoft-defender-atp/respond-machine-alerts.md) -####### [Collect investigation package](microsoft-defender-atp/respond-machine-alerts.md#collect-investigation-package-from-machines) -####### [Run antivirus scan](microsoft-defender-atp/respond-machine-alerts.md#run-windows-defender-antivirus-scan-on-machines) -####### [Restrict app execution](microsoft-defender-atp/respond-machine-alerts.md#restrict-app-execution) -####### [Remove app restriction](microsoft-defender-atp/respond-machine-alerts.md#remove-app-restriction) -####### [Isolate machines from the network](microsoft-defender-atp/respond-machine-alerts.md#isolate-machines-from-the-network) -####### [Release machine from isolation](microsoft-defender-atp/respond-machine-alerts.md#release-machine-from-isolation) +#### [Take response actions]() +##### [Take response actions on a machine]() +###### [Response actions on machines](microsoft-defender-atp/respond-machine-alerts.md) +###### [Collect investigation package](microsoft-defender-atp/respond-machine-alerts.md#collect-investigation-package-from-machines) +###### [Run antivirus scan](microsoft-defender-atp/respond-machine-alerts.md#run-windows-defender-antivirus-scan-on-machines) +###### [Restrict app execution](microsoft-defender-atp/respond-machine-alerts.md#restrict-app-execution) +###### [Remove app restriction](microsoft-defender-atp/respond-machine-alerts.md#remove-app-restriction) +###### [Isolate machines from the network](microsoft-defender-atp/respond-machine-alerts.md#isolate-machines-from-the-network) +###### [Release machine from isolation](microsoft-defender-atp/respond-machine-alerts.md#release-machine-from-isolation) ####### [Check activity details in Action center](microsoft-defender-atp/respond-machine-alerts.md#check-activity-details-in-action-center) -###### [Take response actions on a file](microsoft-defender-atp/respond-file-alerts.md) -####### [Stop and quarantine files in your network](microsoft-defender-atp/respond-file-alerts.md#stop-and-quarantine-files-in-your-network) -####### [Remove file from quarantine](microsoft-defender-atp/respond-file-alerts.md#remove-file-from-quarantine) -####### [Block files in your network](microsoft-defender-atp/respond-file-alerts.md#block-files-in-your-network) -####### [Remove file from blocked list](microsoft-defender-atp/respond-file-alerts.md#remove-file-from-blocked-list) -####### [Check activity details in Action center](microsoft-defender-atp/respond-file-alerts.md#check-activity-details-in-action-center) -####### [Deep analysis](microsoft-defender-atp/respond-file-alerts.md#deep-analysis) -####### [Submit files for analysis](microsoft-defender-atp/respond-file-alerts.md#submit-files-for-analysis) -####### [View deep analysis reports](microsoft-defender-atp/respond-file-alerts.md#view-deep-analysis-reports) +##### [Take response actions on a file]() +###### [Response actions on files](microsoft-defender-atp/respond-file-alerts.md) +###### [Stop and quarantine files in your network](microsoft-defender-atp/respond-file-alerts.md#stop-and-quarantine-files-in-your-network) +###### [Remove file from quarantine](microsoft-defender-atp/respond-file-alerts.md#remove-file-from-quarantine) +###### [Block files in your network](microsoft-defender-atp/respond-file-alerts.md#block-files-in-your-network) +###### [Remove file from blocked list](microsoft-defender-atp/respond-file-alerts.md#remove-file-from-blocked-list) +###### [Check activity details in Action center](microsoft-defender-atp/respond-file-alerts.md#check-activity-details-in-action-center) +###### [Deep analysis](microsoft-defender-atp/respond-file-alerts.md#deep-analysis) +###### [Submit files for analysis](microsoft-defender-atp/respond-file-alerts.md#submit-files-for-analysis) +###### [View deep analysis reports](microsoft-defender-atp/respond-file-alerts.md#view-deep-analysis-reports) ####### [Troubleshoot deep analysis](microsoft-defender-atp/respond-file-alerts.md#troubleshoot-deep-analysis) - -###### [Investigate entities using Live response](microsoft-defender-atp/live-response.md) -#######[Live response command examples](microsoft-defender-atp/live-response-command-examples.md) -#### [Automated investigation and remediation](microsoft-defender-atp/automated-investigations.md) -##### [Learn about the automated investigation and remediation dashboard](microsoft-defender-atp/manage-auto-investigation.md) +##### [Investigate entities using Live response]() +###### [Investigate entities on machines](microsoft-defender-atp/live-response.md) +######[Live response command examples](microsoft-defender-atp/live-response-command-examples.md) + +### [Automated investigation and remediation]() +#### [Automated investigation and remediation overview](microsoft-defender-atp/automated-investigations.md) +#### [Learn about the automated investigation and remediation dashboard](microsoft-defender-atp/manage-auto-investigation.md) #####[Manage actions related to automated investigation and remediation](microsoft-defender-atp/auto-investigation-action-center.md) +### [Secure score](microsoft-defender-atp/overview-secure-score.md) +### [Threat analytics](microsoft-defender-atp/threat-analytics.md) -#### [Secure score](microsoft-defender-atp/overview-secure-score.md) -#### [Threat analytics](microsoft-defender-atp/threat-analytics.md) +### [Advanced hunting]() +#### [Advanced hunting overview](microsoft-defender-atp/overview-hunting.md) +#### [Query data using Advanced hunting](microsoft-defender-atp/advanced-hunting.md) +##### [Advanced hunting reference](microsoft-defender-atp/advanced-hunting-reference.md) +##### [Advanced hunting query language best practices](microsoft-defender-atp/advanced-hunting-best-practices.md) -#### [Advanced hunting](microsoft-defender-atp/overview-hunting.md) -##### [Query data using Advanced hunting](microsoft-defender-atp/advanced-hunting.md) -###### [Advanced hunting reference](microsoft-defender-atp/advanced-hunting-reference.md) -###### [Advanced hunting query language best practices](microsoft-defender-atp/advanced-hunting-best-practices.md) -##### [Custom detections](microsoft-defender-atp/overview-custom-detections.md) -###### [Create custom detections rules](microsoft-defender-atp/custom-detection-rules.md) +#### [Custom detections]() +##### [Understand custom detection rules](microsoft-defender-atp/overview-custom-detections.md) +##### [Create custom detections rules](microsoft-defender-atp/custom-detection-rules.md) - - -#### [Management and APIs](microsoft-defender-atp/management-apis.md) +#### [Management and APIs]() +##### [Overview of management and APIs](microsoft-defender-atp/management-apis.md) ##### [Understand threat intelligence concepts](microsoft-defender-atp/threat-indicator-concepts.md) ##### [Microsoft Defender ATP APIs](microsoft-defender-atp/apis-intro.md) ##### [Managed security service provider support](microsoft-defender-atp/mssp-support.md) -#### [Microsoft threat protection](microsoft-defender-atp/threat-protection-integration.md) +#### [Integrations]() +##### [Microsoft Defender ATP integrations](microsoft-defender-atp/threat-protection-integration.md) ##### [Protect users, data, and devices with conditional access](microsoft-defender-atp/conditional-access.md) ##### [Microsoft Cloud App Security integration overview](microsoft-defender-atp/microsoft-cloud-app-security-integration.md) -##### [Information protection in Windows overview](microsoft-defender-atp/information-protection-in-windows-overview.md) -###### [Use sensitivity labels to prioritize incident response](microsoft-defender-atp/information-protection-investigation.md) + +#### [Information protection in Windows overview]() +##### [Windows integration](microsoft-defender-atp/information-protection-in-windows-overview.md) +##### [Use sensitivity labels to prioritize incident response](microsoft-defender-atp/information-protection-investigation.md) + +### [Microsoft Threat Experts](microsoft-defender-atp/microsoft-threat-experts.md) + +### [Portal overview](microsoft-defender-atp/portal-overview.md) +## [Get started]() +### [What's new in Microsoft Defender ATP](microsoft-defender-atp/whats-new-in-microsoft-defender-atp.md) +### [Minimum requirements](microsoft-defender-atp/minimum-requirements.md) +### [Validate licensing and complete setup](microsoft-defender-atp/licensing.md) +### [Preview features](microsoft-defender-atp/preview.md) +### [Data storage and privacy](microsoft-defender-atp/data-storage-privacy.md) +### [Assign user access to the portal](microsoft-defender-atp/assign-portal-access.md) -#### [Microsoft Threat Experts](microsoft-defender-atp/microsoft-threat-experts.md) - - - -#### [Portal overview](microsoft-defender-atp/portal-overview.md) - - - -### [Get started](microsoft-defender-atp/get-started.md) -#### [What's new in Microsoft Defender ATP](microsoft-defender-atp/whats-new-in-microsoft-defender-atp.md) -#### [Minimum requirements](microsoft-defender-atp/minimum-requirements.md) -#### [Validate licensing and complete setup](microsoft-defender-atp/licensing.md) -#### [Preview features](microsoft-defender-atp/preview.md) -#### [Data storage and privacy](microsoft-defender-atp/data-storage-privacy.md) -#### [Assign user access to the portal](microsoft-defender-atp/assign-portal-access.md) - -#### [Evaluate Microsoft Defender ATP](microsoft-defender-atp/evaluate-atp.md) -#####Evaluate attack surface reduction -###### [Hardware-based isolation](windows-defender-application-guard/test-scenarios-wd-app-guard.md) -###### [Application control](windows-defender-application-control/audit-windows-defender-application-control-policies.md) -###### [Exploit protection](windows-defender-exploit-guard/evaluate-exploit-protection.md) -###### [Network Protection](windows-defender-exploit-guard/evaluate-network-protection.md) -###### [Controlled folder access](windows-defender-exploit-guard/evaluate-controlled-folder-access.md) -###### [Attack surface reduction](windows-defender-exploit-guard/evaluate-attack-surface-reduction.md) -###### [Network firewall](windows-firewall/evaluating-windows-firewall-with-advanced-security-design-examples.md) +### [Evaluate Microsoft Defender ATP]() +#### [Attack surface reduction and next-generation capability evaluation]() +##### [Attack surface reduction and nex-generation evaluation overview](microsoft-defender-atp/evaluate-atp.md) +##### [Hardware-based isolation](windows-defender-application-guard/test-scenarios-wd-app-guard.md) +##### [Application control](windows-defender-application-control/audit-windows-defender-application-control-policies.md) +##### [Exploit protection](windows-defender-exploit-guard/evaluate-exploit-protection.md) +##### [Network Protection](windows-defender-exploit-guard/evaluate-network-protection.md) +##### [Controlled folder access](windows-defender-exploit-guard/evaluate-controlled-folder-access.md) +##### [Attack surface reduction](windows-defender-exploit-guard/evaluate-attack-surface-reduction.md) +##### [Network firewall](windows-firewall/evaluating-windows-firewall-with-advanced-security-design-examples.md) ##### [Evaluate next generation protection](windows-defender-antivirus/evaluate-windows-defender-antivirus.md) -#### [Access the Windows Defender Security Center Community Center](microsoft-defender-atp/community.md) +### [Access the Windows Defender Security Center Community Center](microsoft-defender-atp/community.md) -### [Configure and manage capabilities](microsoft-defender-atp/onboard.md) -#### [Configure attack surface reduction](microsoft-defender-atp/configure-attack-surface-reduction.md) -#####Hardware-based isolation -###### [System isolation](windows-defender-system-guard/system-guard-secure-launch-and-smm-protection.md) -###### [Application isolation](windows-defender-application-guard/install-wd-app-guard.md) -####### [Configuration settings](windows-defender-application-guard/configure-wd-app-guard.md) -##### [Application control](windows-defender-application-control/windows-defender-application-control.md) -##### Device control -###### [Control USB devices](device-control/control-usb-devices-using-intune.md) -###### [Device Guard](device-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) -####### [Memory integrity](windows-defender-exploit-guard/memory-integrity.md) -######## [Hardware qualifications](windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md) -######## [Enable HVCI](windows-defender-exploit-guard/enable-virtualization-based-protection-of-code-integrity.md) -##### [Exploit protection](windows-defender-exploit-guard/enable-exploit-protection.md) -###### [Import/export configurations](windows-defender-exploit-guard/import-export-exploit-protection-emet-xml.md) -##### [Network protection](windows-defender-exploit-guard/enable-network-protection.md) -##### [Controlled folder access](windows-defender-exploit-guard/enable-controlled-folders-exploit-guard.md) -##### [Attack surface reduction controls](windows-defender-exploit-guard/enable-attack-surface-reduction.md) -###### [Customize attack surface reduction](windows-defender-exploit-guard/customize-attack-surface-reduction.md) -##### [Network firewall](windows-firewall/windows-firewall-with-advanced-security-deployment-guide.md) +## [Configure and manage capabilities]() +### [Configure attack surface reduction]() +#### [Attack surface reduction configuration settings](microsoft-defender-atp/configure-attack-surface-reduction.md) +#### [Hardware-based isolation]() +##### [System isolation](windows-defender-system-guard/system-guard-secure-launch-and-smm-protection.md) +##### [Application isolation]() +###### [Install Windows Defender Application Guard](windows-defender-application-guard/install-wd-app-guard.md) +###### [Configuration settings](windows-defender-application-guard/configure-wd-app-guard.md) -#### [Configure next generation protection](windows-defender-antivirus/configure-windows-defender-antivirus-features.md) -##### [Utilize Microsoft cloud-delivered protection](windows-defender-antivirus/utilize-microsoft-cloud-protection-windows-defender-antivirus.md) -###### [Enable cloud-delivered protection](windows-defender-antivirus/enable-cloud-protection-windows-defender-antivirus.md) -###### [Specify the cloud-delivered protection level](windows-defender-antivirus/specify-cloud-protection-level-windows-defender-antivirus.md) -###### [Configure and validate network connections](windows-defender-antivirus/configure-network-connections-windows-defender-antivirus.md) -###### [Enable Block at first sight](windows-defender-antivirus/configure-block-at-first-sight-windows-defender-antivirus.md) -###### [Configure the cloud block timeout period](windows-defender-antivirus/configure-cloud-block-timeout-period-windows-defender-antivirus.md) -##### [Configure behavioral, heuristic, and real-time protection](windows-defender-antivirus/configure-protection-features-windows-defender-antivirus.md) -###### [Detect and block Potentially Unwanted Applications](windows-defender-antivirus/detect-block-potentially-unwanted-apps-windows-defender-antivirus.md) -###### [Enable and configure always-on protection and monitoring](windows-defender-antivirus/configure-real-time-protection-windows-defender-antivirus.md) -##### [Antivirus on Windows Server 2016](windows-defender-antivirus/windows-defender-antivirus-on-windows-server-2016.md) -##### [Antivirus compatibility](windows-defender-antivirus/windows-defender-antivirus-compatibility.md) -###### [Use limited periodic antivirus scanning](windows-defender-antivirus/limited-periodic-scanning-windows-defender-antivirus.md) +#### [Application control](windows-defender-application-control/windows-defender-application-control.md) -##### [Deploy, manage updates, and report on antivirus](windows-defender-antivirus/deploy-manage-report-windows-defender-antivirus.md) -###### [Deploy and enable antivirus](windows-defender-antivirus/deploy-windows-defender-antivirus.md) -####### [Deployment guide for VDI environments](windows-defender-antivirus/deployment-vdi-windows-defender-antivirus.md) -###### [Report on antivirus protection](windows-defender-antivirus/report-monitor-windows-defender-antivirus.md) -####### [Troubleshoot antivirus reporting in Update Compliance](windows-defender-antivirus/troubleshoot-reporting.md) -###### [Manage updates and apply baselines](windows-defender-antivirus/manage-updates-baselines-windows-defender-antivirus.md) -####### [Manage protection and definition updates](windows-defender-antivirus/manage-protection-updates-windows-defender-antivirus.md) -####### [Manage when protection updates should be downloaded and applied](windows-defender-antivirus/manage-protection-update-schedule-windows-defender-antivirus.md) -####### [Manage updates for endpoints that are out of date](windows-defender-antivirus/manage-outdated-endpoints-windows-defender-antivirus.md) -####### [Manage event-based forced updates](windows-defender-antivirus/manage-event-based-updates-windows-defender-antivirus.md) -####### [Manage updates for mobile devices and VMs](windows-defender-antivirus/manage-updates-mobile-devices-vms-windows-defender-antivirus.md) +#### [Device control]() +##### [Control USB devices](device-control/control-usb-devices-using-intune.md) -##### [Customize, initiate, and review the results of scans and remediation](windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) -###### [Configure and validate exclusions in antivirus scans](windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) -####### [Configure and validate exclusions based on file name, extension, and folder location](windows-defender-antivirus/configure-extension-file-exclusions-windows-defender-antivirus.md) -####### [Configure and validate exclusions for files opened by processes](windows-defender-antivirus/configure-process-opened-file-exclusions-windows-defender-antivirus.md) -####### [Configure antivirus exclusions Windows Server 2016](windows-defender-antivirus/configure-server-exclusions-windows-defender-antivirus.md) -###### [Configure scanning antivirus options](windows-defender-antivirus/configure-advanced-scan-types-windows-defender-antivirus.md) -###### [Configure remediation for scans](windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) -###### [Configure scheduled scans](windows-defender-antivirus/scheduled-catch-up-scans-windows-defender-antivirus.md) -###### [Configure and run scans](windows-defender-antivirus/run-scan-windows-defender-antivirus.md) -###### [Review scan results](windows-defender-antivirus/review-scan-results-windows-defender-antivirus.md) -###### [Run and review the results of an offline scan](windows-defender-antivirus/windows-defender-offline.md) +##### [Device Guard]() +###### [Code integrity](device-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) + +###### [Memory integrity]() +####### [Understand memory integrity](windows-defender-exploit-guard/memory-integrity.md) +####### [Hardware qualifications](windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md) +####### [Enable HVCI](windows-defender-exploit-guard/enable-virtualization-based-protection-of-code-integrity.md) + +#### [Exploit protection]() +##### [Enable exploit protection](windows-defender-exploit-guard/enable-exploit-protection.md) +##### [Import/export configurations](windows-defender-exploit-guard/import-export-exploit-protection-emet-xml.md) + +#### [Network protection](windows-defender-exploit-guard/enable-network-protection.md) +#### [Controlled folder access](windows-defender-exploit-guard/enable-controlled-folders-exploit-guard.md) + +#### [Attack surface reduction controls]() +##### [Enable attack surface reduction rules](windows-defender-exploit-guard/enable-attack-surface-reduction.md) +##### [Customize attack surface reduction](windows-defender-exploit-guard/customize-attack-surface-reduction.md) +#### [Network firewall](windows-firewall/windows-firewall-with-advanced-security-deployment-guide.md) + +### [Configure next generation protection]() +#### [Configure Windows Defender Antivirus features](windows-defender-antivirus/configure-windows-defender-antivirus-features.md) +#### [Utilize Microsoft cloud-delivered protection](windows-defender-antivirus/utilize-microsoft-cloud-protection-windows-defender-antivirus.md) +##### [Enable cloud-delivered protection](windows-defender-antivirus/enable-cloud-protection-windows-defender-antivirus.md) +##### [Specify the cloud-delivered protection level](windows-defender-antivirus/specify-cloud-protection-level-windows-defender-antivirus.md) +##### [Configure and validate network connections](windows-defender-antivirus/configure-network-connections-windows-defender-antivirus.md) +##### [Enable Block at first sight](windows-defender-antivirus/configure-block-at-first-sight-windows-defender-antivirus.md) +##### [Configure the cloud block timeout period](windows-defender-antivirus/configure-cloud-block-timeout-period-windows-defender-antivirus.md) + +#### [Configure behavioral, heuristic, and real-time protection]() +##### [Configuration overview](windows-defender-antivirus/configure-protection-features-windows-defender-antivirus.md) +##### [Detect and block Potentially Unwanted Applications](windows-defender-antivirus/detect-block-potentially-unwanted-apps-windows-defender-antivirus.md) +##### [Enable and configure always-on protection and monitoring](windows-defender-antivirus/configure-real-time-protection-windows-defender-antivirus.md) + +#### [Antivirus on Windows Server 2016](windows-defender-antivirus/windows-defender-antivirus-on-windows-server-2016.md) + +#### [Antivirus compatibility]() +##### [Compatibility charts](windows-defender-antivirus/windows-defender-antivirus-compatibility.md) +##### [Use limited periodic antivirus scanning](windows-defender-antivirus/limited-periodic-scanning-windows-defender-antivirus.md) + +#### [Deploy, manage updates, and report on antivirus]() +##### [Preparing to deploy](windows-defender-antivirus/deploy-manage-report-windows-defender-antivirus.md) +##### [Deploy and enable antivirus](windows-defender-antivirus/deploy-windows-defender-antivirus.md) +###### [Deployment guide for VDI environments](windows-defender-antivirus/deployment-vdi-windows-defender-antivirus.md) + +##### [Report on antivirus protection]() +###### [Review protection status and alerts](windows-defender-antivirus/report-monitor-windows-defender-antivirus.md) +###### [Troubleshoot antivirus reporting in Update Compliance](windows-defender-antivirus/troubleshoot-reporting.md) + +##### [Manage updates and apply baselines]() +###### [Learn about the different kinds of updates](windows-defender-antivirus/manage-updates-baselines-windows-defender-antivirus.md) +###### [Manage protection and definition updates](windows-defender-antivirus/manage-protection-updates-windows-defender-antivirus.md) +###### [Manage when protection updates should be downloaded and applied](windows-defender-antivirus/manage-protection-update-schedule-windows-defender-antivirus.md) +###### [Manage updates for endpoints that are out of date](windows-defender-antivirus/manage-outdated-endpoints-windows-defender-antivirus.md) +###### [Manage event-based forced updates](windows-defender-antivirus/manage-event-based-updates-windows-defender-antivirus.md) +###### [Manage updates for mobile devices and VMs](windows-defender-antivirus/manage-updates-mobile-devices-vms-windows-defender-antivirus.md) + +#### [Customize, initiate, and review the results of scans and remediation]() +##### [Configuration overview](windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) + +##### [Configure and validate exclusions in antivirus scans]() +###### [Exclusions overview](windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) +###### [Configure and validate exclusions based on file name, extension, and folder location](windows-defender-antivirus/configure-extension-file-exclusions-windows-defender-antivirus.md) +###### [Configure and validate exclusions for files opened by processes](windows-defender-antivirus/configure-process-opened-file-exclusions-windows-defender-antivirus.md) +###### [Configure antivirus exclusions Windows Server 2016](windows-defender-antivirus/configure-server-exclusions-windows-defender-antivirus.md) + +##### [Configure scanning antivirus options](windows-defender-antivirus/configure-advanced-scan-types-windows-defender-antivirus.md) +##### [Configure remediation for scans](windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) +##### [Configure scheduled scans](windows-defender-antivirus/scheduled-catch-up-scans-windows-defender-antivirus.md) +##### [Configure and run scans](windows-defender-antivirus/run-scan-windows-defender-antivirus.md) +##### [Review scan results](windows-defender-antivirus/review-scan-results-windows-defender-antivirus.md) +##### [Run and review the results of an offline scan](windows-defender-antivirus/windows-defender-offline.md) + +#### [Restore quarantined files](windows-defender-antivirus/restore-quarantined-files-windows-defender-antivirus.md) + +#### [Manage antivirus in your business]() +##### [Management overview](windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) +##### [Use Group Policy settings to configure and manage antivirus](windows-defender-antivirus/use-group-policy-windows-defender-antivirus.md) +##### [Use System Center Configuration Manager and Microsoft Intune to configure and manage antivirus](windows-defender-antivirus/use-intune-config-manager-windows-defender-antivirus.md) +##### [Use PowerShell cmdlets to configure and manage antivirus](windows-defender-antivirus/use-powershell-cmdlets-windows-defender-antivirus.md) +##### [Use Windows Management Instrumentation (WMI) to configure and manage antivirus](windows-defender-antivirus/use-wmi-windows-defender-antivirus.md) +##### [Use the mpcmdrun.exe commandline tool to configure and manage antivirus](windows-defender-antivirus/command-line-arguments-windows-defender-antivirus.md) + +#### [Manage scans and remediation]() +##### [Management overview](windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) + +##### [Configure and validate exclusions in antivirus scans]() +###### [Exclusions overview](windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) +###### [Configure and validate exclusions based on file name, extension, and folder location](windows-defender-antivirus/configure-extension-file-exclusions-windows-defender-antivirus.md) +###### [Configure and validate exclusions for files opened by processes](windows-defender-antivirus/configure-process-opened-file-exclusions-windows-defender-antivirus.md) +###### [Configure antivirus exclusions on Windows Server 2016](windows-defender-antivirus/configure-server-exclusions-windows-defender-antivirus.md) + +##### [Configure scanning options](windows-defender-antivirus/configure-advanced-scan-types-windows-defender-antivirus.md) + +#### [Configure remediation for scans](windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) +##### [Configure remediation for scans](windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) +##### [Configure scheduled scans](windows-defender-antivirus/scheduled-catch-up-scans-windows-defender-antivirus.md) +##### [Configure and run scans](windows-defender-antivirus/run-scan-windows-defender-antivirus.md) +##### [Review scan results](windows-defender-antivirus/review-scan-results-windows-defender-antivirus.md) +##### [Run and review the results of an offline scan](windows-defender-antivirus/windows-defender-offline.md) ##### [Restore quarantined files](windows-defender-antivirus/restore-quarantined-files-windows-defender-antivirus.md) -##### [Manage antivirus in your business](windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) -###### [Use Group Policy settings to configure and manage antivirus](windows-defender-antivirus/use-group-policy-windows-defender-antivirus.md) -###### [Use System Center Configuration Manager and Microsoft Intune to configure and manage antivirus](windows-defender-antivirus/use-intune-config-manager-windows-defender-antivirus.md) -###### [Use PowerShell cmdlets to configure and manage antivirus](windows-defender-antivirus/use-powershell-cmdlets-windows-defender-antivirus.md) -###### [Use Windows Management Instrumentation (WMI) to configure and manage antivirus](windows-defender-antivirus/use-wmi-windows-defender-antivirus.md) -###### [Use the mpcmdrun.exe commandline tool to configure and manage antivirus](windows-defender-antivirus/command-line-arguments-windows-defender-antivirus.md) -##### [Manage scans and remediation](windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) -###### [Configure and validate exclusions in antivirus scans](windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) -####### [Configure and validate exclusions based on file name, extension, and folder location](windows-defender-antivirus/configure-extension-file-exclusions-windows-defender-antivirus.md) -####### [Configure and validate exclusions for files opened by processes](windows-defender-antivirus/configure-process-opened-file-exclusions-windows-defender-antivirus.md) -####### [Configure antivirus exclusions on Windows Server 2016](windows-defender-antivirus/configure-server-exclusions-windows-defender-antivirus.md) -###### [Configure scanning options](windows-defender-antivirus/configure-advanced-scan-types-windows-defender-antivirus.md) -###### [Configure remediation for scans](windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) -###### [Configure scheduled scans](windows-defender-antivirus/scheduled-catch-up-scans-windows-defender-antivirus.md) -###### [Configure and run scans](windows-defender-antivirus/run-scan-windows-defender-antivirus.md) -###### [Review scan results](windows-defender-antivirus/review-scan-results-windows-defender-antivirus.md) -###### [Run and review the results of an offline scan](windows-defender-antivirus/windows-defender-offline.md) -###### [Restore quarantined files](windows-defender-antivirus/restore-quarantined-files-windows-defender-antivirus.md) -##### [Manage next generation protection in your business](windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) -###### [Use Microsoft Intune and System Center Configuration Manager to manage next generation protection](windows-defender-antivirus/use-intune-config-manager-windows-defender-antivirus.md) -###### [Use Group Policy settings to manage next generation protection](windows-defender-antivirus/use-group-policy-windows-defender-antivirus.md) -###### [Use PowerShell cmdlets to manage next generation protection](windows-defender-antivirus/use-powershell-cmdlets-windows-defender-antivirus.md) -###### [Use Windows Management Instrumentation (WMI) to manage next generation protection](windows-defender-antivirus/use-wmi-windows-defender-antivirus.md) -###### [Use the mpcmdrun.exe command line tool to manage next generation protection](windows-defender-antivirus/command-line-arguments-windows-defender-antivirus.md) +#### [Manage next generation protection in your business]() +##### [Management overview](windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) +##### [Management overview](windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) +##### [Use Microsoft Intune and System Center Configuration Manager to manage next generation protection](windows-defender-antivirus/use-intune-config-manager-windows-defender-antivirus.md) +##### [Use Group Policy settings to manage next generation protection](windows-defender-antivirus/use-group-policy-windows-defender-antivirus.md) +##### [Use PowerShell cmdlets to manage next generation protection](windows-defender-antivirus/use-powershell-cmdlets-windows-defender-antivirus.md) +##### [Use Windows Management Instrumentation (WMI) to manage next generation protection](windows-defender-antivirus/use-wmi-windows-defender-antivirus.md) +##### [Use the mpcmdrun.exe command line tool to manage next generation protection](windows-defender-antivirus/command-line-arguments-windows-defender-antivirus.md) + +### [Configure Secure score dashboard security controls](microsoft-defender-atp/secure-score-dashboard.md) + +### [Configure and manage Microsoft Threat Experts capabilities](microsoft-defender-atp/configure-microsoft-threat-experts.md) + +### [Management and API support]() +#### [Onboard devices to the service]() +##### [Onboard machines to Microsoft Defender ATP](microsoft-defender-atp/onboard-configure.md) +##### [Onboard previous versions of Windows](microsoft-defender-atp/onboard-downlevel.md) +##### [Onboard Windows 10 machines]() +###### [Onboarding tools and methods](microsoft-defender-atp/configure-endpoints.md) +###### [Onboard machines using Group Policy](microsoft-defender-atp/configure-endpoints-gp.md) +###### [Onboard machines using System Center Configuration Manager](microsoft-defender-atp/configure-endpoints-sccm.md) +###### [Onboard machines using Mobile Device Management tools](microsoft-defender-atp/configure-endpoints-mdm.md) +###### [Onboard machines using a local script](microsoft-defender-atp/configure-endpoints-script.md) +###### [Onboard non-persistent virtual desktop infrastructure (VDI) machines](microsoft-defender-atp/configure-endpoints-vdi.md) + +##### [Onboard servers](microsoft-defender-atp/configure-server-endpoints.md) +##### [Onboard non-Windows machines](microsoft-defender-atp/configure-endpoints-non-windows.md) +##### [Onboard machines without Internet access](microsoft-defender-atp/onboard-offline-machines.md) +##### [Run a detection test on a newly onboarded machine](microsoft-defender-atp/run-detection-test.md) +##### [Run simulated attacks on machines](microsoft-defender-atp/attack-simulations.md) +##### [Configure proxy and Internet connectivity settings](microsoft-defender-atp/configure-proxy-internet.md) + +##### [Troubleshoot onboarding issues]() +###### [Troubleshoot issues during onboarding](microsoft-defender-atp/troubleshoot-onboarding.md) +###### [Troubleshoot subscription and portal access issues](microsoft-defender-atp/troubleshoot-onboarding-error-messages.md) + +#### [Microsoft Defender ATP API]() +##### [Microsoft Defender ATP API license and terms](microsoft-defender-atp/api-terms-of-use.md) +##### [Get started with Microsoft Defender ATP APIs]() +###### [Introduction](microsoft-defender-atp/apis-intro.md) +###### [Hello World](microsoft-defender-atp/api-hello-world.md) +###### [Get access with application context](microsoft-defender-atp/exposed-apis-create-app-webapp.md) +###### [Get access with user context](microsoft-defender-atp/exposed-apis-create-app-nativeapp.md) + +##### [APIs]() +###### [Supported Microsoft Defender ATP query APIs](microsoft-defender-atp/exposed-apis-list.md) +###### [Advanced Hunting](microsoft-defender-atp/run-advanced-query-api.md) + +###### [Alert]() +####### [Alert methods and properties](microsoft-defender-atp/alerts.md) +####### [List alerts](microsoft-defender-atp/get-alerts.md) +####### [Create alert](microsoft-defender-atp/create-alert-by-reference.md) +####### [Update Alert](microsoft-defender-atp/update-alert.md) +####### [Get alert information by ID](microsoft-defender-atp/get-alert-info-by-id.md) +####### [Get alert related domains information](microsoft-defender-atp/get-alert-related-domain-info.md) +####### [Get alert related file information](microsoft-defender-atp/get-alert-related-files-info.md) +####### [Get alert related IPs information](microsoft-defender-atp/get-alert-related-ip-info.md) +####### [Get alert related machine information](microsoft-defender-atp/get-alert-related-machine-info.md) +####### [Get alert related user information](microsoft-defender-atp/get-alert-related-user-info.md) + +###### [Machine]() +####### [Machine methods and properties](microsoft-defender-atp/machine.md) +####### [List machines](microsoft-defender-atp/get-machines.md) +####### [Get machine by ID](microsoft-defender-atp/get-machine-by-id.md) +####### [Get machine log on users](microsoft-defender-atp/get-machine-log-on-users.md) +####### [Get machine related alerts](microsoft-defender-atp/get-machine-related-alerts.md) +####### [Add or Remove machine tags](microsoft-defender-atp/add-or-remove-machine-tags.md) +####### [Find machines by IP](microsoft-defender-atp/find-machines-by-ip.md) + +###### [Machine Action]() +####### [Machine Action methods and properties](microsoft-defender-atp/machineaction.md) +####### [List Machine Actions](microsoft-defender-atp/get-machineactions-collection.md) +####### [Get Machine Action](microsoft-defender-atp/get-machineaction-object.md) +####### [Collect investigation package](microsoft-defender-atp/collect-investigation-package.md) +####### [Get investigation package SAS URI](microsoft-defender-atp/get-package-sas-uri.md) +####### [Isolate machine](microsoft-defender-atp/isolate-machine.md) +####### [Release machine from isolation](microsoft-defender-atp/unisolate-machine.md) +####### [Restrict app execution](microsoft-defender-atp/restrict-code-execution.md) +####### [Remove app restriction](microsoft-defender-atp/unrestrict-code-execution.md) +####### [Run antivirus scan](microsoft-defender-atp/run-av-scan.md) +####### [Offboard machine](microsoft-defender-atp/offboard-machine-api.md) +####### [Stop and quarantine file](microsoft-defender-atp/stop-and-quarantine-file.md) +####### [Initiate investigation (preview)](microsoft-defender-atp/initiate-autoir-investigation.md) + +###### [Indicators]() +####### [Indicators methods and properties](microsoft-defender-atp/ti-indicator.md) +####### [Submit Indicator](microsoft-defender-atp/post-ti-indicator.md) +####### [List Indicators](microsoft-defender-atp/get-ti-indicators-collection.md) +####### [Delete Indicator](microsoft-defender-atp/delete-ti-indicator-by-id.md) + +###### [Domain]() +####### [Get domain related alerts](microsoft-defender-atp/get-domain-related-alerts.md) +####### [Get domain related machines](microsoft-defender-atp/get-domain-related-machines.md) +####### [Get domain statistics](microsoft-defender-atp/get-domain-statistics.md) +####### [Is domain seen in organization](microsoft-defender-atp/is-domain-seen-in-org.md) + +###### [File]() +####### [File methods and properties](microsoft-defender-atp/files.md) +####### [Get file information](microsoft-defender-atp/get-file-information.md) +####### [Get file related alerts](microsoft-defender-atp/get-file-related-alerts.md) +####### [Get file related machines](microsoft-defender-atp/get-file-related-machines.md) +####### [Get file statistics](microsoft-defender-atp/get-file-statistics.md) + +###### [IP]() +####### [Get IP related alerts](microsoft-defender-atp/get-ip-related-alerts.md) +####### [Get IP related machines](microsoft-defender-atp/get-ip-related-machines.md) +####### [Get IP statistics](microsoft-defender-atp/get-ip-statistics.md) +####### [Is IP seen in organization](microsoft-defender-atp/is-ip-seen-org.md) + +###### [User]() +####### [User methods](microsoft-defender-atp/user.md) +####### [Get user related alerts](microsoft-defender-atp/get-user-related-alerts.md) +####### [Get user related machines](microsoft-defender-atp/get-user-related-machines.md) + +##### [How to use APIs - Samples]() +###### [Advanced Hunting API]() +####### [Schedule advanced Hunting using Microsoft Flow](microsoft-defender-atp/run-advanced-query-sample-ms-flow.md) +####### [Advanced Hunting using PowerShell](microsoft-defender-atp/run-advanced-query-sample-powershell.md) +####### [Advanced Hunting using Python](microsoft-defender-atp/run-advanced-query-sample-python.md) +####### [Create custom Power BI reports](microsoft-defender-atp/run-advanced-query-sample-power-bi-app-token.md) + +###### [Multiple APIs]() +####### [PowerShell](microsoft-defender-atp/exposed-apis-full-sample-powershell.md) + +###### [Using OData Queries](microsoft-defender-atp/exposed-apis-odata-samples.md) + +#### [Windows updates (KB) info]() +##### [Get KbInfo collection](microsoft-defender-atp/get-kbinfo-collection.md) + +#### [Common Vulnerabilities and Exposures (CVE) to KB map]() +##### [Get CVE-KB map](microsoft-defender-atp/get-cvekbmap-collection.md) + +#### [API for custom alerts (Deprecated)]() +##### [Enable the custom threat intelligence application (Deprecated)](microsoft-defender-atp/enable-custom-ti.md) +##### [Use the threat intelligence API to create custom alerts (Deprecated)](microsoft-defender-atp/use-custom-ti.md) +##### [Create custom threat intelligence alerts (Deprecated)](microsoft-defender-atp/custom-ti-api.md) +##### [PowerShell code examples (Deprecated)](microsoft-defender-atp/powershell-example-code.md) +##### [Python code examples (Deprecated)](microsoft-defender-atp/python-example-code.md) +##### [Experiment with custom threat intelligence alerts (Deprecated)](microsoft-defender-atp/experiment-custom-ti.md) +##### [Troubleshoot custom threat intelligence issues (Deprecated)](microsoft-defender-atp/troubleshoot-custom-ti.md) + +#### [Pull alerts to your SIEM tools]() +##### [Learn about different ways to pull alerts](microsoft-defender-atp/configure-siem.md) +##### [Enable SIEM integration](microsoft-defender-atp/enable-siem-integration.md) +##### [Configure Splunk to pull alerts](microsoft-defender-atp/configure-splunk.md) +##### [Configure HP ArcSight to pull alerts](microsoft-defender-atp/configure-arcsight.md) +##### [Microsoft Defender ATP SIEM alert API fields](microsoft-defender-atp/api-portal-mapping.md) +##### [Pull alerts using SIEM REST API](microsoft-defender-atp/pull-alerts-using-rest-api.md) +##### [Troubleshoot SIEM tool integration issues](microsoft-defender-atp/troubleshoot-siem.md) + +#### [Reporting]() +##### [Create and build Power BI reports using Microsoft Defender ATP data](microsoft-defender-atp/powerbi-reports.md) +##### [Threat protection reports](microsoft-defender-atp/threat-protection-reports.md) +##### [Machine health and compliance reports](microsoft-defender-atp/machine-reports.md) + +#### [Interoperability]() +##### [Partner applications](microsoft-defender-atp/partner-applications.md) + +#### [Role-based access control]() +##### [Manage portal access using RBAC](microsoft-defender-atp/rbac.md) +##### [Create and manage roles](microsoft-defender-atp/user-roles.md) +##### [Create and manage machine groups]() +###### [Using machine groups](microsoft-defender-atp/machine-groups.md) +###### [Create and manage machine tags](microsoft-defender-atp/machine-tags.md) + +#### [Configure managed security service provider (MSSP) support](microsoft-defender-atp/configure-mssp-support.md) + +### [Configure and manage Microsoft Threat Experts capabilities](microsoft-defender-atp/configure-microsoft-threat-experts.md) + +### [Configure Microsoft threat protection integration]() +#### [Configure conditional access](microsoft-defender-atp/configure-conditional-access.md) +#### [Configure Microsoft Cloud App Security integration](microsoft-defender-atp/microsoft-cloud-app-security-config.md) +#### [Configure information protection in Windows](microsoft-defender-atp/information-protection-in-windows-config.md) + +### [Configure portal settings]() +#### [General]() +##### [Update data retention settings](microsoft-defender-atp/data-retention-settings.md) +##### [Configure alert notifications](microsoft-defender-atp/configure-email-notifications.md) +##### [Enable and create Power BI reports using Windows Defender Security center data](microsoft-defender-atp/powerbi-reports.md) +##### [Enable Secure score security controls](microsoft-defender-atp/enable-secure-score.md) +##### [Configure advanced features](microsoft-defender-atp/advanced-features.md) + +#### [Permissions]() +##### [Use basic permissions to access the portal](microsoft-defender-atp/basic-permissions.md) +##### [Manage portal access using RBAC](microsoft-defender-atp/rbac.md) +###### [Create and manage roles](microsoft-defender-atp/user-roles.md) +###### [Create and manage machine groups](microsoft-defender-atp/machine-groups.md) +####### [Create and manage machine tags](microsoft-defender-atp/machine-tags.md) + +#### [APIs]() +##### [Enable Threat intel (Deprecated)](microsoft-defender-atp/enable-custom-ti.md) +##### [Enable SIEM integration](microsoft-defender-atp/enable-siem-integration.md) + +#### [Rules]() +##### [Manage suppression rules](microsoft-defender-atp/manage-suppression-rules.md) +##### [Manage automation allowed/blocked lists](microsoft-defender-atp/manage-automation-allowed-blocked-list.md) +##### [Manage indicators](microsoft-defender-atp/manage-indicators.md) +##### [Manage automation file uploads](microsoft-defender-atp/manage-automation-file-uploads.md) +##### [Manage automation folder exclusions](microsoft-defender-atp/manage-automation-folder-exclusions.md) + +#### [Machine management]() +##### [Onboarding machines](microsoft-defender-atp/onboard-configure.md) +##### [Offboarding machines](microsoft-defender-atp/offboard-machines.md) + +#### [Configure Windows Defender Security Center time zone settings](microsoft-defender-atp/time-settings.md) -#### [Configure Secure score dashboard security controls](microsoft-defender-atp/secure-score-dashboard.md) +## [Troubleshoot Microsoft Defender ATP]() +### [Troubleshoot sensor state]() +#### [Check sensor state](microsoft-defender-atp/check-sensor-status.md) +#### [Fix unhealthy sensors](microsoft-defender-atp/fix-unhealthy-sensors.md) +#### [Inactive machines](microsoft-defender-atp/fix-unhealthy-sensors.md#inactive-machines) +#### [Misconfigured machines](microsoft-defender-atp/fix-unhealthy-sensors.md#misconfigured-machines) +#### [Review sensor events and errors on machines with Event Viewer](microsoft-defender-atp/event-error-codes.md) +### [Troubleshoot Microsoft Defender ATP service issues]() +#### [Troubleshoot service issues](microsoft-defender-atp/troubleshoot-mdatp.md) +#### [Check service health](microsoft-defender-atp/service-status.md) -#### Management and API support -##### [Onboard machines](microsoft-defender-atp/onboard-configure.md) -###### [Onboard previous versions of Windows](microsoft-defender-atp/onboard-downlevel.md) -###### [Onboard Windows 10 machines](microsoft-defender-atp/configure-endpoints.md) -####### [Onboard machines using Group Policy](microsoft-defender-atp/configure-endpoints-gp.md) -####### [Onboard machines using System Center Configuration Manager](microsoft-defender-atp/configure-endpoints-sccm.md) -####### [Onboard machines using Mobile Device Management tools](microsoft-defender-atp/configure-endpoints-mdm.md) -######## [Onboard machines using Microsoft Intune](microsoft-defender-atp/configure-endpoints-mdm.md#onboard-machines-using-microsoft-intune) -####### [Onboard machines using a local script](microsoft-defender-atp/configure-endpoints-script.md) -####### [Onboard non-persistent virtual desktop infrastructure (VDI) machines](microsoft-defender-atp/configure-endpoints-vdi.md) -###### [Onboard servers](microsoft-defender-atp/configure-server-endpoints.md) -###### [Onboard non-Windows machines](microsoft-defender-atp/configure-endpoints-non-windows.md) -###### [Onboard machines without Internet access](microsoft-defender-atp/onboard-offline-machines.md) -###### [Run a detection test on a newly onboarded machine](microsoft-defender-atp/run-detection-test.md) -###### [Run simulated attacks on machines](microsoft-defender-atp/attack-simulations.md) -###### [Configure proxy and Internet connectivity settings](microsoft-defender-atp/configure-proxy-internet.md) -###### [Troubleshoot onboarding issues](microsoft-defender-atp/troubleshoot-onboarding.md) -####### [Troubleshoot subscription and portal access issues](microsoft-defender-atp/troubleshoot-onboarding-error-messages.md) - -##### [Microsoft Defender ATP API](microsoft-defender-atp/use-apis.md) -###### [Microsoft Defender ATP API license and terms](microsoft-defender-atp/api-terms-of-use.md) -###### [Get started with Microsoft Defender ATP APIs](microsoft-defender-atp/apis-intro.md) -####### [Hello World](microsoft-defender-atp/api-hello-world.md) -####### [Get access with application context](microsoft-defender-atp/exposed-apis-create-app-webapp.md) -####### [Get access with user context](microsoft-defender-atp/exposed-apis-create-app-nativeapp.md) -###### [APIs](microsoft-defender-atp/exposed-apis-list.md) +### [Troubleshoot live response issues]() +#### [Troubleshoot issues related to live response](microsoft-defender-atp/troubleshoot-live-response.md) -####### [Advanced Hunting](microsoft-defender-atp/run-advanced-query-api.md) - -####### [Alert](microsoft-defender-atp/alerts.md) -######## [List alerts](microsoft-defender-atp/get-alerts.md) -######## [Create alert](microsoft-defender-atp/create-alert-by-reference.md) -######## [Update Alert](microsoft-defender-atp/update-alert.md) -######## [Get alert information by ID](microsoft-defender-atp/get-alert-info-by-id.md) -######## [Get alert related domains information](microsoft-defender-atp/get-alert-related-domain-info.md) -######## [Get alert related file information](microsoft-defender-atp/get-alert-related-files-info.md) -######## [Get alert related IPs information](microsoft-defender-atp/get-alert-related-ip-info.md) -######## [Get alert related machine information](microsoft-defender-atp/get-alert-related-machine-info.md) -######## [Get alert related user information](microsoft-defender-atp/get-alert-related-user-info.md) - -####### [Machine](microsoft-defender-atp/machine.md) -######## [List machines](microsoft-defender-atp/get-machines.md) -######## [Get machine by ID](microsoft-defender-atp/get-machine-by-id.md) -######## [Get machine log on users](microsoft-defender-atp/get-machine-log-on-users.md) -######## [Get machine related alerts](microsoft-defender-atp/get-machine-related-alerts.md) -######## [Add or Remove machine tags](microsoft-defender-atp/add-or-remove-machine-tags.md) -######## [Find machines by IP](microsoft-defender-atp/find-machines-by-ip.md) - -####### [Machine Action](microsoft-defender-atp/machineaction.md) -######## [List Machine Actions](microsoft-defender-atp/get-machineactions-collection.md) -######## [Get Machine Action](microsoft-defender-atp/get-machineaction-object.md) -######## [Collect investigation package](microsoft-defender-atp/collect-investigation-package.md) -######## [Get investigation package SAS URI](microsoft-defender-atp/get-package-sas-uri.md) -######## [Isolate machine](microsoft-defender-atp/isolate-machine.md) -######## [Release machine from isolation](microsoft-defender-atp/unisolate-machine.md) -######## [Restrict app execution](microsoft-defender-atp/restrict-code-execution.md) -######## [Remove app restriction](microsoft-defender-atp/unrestrict-code-execution.md) -######## [Run antivirus scan](microsoft-defender-atp/run-av-scan.md) -######## [Offboard machine](microsoft-defender-atp/offboard-machine-api.md) -######## [Stop and quarantine file](microsoft-defender-atp/stop-and-quarantine-file.md) -######## [Initiate investigation (preview)](microsoft-defender-atp/initiate-autoir-investigation.md) - -####### [Indicators](microsoft-defender-atp/ti-indicator.md) -######## [Submit Indicator](microsoft-defender-atp/post-ti-indicator.md) -######## [List Indicators](microsoft-defender-atp/get-ti-indicators-collection.md) -######## [Delete Indicator](microsoft-defender-atp/delete-ti-indicator-by-id.md) - -####### Domain -######## [Get domain related alerts](microsoft-defender-atp/get-domain-related-alerts.md) -######## [Get domain related machines](microsoft-defender-atp/get-domain-related-machines.md) -######## [Get domain statistics](microsoft-defender-atp/get-domain-statistics.md) -######## [Is domain seen in organization](microsoft-defender-atp/is-domain-seen-in-org.md) - -####### [File](microsoft-defender-atp/files.md) -######## [Get file information](microsoft-defender-atp/get-file-information.md) -######## [Get file related alerts](microsoft-defender-atp/get-file-related-alerts.md) -######## [Get file related machines](microsoft-defender-atp/get-file-related-machines.md) -######## [Get file statistics](microsoft-defender-atp/get-file-statistics.md) - -####### IP -######## [Get IP related alerts](microsoft-defender-atp/get-ip-related-alerts.md) -######## [Get IP related machines](microsoft-defender-atp/get-ip-related-machines.md) -######## [Get IP statistics](microsoft-defender-atp/get-ip-statistics.md) -######## [Is IP seen in organization](microsoft-defender-atp/is-ip-seen-org.md) - -####### [User](microsoft-defender-atp/user.md) -######## [Get user related alerts](microsoft-defender-atp/get-user-related-alerts.md) -######## [Get user related machines](microsoft-defender-atp/get-user-related-machines.md) - - -###### How to use APIs - Samples -####### Advanced Hunting API -######## [Schedule advanced Hunting using Microsoft Flow](microsoft-defender-atp/run-advanced-query-sample-ms-flow.md) -######## [Advanced Hunting using PowerShell](microsoft-defender-atp/run-advanced-query-sample-powershell.md) -######## [Advanced Hunting using Python](microsoft-defender-atp/run-advanced-query-sample-python.md) -######## [Create custom Power BI reports](microsoft-defender-atp/run-advanced-query-sample-power-bi-app-token.md) -####### Multiple APIs -######## [PowerShell](microsoft-defender-atp/exposed-apis-full-sample-powershell.md) -####### [Using OData Queries](microsoft-defender-atp/exposed-apis-odata-samples.md) - - -#####Windows updates (KB) info -###### [Get KbInfo collection](microsoft-defender-atp/get-kbinfo-collection.md) -#####Common Vulnerabilities and Exposures (CVE) to KB map -###### [Get CVE-KB map](microsoft-defender-atp/get-cvekbmap-collection.md) +### [Troubleshoot attack surface reduction]() +#### [Network protection](windows-defender-exploit-guard/troubleshoot-np.md) +#### [Attack surface reduction rules](windows-defender-exploit-guard/troubleshoot-asr.md) - -##### API for custom alerts (Deprecated) -###### [Enable the custom threat intelligence application (Deprecated)](microsoft-defender-atp/enable-custom-ti.md) -###### [Use the threat intelligence API to create custom alerts (Deprecated)](microsoft-defender-atp/use-custom-ti.md) -###### [Create custom threat intelligence alerts (Deprecated)](microsoft-defender-atp/custom-ti-api.md) -###### [PowerShell code examples (Deprecated)](microsoft-defender-atp/powershell-example-code.md) -###### [Python code examples (Deprecated)](microsoft-defender-atp/python-example-code.md) -###### [Experiment with custom threat intelligence alerts (Deprecated)](microsoft-defender-atp/experiment-custom-ti.md) -###### [Troubleshoot custom threat intelligence issues (Deprecated)](microsoft-defender-atp/troubleshoot-custom-ti.md) - - -##### [Pull alerts to your SIEM tools](microsoft-defender-atp/configure-siem.md) -###### [Enable SIEM integration](microsoft-defender-atp/enable-siem-integration.md) -###### [Configure Splunk to pull alerts](microsoft-defender-atp/configure-splunk.md) -###### [Configure HP ArcSight to pull alerts](microsoft-defender-atp/configure-arcsight.md) -###### [Microsoft Defender ATP SIEM alert API fields](microsoft-defender-atp/api-portal-mapping.md) -###### [Pull alerts using SIEM REST API](microsoft-defender-atp/pull-alerts-using-rest-api.md) -###### [Troubleshoot SIEM tool integration issues](microsoft-defender-atp/troubleshoot-siem.md) +### [Troubleshoot next generation protection](windows-defender-antivirus/troubleshoot-windows-defender-antivirus.md) -##### Reporting -###### [Create and build Power BI reports using Microsoft Defender ATP data](microsoft-defender-atp/powerbi-reports.md) -###### [Threat protection reports](microsoft-defender-atp/threat-protection-reports.md) -###### [Machine health and compliance reports](microsoft-defender-atp/machine-reports.md) - -##### Interoperability -###### [Partner applications](microsoft-defender-atp/partner-applications.md) - - -##### Role-based access control -###### [Manage portal access using RBAC](microsoft-defender-atp/rbac.md) -####### [Create and manage roles](microsoft-defender-atp/user-roles.md) -####### [Create and manage machine groups](microsoft-defender-atp/machine-groups.md) -######## [Create and manage machine tags](microsoft-defender-atp/machine-tags.md) - - -##### [Configure managed security service provider (MSSP) support](microsoft-defender-atp/configure-mssp-support.md) - - -#### [Configure and manage Microsoft Threat Experts capabilities](microsoft-defender-atp/configure-microsoft-threat-experts.md) - - - -#### Configure Microsoft threat protection integration -##### [Configure conditional access](microsoft-defender-atp/configure-conditional-access.md) -##### [Configure Microsoft Cloud App Security integration](microsoft-defender-atp/microsoft-cloud-app-security-config.md) -##### [Configure information protection in Windows](microsoft-defender-atp/information-protection-in-windows-config.md) - - - - -#### [Configure Windows Defender Security Center settings](microsoft-defender-atp/preferences-setup.md) -##### General -###### [Update data retention settings](microsoft-defender-atp/data-retention-settings.md) -###### [Configure alert notifications](microsoft-defender-atp/configure-email-notifications.md) -###### [Enable and create Power BI reports using Windows Defender Security center data](microsoft-defender-atp/powerbi-reports.md) -###### [Enable Secure score security controls](microsoft-defender-atp/enable-secure-score.md) -###### [Configure advanced features](microsoft-defender-atp/advanced-features.md) - -##### Permissions -###### [Use basic permissions to access the portal](microsoft-defender-atp/basic-permissions.md) -###### [Manage portal access using RBAC](microsoft-defender-atp/rbac.md) -####### [Create and manage roles](microsoft-defender-atp/user-roles.md) -####### [Create and manage machine groups](microsoft-defender-atp/machine-groups.md) -######## [Create and manage machine tags](microsoft-defender-atp/machine-tags.md) - -##### APIs -###### [Enable Threat intel (Deprecated)](microsoft-defender-atp/enable-custom-ti.md) -###### [Enable SIEM integration](microsoft-defender-atp/enable-siem-integration.md) - -#####Rules -###### [Manage suppression rules](microsoft-defender-atp/manage-suppression-rules.md) -###### [Manage automation allowed/blocked lists](microsoft-defender-atp/manage-automation-allowed-blocked-list.md) -###### [Manage indicators](microsoft-defender-atp/manage-indicators.md) -###### [Manage automation file uploads](microsoft-defender-atp/manage-automation-file-uploads.md) -###### [Manage automation folder exclusions](microsoft-defender-atp/manage-automation-folder-exclusions.md) - -#####Machine management -###### [Onboarding machines](microsoft-defender-atp/onboard-configure.md) -###### [Offboarding machines](microsoft-defender-atp/offboard-machines.md) - -##### [Configure Windows Defender Security Center time zone settings](microsoft-defender-atp/time-settings.md) - - -### [Troubleshoot Microsoft Defender ATP](microsoft-defender-atp/troubleshoot-overview.md) -####Troubleshoot sensor state -##### [Check sensor state](microsoft-defender-atp/check-sensor-status.md) -##### [Fix unhealthy sensors](microsoft-defender-atp/fix-unhealthy-sensors.md) -##### [Inactive machines](microsoft-defender-atp/fix-unhealthy-sensors.md#inactive-machines) -##### [Misconfigured machines](microsoft-defender-atp/fix-unhealthy-sensors.md#misconfigured-machines) -##### [Review sensor events and errors on machines with Event Viewer](microsoft-defender-atp/event-error-codes.md) - -#### [Troubleshoot Microsoft Defender ATP service issues](microsoft-defender-atp/troubleshoot-mdatp.md) -##### [Check service health](microsoft-defender-atp/service-status.md) - - -#### [Troubleshoot live response issues]() -##### [Troubleshoot issues related to live response](microsoft-defender-atp/troubleshoot-live-response.md) - - -####Troubleshoot attack surface reduction -##### [Network protection](windows-defender-exploit-guard/troubleshoot-np.md) -##### [Attack surface reduction rules](windows-defender-exploit-guard/troubleshoot-asr.md) - -#### [Troubleshoot next generation protection](windows-defender-antivirus/troubleshoot-windows-defender-antivirus.md) ## [Security intelligence](intelligence/index.md) ### [Understand malware & other threats](intelligence/understanding-malware.md) diff --git a/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints.md b/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints.md index 3507beb090..3387e07476 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints.md +++ b/windows/security/threat-protection/microsoft-defender-atp/configure-endpoints.md @@ -1,5 +1,5 @@ --- -title: Onboard Windows 10 machines on Microsoft Defender ATP +title: Onboarding tools and methods for Windows 10 machines description: Onboard Windows 10 machines so that they can send sensor data to the Microsoft Defender ATP sensor keywords: Onboard Windows 10 machines, group policy, system center configuration manager, mobile device management, local script, gp, sccm, mdm, intune search.product: eADQiWindows 10XVcnh @@ -15,10 +15,9 @@ manager: dansimp audience: ITPro ms.collection: M365-security-compliance ms.topic: conceptual -ms.date: 07/12/2018 --- -# Onboard Windows 10 machines +# Onboarding tools and methods for Windows 10 machines **Applies to:** diff --git a/windows/security/threat-protection/microsoft-defender-atp/TOC.md b/windows/security/threat-protection/microsoft-defender-atp/oldTOC.md similarity index 70% rename from windows/security/threat-protection/microsoft-defender-atp/TOC.md rename to windows/security/threat-protection/microsoft-defender-atp/oldTOC.md index 44f14073d3..e716d3a9e1 100644 --- a/windows/security/threat-protection/microsoft-defender-atp/TOC.md +++ b/windows/security/threat-protection/microsoft-defender-atp/oldTOC.md @@ -1,7 +1,9 @@ # [Microsoft Defender Advanced Threat Protection](microsoft-defender-advanced-threat-protection.md) -## [Overview](overview.md) -### [Threat & Vulnerability Management](next-gen-threat-and-vuln-mgt.md) +## [Overview]() +### [Overview of Microsoft Defender ATP capabilities](overview.md) +### [Threat & Vulnerability Management]() +#### [Next-generation capabilities](next-gen-threat-and-vuln-mgt.md) #### [What's in the dashboard and what it means for my organization](tvm-dashboard-insights.md) #### [Exposure score](tvm-exposure-score.md) #### [Configuration score](configuration-score.md) @@ -12,29 +14,39 @@ #### [Scenarios](threat-and-vuln-mgt-scenarios.md) -### [Attack surface reduction](overview-attack-surface-reduction.md) -#### [Hardware-based isolation](overview-hardware-based-isolation.md) -##### [Application isolation](../windows-defender-application-guard/wd-app-guard-overview.md) +### [Attack surface reduction]() +#### [Hardware-based isolation]() +##### [Hardware-based isolation in Windows 10](overview-hardware-based-isolation.md) + +##### [Application isolation]() +###### [Application guard overview](../windows-defender-application-guard/wd-app-guard-overview.md) ###### [System requirements](../windows-defender-application-guard/reqs-wd-app-guard.md) + ##### [System integrity](../windows-defender-system-guard/system-guard-how-hardware-based-root-of-trust-helps-protect-windows.md) -#### [Application control](../windows-defender-application-control/windows-defender-application-control.md) + +#### [Application control]() +##### [Windows Defender Application Guard](../windows-defender-application-control/windows-defender-application-control.md) + #### [Exploit protection](../windows-defender-exploit-guard/exploit-protection-exploit-guard.md) #### [Network protection](../windows-defender-exploit-guard/network-protection-exploit-guard.md) #### [Controlled folder access](../windows-defender-exploit-guard/controlled-folders-exploit-guard.md) #### [Attack surface reduction](../windows-defender-exploit-guard/attack-surface-reduction-exploit-guard.md) #### [Network firewall](../windows-firewall/windows-firewall-with-advanced-security.md) + + ### [Next generation protection](../windows-defender-antivirus/windows-defender-antivirus-in-windows-10.md) -### [Endpoint detection and response](overview-endpoint-detection-response.md) + + +### [Endpoint detection and response]() +#### [Endpoint detection and response overview](overview-endpoint-detection-response.md) #### [Security operations dashboard](security-operations-dashboard.md) - -#### [Incidents queue](incidents-queue.md) +#### [Incidents queue]() ##### [View and organize the Incidents queue](view-incidents-queue.md) ##### [Manage incidents](manage-incidents.md) ##### [Investigate incidents](investigate-incidents.md) - -#### Alerts queue +#### [Alerts queue]() ##### [View and organize the Alerts queue](alerts-queue.md) ##### [Manage alerts](manage-alerts.md) ##### [Investigate alerts](investigate-alerts.md) @@ -44,16 +56,18 @@ ##### [Investigate a domain](investigate-domain.md) ##### [Investigate a user account](investigate-user.md) -#### [Machines list](machines-view-overview.md) -##### [Investigate machines](investigate-machines.md#machine-timeline) +#### [Machines list]() +##### [View and organize the Machines list](machines-view-overview.md) + +##### [Investigate machines]() ###### [Machine details](investigate-machines.md#machine-details) ###### [Response actions](investigate-machines.md#response-actions) ###### [Cards](investigate-machines.md#cards) ###### [Tabs](investigate-machines.md#tabs) - -#### [Take response actions](response-actions.md) -##### [Take response actions on a machine](respond-machine-alerts.md) +#### [Take response actions]() +##### [Take response actions on a machine]() +###### [Understand response actions](respond-machine-alerts.md) ###### [Manage tags](respond-machine-alerts.md#manage-tags) ###### [Initiate Automated Investigation](respond-machine-alerts.md#initiate-automated-investigation) ###### [Initiate Live Response Session](respond-machine-alerts.md#initiate-live-response-session) @@ -63,46 +77,60 @@ ###### [Isolate machines from the network](respond-machine-alerts.md#isolate-machines-from-the-network) ###### [Check activity details in Action center](respond-machine-alerts.md#check-activity-details-in-action-center) -##### [Take response actions on a file](respond-file-alerts.md) +##### [Take response actions on a file]() +###### [Understand response actions](respond-file-alerts.md) ###### [Stop and quarantine files in your network](respond-file-alerts.md#stop-and-quarantine-files-in-your-network) -###### [Remove file from quarantine](respond-file-alerts.md#remove-file-from-quarantine) -###### [Block files in your network](respond-file-alerts.md#block-files-in-your-network) -###### [Remove file from blocked list](respond-file-alerts.md#remove-file-from-blocked-list) -###### [Check activity details in Action center](respond-file-alerts.md#check-activity-details-in-action-center) +###### [Restore file from quarantine](respond-file-alerts.md#restore-file-from-quarantine) +###### [Add an indicator to block or allow a file](respond-file-alerts.md#add-indicator-to-block-or-allow-a-file) ###### [Deep analysis](respond-file-alerts.md#deep-analysis) - -##### [Investigate entities using Live response](live-response.md) +##### [Live response]() +###### [Investigate entities on machines](live-response.md) ###### [Live response command examples](live-response-command-examples.md) -### [Automated investigation and remediation](automated-investigations.md) + +### [Automated investigation and remediation]() +#### [Understand Automated investigations](automated-investigations.md) #### [Learn about the automated investigation and remediation dashboard](manage-auto-investigation.md) #### [Manage actions related to automated investigation and remediation](auto-investigation-action-center.md) ### [Secure score](overview-secure-score.md) + + ### [Threat analytics](threat-analytics.md) + ### [Microsoft Threat Experts](microsoft-threat-experts.md) -### [Advanced hunting](overview-hunting.md) -#### [Query data using Advanced hunting](advanced-hunting.md) + +### [Advanced hunting]() +#### [Advanced hunting overview](overview-hunting.md) + +#### [Query data using Advanced hunting]() +##### [Data querying basics](advanced-hunting.md) ##### [Advanced hunting reference](advanced-hunting-reference.md) ##### [Advanced hunting query language best practices](advanced-hunting-best-practices.md) -#### [Custom detections](overview-custom-detections.md) + +#### [Custom detections]() +##### [Understand custom detection rules](overview-custom-detections.md) ##### [Create custom detections rules](custom-detection-rules.md) -### [Management and APIs](management-apis.md) +### [Management and APIs]() +#### [Overview of management and APIs](management-apis.md) #### [Understand threat intelligence concepts](threat-indicator-concepts.md) #### [Microsoft Defender ATP APIs](apis-intro.md) #### [Managed security service provider support](mssp-support.md) -### [Microsoft Threat Protection](threat-protection-integration.md) -#### [Protect users, data, and devices with Conditional Access](conditional-access.md) -#### [Microsoft Cloud App Security in Windows overview](microsoft-cloud-app-security-integration.md) -#### [Information protection in Windows overview](information-protection-in-windows-overview.md) -##### [Use sensitivity labels to prioritize incident response](information-protection-investigation.md) +### [Integrations]() +#### [Microsoft Defender ATP integrations](threat-protection-integration.md) +#### [Conditional Access integration overview](conditional-access.md) +#### [Microsoft Cloud App Security in Windows overview](microsoft-cloud-app-security-integration.md) + +#### [Information protection in Windows overview]() +##### [Windows integration](information-protection-in-windows-overview.md) +##### [Use sensitivity labels to prioritize incident response](information-protection-investigation.md) ### [Microsoft Threat Experts](microsoft-threat-experts.md) @@ -111,7 +139,8 @@ ### [Portal overview](portal-overview.md) -## [Get started](get-started.md) + +## [Get started]() ### [What's new in Microsoft Defender ATP](whats-new-in-microsoft-defender-atp.md) ### [Minimum requirements](minimum-requirements.md) ### [Validate licensing and complete setup](licensing.md) @@ -119,92 +148,137 @@ ### [Data storage and privacy](data-storage-privacy.md) ### [Assign user access to the portal](assign-portal-access.md) -### [Evaluate Microsoft Defender ATP](evaluate-atp.md) -#### Evaluate attack surface reduction -##### [Hardware-based isolation](../windows-defender-application-guard/test-scenarios-wd-app-guard.md) -##### [Application control](../windows-defender-application-control/audit-windows-defender-application-control-policies.md) -##### [Exploit protection](../windows-defender-exploit-guard/evaluate-exploit-protection.md) -##### [Network Protection](../windows-defender-exploit-guard/evaluate-network-protection.md) -##### [Controlled folder access](../windows-defender-exploit-guard/evaluate-controlled-folder-access.md) -##### [Attack surface reduction](../windows-defender-exploit-guard/evaluate-attack-surface-reduction.md) -##### [Network firewall](../windows-firewall/evaluating-windows-firewall-with-advanced-security-design-examples.md) -#### [Evaluate next generation protection](../windows-defender-antivirus/evaluate-windows-defender-antivirus.md) +### [Evaluate Microsoft Defender ATP capabilities]() +#### [Evaluate attack surface reduction]() + +##### [Evaluate attack surface reduction and next-generation capabilities](evaluate-atp.md) +###### [Hardware-based isolation](../windows-defender-application-guard/test-scenarios-wd-app-guard.md) +###### [Application control](../windows-defender-application-control/audit-windows-defender-application-control-policies.md) +###### [Exploit protection](../windows-defender-exploit-guard/evaluate-exploit-protection.md) +###### [Network Protection](../windows-defender-exploit-guard/evaluate-network-protection.md) +###### [Controlled folder access](../windows-defender-exploit-guard/evaluate-controlled-folder-access.md) +###### [Attack surface reduction](../windows-defender-exploit-guard/evaluate-attack-surface-reduction.md) +###### [Network firewall](../windows-firewall/evaluating-windows-firewall-with-advanced-security-design-examples.md) +##### [Evaluate next generation protection](../windows-defender-antivirus/evaluate-windows-defender-antivirus.md) ### [Access the Microsoft Defender Security Center Community Center](community.md) -## [Configure and manage capabilities](onboard.md) +## [Configure and manage capabilities]() + ### [Configure attack surface reduction](configure-attack-surface-reduction.md) -### Hardware-based isolation + +### [Hardware-based isolation]() #### [System integrity](../windows-defender-system-guard/system-guard-secure-launch-and-smm-protection.md) -#### [Application isolation](../windows-defender-application-guard/install-wd-app-guard.md) + +#### [Application isolation]() +##### [Install Windows Defender Application Guard](../windows-defender-application-guard/install-wd-app-guard.md) ##### [Configuration settings](../windows-defender-application-guard/configure-wd-app-guard.md) + #### [Application control](../windows-defender-application-control/windows-defender-application-control.md) -#### Device control + +#### [Device control]() ##### [Control USB devices](../device-control/control-usb-devices-using-intune.md) -##### [Device Guard](../device-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) -###### [Memory integrity](../windows-defender-exploit-guard/memory-integrity.md) + +##### [Device Guard]() +###### [Code integrity](../device-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) + +###### [Memory integrity]() +####### [Understand memory integrity](../windows-defender-exploit-guard/memory-integrity.md) ####### [Hardware qualifications](../windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md) ####### [Enable HVCI](../windows-defender-exploit-guard/enable-virtualization-based-protection-of-code-integrity.md) -#### [Exploit protection](../windows-defender-exploit-guard/enable-exploit-protection.md) + +#### [Exploit protection]() +##### [Enable exploit protection](../windows-defender-exploit-guard/enable-exploit-protection.md) ##### [Import/export configurations](../windows-defender-exploit-guard/import-export-exploit-protection-emet-xml.md) + #### [Network protection](../windows-defender-exploit-guard/enable-network-protection.md) -#### [Controlled folder access](../windows-defender-exploit-guard/enable-controlled-folders-exploit-guard.md) + +#### [Controlled folder access]() +##### [Enable controlled folder access](../windows-defender-exploit-guard/enable-controlled-folders-exploit-guard.md) ##### [Customize controlled folder access](../windows-defender-exploit-guard/customize-controlled-folders-exploit-guard.md) -#### [Attack surface reduction controls](../windows-defender-exploit-guard/enable-attack-surface-reduction.md) + +#### [Attack surface reduction controls]() +##### [Enable attack surface reduction rules](../windows-defender-exploit-guard/enable-attack-surface-reduction.md) +##### [Customize attack surface reduction rules](../windows-defender-exploit-guard/customize-attack-surface-reduction.md) + #### [Network firewall](../windows-firewall/windows-firewall-with-advanced-security-deployment-guide.md) - -### [Configure next generation protection](../windows-defender-antivirus/configure-windows-defender-antivirus-features.md) -#### [Utilize Microsoft cloud-delivered protection](../windows-defender-antivirus/utilize-microsoft-cloud-protection-windows-defender-antivirus.md) +### [Configure next generation protection]() +#### [Configure Windows Defender Antivirus features](../windows-defender-antivirus/configure-windows-defender-antivirus-features.md) +#### [Utilize Microsoft cloud-delivered protection]() +##### [Understand cloud-delivered protection](../windows-defender-antivirus/utilize-microsoft-cloud-protection-windows-defender-antivirus.md) ##### [Enable cloud-delivered protection](../windows-defender-antivirus/enable-cloud-protection-windows-defender-antivirus.md) ##### [Specify the cloud-delivered protection level](../windows-defender-antivirus/specify-cloud-protection-level-windows-defender-antivirus.md) ##### [Configure and validate network connections](../windows-defender-antivirus/configure-network-connections-windows-defender-antivirus.md) ##### [Enable Block at first sight](../windows-defender-antivirus/configure-block-at-first-sight-windows-defender-antivirus.md) ##### [Configure the cloud block timeout period](../windows-defender-antivirus/configure-cloud-block-timeout-period-windows-defender-antivirus.md) -#### [Configure behavioral, heuristic, and real-time protection](../windows-defender-antivirus/configure-protection-features-windows-defender-antivirus.md) + +#### [Configure behavioral, heuristic, and real-time protection]() +##### [Configuration overview](../windows-defender-antivirus/configure-protection-features-windows-defender-antivirus.md) ##### [Detect and block potentially unwanted applications](../windows-defender-antivirus/detect-block-potentially-unwanted-apps-windows-defender-antivirus.md) ##### [Enable and configure always-on protection and monitoring](../windows-defender-antivirus/configure-real-time-protection-windows-defender-antivirus.md) + #### [Antivirus on Windows Server 2016](../windows-defender-antivirus/windows-defender-antivirus-on-windows-server-2016.md) -#### [Antivirus compatibility](../windows-defender-antivirus/windows-defender-antivirus-compatibility.md) + +#### [Antivirus compatibility]() +##### [Compatibility charts](../windows-defender-antivirus/windows-defender-antivirus-compatibility.md) ##### [Use limited periodic antivirus scanning](../windows-defender-antivirus/limited-periodic-scanning-windows-defender-antivirus.md) -#### [Deploy, manage updates, and report on antivirus](../windows-defender-antivirus/deploy-manage-report-windows-defender-antivirus.md) -##### [Deploy and enable antivirus](../windows-defender-antivirus/deploy-windows-defender-antivirus.md) +#### [Deploy, manage updates, and report on antivirus]() +##### [Using Windows Defender Antivirus](../windows-defender-antivirus/deploy-manage-report-windows-defender-antivirus.md) + +##### [Deploy and enable antivirus]() +###### [Preparing to deploy](../windows-defender-antivirus/deploy-windows-defender-antivirus.md) ###### [Deployment guide for VDI environments](../windows-defender-antivirus/deployment-vdi-windows-defender-antivirus.md) -##### [Report on antivirus protection](../windows-defender-antivirus/report-monitor-windows-defender-antivirus.md) + +##### [Report on antivirus protection]() +###### [Review protection status and aqlerts](../windows-defender-antivirus/report-monitor-windows-defender-antivirus.md) ###### [Troubleshoot antivirus reporting in Update Compliance](../windows-defender-antivirus/troubleshoot-reporting.md) -##### [Manage updates and apply baselines](../windows-defender-antivirus/manage-updates-baselines-windows-defender-antivirus.md) + +##### [Manage updates and apply baselines]() +###### [Learn about the different kinds of updates](../windows-defender-antivirus/manage-updates-baselines-windows-defender-antivirus.md) ###### [Manage protection and Security intelligence updates](../windows-defender-antivirus/manage-protection-updates-windows-defender-antivirus.md) ###### [Manage when protection updates should be downloaded and applied](../windows-defender-antivirus/manage-protection-update-schedule-windows-defender-antivirus.md) ###### [Manage updates for endpoints that are out of date](../windows-defender-antivirus/manage-outdated-endpoints-windows-defender-antivirus.md) ###### [Manage event-based forced updates](../windows-defender-antivirus/manage-event-based-updates-windows-defender-antivirus.md) ###### [Manage updates for mobile devices and VMs](../windows-defender-antivirus/manage-updates-mobile-devices-vms-windows-defender-antivirus.md) -#### [Customize, initiate, and review the results of scans and remediation](../windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) -##### [Configure and validate exclusions in antivirus scans](../windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) +#### [Customize, initiate, and review the results of scans and remediation]() +##### [Configuration overview](../windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) + +##### [Configure and validate exclusions in antivirus scans]() +###### [Exclusions overview](../windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) ###### [Configure and validate exclusions based on file name, extension, and folder location](../windows-defender-antivirus/configure-extension-file-exclusions-windows-defender-antivirus.md) ###### [Configure and validate exclusions for files opened by processes](../windows-defender-antivirus/configure-process-opened-file-exclusions-windows-defender-antivirus.md) ###### [Configure antivirus exclusions Windows Server 2016](../windows-defender-antivirus/configure-server-exclusions-windows-defender-antivirus.md) + ##### [Configure antivirus scanning options](../windows-defender-antivirus/configure-advanced-scan-types-windows-defender-antivirus.md) ##### [Configure remediation for scans](../windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) ##### [Configure scheduled scans](../windows-defender-antivirus/scheduled-catch-up-scans-windows-defender-antivirus.md) ##### [Configure and run scans](../windows-defender-antivirus/run-scan-windows-defender-antivirus.md) ##### [Review scan results](../windows-defender-antivirus/review-scan-results-windows-defender-antivirus.md) ##### [Run and review the results of an offline scan](../windows-defender-antivirus/windows-defender-offline.md) + #### [Restore quarantined files](../windows-defender-antivirus/restore-quarantined-files-windows-defender-antivirus.md) -#### [Manage antivirus in your business](../windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) + +#### [Manage antivirus in your business]() +##### [Management overview](../windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) ##### [Use Group Policy settings to configure and manage antivirus](../windows-defender-antivirus/use-group-policy-windows-defender-antivirus.md) ##### [Use System Center Configuration Manager and Microsoft Intune to configure and manage antivirus](../windows-defender-antivirus/use-intune-config-manager-windows-defender-antivirus.md) ##### [Use PowerShell cmdlets to configure and manage antivirus](../windows-defender-antivirus/use-powershell-cmdlets-windows-defender-antivirus.md) ##### [Use Windows Management Instrumentation (WMI) to configure and manage antivirus](../windows-defender-antivirus/use-wmi-windows-defender-antivirus.md) ##### [Use the mpcmdrun.exe commandline tool to configure and manage antivirus](../windows-defender-antivirus/command-line-arguments-windows-defender-antivirus.md) -#### [Manage scans and remediation](../windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) -##### [Configure and validate exclusions in antivirus scans](../windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) +#### [Manage scans and remediation]() +##### [Management overview](../windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md) + +##### [Configure and validate exclusions in antivirus scans]() +###### [Exclusions overview](../windows-defender-antivirus/configure-exclusions-windows-defender-antivirus.md) ###### [Configure and validate exclusions based on file name, extension, and folder location](../windows-defender-antivirus/configure-extension-file-exclusions-windows-defender-antivirus.md) ###### [Configure and validate exclusions for files opened by processes](../windows-defender-antivirus/configure-process-opened-file-exclusions-windows-defender-antivirus.md) ###### [Configure antivirus exclusions on Windows Server 2016](../windows-defender-antivirus/configure-server-exclusions-windows-defender-antivirus.md) + ##### [Configure scanning options](../windows-defender-antivirus/configure-advanced-scan-types-windows-defender-antivirus.md) ##### [Configure remediation for scans](../windows-defender-antivirus/configure-remediation-windows-defender-antivirus.md) ##### [Configure scheduled scans](../windows-defender-antivirus/scheduled-catch-up-scans-windows-defender-antivirus.md) @@ -212,7 +286,9 @@ ##### [Review scan results](../windows-defender-antivirus/review-scan-results-windows-defender-antivirus.md) ##### [Run and review the results of an offline scan](../windows-defender-antivirus/windows-defender-offline.md) ##### [Restore quarantined files](../windows-defender-antivirus/restore-quarantined-files-windows-defender-antivirus.md) -#### [Manage next generation protection in your business](../windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) + +#### [Manage next generation protection in your business]() +##### [Management overview](../windows-defender-antivirus/configuration-management-reference-windows-defender-antivirus.md) ##### [Use Microsoft Intune and System Center Configuration Manager to manage next generation protection](../windows-defender-antivirus/use-intune-config-manager-windows-defender-antivirus.md) ##### [Use Group Policy settings to manage next generation protection](../windows-defender-antivirus/use-group-policy-windows-defender-antivirus.md) ##### [Use PowerShell cmdlets to manage next generation protection](../windows-defender-antivirus/use-powershell-cmdlets-windows-defender-antivirus.md) @@ -220,41 +296,56 @@ ##### [Use the mpcmdrun.exe command line tool to manage next generation protection](../windows-defender-antivirus/command-line-arguments-windows-defender-antivirus.md) -### [Configure Secure score dashboard security controls](secure-score-dashboard.md) +### [Configure Secure score dashboard security controls](secure-score-dashboard.md) + ### [Configure and manage Microsoft Threat Experts capabilities](configure-microsoft-threat-experts.md) -### Management and API support -#### [Onboard machines](onboard-configure.md) + +### [Endpoint detection and response management and API support]() + +#### [Onboard machines]() +##### [Onboarding overview](onboard-configure.md) ##### [Onboard previous versions of Windows](onboard-downlevel.md) -##### [Onboard Windows 10 machines](configure-endpoints.md) + +##### [Onboard Windows 10 machines]() +###### [Ways to onboard](configure-endpoints.md) ###### [Onboard machines using Group Policy](configure-endpoints-gp.md) ###### [Onboard machines using System Center Configuration Manager](configure-endpoints-sccm.md) -###### [Onboard machines using Mobile Device Management tools](configure-endpoints-mdm.md) + +###### [Onboard machines using Mobile Device Management tools]() +####### [Overview](configure-endpoints-mdm.md) ####### [Onboard machines using Microsoft Intune](configure-endpoints-mdm.md#onboard-machines-using-microsoft-intune) ###### [Onboard machines using a local script](configure-endpoints-script.md) ###### [Onboard non-persistent virtual desktop infrastructure (VDI) machines](configure-endpoints-vdi.md) + ##### [Onboard servers](configure-server-endpoints.md) ##### [Onboard non-Windows machines](configure-endpoints-non-windows.md) ##### [Onboard machines without Internet access](onboard-offline-machines.md) ##### [Run a detection test on a newly onboarded machine](run-detection-test.md) ##### [Run simulated attacks on machines](attack-simulations.md) ##### [Configure proxy and Internet connectivity settings](configure-proxy-internet.md) -##### [Troubleshoot onboarding issues](troubleshoot-onboarding.md) + +##### [Troubleshoot onboarding issues]() +###### [Troubleshooting basics](troubleshoot-onboarding.md) ###### [Troubleshoot subscription and portal access issues](troubleshoot-onboarding-error-messages.md) - -#### [Microsoft Defender ATP API](use-apis.md) +#### [Microsoft Defender ATP API]() +##### [Understand Microsoft Defender ATP APIs](use-apis.md) ##### [Microsoft Defender ATP API license and terms](api-terms-of-use.md) -##### [Get started with Microsoft Defender ATP APIs](apis-intro.md) + +##### [Get started with Microsoft Defender ATP APIs]() +###### [Introduction](apis-intro.md) ###### [Hello World](api-hello-world.md) ###### [Get access with application context](exposed-apis-create-app-webapp.md) ###### [Get access with user context](exposed-apis-create-app-nativeapp.md) -##### [APIs](exposed-apis-list.md) +##### [APIs]() +###### [Supported Microsoft Defender ATP query APIs](exposed-apis-list.md) ###### [Advanced Hunting](run-advanced-query-api.md) -###### [Alert](alerts.md) +###### [Alert]() +####### [Methods, properties, and JSON representation](alerts.md) ####### [List alerts](get-alerts.md) ####### [Create alert](create-alert-by-reference.md) ####### [Update Alert](update-alert.md) @@ -265,7 +356,8 @@ ####### [Get alert related machine information](get-alert-related-machine-info.md) ####### [Get alert related user information](get-alert-related-user-info.md) -###### [Machine](machine.md) +###### [Machine]() +####### [Methods and properties](machine.md) ####### [List machines](get-machines.md) ####### [Get machine by ID](get-machine-by-id.md) ####### [Get machine log on users](get-machine-log-on-users.md) @@ -273,7 +365,8 @@ ####### [Add or Remove machine tags](add-or-remove-machine-tags.md) ####### [Find machines by IP](find-machines-by-ip.md) -###### [Machine Action](machineaction.md) +###### [Machine Action]() +####### [Methods and properties](machineaction.md) ####### [List Machine Actions](get-machineactions-collection.md) ####### [Get Machine Action](get-machineaction-object.md) ####### [Collect investigation package](collect-investigation-package.md) @@ -287,45 +380,49 @@ ####### [Stop and quarantine file](stop-and-quarantine-file.md) ####### [Initiate investigation (preview)](initiate-autoir-investigation.md) -###### [Indicators](ti-indicator.md) +###### [Indicators]() +####### [Methods and properties](ti-indicator.md) ####### [Submit Indicator](post-ti-indicator.md) ####### [List Indicators](get-ti-indicators-collection.md) ####### [Delete Indicator](delete-ti-indicator-by-id.md) -###### Domain +###### [Domain]() ####### [Get domain related alerts](get-domain-related-alerts.md) ####### [Get domain related machines](get-domain-related-machines.md) ####### [Get domain statistics](get-domain-statistics.md) ####### [Is domain seen in organization](is-domain-seen-in-org.md) -###### [File](files.md) +###### [File]() +####### [Methods and properties](files.md) ####### [Get file information](get-file-information.md) ####### [Get file related alerts](get-file-related-alerts.md) ####### [Get file related machines](get-file-related-machines.md) ####### [Get file statistics](get-file-statistics.md) -###### IP +###### [IP]() ####### [Get IP related alerts](get-ip-related-alerts.md) ####### [Get IP related machines](get-ip-related-machines.md) ####### [Get IP statistics](get-ip-statistics.md) ####### [Is IP seen in organization](is-ip-seen-org.md) -###### [User](user.md) +###### [User]() +####### [Methods](user.md) ####### [Get user related alerts](get-user-related-alerts.md) ####### [Get user related machines](get-user-related-machines.md) -##### How to use APIs - Samples -###### Advanced Hunting API +##### [How to use APIs - Samples]() +###### [Advanced Hunting API]() ####### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-sample-ms-flow.md) ####### [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) ####### [Advanced Hunting using Python](run-advanced-query-sample-python.md) ####### [Create custom Power BI reports](run-advanced-query-sample-power-bi-app-token.md) -###### Multiple APIs + +###### [Multiple APIs]() ####### [PowerShell](exposed-apis-full-sample-powershell.md) + ###### [Using OData Queries](exposed-apis-odata-samples.md) - -#### API for custom alerts +#### [API for custom alerts]() ##### [Enable the custom threat intelligence application](enable-custom-ti.md) ##### [Use the threat intelligence API to create custom alerts](use-custom-ti.md) ##### [Create custom threat intelligence alerts](custom-ti-api.md) @@ -334,8 +431,8 @@ ##### [Experiment with custom threat intelligence alerts](experiment-custom-ti.md) ##### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti.md) - -#### [Pull alerts to your SIEM tools](configure-siem.md) +#### [Pull alerts to your SIEM tools]() +##### [Learn about different ways to pull alerts](configure-siem.md) ##### [Enable SIEM integration](enable-siem-integration.md) ##### [Configure Splunk to pull alerts](configure-splunk.md) ##### [Configure HP ArcSight to pull alerts](configure-arcsight.md) @@ -343,88 +440,94 @@ ##### [Pull alerts using SIEM REST API](pull-alerts-using-rest-api.md) ##### [Troubleshoot SIEM tool integration issues](troubleshoot-siem.md) - -#### Reporting +#### [Reporting]() ##### [Create and build Power BI reports using Microsoft Defender ATP data](powerbi-reports.md) ##### [Threat protection reports](threat-protection-reports.md) ##### [Machine health and compliance reports](machine-reports.md) - -#### Interoperability +#### [Interoperability]() ##### [Partner applications](partner-applications.md) -#### [Manage machine configuration](configure-machines.md) +#### [Manage machine configuration]() +##### [Ensure your machines are configured properly](configure-machines.md) ##### [Monitor and increase machine onboarding](configure-machines-onboarding.md) ##### [Increase compliance to the security baseline](configure-machines-security-baseline.md) ##### [Optimize ASR rule deployment and detections](configure-machines-asr.md) -#### Role-based access control -##### [Manage portal access using RBAC](rbac.md) +#### [Role-based access control]() + +##### [Manage portal access using RBAC]() +###### [Using RBAC](rbac.md) ###### [Create and manage roles](user-roles.md) -###### [Create and manage machine groups](machine-groups.md) + +###### [Create and manage machine groups]() +####### [Using machine groups](machine-groups.md) ####### [Create and manage machine tags](machine-tags.md) #### [Configure managed security service provider (MSSP) support](configure-mssp-support.md) -### Configure Microsoft Threat Protection integration + +### [Configure Microsoft threat protection integration]() #### [Configure Conditional Access](configure-conditional-access.md) #### [Configure Microsoft Cloud App Security in Windows](microsoft-cloud-app-security-config.md) #### [Configure information protection in Windows](information-protection-in-windows-config.md) -### [Configure Microsoft Defender Security Center settings](preferences-setup.md) -#### General +### [Configure portal settings]() +#### [Set up preferences](preferences-setup.md) + +#### [General]() ##### [Update data retention settings](data-retention-settings.md) ##### [Configure alert notifications](configure-email-notifications.md) ##### [Enable and create Power BI reports using Windows Security app data](powerbi-reports.md) ##### [Enable Secure score security controls](enable-secure-score.md) ##### [Configure advanced features](advanced-features.md) - -#### Permissions + +#### [Permissions]() ##### [Use basic permissions to access the portal](basic-permissions.md) ##### [Manage portal access using RBAC](rbac.md) ###### [Create and manage roles](user-roles.md) ###### [Create and manage machine groups](machine-groups.md) ####### [Create and manage machine tags](machine-tags.md) - -#### APIs + +#### [APIs]() ##### [Enable Threat intel](enable-custom-ti.md) ##### [Enable SIEM integration](enable-siem-integration.md) - -#### Rules + +#### [Rules]() ##### [Manage suppression rules](manage-suppression-rules.md) ##### [Manage automation allowed/blocked lists](manage-automation-allowed-blocked-list.md) ##### [Manage indicators](manage-indicators.md) ##### [Manage automation file uploads](manage-automation-file-uploads.md) ##### [Manage automation folder exclusions](manage-automation-folder-exclusions.md) - -#### Machine management + +#### [Machine management]() ##### [Onboarding machines](onboard-configure.md) ##### [Offboarding machines](offboard-machines.md) - -#### [Configure Windows Security app time zone settings](time-settings.md) - + +#### [Configure time zone settings](time-settings.md) -## [Troubleshoot Microsoft Defender ATP](troubleshoot-overview.md) -### Troubleshoot sensor state + +## [Troubleshoot Microsoft Defender ATP]() + +### [Troubleshoot sensor state]() #### [Check sensor state](check-sensor-status.md) #### [Fix unhealthy sensors](fix-unhealthy-sensors.md) #### [Inactive machines](fix-unhealthy-sensors.md#inactive-machines) #### [Misconfigured machines](fix-unhealthy-sensors.md#misconfigured-machines) #### [Review sensor events and errors on machines with Event Viewer](event-error-codes.md) -### [Troubleshoot Microsoft Defender ATP service issues](troubleshoot-mdatp.md) + +### [Troubleshoot service issues]() +#### [Troubleshooting issues](troubleshoot-mdatp.md) #### [Check service health](service-status.md) -### [Troubleshoot live response issues]() -#### [Troubleshoot issues related to live response](troubleshoot-live-response.md) - -### Troubleshoot attack surface reduction +### [Troubleshoot attack surface reduction issues]() #### [Network protection](../windows-defender-exploit-guard/troubleshoot-np.md) #### [Attack surface reduction rules](../windows-defender-exploit-guard/troubleshoot-asr.md) #### [Collect diagnostic data for files](../windows-defender-exploit-guard/troubleshoot-np.md) -### [Troubleshoot next generation protection](../windows-defender-antivirus/troubleshoot-windows-defender-antivirus.md) +### [Troubleshoot next generation protection issues](../windows-defender-antivirus/troubleshoot-windows-defender-antivirus.md) From 5eca43963b1187ea4e4228820a469bdecc43a128 Mon Sep 17 00:00:00 2001 From: John Kaiser <35939694+CoveMiner@users.noreply.github.com> Date: Thu, 18 Jul 2019 19:23:36 +0200 Subject: [PATCH 25/27] Updated change history and meta data --- devices/surface-hub/surface-hub-2s-change-history.md | 2 ++ devices/surface-hub/surface-hub-2s-techspecs.md | 1 + 2 files changed, 3 insertions(+) diff --git a/devices/surface-hub/surface-hub-2s-change-history.md b/devices/surface-hub/surface-hub-2s-change-history.md index cb676f082b..dd5809aa44 100644 --- a/devices/surface-hub/surface-hub-2s-change-history.md +++ b/devices/surface-hub/surface-hub-2s-change-history.md @@ -7,6 +7,7 @@ ms.sitesec: library author: robmazz ms.author: robmazz audience: Admin +ms.manager: laurawi ms.topic: article ms.date: 06/20/2019 ms.localizationpriority: Normal @@ -20,6 +21,7 @@ This topic summarizes new and updated content in the Surface Hub 2S documentatio Changes | Description |:--- |:--- | +| Surface Hub 2S tech specs | Updated power consumption data | | Surface Hub 2S Adoption Kit | New | diff --git a/devices/surface-hub/surface-hub-2s-techspecs.md b/devices/surface-hub/surface-hub-2s-techspecs.md index 98731bf307..12a70a0913 100644 --- a/devices/surface-hub/surface-hub-2s-techspecs.md +++ b/devices/surface-hub/surface-hub-2s-techspecs.md @@ -5,6 +5,7 @@ keywords: separate values with commas ms.prod: surface-hub ms.sitesec: library author: robmazz +ms.manager: laurawi ms.author: robmazz audience: Admin ms.topic: article From 56ca0714cfea116be10e7ff4a95d94647dca0800 Mon Sep 17 00:00:00 2001 From: Daniel Simpson Date: Thu, 18 Jul 2019 11:36:32 -0700 Subject: [PATCH 26/27] Update TOC.md Adding Tamper Protection entry to TOC --- windows/security/threat-protection/TOC.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 4e7cc95c8e..4ac282f82f 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -182,6 +182,7 @@ ##### [Enable cloud-delivered protection](windows-defender-antivirus/enable-cloud-protection-windows-defender-antivirus.md) ##### [Specify the cloud-delivered protection level](windows-defender-antivirus/specify-cloud-protection-level-windows-defender-antivirus.md) ##### [Configure and validate network connections](windows-defender-antivirus/configure-network-connections-windows-defender-antivirus.md) +##### [Prevent security settings changes with tamper protection](windows-defender-antivirus/prevent-changes-to-security-settings-with-tamper-protection.md) ##### [Enable Block at first sight](windows-defender-antivirus/configure-block-at-first-sight-windows-defender-antivirus.md) ##### [Configure the cloud block timeout period](windows-defender-antivirus/configure-cloud-block-timeout-period-windows-defender-antivirus.md) From 4587c0f4a1ae98426fdacc4f1affd9fd85cecf01 Mon Sep 17 00:00:00 2001 From: John Kaiser <35939694+CoveMiner@users.noreply.github.com> Date: Thu, 18 Jul 2019 23:42:48 +0200 Subject: [PATCH 27/27] Updates for recovery image --- devices/surface-hub/surface-hub-2s-change-history.md | 1 + devices/surface-hub/surface-hub-2s-recover-reset.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/devices/surface-hub/surface-hub-2s-change-history.md b/devices/surface-hub/surface-hub-2s-change-history.md index dd5809aa44..26771c0fb6 100644 --- a/devices/surface-hub/surface-hub-2s-change-history.md +++ b/devices/surface-hub/surface-hub-2s-change-history.md @@ -21,6 +21,7 @@ This topic summarizes new and updated content in the Surface Hub 2S documentatio Changes | Description |:--- |:--- | +| Reset and recovery for Surface Hub 2S | Added link to Surface recovery website that enables customers to download a recovery image for Surface Hub 2S | | Surface Hub 2S tech specs | Updated power consumption data | | Surface Hub 2S Adoption Kit | New | diff --git a/devices/surface-hub/surface-hub-2s-recover-reset.md b/devices/surface-hub/surface-hub-2s-recover-reset.md index 4f04c38a31..af08c5427b 100644 --- a/devices/surface-hub/surface-hub-2s-recover-reset.md +++ b/devices/surface-hub/surface-hub-2s-recover-reset.md @@ -37,7 +37,7 @@ New in Surface Hub 2S, you can now reinstall the device using a recovery image. Surface Hub 2S lets you reinstall the device using a recovery image, which allows you to reinstall the device to factory settings if you lost the Bitlocker key or no longer have admin credentials to the Settings app. 1. Begin with a USB 3.0 drive with 8 GB or 16 GB of storage, formatted as FAT32. -2. Download recovery image from the Surface Recovery website onto the USB drive and connect it to any USB-C or USB A port on Surface Hub 2S. +2. Download recovery image from the [Surface Recovery website](https://support.microsoft.com/en-us/surfacerecoveryimage?devicetype=surfacehub2s) onto the USB drive and connect it to any USB-C or USB A port on Surface Hub 2S. 3. Turn off the device. While holding down the Volume down button, press the Power button. Keep holding both buttons until you see the Windows logo. Release the Power button but continue to hold the Volume until the Install UI begins. ![*Use Volume down and power buttons to initiate recovery*](images/sh2-keypad.png)