From e621b807f1c8cba5601928e0013fbf11a6d6abcb Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 24 Jul 2018 19:15:46 +0300 Subject: [PATCH 001/201] Adding Advanced Hunting API documentation --- .../windows-defender-atp/TOC.md | 6 + ...defender-advanced-threat-protection-new.md | 96 ++++++++++++++++ .../images/webapp-add-permission-2.png | Bin 0 -> 16217 bytes .../images/webapp-add-permission-end.png | Bin 0 -> 5808 bytes .../images/webapp-add-permission.png | Bin 0 -> 35593 bytes .../images/webapp-create-key.png | Bin 0 -> 22282 bytes .../images/webapp-create.png | Bin 0 -> 7196 bytes .../images/webapp-edit-multitenant.png | Bin 0 -> 32504 bytes .../images/webapp-edit-settings.png | Bin 0 -> 10818 bytes .../images/webapp-get-appid.png | Bin 0 -> 10830 bytes .../images/webapp-select-permission.png | Bin 0 -> 30641 bytes ...ows-defender-advanced-threat-protection.md | 106 ++++++++++++++++++ 12 files changed, 208 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-create.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-edit-multitenant.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-edit-settings.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-get-appid.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-select-permission.png create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index fa8be23611..1111f8ad04 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -95,6 +95,12 @@ #### [Python code examples](python-example-code-windows-defender-advanced-threat-protection.md) #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) + +### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +#### Supported Windows Defender ATP APIs +##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection) + + ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) #####Actor diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..26c7a3be1c --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,96 @@ +--- +title: Use the Windows Defender Advanced Threat Protection exposed APIs +description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. +keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 10/23/2017 +--- + +# Use the Windows Defender ATP exposed APIs + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) + +Windows Defender ATP exposes much of the available data and actions using a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). + +In general, you’ll need to take the following steps to use the APIs: +- Create an app +- Get an access token +- Use Windows Defender ATP API + +### Before you begin +Before using the APIs, you’ll need to create an app that you’ll use to authenticate against the graph. You’ll need to create a web app to use for the adhoc queries. + +## Create an app + +1. Log on to [Azure](https://portal.azure.com). + +2. Navigate to **Azure Active Directory** > **App registrations** > **New application registration**. + + ![Image of Microsoft Azure and navigation to application registration](images/atp-azure-new-app.png) + +3. In the Create window, enter the following information then click **Create**. + + ![Image of Create application window](images/webapp-create.png) + + - **Name:** WdatpEcosystemPartner + - **Application type:** Web app / API + - **Redirect URI:** `https://WdatpEcosystemPartner.com` (The URL where user can sign in and use your app. You can change this URL later.) + + +4. Click **Settings** > **Required permissions** > **Add**. + ![Image of new app in Azure](images/webapp-add-permission.png) + +5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. +**Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. + + ![Image of API access and API selection](images/webapp-add-permission-2.png) + +6. Click **Select permissions** > **Run advanced queries** > **Select**. +**Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! + + ![Image of select permissions](images/webapp-select-permission.png) + +In order to send telemetry events to WDATP, check 'Write timeline events' permission +In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission +In order to run advanced queries in WDATP, check 'Run advanced queries' permission + +7. Click **Done** + + ![Image of add permissions completion](images/webapp-add-permission-end.png) + +8. Click **Keys** and type a key name and click **Save**. +After you save, **copy the key value**. You won't be able to retrieve after you leave! + + ![Image of create app key](images/webapp-create-key.png) + +9. Write down your application ID. + + ![Image of app ID](images/webapp-get-appid.png) + +9. (**Optional**)Set your application to be multi-tenanted + +This is required for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). +This is not required if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ + +Click **Properties** > **Yes** > **Save**. + + ![Image of multi tenant](images/webapp-edit-multitenant.png) + + diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png new file mode 100644 index 0000000000000000000000000000000000000000..24e449a94cbcd63f6fdaf4280c8c6e7d87b4983c GIT binary patch literal 16217 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png new file mode 100644 index 0000000000000000000000000000000000000000..e0fb6d5cb88c90840f24e03495d072c284bf828a GIT binary patch literal 5808 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png new file mode 100644 index 0000000000000000000000000000000000000000..2784135cc495e2d3f9d942dad623ed12dc4109e7 GIT binary patch literal 22282 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 An*aa+ literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create.png new file mode 100644 index 0000000000000000000000000000000000000000..3d61af07e93d34a81e9a9735ab7c51d6da5bb523 GIT binary patch literal 7196 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-edit-multitenant.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-edit-multitenant.png new file mode 100644 index 0000000000000000000000000000000000000000..83ce5da068ef44ccea27dc074c4789f5c556684a GIT binary patch literal 32504 zcmdSAXH-*N*EWh$Efhhd2_aGy=}PY%>8MmGQst%zN(2HyiWDiK3DQA|AT?C!79dnX zq=YU4Qj$;tgc1_IjraXL=l$Mt#`(rLW1Mk*INa>4ovgjqTytLYn%9gmHq@rQ$bONG zjEq)SN5hni>>Qqq?0h#36>vu!`}qd&-??X|+G=D~->$C%e^9up8mN+yA>fxz9#aB; zUwEox`HYN=?(5mVb4c$}Co(cvysn1o1Akj=`_VJz$(&Qg5adDAY8h@!e|#*(vdw<* zhDVz|rt2~2*N#(%IJnQr=X{LfV=W;+FaN`xXKwI32dX-Z8LnvZPEZ6l1+i75=$5J|D&Q z=c3^M=Hf65y4kGFdRfa0x%R!#fMP|QHE#Ce>zvO|xdkCqUvthLr4Dm&6`Q^Ae{_?T zVrTgDWH@v^dLDNN_$Hox|KAy|%iSz?81sA&V-8}>gM}@&D})w5w8r|zMzZw0KTpl9 zisM2@Fn<`1HSSUT1txwSclYu*PI-J)o48{S?_eFzeTSw6G4=*WK`M?=AnxHVyso&$|qlydkfT~ z204zi7EW9gh-L3{lN%eQWPO*TZ#quyX!Ca`j9^ReJwqmN;xKi?RKLYpiSZuMikw>q z^|74Z`A);Ao50)1Y)d8y80Dr$Mp6YFE=H|<*9N^wOS>lPw~-pO#IZnA;i%o%m7uf2 znpg&`;5rR6)X&ea`dl)z{EhJgsFn++-9`k-!Ih4FY1{afgU19Izk{`1dL8`@ zi(f;5*y#o?XH3V_6&2Mi=)q=uIszH0(6P>D0w-*?8hy)C_NKeOzrXK7oQH1F-bTY~ zy1Y7#uE_Y%2X>+f^m>D4Pm`;kD0+g>#~sv=)3r;X2U62EjUJZpS{eQ)plMfc?2gRm z8ujk^ta`%z66K_Rf+EiW3Jf{Tx)SOc>`3W(aM!U3n98&Svi8G=Tk~nBFa?}A|80{V zn4=_XINwva!RJ8ZjQrj-6md&^c?x;Hh{tZB$x6$60Sr1n?in%1e?9;L#Y@fas-BO; z+@;kEJ|&=MW+1Yy!jY{>1_++y;7(T!3{9K(c4XtqUwM7h#k3DFEmfh?;0>Pb-+P^4 zY{yg0Ps-P*c=|)@{IVO=AEk@hNug!R>2IOo`mg7DL?15CAjwV}BRfD$eGe8|Rkxt> zw4Q|BD=}U3=1>JgF-&g>>V80{t3HMu&q0e;eFBr~PVkebe++EoUkdiB=GR!`N+~zX z7fI9O<>o6pNRV`>-)z)Z;>UbBh?9HICVdF(9qxF(zL+Bw-lDqJ7e?edn4FZtDjokt z@9dv#|HMfTQ`WH{DFSI@jvZWQ9?6T@Z|wu9_1Kzf$~3z1 z;GWQ)1nKPH(;*N^nr|YhWCoulwnkg#4Xao(ZOeiCwF|&WSm{z5_~&S=pZn8ubHc;Q zrzbW6I_kD|)Jdh$oP^OlC`Qf^zk0xj(g2Ro(i*Vw*3iuA8DNzjOcTMDh$X-Djk6y_ zW{vc~!f$Ms{4mNmPhd>{y%-;vqi%2W$^*oU@uNM>V)0|X&WaH_k1{)PbP{`at)0lN zX{T%!8vPn|#h?CHaP=C2Gr;0kaGWvbB>xy6^@J&g(~-=7!5uX1^0(2EtI;06Y0lR% z!$hC?fX=I+;-75NU&nh>Q9n3g>k_PSq1xYGa~}N0hLeA5-1p@QU$ipDT#l4as&kke zIKEi??Wyb^-}H3DR3UuvugljElB{uK;eeC6PIKm@1kOGUJ@Z^I&OF!ucQ=1|JA{}U z()2wh9Zz;<>b&mUp<`-hjaU{8@?-i%b``3^kX*PuZV*jwj5(*Olkmk{8ce5xpr!!J zUbLHwkRj{lV))l!Hx`0D4+}mt5%$lh)lW(cqeh1t{9We+@z+t*YR9_Mc5~(C)h=SJ zH?>;&Qc-!q_^D5zUYd)kwDGohaP-8)1je9*J(RtGmw?u$*-05BA~kaOYZv5s&vR=)m8>z!T^H z^~B!Vci@TZN?hHC<1AN`i&W(Hb?&-^=LFD== zA8*mC9h4Ooetkr#0&7vt(n}YK_q;Nxd$M7e+(CCw+Iv2gmP4vnsJiV&b;t3Cn4v6b zr0)fAxCw@uo-3|+b_n5!{IznT0_pDV&PZxD5G61~*li9g?CQg@8m82V6~X%QPk+AD z&ypI#xR>OkVhqlfX$_rEQ843rAni4q$Sh>m3*BmG(F1pRQWc^?_RH=1NJIiTdEEnH z7K$#qqp1qJP9S5BDWUTedRstT)nPJ)sq-f@a{z-C zmqXOZLmb{YxIV8`$p=nqZ=qK4rY<&8CO%L)T22AxBj#RRRh8fwOuI}Qs5$@I?K^cc@Tdp|;iUCWWzr=Uc8K zhc|~GcTlRTV%(G$N2r9%(Fk7Vhd|6HG|wF1y1m=?&2F!Fk+!3hy9V|tof?A)_(KfG z`TJ$6wuw{yZ-nAU9&8fdr3ce|34s$^7l>YPZ0M{blGRTNn^#tzh!Dlc&3KWcWfl?L z-`M2WbVp`X*YVgH9Pl1l^dnP0p@ko>f+#4ed?T)cwc9Rm8(AOUf-b9mBqFX8hAZ+zz5={iH%mjlO750tut(*otyjK8Q{+ON{{o}n6a^NU5pWACF zDjRd>QLZ_He0fF!**JlHhy%_psB>)p{tn)Jjv*#jpm&1wpiTG@b8Es(2ho1(lA)Ja zA@ca6&(bEN{HGo50iHZb$U9z`pMb76H6INT0BNaZ_uu!M+XXw1ZkOaqx+Y{Rhs=8r zOk#u*KiINI@jgt|3AZpYbKRm@o?*n3pW}IMgI*t;@7PP=YYfF#3ec}{aDya+i@@}2 zO7%Gb~1)VE$x$6Q@8 z=33d4XlabUgJp5X3}AZe2vwz}(Ziqo+ARK>IsB${tj#{HnwgN2$i2<3E1kjEN-_%y z=_2jsohqa;o(Bw`A(&_uWOo!1p?l_8wn3>6Htd3SG;eov?sciS9!2a$edfihs*7OA z!9-qcwb!Yt+s?1R)_1n}7(0lumT9&Wpvc1#ufMAHQoH`rfgbqqYDdcjA2MdB#1+Br z>(Tka&SJjcHgg#;@8oysAX5q*ae;r0=jKB&sZlWljvR+iPfQd=2H7$uT5vAmqoX7KnuI&HH@TbX{+Wq%r`*jP>lXv@ zSm=t&dY{E#M%)k@&U0?mLnuVTouTl-hd&#)zf&~=9?gKg@p}hoEWGy$B_*W~f+ta1 zM?@W1TCxmAXoxWoDULpclKUXkN8}tQrvA-J+owMI6zWEeh^K7AQCK$UjXep4^8$?4Oa4zJkscs?dv}0Ugt1SKQ+LpbZ$zy46-s=tWM5FUve_QOjg^aE1w<><2K5x z`+@B%Dl5~a<5Cc;ZpUX{s4#!Ny)5n_9OY{LlK}4Cy{5n23+}%)01yej&jVmDU2Zw6t3FI@X=A_6n

$mIo=}eKhqt(3h-PPfNjq!5l_0i%I1)ME#0#l*} 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 JC{6pA{{`JEUfBQu literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-get-appid.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-get-appid.png new file mode 100644 index 0000000000000000000000000000000000000000..d18950bfd179722a1b4a0081723f38ccd7c89b21 GIT binary patch literal 10830 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 L092`I8}YvYQ)rLe literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-select-permission.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-select-permission.png new file mode 100644 index 0000000000000000000000000000000000000000..7f5fb81063e1864ac329cbc2b99b8557414ea9b9 GIT binary patch literal 30641 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..b71d2fe199 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -0,0 +1,106 @@ +--- +title: Collect investigation package API +description: Use this API to create calls related to the collecting an investigation package from a machine. +keywords: apis, graph api, supported apis, collect investigation package +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Collect investigation package API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Run advanced query. + +## Permissions +Application needs 'Run advanced queries' role. + +## HTTP request +``` +POST /advancedqueries/query +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. Required. +Content-Type | application/json + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Query | Text | The query to run. **Required**. + +## Response +If successful, this method returns 200 OK, and _QueryResponse_ object in the response body. + + +## Example + +Request + +Here is an example of the request. + +``` +POST https://api.securitycenter.windows.com/advancedqueries/query +Content-type: application/json +{ + "ProcessCreationEvents +| where InitiatingProcessFileName =~ \"powershell.exe\" +| where ProcessCommandLine contains \"appdata\" +| project EventTime, FileName, InitiatingProcessFileName +| limit 2"​ +} +``` + +Response + +Here is an example of the response. + +>[!NOTE] +>The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. + +``` +HTTP/1.1 200 OK +Content-Type: application/json​ +{ + "Schema": [{ + "Name": "EventTime", + "Type": "DateTime" + }, + { + "Name": "FileName", + "Type": "String" + }, + { + "Name": "InitiatingProcessFileName", + "Type": "String" + }], + "Results": [{ + "EventTime": "2018-07-09T07:16:26.8017265", + "FileName": "csc.exe", + "InitiatingProcessFileName": "powershell.exe" + }, + { + "EventTime": "2018-07-08T19:00:02.7798905", + "FileName": "gpresult.exe", + "InitiatingProcessFileName": "powershell.exe" + }] +} + + +``` From 802d20f5ef612cc4c0e2eab6d79d06925179481e Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 24 Jul 2018 19:20:47 +0300 Subject: [PATCH 002/201] Revert "Adding Advanced Hunting API documentation" This reverts commit e621b807f1c8cba5601928e0013fbf11a6d6abcb. --- .../windows-defender-atp/TOC.md | 6 - ...defender-advanced-threat-protection-new.md | 96 ---------------- .../images/webapp-add-permission-2.png | Bin 16217 -> 0 bytes .../images/webapp-add-permission-end.png | Bin 5808 -> 0 bytes .../images/webapp-add-permission.png | Bin 35593 -> 0 bytes .../images/webapp-create-key.png | Bin 22282 -> 0 bytes .../images/webapp-create.png | Bin 7196 -> 0 bytes .../images/webapp-edit-multitenant.png | Bin 32504 -> 0 bytes .../images/webapp-edit-settings.png | Bin 10818 -> 0 bytes .../images/webapp-get-appid.png | Bin 10830 -> 0 bytes .../images/webapp-select-permission.png | Bin 30641 -> 0 bytes ...ows-defender-advanced-threat-protection.md | 106 ------------------ 12 files changed, 208 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-create.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-edit-multitenant.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-edit-settings.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-get-appid.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-select-permission.png delete mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 1111f8ad04..fa8be23611 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -95,12 +95,6 @@ #### [Python code examples](python-example-code-windows-defender-advanced-threat-protection.md) #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) - -### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) -#### Supported Windows Defender ATP APIs -##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection) - - ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) #####Actor diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md deleted file mode 100644 index 26c7a3be1c..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Use the Windows Defender Advanced Threat Protection exposed APIs -description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. -keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 10/23/2017 ---- - -# Use the Windows Defender ATP exposed APIs - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - ->Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) - -Windows Defender ATP exposes much of the available data and actions using a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). - -In general, you’ll need to take the following steps to use the APIs: -- Create an app -- Get an access token -- Use Windows Defender ATP API - -### Before you begin -Before using the APIs, you’ll need to create an app that you’ll use to authenticate against the graph. You’ll need to create a web app to use for the adhoc queries. - -## Create an app - -1. Log on to [Azure](https://portal.azure.com). - -2. Navigate to **Azure Active Directory** > **App registrations** > **New application registration**. - - ![Image of Microsoft Azure and navigation to application registration](images/atp-azure-new-app.png) - -3. In the Create window, enter the following information then click **Create**. - - ![Image of Create application window](images/webapp-create.png) - - - **Name:** WdatpEcosystemPartner - - **Application type:** Web app / API - - **Redirect URI:** `https://WdatpEcosystemPartner.com` (The URL where user can sign in and use your app. You can change this URL later.) - - -4. Click **Settings** > **Required permissions** > **Add**. - ![Image of new app in Azure](images/webapp-add-permission.png) - -5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. -**Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. - - ![Image of API access and API selection](images/webapp-add-permission-2.png) - -6. Click **Select permissions** > **Run advanced queries** > **Select**. -**Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! - - ![Image of select permissions](images/webapp-select-permission.png) - -In order to send telemetry events to WDATP, check 'Write timeline events' permission -In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission -In order to run advanced queries in WDATP, check 'Run advanced queries' permission - -7. Click **Done** - - ![Image of add permissions completion](images/webapp-add-permission-end.png) - -8. Click **Keys** and type a key name and click **Save**. -After you save, **copy the key value**. You won't be able to retrieve after you leave! - - ![Image of create app key](images/webapp-create-key.png) - -9. Write down your application ID. - - ![Image of app ID](images/webapp-get-appid.png) - -9. (**Optional**)Set your application to be multi-tenanted - -This is required for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). -This is not required if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ - -Click **Properties** > **Yes** > **Save**. - - ![Image of multi tenant](images/webapp-edit-multitenant.png) - - diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png deleted file mode 100644 index 24e449a94cbcd63f6fdaf4280c8c6e7d87b4983c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16217 zcmb_@d0diN`!`K9HPb$oQYtb{yK9?;d)b(onYpK;G?}@j4yh>!SX0v?2`!_hxs+?T zk-4HGGgC-qLT*rQOpv0I5+b0W@ZM-s)AKa%{66pd`=d{FbMAAlbDeAXUf=87SC1ZX zSh`4O5eNiY>Ui)6HxTFxCI~by$6R0lzDDc<3Xg3EtP&rd?82HbZ!TX%|fj||+ z#nV521^oY;pAPy&gFwq3Y5vS(MBP6L0@;i?{;!ZUuswuZv=Y1z1C8kL>#Dq(O2m+!Dss49PzaLPJhErYE5 z1u^-{&nxV{UUzZD4%q78*?-s_cp~&F^YvU|cgivNfJZyNrl$kbghGKwYcKK+0~1y)r>9?EVu##xafMy?W!~X~3+};I z0rQORM{YW~XuNq(({^*j+N$TXPko+F{khQg7>2hhXU$gMJ=H|lb{X1&&BF+?;!+)r zO9XtVIv&ZgmTySg`Y6>h&Ht>A_{nBZ^h zsObYp)$|k(D@x$nxAZIf$se7O!Er6 zgOdA8h{d7EF&^5YhF7{c*F+~TK(E1oxu-A2of0s^%j#A=xv`$QcrDoMp_@d(p*2nS zb?GYnMQHCRRRecsj5l1AV=_jS_n*nCbGGIiFwv|b?61DNxAN`+B7R{i9fh zmTdG0iFbaX{+9lCm-cL^y}H&LsV|-JXH{tnK1^N*%Yh+J9M2C$dUXf5FuXEj=e7N^ z!SjTcF<$NCE_{q~URq&yhJcscb+dYAk(b{p zjWMEAaP!3UO(q<=DYL`A1zi4Pi*loW5$;C&G;EVUOzIzkc(TyHvubRx^-e;EFDtNZ zN3vOUnMpTkd$>^s)agQzJNRUQO6R6kp6Gabb`je#2u}BD6QM?yM_<6Pv}TSdDT4`0 zMGQ@TBUhfpb}{al{!!FZhp-mO*WL}W67S4cWtWh+$$Dw^N2RSHk_OccOhG2kCQV6Tz8i4M1npSN|I*_mZG6syAiY? z>0@kxtVcwByF>{Wj?e0XHN23aUJDYVAaV&9j7qYh_Jc+pCD3J4P$H z%H1|{g-(e~FnqgHK&(m5v5c?@{CeF6`C~V$EdiUWi9ZhW(A_8`A;@e~z^<5YlhouO z>ya-6H({qy)+Bt!O4E}OCSlSb3kSsYYHqZEnG*PJoP`Yu z^4nCGpiZ9isr3qM{6LC#l9MTQA~z_bDCm*R56zx{r5CK^ssUY@xzKvhogzxV3%ZnC zG?4%urpVf&8up2L;xVS2c%_ygK480ejd&*G5Y`HagaLRb@sFSGb$tjPqbaGHg4qLQ*#mTcfhZ3LIyiH`6Un_wz@NDItV4wLvu(=d7bHc8`8)7sf{g5Ns=|VKm$k<3>!;QRrKH4-+foYYKA{QLkQT(U z4HrvGff+TC+x(YLqxgmkKt=$ZL#-=4nc77yMy7JKpf_RZ3M zT{DALHJ0N}jkl59W>^hwC!(I~V*CHlqRhXFw_2CauX+HO$N19aAW%kloLNn$efEm> z2;aM~`Jfj84J8!?CgT^cM|S+2RQd2E33+{R9_Vm&q|H-z@Yi++YeV-HO!Zg_ib)#} zCSTaK9CW-mR^pglw^uJ=M9c2rqx^pNh+V4U17UjkC=kfK?2gO$5cH=C>=?b!SET4R#jL)U;=a@N|%*?8YSytkk3jUQ}{(*D9+_-7c?v%Q{`OiQ=rq@U~G(W#m z1Y5X=i;0#l0k0kJo(F0U*W=s=cDV|C#bfPv7q6vuCKNAClI&PB`y(E(j!ll#qVA(e zRl2`s_iJ`6OOk;01M>V9?+Sp24VrDJnm9L?u3bn+om)qSfQ~n6ki<>RL@9%J&W;rq zrXGI++rpf`1T_i*@$HeDHr&!kQ(7g0MRA*`&$kftt$j~-SCKMCn7=FrCnf9d(H1bx zCKt7Axzuke1;A0i?@p4T-EIHu4S}?x_a`C zAFdEKIYbCs1^}beH_I5{IKlrKT?vWNGu=6Am>QiTIM!s}LyyqW)u=v$GW9!4d!Y->>pC%$N}YUT ztj?R1EeCTa?*g9b=q4iV_Q+62|B-0^Vjy0~E*pqWIhN*T+7ZolmU(X`KrFp%!h9Q# zz`Z?UsiM8u(XDb5{+2R|MzEUniM7FiEI9R5GTANSu*U+lz;$?(!NtEtwYxfi?tLL43dnAv$>W zuucWw1`1B}P!o?~!p4@;gW{TsCa1IGj1*4i5BzoVMh-}AEjO?y`1o3nOwZ%hy>W@2 zNz@~mqJ}5!A{e@}UZHwOD8MSm&d@}#aMb3F=qKR|K_Se6DbXPJn3d{nMcCL04Mf$L z!lfh$%VpAZ;i;(EK@I~`kEbqlb<(#mJ;%(?7ETW3BtC4koJjUhxFuY%qjk=jy;4vA z%_LK>NZh;UE=lS-*&RB$adb2&v=Da7$5}J`A<0t9sIpH@I3)sU6VJmSr#yS`h?yL9 ziTCZT%#*3Nfb*|_bCJyM>zrkvZ2>;of;(rq?$f<2sw(%7w=w>iB3Mjg-5WI~KVGfm zBBq}*R8^Cz^)8z@N?Dd%t0%I~oN{_)Tb+&ATlbk5o!y*=WK}>-rg)Fhrm_pa?^fkHUjE|#Qj+zz?+_~e;DOM@Cie*>$^8qmpWG2CYupnEAG%b z4BPdgbd-fg(tEt=Oa8$n8kZ(S^wgv%H-R@xy9?Osfx01kNT;is?)`h=N=;Y@xfz8M zjPV``akRQYTBI?Jj}eJCCm|9<;p$`iIB}Vt2ZUdF|DuSpomq|_d(+G-ji@>tSL_e3 zehwTgdv< znhe*?fQn!Y=~m_~$Fu?SxqPwYKc-n5jFfRUjKoC(jS*xnu+>NU48w@P@}3@EEJ zLV)D_*xtr-K|N4{mgYa7rs;hR0-?M8lZ}x#T;^6Y-vFp-f5B8nRzt~F5a`7ZKmy-r zGEUm@!oJx*({|<;Q)zZM7dpk4(r1ctgwEM}X9xt{&BAcCMI;p#p3QE1$=mLKV4<@T6N71$WFhQXW}*wU%5v|YW8r;N zHiqcl6GmYOke2#IMA7iEOlor44e$3sz^OsMq!0w!yK1z&IkoOd5pdkDuXTcvXKzH4 zq=81HY;vr>j#=4Cis<)S_%XL|U9bcA2#YIg&7xw9506l4-1jww%B`tE{e=OU)rW;| zRsBTmGU164ese{_RDW2eNty3hwA>2fG~go)qp+UxUs#b#CS%3nulXpw08{N?D5vE~ z$@{nr2on95AiwQ;ym4oLC|eS)60!pvuhCyg8vBfu%TijXv||SX_f25RN(2VCGT6u% zO-zwqo)69ALV_V3aTm0#IcS^0Y)%^Yq5LSNY;h?^N(s$wz8mZDoDcQ-RZ&k0j8B)B z36f;PQcUDY4T|-UTHaDlwxp2q<$xoCEZ<|_v|h{$LX!x7@+ms zhDvU|P&r^@hWP50aBIJfc5t#gqYVS~leqO1q$;hfkC00o>?JX!osi(o+QCtxpnmT# zpGN-ScFku0v;@eeD$ZEg>8p55@sh(%9uppi{C9aOcoTPdrLntMaUNzY;Sg%(NJ)*m zd6%jx!st;`i!hKeV^DEzgd$)_sYkF=*sgg0q5pr>}=$#`kw6qQ(ee#q+O<3v3=ddA7{f!R|?E zQTXDVUm*tp`Rpu?ECvE*{vWIxD|QHnyZ_i6v~VS`{&hmf7xd3Q{y9l9GUeXov2Z2d z348p;--T*OQ3#fOv(CwhqmgRK7C851b?r+az(x78)FUD_vTZ_O%7tUz5IJDEeq!#P z#G^JqjMU;%(KzJU13Z*CV>sJ`k zof|}3aii4m1j(hW{j??Roys~SNr{g0a)+!rTIaFaRtC;7a>^<6)baG< zPq;b#lt!Og?0tGzOLojnC`3`3ZNh$c2_n&b0^5Y(S`u+T(Sq3du;AniKp%Fe)@jb; z%Wc9@BW-qClSo#ozVA3Lw}49opSrz~l#PQffGV`Om7g5L0hnieY#tMSpqnvHS^fd?mgiYW?N5KUsRuTrr$ig|1R%sMB|v- zjv)bHV3pT3C-}wf*jq--q(gTXl{u9`J;yx8Pkh^%#~W>I5`<VLNdD# zD2HmPOy>@ykwrOMszB-?6Kpw1>gla(WzichUJsqMv3bue00V5zDJ`_vmj4rJMg8M? zkK!TH*Ts9AzaNUN%4#X#NK{pXLl2w^22oIhVsxkC4w>s(ULr6_?M@pTM<)WjSs`OY zs+ZChA8b|KTVPEHmdkNfA(^bVX%}L9oVQum`EM7cC1vwM z!3V90_AdsGO8iZ#;T!$pJd{|5IS%S8nMqkl4}z780)?&}q=sr_I^#96Fg3i#L)?Xm zw@&U8F6p+hiK~J}0A=6B>!&nMwDFwJo?#K}*6`OK{S9;q@`*a2+-?-#uKhyAJbq{YhtC53-f((XZ;-oaDrm2%PM zi`UZ~=f>AFHTYxir7g_83uYs`19HKRyS(Xg6ZM(zK%lj`u=#6`BE2+;ban7|^9@=N znLXaKVZN{sMjL--NOyO!_I%sdP+O-MDZ!iK#Q31{#_?w-A|uP=-&Qc5#e(41L>f}0 z-($5vkdxR{CuRHLTTB{Cy>AQKcBG7?1)xdYi_W=f&`Xp-lH}^D&DvUTG&MwAI+>m7Yuqw1dk^BF+um zZJ#!c=9bNgBuSgU5H&^-B!!n#3gb9F8ymK23DCcL-fNnX^?>_+A<%t#Lej@PgoNsl z^uetP#g!aJLxai4!sYr#X>`k8Db_$K8#Uyh-u=F?WkCOyNQW_#fDtc4(?TH#-oyCb z_)>-W@_NIZ3sChW!yUQVJ20~|E>oINk5$UTinruM_10BnpkvXJ!B#rJQQ!fR$}@Ul z2lN^dphcXkKg8zM#vHT-dDE`QO0`c;zOcEdAMFhm8=9P@M7=D%mJr# zu@e74NpudUS&U6d1TFj!-PQEvxOW${5ZRl3GCf!CIsNizs*P)?hfi{clkxBV+JZ8_ zTG=6ABhpsi@`~E6IZnn*9ee;ygN)IgsDtoAhk~mGgvzBUuRFubx0m`<7FOm+-K4r; z(96TCgRy4&5p742O(Vr6&rWc>jBXlSt#254e5T}akU?twdc77>=i-vbxrXS@sv5G$ z{VR6dCH`3{HUyIVir;Z2LS*?!8VXnd=Cm{57~vW4)Ybcb5lA4F-^g&?0$%!b=c_& z7+&`JkD)*`_ferWi}9|)jLW~a5mrr273xvT*j))sfzgGe$`IX|-+g;R`VI=i{8*g& zZgRk$WcxNmjm$qly~N7Po@L)Nv_^-<^x=0#=Mb-*A)sUSB?}52Sj4L3qo!k=o?*-` zt}P;hjIx1>$TlWzuw5=~Sy8sYRB4Ijho+|{G1C&zbt1`>X-b z?PQVG=P{ft5e~RYJhtU^+IajRy;nYNpgCqR{OVV`ZNO!#@ReQoiX#6f!oaq?LZ#MO zr!4PsuQMoi-6r$h;PrHt^!^{YJXcevq*{q0yC{}j=I5NcsXf6Oz4IECmx0$bDTePxy3AY!Pe;@a9oMXX>&;P$PnJ zX$%HxN@y!!3kz{IzNXoEkCDTa+N*&tc4sgD&eq*OQ=0Zw>~^V|>jPCNn4#_lm+Eze zmel$c1%oA9nokr<8;#6dgvD1zgwXz?y3&y`GF#$*oFu9QT5LSnNC%RppO@MtI*2D0 zSSs`@1Hi3}60a~6`?d--HWn5(?XhhF7h@jngWP^KXsb5NIQmEA`ESeexYiMQ5p?BI z*RDLaH?p%HJ$8bG9VXn9dz%L9mvEvzo>gTt(tXF;P4rn6feh{B=oc!!?53}SQru)6 zX{{iHHCF1%gKQQO9fTqNqDPD?J>hy{DJPoM5tzBz$=u=A8tHj2nRkFs2P-3HP>XiKLUYo)iSi>%cnpmltx4Q3qwzjk#|LX3|;xDK-Lk{1X zUU<~wSj^=k8~58gv{fy_r%DZ-OsvtJXWA?-0QC)`yICo&G1)sfPytKe_A`HJ;lbQn zs2)Fx?QNZ({Vqv9%K1%txq0lchn*Fq#m(q@6Kmh{heZt+4BSkNlW0Pn#i@fzAtKI#>{#jVhcR@uqbfG8MtDWU8$D{3}|H z=*$;4k|et@1z&>BrJUBxa*KtSdghI$qkip0G9X=S&<_Pu(a~}bcM$0AH%U9M&uh}a zk_2~g+WdJ{JIi^cWP8mW14A?ayjet|YMlz4UG!((l9PMsKJ!4JR@cn)OMp7*((E=2 zHE@Nm(3Fzq_kdSs8#DU!wNK6^NupZS_cOi#ft-(O-hdebYnp4;Oc|uzu{=7f9}OOw zt3x%j&hDN#yVBJBRf?ALnjBpd#SL)Q8jt`D1}}H=k*NMg$}t)aiyZ5vgpD1)vpd2- z(~0<>rCdGOPj`8{y`ObbR_VKtrO_U(pj-9cYI?IY7lM!&uzc| zP^&1-_f5SK)2}viR8s@FSHT0J)qfTlRl~xK&@;T`?A8G91V`q)0!wu z3<+^!h!mNiyG!S`>(bii=bY?qgffXYX)>`BySCJve&yER>fzX7)pmv@@pre6gPS3U z8D1m_#2YAx5@c_O`;5Etnziwjk535yDMwkyzdJ4he4;Sd0UX@6`|@&VKvi;R`d}zj zzX%bW7L)AI5(BrEPx6F5f@s$Xcuc8+<)&OK(?KPakwOB?6MZm zck|v{0JML+os0A`cf0C34JR7d8hBTHJ<>*Z6vodSD+JOaQwJjSMU00jQ~%Le zUqee^LN*)EpD=$6R8bjb;m;ge-Oa6HM>=znVY;JvT$#ll=Y%G97qYsXL*%cB5(zBI z^{cb98$6Pj2u54et_5uqnq(4MCgM*~7{##|{Tr#_R)dm`JVC;Aw~bVXE@?x$(Ge}x z+0AbvsL4by3+RU>&q_`A8DMN=|Ke!R8gSmopg$E}Nu~TWObLag98cRKwt@dq)wJj~ zyDJ*(H0l($g=*UxH?@-3B{Vk))ejD%I5osuNy&$obSL%(d?>ZJ>C(QJ2V1Ohqri&T z-rB+$v=c_3@s?v;%#zpGcx4K(j+kUCTySJ$WSel44oyIxxspb=eFyrjZq`p=i6JVU z*`Cv!Nwd!fQ-aVdfI#O4XJyN<-5&SgLzH_52?l|>H46WGAQZLQehhaWnOXq#t*41Kha`;66KV71 zqdnfIfu3rH!83vGp2*U|fUN#TRCEPyM#1Z)M0fT6t|^c7tkG2&VGe;l)nT5d$kM#} zpI+OUwj{R5uAdLGfz@&qHC6Vjp8r(05u2l}|x;ha>-dl=Qx*dREyo$LXS;rL_D3xdzmw!XkjLg$1UgX4vxV`w*x_Xl09eP=z`B^r-AWtO_({=Al5`h0 za8J&DD_hWSF|$4ss_LNZ@9LZ+-5w#79LhUXkQ3i=zn=ZvQmg%oI zCDLChWoIiUGio}#9jmMeJtGXQ9P%JTG9Pq!50D4WJK`9xJihneU|+CH+X?*Qn2~=# zbuZU>Ob!uDVnbTJ=dojq-us{5Talw5d~hWMV7qmq-uzL@0MO2x+|jK}&^AkrHdFIp zg60A!Xj{X3-G-=CVT<^Ckqgefnxhs<|7M{UadrP@Y$?y08rF#F3zUwbTv^!CjVEWx6Po@KFs@h=g46~ia+??96LbJ%vmtC zd=Ps7!!IAba+6Qy|C7f&g4g|Y@8yFZ_Xh_89WAgXHERioEJ$f#vr~cFfZIlQ5A-bS zi4RVrqX3hn{!zZ2^jpc>`Jin}K0t#!gJ%XsNlC?cav}BkU*)Coo;#oe*5HvJC z8|f-(nL>BQG(IY0Ok!Bs)?n)cX>PVMZLZM`IR8ZdFzp*;kKGD%Cf`4!yY7 zZzCNN7(7|HOm9n39vUfIb5_*vuiqm9Y8B&dB7@9;9T4N-1SJHp73!?Z1K|Prd(6|A zZ)3L-=&yuV@Wq^+WqB)g@FY2Mq?0u6Dipn}$b);cVy)VmFb>BwRiPA37+aCR-RzS6 z7Sh8nBf3g3d*EV-SRtMV>cGEGzI2bc3!XbXcWXJ9TnkHgilXsK9gM+cJBJ9BvVw?4 zXq2C6aezL)Qa(Cbm17Z6M7|lHDCOUl4V=kZ$yx>4mNjR}w%hN~^g;}7R2(b*6^%ZI zWS>dgQ^y4^HOlV+J)2`46-yXW>}jB)7yJK+Z-M9Xn>G^ml#?qAv)PkUvzs48`UI_# z?<9T<(uWnAF3$7sH5QPhG26LJtsdx=&$cDMoI7j)xn{f%1AS9aum6C|8V^|gSFi_e z+6XBkPxrpLw#bTyCpye#?JF2)jqaLt$oA#3O@q{(x4t^Y%UsM`(X58m=O zFH9L+-U^*#zWy;mO_L}If0zDYFEh*1yA(ld!syWpo$n;&IW(vvWx!RLq|u&QZ+CuC z^b3m7FU@sGesfqc1z>mx)9B@Sl4DeKY(-dC@rlvy>H*x0Zw*8QT<>|tT{`Lq@c63O zOqfedCTu~Q*vzF(f|KyfI};aHo$jlT9k6ldlbp&{$)UB9X%h738oiisDPAEu4E*>?Omu~Qm;OX0(jlLD7oM5*GWR2QuT8%xk6aVP39E&x%~)XR!^$?|J4%U0knw~BFX>6k4nLju?yOE8E>#TYhYPVX%P8j(JqE92RI1#J#Kah+(GQ6It+)lcF`2rNb@ytU1mRd`LyJp;!rY?8Sw!G=QH4F& zM&upXb*$0Wp5=d-H)+M{384X=Jmmj4_VmWs)7I$jp2|V!oNA(vo`}|}iw7SiCJlY@2A?Vjh0Fv?9$j88H~BNy!5L~1b6;e)9D1AtLw2>1nrQK=P6u$nlG z4e6Hb>LXuYR?mN1p=bjbpcqWrD)F&K=b7r%PD){jH8^(*p$OM+ks7cb;zHi1=NFcZ zaDgxa+tC)MFu&sX+gs%}Rpp$Hz+PGirAP`3q4A_z)3)mf25w~=R`q*V?eS}kTfokE;b<3^8 z?i}o}0FN>R`3~xPFN7gI@ujc@^bX&0>0`m&XyB?dQ6RY{48Tge@Xc!yvvIAB4QkE`}LiBRzC6J%@zb(^!@*3?AXwS5akJh@N;8^y*P3TQyEl#&_x^4xup4%4Cu% zVUV+^^6ISK0Ho)C4kMP(U5WJ%CjZbfZT20+r<$JibpYq%;xenrIL3Cw8viZWd7V}f zezc=WjQb62n^St>n6c47bLko$8ep1!uqLM&S(DZ44)-v~Qka2Lj(S>Ps>AxucT8$bu$Afz znI!?ngy*}$zvK&x1qze`h3Qj{`t34pD%xdICUj_%srFxL9+SK?r%OiVihL&O<=OsC zW-5hw7=x(0LJ}j9~<~B6+r?EL0k&6V#3li*+yiAAQ zBg1hjaU+klOX|x`EW|}jz$I>i+z>=Ynnjd^^@K$&;jxJ$3m* z!v8#;P`C8PeHd~ssq!PD!O5rBf8h1b%{C4-DF5#@Hw{+%4`3v&RsC=EL{Ri6VB~KL zZ%#B{0XpaP&)Qn`alj{~vgM%5f6|u!fx((ijFo@BM(6HMeE2WtJbMY^FIM#LdTvCk zJU&>@-2ER7paV*+_W({yV9M%q{Xl1aBDA02-*8(aYE1SILO&G7{L8{6XUFDxv>Hu( zQahzheK6b4vm!nJVAqMEoR5s}=PiT$iqh~wo1ehcJ);(Lcd`EQc;_x7eooKR_y+xd zbB5|H?mz5zX#?|L5PH*(g0c@L|4DJ6o(Arm|KE|hTEO)GhnI~$+UsZCe`=HJ4A9~) z`!DCuc@Y-Wkt6zxOxAEe0oaRzP?*C9gFuBkId3%gDGWD&&XJlon*-&XWYIUkXC9j2$1~|u zH0&hq=E0HbF8~V0=BcK^usNqQ{43Dy$hk>eY)G6%plyAV8x{f%osDrLYk`i}&%UjL zmoQ9heXL>>MRY^*>Y&J({>rD)@)_nWdY&M_$mSj8@~xIM!;kN8OQug{Lj$(p;(43t zN}E_KN-uDkTXoAc%Sa!~qx10Gcq>X{Nq&GKKracWZ%qRqC~lhnh0*0uBWA-`LLqGC z4W7&WJlJO|{hHQU+Kn*f}RbQNWwZX>yw$>U3$5+Qzk} zpUEEc%|VUOd7XBlIMi#3tRhxGv1h#9F(;aZdV@=f{kZSB0gZs(YThxV@?J0=9Dpf+ zO}>!Om9~R2yE-VtQpFYYU9;Y}~+Wch5No38fmpZ{jsy#UvUu4<{x02uTPTP8!V2iMl0ozC5rrP>dfYqHV{F~gZ zbf35+DR_SDLLV-wN#wu+)27?jQwLPV%`}tMuPX%z-w7$6tLCg4XpHKQ#fc$;-~a;? zC99GuZN4#g-k%6pN)Db>-xr^hVh3#-#yzH}f}Ezw5q|+?KFdf!kaX4B_~7DvT+RFI zW)6#?Ty*ZVO_dd9@E2aY^X3-IHbr(N+Xd2q|8SI6p4v~t=cPW{#YJYb|NgY$`J?5w za5#W~>8ZwkNkEaUy{Gr5{m3^@ZoH{C-2U5{yRg4ZaCX0RKtrVur(XsVwFImjQ+>?4 z-+90lkgSaHB}NOAByVn^%K*Z&OyV-`;q!I}(Bkcf#Pz!Np6!XCuX3?+ecsxd5|>M^ zA1OW|>Zj6QRR-hlMAnmDR)>2d`(im-9C)-da(YsH#xi9LAOXOLnGtV%PZW(BKSC-( zEA_n34Se*1Se0Y80p5R;XC_VAC(@QkBy`}jUQe51kgZ}UkIn(E{>*;+ikD=?_51YS z^V;Wil|3GXliZ<`+>4SJ(8NZ#;NE3@-SQ^b_Q~Aw7H<ZhL=6!b8Lgx7I7Z$cyw$w+%Y5Y>D z$0c|A)Z?qG2F{{Op@EseLBQ}kee5)!biLP<0aHZ_8%lVt`G^V$T%|eVGfk*uoB#CZ zUQHYEB$6F%%#q)brY(+Y6gTspr|+cluNi7iXEw_C&PseRVDSUJ_pydOwHZ}xbd&Ri zM!wmIGpDUL)u5L1@59tbivuFre9-mnNs^26f$?*M(`LQn=5rC$v~S+WX2C}Q_Wu=n jKMn7nPF0pWsm{}-8!yIrzXd*r2RYgw`JvqI_|N|bGMZF5 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png deleted file mode 100644 index e0fb6d5cb88c90840f24e03495d072c284bf828a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5808 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 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png deleted file mode 100644 index 2784135cc495e2d3f9d942dad623ed12dc4109e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22282 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 An*aa+ diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create.png deleted file mode 100644 index 3d61af07e93d34a81e9a9735ab7c51d6da5bb523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7196 zcmeHMc{rPCyN@xg8dZZ5cK`rD)ZEPYI)7vV00OpqcJn{Ygl5a~2Lbr?D~13}-w*Trn{RzD|9BYy zs7w~&cJIhC)>3n+qZyhOh%E!hc_ow zqx+luigzXKznD6_bSyx@YS$MNmB9nbVkU>YK8Sx$E}Bm}mXoqa`h@iL9D8vKK>O=@ z48`5$+xNSN!1vt4HSmkyfSwehS9C`v))#~Na6oDmPF{^ieFDs2;uih*B3D>@UCQRjk5li4z%H zTB@KeEJWl(xty)I5L-Exb0A^nG^lZ|i9J|8J4DI~j9$%QI5e~Ephu3|qC-1&I!+|l zBgVs((l;Nuac;ffbSmWqlQ6DuX45uwsIA$w*cD12ZcmmamgPJ=rXBwD433BfI!Ir$ zgPNewYXsIf+yUcq$NJK8Y>swdu8g!ajM>a()wj(rh8i}n>bf3xj4e*p%bzO_!E6*-=bgU9WH54V5d3i7uTWtjplF&?j!~GE8Txi1nGEkNz;?bSIk^*XHwXpGA4;s?uKyNY&lppcXOh39eIhFO`dsT z-1Ip7nv7fB5+zx0*POZCK(r=M`?&1^H%isboJPHDlV)L3;Cm(oH$0RB7GXTJVS#0EB zPk`oIKjLKscp_)Y7hogvBW3kux!QBDyYGmoF;UKpgti9twzdW{Yxz^c+S*#ZsEk&9 ze}Dg?OSv-^8e(K*G;$HJ-{uR*EF2=PAo%lG1N}6w(+!`@4F-iiYkwCby)XX8&I@e)&DQ=~C8JI3@LOt%b)#V_qX|Z@7Jan$l zPUxe!as9!-*AEUI6LW)(W@S|S5*xw2%do|D%`rqZ~qoSpbtX}c>c+I%pp||IO z03hE~j#A>|^Bw@OIU&xlJA3vP08o^=hxI1w@ZYoG)M59jJcv?k%~Qjx6p`OD;8TKt zf$bkNPUku!QAWGr-Me>-H_Q2}!wCdJ;_3la`*RC%+%nHQ_Muxl=pKmGzS`yLeNRTeO%F>O(Vu7xhld6{?o<;WnCR%}2<=@K@1l3B z%ZzqbjXe)?jMYko0b+uW=lsWImQTuqQvs;XP)CeLNd;Rc5=b}~SR;8UFNA1(yB zw-kOCDI1Dzvz2KU>%0xG*_vyp1(STH-Y|wMJx3~gjUblL0v3F_BUP9=HlE4u-$FF4 zqTA}T(=j7;kkQx;xhP_^?8e!jHsJZJcm@uc2WvkaRb>Ud4plp+rWvV=;zmtTq^i_Y z7h2*9;pVrHW^$69k9`D&sgN!fzNOl8W_4PnPBY} z{<&;~b(=-A%`4UKPlbu78Kc_kOv-nKb2gVvaTO-FSJ=SEQm;B+%?(Sv87yuNqMlB- zAAY)EgwGZ(0xvq{ydaaKVka`&uv;oR*rqsC0FwOFKTzyNBa1=2yvgj;uRF6J54wh$ zB-}6drS|)dk$3VsUmiV5m}_F?w2u+@p>((X7@sR);DQmugAuL`!ME)(ALvYb|3a9s zzsQhOiEsdncH(t&kzL`c4HQ3KQFmWoyFkzK8+w?|1}%kTPhsynlm%SoP* zV-mLE5;}ES+)8~VneIK?cZ;dx!>+6q{6r8@Hf#VALF;A+#n1k@X_DQ~U-sHO&(TN3 zMuf~O!$}p;H59Q@g&89;21Ov?vnIF&biG7t!_^i^ZiktWwtxlnq=oiCPvkZvcGd%k zV`E*1x&kh_(vn}yIk{=_ZjugkqFLi*1P{oKOeO4|3D04n8X-vzzFc=!uc2QXq?4MI z5vh`5=G2(xsgk;1QN+MbeiJw8Ipr&Mk8;#j4NL!2XC!E;&>@Rr z-H6~u`J}VHef7Tr?@llR;Y+RDD=O*@|EOx9dF~Feu(9reqM(_-`N_*A?yz>bR4jBX zTX+A00la9%J!|iO#{BEq^;BDaQ%V<*|InGPq_o%|0h;0Cc(BEjQ+ITAbsceCAmsXB zX~5RXjANu5)J-FShOLIrEKRnKSV7hctf(0w&WhV_<|;1T@}5VAkQYWl^ zie;5oeZSMKtXTaXRPFQQluHO8?s5IW>-;!&0=V}MDn5v zk!Ctw>)_jPh$5CePr)ot#8j{{N!AaL@(yd(+{H0G_D)mS@|R_Mz{S5$rTEI@5vZJ~ z%X0C&a`xIFh?f@M)x|FxMS9@(Soz8V=!Xh)^p)dsaN`i6E|HQ}*E#JOpLNEJqU3TR{_vO3sZPT{suG*>W zmwMbw$Wn@26fREpK}w|0>MM0*=MDqWETfQjjUqW;z!+!uxp*}!kZ$^qa|&toMdEWwBNHgsQICa*!6OU>D&=BcZf>CFD5g3 zM^0i>j&YO9Jku?CiFNe1+$8XI;ZY=VD|ivbv_plH)>tg-di!!6mh65l(1Whk+1X@> z_cyrX`@=PFJxa=O#=nkDyK7i(k$JkeYt>6KI#O7YLE&0~A*+~cGKB2lp}s=1tGz_F zq)y$%ZP{+o>D?ZN%`081=@QPtr4*+nHZOLhCG!VvV6Q?VJ&DWmb(Lf!-IuQhujSjw zhLeiaJ0UZZ22u1hdxrJ`(>L?XpgY`VM<0WUmfpa;3_uoKqT^MVk&!wwxoNWSS1 z)i`1Ry=#2=cgq@rNg6s?99Lk({fYSgui>ZZ-hU5{(*;Z;_cb_gkN==Ac$e(=CD;0I z9NGmnd4+;dp?pAu@<}jsrYnQ->6HZrj|Zxv4lVN8O3Uz- zc@PzvLDd*(P76*(qoG)=0jS&*_X$L@FeP!93n^*J^ncO+`swmEs5bwn*pU7KE zB%F0sPLE_U#vHR|A!7NR9l9DCzu1>K%``MLRF#4VI;w(x2@)(rzNk<>{LA=^0IUCn zb%Sa$!n-}(3@SYBdC&YgUln)(UwKst{j}i5NAEUh9xG_6+)lno*D{#Ub)#G}ud@pR zzs-lDQ%*Gl)RXnZ7*gn!^6B5ONbr!|97TXqT7L>Ul_v_x=>jvGv$spEdQKYRkRcWO1z>cz_ zefgSS_uSyHV!qdzcTxSEu}|vSTWkLKnj|Ch!C8J+Nz^MnWeOd|g<$s7s--*go+osk zsw9;Vp(A$x3j8m0*l`yv4M!QxE)$7ozX?;D(|s!_2{SF2xgwVJvwI-`tUo_p@qfo0e*@qFd$Z zjcr1j6Q^Dze=&j4BJOtab%pP1zD7`eYMEA^ULUdk#<@PoLvgha4IF!-=3M0&U9ekC z^0&tSz{GGgX^tmR^7&6HK=Yq5{(qGI7P~*{->O6Lq7BVHSdOChXfTO+0`4o1b#8p! zp<~(xV7@*7YQZll>}2IoI{AFGR*2u;MDKv{#u36&iwGY}wSlsS58qL>FZHYG$8k>_ zC^@Jz6k>PyhaZCZnjq*`h43kfHKrn?4GrjVU|nJDdYzj(+RB(kgQt8GI@J;^OKo~? z)*Qn^Mu%=bO$*rGpgT5e)pgZ`vH0kFfz+~b5YFF)i&T%Px<~f1riQD7jUT*F`^vbD zK02PBEQ&R1`#kH*=%Y3ZotscKgVBD=&{4G}-VRecNx^v-1X0L;KY#;mZ*PxPd3Q@c zcg(x5riWUlx!lV67@A1tmz)yK8HlT8Afw)AVMHgGLxLLlrw+D(X z*SW-Q_Fze^ZCbzq$YL4tlTk-q&H7&<8?lQ?%1 z2U#Au^;yhbq$OIJJ-Pj;gA~ zeD~gAR+;G8N#Z;5yqUtB+Xj>Tk#n2x6C@?s8k}uqPE*`EGkHojo&|5HT%D_i(z!&h z>te~E;EC_=Z&WcuvH?tqU< zJ5!@0YlW$$p<2G+7h@+MkD~Mq;b%RJL4>~ZxwHA!$3uC06MfFkUEoc$ey;(6v ztBM@CUbCyvj8SNTY)UR;Bj$0`#sG^J0u?cq)lUB5;-@+5>7D#Rdpw$bz+V-&NSQ70 zJ5Gzhn|ibJWU?vTXM8}e{gan0X*p;h*CsK@#|R(#>Jp1laIy{(#c3s2Bb z8q>zhaw}^G*9$1z$O;yeUWR6`pg__Vn>+WJ{Y<0EiLBvB8(^fHzc0yYf_s5m$!mJ8 zsKcf<`HTj@0ySv;F^X|L0=x*m0Z1MDUO7Tl)SWj=zfJzZ%y&bZODrUMm8Ag6pL< zjk_!#3Vz(Z;CMS+{b1P#ihgEf)IgZ*Q3C7?ch0cF^s%-XcDvd$z&?W82I#BX>JM$E+ z^xlb`%|^UNQ2S0dBN;}cS%skhyA69Jyay`v$ZiGUT(( zz04w(M?GFI*OFbEfT32CeU*Ox?EhyEy*@nJVSE_`GMx42^K2O1W9yv5tUTV?MfPb5 zERPqj$Errgj4(K5YCDW_`wbsiTJl;_y{GJW4?Dewj8lN|-a=UExj!v7oMnA*(C1z# zQ*6`+(DQRMq)v@D?i#D)ks(ES9!*;H_-o;GZ_eIU#hcwa`@aIBz~Pvl^a}L*Z?- z$?9R4&FV8u^@+aFJ9vBGI*Ju>1mz0s}kh_j|eROilntX@z% zk5|IB6Cirh# mSLx)W$CW+iYOM^OfJ67>+HjXXjQ@`wz}&>j7-Q&u?>_)&`)5G_ diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-edit-multitenant.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-edit-multitenant.png deleted file mode 100644 index 83ce5da068ef44ccea27dc074c4789f5c556684a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32504 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

$mIo=}eKhqt(3h-PPfNjq!5l_0i%I1)ME#0#l*} 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 JC{6pA{{`JEUfBQu diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-get-appid.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-get-appid.png deleted file mode 100644 index d18950bfd179722a1b4a0081723f38ccd7c89b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10830 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 L092`I8}YvYQ)rLe diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-select-permission.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-select-permission.png deleted file mode 100644 index 7f5fb81063e1864ac329cbc2b99b8557414ea9b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30641 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 diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md deleted file mode 100644 index b71d2fe199..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Collect investigation package API -description: Use this API to create calls related to the collecting an investigation package from a machine. -keywords: apis, graph api, supported apis, collect investigation package -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 12/08/2017 ---- - -# Collect investigation package API - -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - -Run advanced query. - -## Permissions -Application needs 'Run advanced queries' role. - -## HTTP request -``` -POST /advancedqueries/query -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Query | Text | The query to run. **Required**. - -## Response -If successful, this method returns 200 OK, and _QueryResponse_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://api.securitycenter.windows.com/advancedqueries/query -Content-type: application/json -{ - "ProcessCreationEvents -| where InitiatingProcessFileName =~ \"powershell.exe\" -| where ProcessCommandLine contains \"appdata\" -| project EventTime, FileName, InitiatingProcessFileName -| limit 2"​ -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 200 OK -Content-Type: application/json​ -{ - "Schema": [{ - "Name": "EventTime", - "Type": "DateTime" - }, - { - "Name": "FileName", - "Type": "String" - }, - { - "Name": "InitiatingProcessFileName", - "Type": "String" - }], - "Results": [{ - "EventTime": "2018-07-09T07:16:26.8017265", - "FileName": "csc.exe", - "InitiatingProcessFileName": "powershell.exe" - }, - { - "EventTime": "2018-07-08T19:00:02.7798905", - "FileName": "gpresult.exe", - "InitiatingProcessFileName": "powershell.exe" - }] -} - - -``` From f5a9b10da0d6e64c85c5ec4fc18ad7c02eb9dc97 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 24 Jul 2018 19:44:08 +0300 Subject: [PATCH 003/201] Fix link in TOC --- windows/security/threat-protection/windows-defender-atp/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index ae7a4b8df7..7169b049ce 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -98,7 +98,7 @@ ### [Use the Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) #### Supported Windows Defender ATP APIs -##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection) +##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) From f95887b0afc6b5d51880ce24d44d4b9e1a057544 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 24 Jul 2018 19:51:10 +0300 Subject: [PATCH 004/201] Fix app creation page --- ...defender-advanced-threat-protection-new.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 26c7a3be1c..fbe58f110a 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -55,28 +55,32 @@ Before using the APIs, you’ll need to create an app that you’ll use to authe 4. Click **Settings** > **Required permissions** > **Add**. + ![Image of new app in Azure](images/webapp-add-permission.png) -5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. -**Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. +5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. + + **Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. ![Image of API access and API selection](images/webapp-add-permission-2.png) 6. Click **Select permissions** > **Run advanced queries** > **Select**. -**Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! + + **Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! ![Image of select permissions](images/webapp-select-permission.png) -In order to send telemetry events to WDATP, check 'Write timeline events' permission -In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission -In order to run advanced queries in WDATP, check 'Run advanced queries' permission + - In order to send telemetry events to WDATP, check 'Write timeline events' permission + - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission + - In order to run advanced queries in WDATP, check 'Run advanced queries' permission 7. Click **Done** ![Image of add permissions completion](images/webapp-add-permission-end.png) 8. Click **Keys** and type a key name and click **Save**. -After you save, **copy the key value**. You won't be able to retrieve after you leave! + + **Important**: After you save, **copy the key value**. You won't be able to retrieve after you leave! ![Image of create app key](images/webapp-create-key.png) @@ -84,13 +88,11 @@ After you save, **copy the key value**. You won't be able to retrieve after you ![Image of app ID](images/webapp-get-appid.png) -9. (**Optional**)Set your application to be multi-tenanted +9. Set your application to be multi-tenanted -This is required for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). -This is not required if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ + This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). + This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ -Click **Properties** > **Yes** > **Save**. + Click **Properties** > **Yes** > **Save**. ![Image of multi tenant](images/webapp-edit-multitenant.png) - - From 5590b07a7267c7d06a03667239f6f8a785963dfb Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 24 Jul 2018 19:55:12 +0300 Subject: [PATCH 005/201] Small fixes --- ...-apis-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...ced-query-windows-defender-advanced-threat-protection.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index fbe58f110a..b87ce4a973 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -1,5 +1,5 @@ --- -title: Use the Windows Defender Advanced Threat Protection exposed APIs +title: Use the Windows Defender Advanced Threat Protection APIs description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query search.product: eADQiWindows 10XVcnh @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 10/23/2017 --- -# Use the Windows Defender ATP exposed APIs +# Use the Windows Defender ATP APIs **Applies to:** diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index b71d2fe199..fbb6f4d75c 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- -title: Collect investigation package API -description: Use this API to create calls related to the collecting an investigation package from a machine. -keywords: apis, graph api, supported apis, collect investigation package +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy From 8f54c5dc387bc0b17c46d9aa0a314dbcc283a806 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 26 Jul 2018 14:31:30 +0300 Subject: [PATCH 006/201] Small fixes to Advanced Hunting API --- .../windows-defender-atp/TOC.md | 2 +- ...defender-advanced-threat-protection-new.md | 7 ++++--- .../images/atp-azure-new-app.png | Bin 63737 -> 32730 bytes .../images/webapp-add-permission-2.png | Bin 16217 -> 11291 bytes .../images/webapp-create.png | Bin 7196 -> 7790 bytes ...ows-defender-advanced-threat-protection.md | 7 +++---- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 3112131f2c..847153e0ba 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -97,7 +97,7 @@ #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) -### [Use the Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +### [Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) #### Supported Windows Defender ATP APIs ##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index b87ce4a973..939a5c4859 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -1,5 +1,5 @@ --- -title: Use the Windows Defender Advanced Threat Protection APIs +title: Use Windows Defender Advanced Threat Protection APIs description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query search.product: eADQiWindows 10XVcnh @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 10/23/2017 --- -# Use the Windows Defender ATP APIs +# Use Windows Defender ATP APIs **Applies to:** @@ -27,7 +27,7 @@ ms.date: 10/23/2017 >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) -Windows Defender ATP exposes much of the available data and actions using a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). +Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). In general, you’ll need to take the following steps to use the APIs: - Create an app @@ -91,6 +91,7 @@ Before using the APIs, you’ll need to create an app that you’ll use to authe 9. Set your application to be multi-tenanted This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). + This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ Click **Properties** > **Yes** > **Save**. diff --git a/windows/security/threat-protection/windows-defender-atp/images/atp-azure-new-app.png b/windows/security/threat-protection/windows-defender-atp/images/atp-azure-new-app.png index a4a07d3b92216aed509e0cb12ccc484af313e2d2..4449661657915dd657ddebef3b5e772501131235 100644 GIT binary patch literal 32730 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 Oi0|p@=d#Wzp$Pz)C!TNs diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png index 24e449a94cbcd63f6fdaf4280c8c6e7d87b4983c..44708818effe2899ab49e1d7b9b474e885fa1658 100644 GIT binary patch literal 11291 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 QAU5disq@wZOTXm*1xFDIRR910 literal 16217 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 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create.png index 3d61af07e93d34a81e9a9735ab7c51d6da5bb523..a091db0189f09c9d56b923745a72ad6d47398106 100644 GIT binary patch literal 7790 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 J#Y>aG{{W3d)^Gp- literal 7196 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 diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index fbb6f4d75c..f416c36d1a 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -13,18 +13,17 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Collect investigation package API +# Advanced Hunting API **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - Run advanced query. ## Permissions -Application needs 'Run advanced queries' role. +Application needs 'Run advanced queries' role (See [How to select a permission](exposed-apis-windows-defender-advanced-threat-protection-new#create-an-app)). ## HTTP request ``` @@ -35,7 +34,7 @@ POST /advancedqueries/query Header | Value :---|:--- -Authorization | Bearer {token}. Required. +Authorization | Bearer {token}. **Required**. Content-Type | application/json ## Request body From f69885646f8a39cb83948ce6bc5d72427bac7ce1 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 26 Jul 2018 17:41:20 +0300 Subject: [PATCH 007/201] Add page for supported APIs --- .../windows-defender-atp/TOC.md | 4 +- ...defender-advanced-threat-protection-new.md | 5 +++ ...defender-advanced-threat-protection-new.md | 44 +++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 847153e0ba..10b1f2f16b 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -97,8 +97,8 @@ #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) -### [Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) -#### Supported Windows Defender ATP APIs +### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +#### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) ##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 939a5c4859..21ca382b0b 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -97,3 +97,8 @@ Before using the APIs, you’ll need to create an app that you’ll use to authe Click **Properties** > **Yes** > **Save**. ![Image of multi tenant](images/webapp-edit-multitenant.png) + + + +## Related topics +- [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..0fd84c4e64 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,44 @@ +--- +title: Supported Windows Defender Advanced Threat Protection query APIs +description: Learn about the specific supported Windows Defender Advanced Threat Protection entities where you can create API calls to. +keywords: apis, supported apis, actor, alerts, machine, user, domain, ip, file, advanced queries, advanced hunting +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 04/24/2018 +--- + +# Supported Windows Defender ATP query APIs + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-supportedapis-abovefoldlink) + +Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. + +## In this section +Topic | Description +:---|:--- +Advanced Hunting | Run queries from API. +Alerts | Run API calls such as get alerts, alert information by ID, alert related actor information, alert related IP information, and alert related machine information. +Domain |Run API calls such as get domain related machines, domain related machines, statistics, and check if a domain is seen in your organization. +File | Run API calls such as get file information, file related alerts, file related machines, and file statistics. +IP | Run API calls such as get IP related alerts, IP related machines, IP statistics, and check if and IP is seen in your organization. +Machines | Run API calls such as find machine information by IP, get machines, get machines by ID, information about logged on users, and alerts related to a given machine ID. +User | Run API calls such as get alert related user information, user information, user related alerts, and user related machines. + +## Related topic +- [Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) From 07d0052b4f3fdd88b51d8f09ea9cf96d2fa7b14a Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 26 Jul 2018 18:10:25 +0300 Subject: [PATCH 008/201] Add token validation --- .../exe/AadTokenGetter.zip | Bin 0 -> 155623 bytes ...defender-advanced-threat-protection-new.md | 62 ++++++++++++++++++ .../images/webapp-validate-token.png | Bin 0 -> 56018 bytes 3 files changed, 62 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/exe/AadTokenGetter.zip create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-validate-token.png diff --git a/windows/security/threat-protection/windows-defender-atp/exe/AadTokenGetter.zip b/windows/security/threat-protection/windows-defender-atp/exe/AadTokenGetter.zip new file mode 100644 index 0000000000000000000000000000000000000000..3050bec7a3dee0b9c0f1524165c76d2dc909db61 GIT binary patch literal 155623 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

    r- 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

    m*?*31V31G$;17-{dRxcfWD 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 z zrGM)M;AqX7E7A5pr7yr>0vtC6=Rm?*uV~0(F3>yu_7)v&8bc$;N(CAX@=^px3&TEJ zSc2q1wmN!KNgE-{fen9+r%Fpz`RDVm`vxaDFbDQU=u96cC;IMrqMx^XRHZLc@w3;JE)1tU^ww8Am#2+{che2Gt5ANR-Q-6O zWWoE(f(}a-$Fg%cZG-6&uB)TblMLdgWn0sm5Kf5R&KjA*65gM&oM+tzoro;vHV(Cd z;rZ?_i7lbP;*~W|=9Tl>QD4Qq(X+8^FU#CiyYPtQJDg3(f@H+9Vb)T>jKZHC>o>og zVLujH2h6_uBad^{r=sykD>hz~wyZya;A{8}DAT&brp`lNUykj2-BP{*;Jg4NhnfN zbWcM60YS|jQ&8x#(LLS^u3nB?`aX2zxk;KL7=Xlj>~Ay){~q}C$8z%nCrVrK#`Wt@ zYHMEyw3~}dVG?AI=7ohD#A2V~q>2L&5~Db->l~mLDLGk3PA<7kYxcgJnhIib5TIS! z#A1;(a9&+{>Lg|%5lg*mIhWd&-lf{1o)eySQRZ1@)#r}9j75f}@6{s}bC2#O{)}`D`;edOL3b47>fPnMHF8o4ScqJbedC+Ow^dc&# z#{&i*_n&<&*F5;IDCol{uqvDOv&oxQQEyv| z*SGRRqOR|{+UtWuM*X^CB zS)e!ThMQh>!^NT`Y3GzenD=*QBKhHE>Yv(-oxQXX_3&frJ-h7F7soE)DS(YEi4sSn zz(;J?`)AMu7jvC^6@AU(;7KBqjj2}xtB(#P~FU9H0Kd{rahsi@|<2JZvrvK$m#T^ZIgn9v^&|?onXn#CwXa8JMhV&!23>Jgc#1h&~P(Pl~qi!Er~BZ0F>J zU)yDF5A_TohN36Uj4ps9HcTxIi5x#8rz-GP7DcP%t<~6L)$U&Ml)~wz1KdYTE_sn4 zC`EZaM=;DJN;g=}X1ggf$;>qy;wwM5%cuy-X{QOAcWHn1@uIaiwi}!i!i?1=H~nPe z@7F?0UJ_77hqC`N)+*dHikTa|l{#9E{U|^3upwJPUuN_0IW5+@_Nm5=<1+?EMnv~b z_TOPvr^>h|%YZky-5eKWhS)h`9YZK60_eZ2*aT>qRyrlemkSKQN z{x%}+2AY|vys+Cx205ei!jBdGDi>Xc+gB+{m7ggTficgtEN>7092kS+pvPB;$Bwj7tE3Lo=+ZyoskS0$j2%B%Gu*^%PqT%x zX5Zsuh#)8cT}~q^LySiStrm%c$bG$=&>~KkfpTRe&h5<77`_hQRy+L@PfVSo`R5^y z_No`i`1E3_{jk98EmoYO!_f$EjNeL&WX?u%Gv*wZNJF8r2>`BGqfnxUX5C=E-q#*a z|C2zEV(S$RqH2QFDO*nQSC8U~E!oIm`A6ePXJLdkN9OqLNbLXu`FnLlH`bvqmn^H$ z10C~?$ZB2*%5=zHEMu)IM!uv=fzD3(X;NI?@T?Ko$zI1GRhZ-(gZr$kLeeSqu=ymqi>3{&Yu4p2mKcEbHtj}JmUzL{d~5;ecf?k$b?8Kz%6w}ged*^V z9?7F2S^#d~X##s5cJ+NvH}G*k-@%HV>D_fF#Zcu}|5-}@`i%oSyXOC(t^Z$Please see PowerShell documentation for full understanding + +- Run +``` +Import-Module \AdvancedHunting.psd1​ +``` +where is the folder in which you extracted the zip. e.g., Import-Module 'D:\Dev\AAD Auth\AdvancedHunting.psd1' + +## Get token +- Run +``` +$aadToken = Get-WdatpAppToken -Tid -AppId -AppSecret +``` +where +- : ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +- : ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +- : Secret of your AAD app + +## Run query + +Run the below + +``` +$response = Invoke-Query -AadToken $aadToken -Query "RegistryEvents | limit 10"​ +$response.results +$response.schema +$response.results | ConvertTo-Csv -NoTypeInformation | Set-Content file1.csv +$response.results | ConvertTo-Json | Set-Content "file1.json" +``` + +- Line 2 and 3 will show you the results or the schema in the PowerShell window +- Line 4 outputs the results of the query in CSV format in file file1.csv +- Line 5 outputs the results of the query in JSON format in file file1.json​ + +If you want to run complex queries (or multilines queries), save your query in a file and run the below commands: +>Replace C:\myQuery.txt with the path to your file. + +``` +​​​​$myQuery = [IO.File]::ReadAllText("C:\myQuery.txt"); +$queryResults = Invoke-Query -AadToken $aadToken -Query $myQuery​​​ +``` + + +## Related topic +- [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) +- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index 9171ffb5a6..a86e132470 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -22,8 +22,14 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) +This API allows you to run programatically queries that you are used to run from [Windows Defender ATP Portal](https://securitycenter.windows.com/hunting) -Run advanced query. + +## Limitations +This API is a beta version only and is currently restricted +1. ​You can only run a query on data from the last 30 days +2. The results will include a maximum of 10,000 rows +3. The nu​mber of executions is limited​ (up to 15 minutes every hour and 4 hours a day) ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -61,6 +67,12 @@ Request Here is an example of the request. +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + ``` POST https://api.securitycenter.windows.com/advancedqueries/query Content-type: application/json @@ -110,3 +122,17 @@ Content-Type: application/json​ ``` + +## T​roubl​eshooting: + + - (403) Forbidden. + + If you get this error when calling WDATP API, your token probably does not include the necessary permission. + Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. + If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) + + +## Related topic +- [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) +- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) From 97fde0fc12dbe83574cadbe9a518ff7f5fa5ff94 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 16:26:04 +0300 Subject: [PATCH 013/201] PowerShell page --- ...ced-threat-protection-sample-powershell.md | 79 +++++++++++++------ 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index fd0ad63a0f..4a68c2a45c 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -17,58 +17,85 @@ ms.date: 12/08/2017 Run advanced queries using PowerShell. Please read about [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) before. +In this section we share PowerShell samples to retrieve a token and use it to run a query. + ## Preparation Instructions -In this section you will find a PowerShell module that retrieves a token and uses it to run a query. You can download the module and use it to run your own query. - -- ​​Download and unzip 'AdvancedHunting' PowerShell module. - Open a PowerShell window. - If your policy does not allow you to run the PowerShell commands, you can run the below command: ``` Set-ExecutionPolicy -ExecutionPolicy Bypass ``` ->Please see PowerShell documentation for full understanding - -- Run -``` -Import-Module \AdvancedHunting.psd1​ -``` -where is the folder in which you extracted the zip. e.g., Import-Module 'D:\Dev\AAD Auth\AdvancedHunting.psd1' +>For more details, refer to [PowerShell documentation](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy) ## Get token + - Run ``` -$aadToken = Get-WdatpAppToken -Tid -AppId -AppSecret +$tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here +$appId = '00000000-0000-0000-0000-000000000000' # Paste your own app ID here +$appSecret = '00000000-0000-0000-0000-000000000000' # Paste your own app secret here + +$resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' +$oAuthUri = "https://login.windows.net/$TenantId/oauth2/token" +$body = [Ordered] @{ + resource = "$resourceAppIdUri" + client_id = "$appId" + client_secret = "$appSecret" + grant_type = 'client_credentials' +} +$response = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $body -ErrorAction Stop +$aadToken = $response.access_token + ``` where -- : ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) -- : ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) -- : Secret of your AAD app +- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +- $appSecret: Secret of your AAD app ## Run query Run the below ``` -$response = Invoke-Query -AadToken $aadToken -Query "RegistryEvents | limit 10"​ -$response.results -$response.schema -$response.results | ConvertTo-Csv -NoTypeInformation | Set-Content file1.csv -$response.results | ConvertTo-Json | Set-Content "file1.json" +$query = 'RegistryEvents | limit 10' # Paste your own query here + +$queryServiceUri = "https://api.securitycenter.windows.com/advancedqueries/query" +$headers = @{ + 'Content-Type' = 'application/json' + Accept = 'application/json' + Authorization = "Bearer $aadToken" +} +$body = ConvertTo-Json -InputObject $query +$webResponse = Invoke-WebRequest -Method Post -Uri $queryServiceUri -Headers $headers -Body $body -ErrorAction Stop +$response = $webResponse | ConvertFrom-Json +$results = $response.Results +$schema = $response.Schema ``` -- Line 2 and 3 will show you the results or the schema in the PowerShell window -- Line 4 outputs the results of the query in CSV format in file file1.csv -- Line 5 outputs the results of the query in JSON format in file file1.json​ +- $results contains the results of your query +- $schema contains the schema of the results of your query -If you want to run complex queries (or multilines queries), save your query in a file and run the below commands: ->Replace C:\myQuery.txt with the path to your file. +### Complex queries + +If you want to run complex queries (or multilines queries), save your query in a file and, instead of the first line in the above sample, run the below command: ``` -​​​​$myQuery = [IO.File]::ReadAllText("C:\myQuery.txt"); -$queryResults = Invoke-Query -AadToken $aadToken -Query $myQuery​​​ +​​​​$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file ``` +## Work with query results + +To work with the results you can, for instance, do the below + +``` +$results | ConvertTo-Csv -NoTypeInformation | Set-Content file1.csv +$results | ConvertTo-Json | Set-Content "file1.json" +``` + +- Line 1 outputs the results of the query in CSV format in file file1.csv +- Line 2 outputs the results of the query in JSON format in file file1.json​ + ## Related topic - [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) From b4bf8944b6f30d28fa7b02530c9ffcb6dd0fb8e3 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 17:39:59 +0300 Subject: [PATCH 014/201] Fixes --- .../threat-protection/windows-defender-atp/TOC.md | 2 +- ...fender-advanced-threat-protection-sample-ms-flow.md | 10 +++++----- ...der-advanced-threat-protection-sample-powershell.md | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 2cbcc1047c..5231c2461b 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -100,7 +100,7 @@ ### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) ##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) -#### [Examples how to use APIs] +#### How to use APIs - Samples ##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) ##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md index 7ca777cbc5..6c598db614 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md @@ -59,24 +59,24 @@ You will find below a very basic flow example: ## Expand the flow to use the query results -The below section shows how to use the parsed results to insert them in SQL database. + The below section shows how to use the parsed results to insert them in SQL database. -This is an example only, you could perform on your results any other action supported by Microsoft Flow. + This is an example only, you could perform on your results any other action supported by Microsoft Flow. - Add an 'Apply to each' action - Select the Results json (which was an output of the last parse action) - Add an 'Insert row' action – you will need to supply the connection details - Select the table you want to update and define the mapping between the WD-ATP output to the SQL. Note it is possible to manipulate the data inside the flow. In the example I changed the type of the EventTime. - ![Image of select from DB](images/ms-flow-insert-db.png) + ![Image of insert into DB](images/ms-flow-insert-db.png) -The output in the SQL DB is getting updates and can be used for correlation with other data sources. You can now read from your table: + The output in the SQL DB is getting updates and can be used for correlation with other data sources. You can now read from your table: ![Image of select from DB](images/ms-flow-read-db.png) You can find below the full definition - ![Image of select from DB](images/ms-flow-e2e.png) + ![Image of E2E flow](images/ms-flow-e2e.png) ## Related topic - [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index 4a68c2a45c..fd190ebf51 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -26,11 +26,13 @@ In this section we share PowerShell samples to retrieve a token and use it to ru ``` Set-ExecutionPolicy -ExecutionPolicy Bypass ``` + >For more details, refer to [PowerShell documentation](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy) ## Get token -- Run +- Run the below + ``` $tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here $appId = '00000000-0000-0000-0000-000000000000' # Paste your own app ID here @@ -48,6 +50,7 @@ $response = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $body -ErrorActi $aadToken = $response.access_token ``` + where - $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) - $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) From b223ed8332a84e17d02dfab1246ac7e2e8351779 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 17:53:05 +0300 Subject: [PATCH 015/201] Fixes --- ...ting-windows-defender-advanced-threat-protection.md | 4 ++-- ...uery-windows-defender-advanced-threat-protection.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md index 538e981c02..843920e3f1 100644 --- a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md @@ -160,7 +160,7 @@ Check out the [Advanced Hunting repository](https://github.com/Microsoft/Windows ## Related topic - [Advanced hunting reference](advanced-hunting-reference-windows-defender-advanced-threat-protection.md) -- [Advanced hunting query language best practices](/advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) - +- [Advanced hunting query language best practices](advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) +- [Programmatic Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index a9d0973791..bccb2812b3 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -124,14 +124,14 @@ Content-Type: application/json​ ## T​roubl​eshooting: - - (403) Forbidden. - - If you get this error when calling WDATP API, your token probably does not include the necessary permission. - Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. - If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) +- (403) Forbidden. +If you get this error when calling WDATP API, your token probably does not include the necessary permission. +Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. +If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) ## Related topic +- [Advanced Hunting from Portal](advanced-hunting-windows-defender-advanced-threat-protection.md) - [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) - [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) - [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) From d59e0420a897f537aaf6ff0bb122985c5523b537 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 17:58:27 +0300 Subject: [PATCH 016/201] Fixes --- ...vanced-threat-protection-sample-ms-flow.md | 26 +++++++++---------- ...ced-threat-protection-sample-powershell.md | 12 ++++++--- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md index 6c598db614..cdb421726e 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md @@ -23,9 +23,7 @@ Schedule advanced query. ## Use case -You need to schedule an advanced query and use the result for follow up actions and processing. - -You can use [Microsoft Flow](https://flow.microsoft.com/) (or Logic Apps) for it! +If you need to schedule an advanced query and use the results for follow up actions and processing, you can use [Microsoft Flow](https://flow.microsoft.com/) (or Logic Apps) for it! ## Define a flow to run query and parse results @@ -59,24 +57,26 @@ You will find below a very basic flow example: ## Expand the flow to use the query results - The below section shows how to use the parsed results to insert them in SQL database. +The below section shows how to use the parsed results to insert them in SQL database. - This is an example only, you could perform on your results any other action supported by Microsoft Flow. +This is an example only, you could perform on your results any other action supported by Microsoft Flow. - - Add an 'Apply to each' action - - Select the Results json (which was an output of the last parse action) - - Add an 'Insert row' action – you will need to supply the connection details - - Select the table you want to update and define the mapping between the WD-ATP output to the SQL. Note it is possible to manipulate the data inside the flow. In the example I changed the type of the EventTime. +- Add an 'Apply to each' action +- Select the Results json (which was an output of the last parse action) +- Add an 'Insert row' action – you will need to supply the connection details +- Select the table you want to update and define the mapping between the WD-ATP output to the SQL. Note it is possible to manipulate the data inside the flow. In the example I changed the type of the EventTime. - ![Image of insert into DB](images/ms-flow-insert-db.png) +![Image of insert into DB](images/ms-flow-insert-db.png) - The output in the SQL DB is getting updates and can be used for correlation with other data sources. You can now read from your table: +The output in the SQL DB is getting updates and can be used for correlation with other data sources. You can now read from your table: - ![Image of select from DB](images/ms-flow-read-db.png) +![Image of select from DB](images/ms-flow-read-db.png) + +## Full flow definition You can find below the full definition - ![Image of E2E flow](images/ms-flow-e2e.png) +![Image of E2E flow](images/ms-flow-e2e.png) ## Related topic - [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index fd190ebf51..23236d1f8b 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -89,15 +89,19 @@ If you want to run complex queries (or multilines queries), save your query in a ## Work with query results -To work with the results you can, for instance, do the below +You can now use the query results. + +To output the results of the query in CSV format in file file1.csv do the below: ``` $results | ConvertTo-Csv -NoTypeInformation | Set-Content file1.csv -$results | ConvertTo-Json | Set-Content "file1.json" ``` -- Line 1 outputs the results of the query in CSV format in file file1.csv -- Line 2 outputs the results of the query in JSON format in file file1.json​ +To output the results of the query in JSON format in file file1.json​ do the below: + +``` +$results | ConvertTo-Json | Set-Content "file1.json" +``` ## Related topic From 3b16260777bbb44d83119b904ba7fc26380c3f7a Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 18:03:59 +0300 Subject: [PATCH 017/201] Fixes --- ...defender-advanced-threat-protection-sample-powershell.md | 4 ++-- ...ced-query-windows-defender-advanced-threat-protection.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index 23236d1f8b..3513749725 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -35,8 +35,8 @@ Set-ExecutionPolicy -ExecutionPolicy Bypass ``` $tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here -$appId = '00000000-0000-0000-0000-000000000000' # Paste your own app ID here -$appSecret = '00000000-0000-0000-0000-000000000000' # Paste your own app secret here +$appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here +$appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here $resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' $oAuthUri = "https://login.windows.net/$TenantId/oauth2/token" diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index bccb2812b3..1bece5bc78 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -125,9 +125,9 @@ Content-Type: application/json​ ## T​roubl​eshooting: - (403) Forbidden. -If you get this error when calling WDATP API, your token probably does not include the necessary permission. -Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. -If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) + If you get this error when calling WDATP API, your token probably does not include the necessary permission. + Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. + If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) ## Related topic From 7d4a5e830de0cf43864797a94cd8220ab01e3b72 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 18:06:28 +0300 Subject: [PATCH 018/201] Fix link --- ...anced-hunting-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md index 843920e3f1..75e77a7dcf 100644 --- a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md @@ -161,6 +161,6 @@ Check out the [Advanced Hunting repository](https://github.com/Microsoft/Windows ## Related topic - [Advanced hunting reference](advanced-hunting-reference-windows-defender-advanced-threat-protection.md) - [Advanced hunting query language best practices](advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) -- [Programmatic Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection) +- [Programmatic Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) From 8a6d1a83b5af2d5fc883490ebc34ab455823e235 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 30 Jul 2018 07:48:42 +0300 Subject: [PATCH 019/201] Small fixes --- ...defender-advanced-threat-protection-new.md | 2 +- .../images/ms-flow-insert-db.png | Bin 44839 -> 14944 bytes ...vanced-threat-protection-sample-ms-flow.md | 2 +- ...ced-threat-protection-sample-powershell.md | 2 +- ...ows-defender-advanced-threat-protection.md | 3 ++- ...defender-advanced-threat-protection-new.md | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 46c1081bfb..9b66a71dfd 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -10,7 +10,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 10/23/2017 +ms.date: 30/07/2018 --- # Use Windows Defender ATP APIs diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-insert-db.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-insert-db.png index 6017a74d89b3decbacb49d04eab9ca54502464d0..1f15b392208c5b34509433089d72e8107f0df6b2 100644 GIT binary patch literal 14944 zcmc(GWmH^SqUOPa1_A_^;7;)1ZovWsceldb2_!&p39dmCoWkARA;AiFcL_d~+dX|> z_wAl}^W&}gQL9!Jr#8Floc-<3&gXZE( JC;$MU%gRWo007J^^fCMl7W&T3J&QQ> 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 F{}*_-9K8Sl literal 44839 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 `c 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 diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md index cdb421726e..3910dce044 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md @@ -10,7 +10,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 12/08/2017 +ms.date: 30/07/2018 --- # Schedule Advanced Hunting using Microsoft Flow diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index 3513749725..87b7336181 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -10,7 +10,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 12/08/2017 +ms.date: 30/07/2018 --- # Advanced Hunting using PowerShell diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index 1bece5bc78..e90ef5ac2d 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -10,7 +10,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 12/08/2017 +ms.date: 30/07/2018 --- # Advanced hunting API @@ -125,6 +125,7 @@ Content-Type: application/json​ ## T​roubl​eshooting: - (403) Forbidden. + If you get this error when calling WDATP API, your token probably does not include the necessary permission. Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md index 0fd84c4e64..dfd76a0910 100644 --- a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md @@ -10,7 +10,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 04/24/2018 +ms.date: 30/07/2018 --- # Supported Windows Defender ATP query APIs From c279b95e42171193aa015db61d3f1b02bf4ba449 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 30 Jul 2018 07:56:53 +0300 Subject: [PATCH 020/201] Fixes --- ...-windows-defender-advanced-threat-protection-new.md | 10 ++++------ ...fender-advanced-threat-protection-sample-ms-flow.md | 2 ++ ...der-advanced-threat-protection-sample-powershell.md | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 9b66a71dfd..d33cb95b97 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -24,18 +24,16 @@ ms.date: 30/07/2018 - Windows Defender Advanced Threat Protection (Windows Defender ATP) - >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). In general, you’ll need to take the following steps to use the APIs: -- Create an app -- Get an access token -- Use Windows Defender ATP API +- Create an app +- Get an access token +- Use the token to access Windows Defender ATP API -### Before you begin -Before using the APIs, you’ll need to create an app that you’ll use to authenticate against the graph. You’ll need to create a web app to use for the adhoc queries. +This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. ## Create an app diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md index 3910dce044..8d10b02b70 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md @@ -21,6 +21,8 @@ ms.date: 30/07/2018 Schedule advanced query. +>**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). + ## Use case If you need to schedule an advanced query and use the results for follow up actions and processing, you can use [Microsoft Flow](https://flow.microsoft.com/) (or Logic Apps) for it! diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index 87b7336181..7e59c9a9ef 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -19,6 +19,8 @@ Run advanced queries using PowerShell. Please read about [Advanced Hunting API]( In this section we share PowerShell samples to retrieve a token and use it to run a query. +>**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). + ## Preparation Instructions - Open a PowerShell window. From d7053a02f4b1fb83e52d27ff61f649b204559859 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 30 Jul 2018 09:26:11 +0300 Subject: [PATCH 021/201] Improve documentation --- ...defender-advanced-threat-protection-new.md | 35 +++++++++---------- ...ows-defender-advanced-threat-protection.md | 6 ++-- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index d33cb95b97..cd7aa85cea 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -97,6 +97,21 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of multi tenant](images/webapp-edit-multitenant.png) +## Application consent + +You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. + +You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. + +Consent link is of the form: + +``` +https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ +``` + +where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID + + ## Get an access token For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) @@ -117,7 +132,7 @@ The token is displayed in the application window ### Using Curl > [!NOTE] -> The below procedure supposed Curl is already installed on your computer +> The below procedure supposed Curl for Windows is already installed on your computer - Open a command window - ​Set CLIENT_ID to your Azure application ID @@ -125,9 +140,6 @@ The token is displayed in the application window - Set TENANT_ID to the Azure tenant ID of the customer that wants to use your application to access WDATP application - Run the below command: -> [!NOTE] -> The below syntax is for curl in Windows. For Linux you should use $CLIENT_ID​ instead of %CLIENT_ID% (same for CLIENT_SECRET and TENANT_ID​) - ``` curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice​/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID​%/oauth2/v2.0/token" -k​ ``` @@ -145,20 +157,5 @@ You will get an answer of the form: ![Image of token validation](images/webapp-validate-token.png) -## Application consent - -You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. - -You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. - -Consent link is of the form: - -``` -https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ -``` - -where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID - - ## Related topics - [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index e90ef5ac2d..e2d9e6a826 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -126,9 +126,9 @@ Content-Type: application/json​ - (403) Forbidden. - If you get this error when calling WDATP API, your token probably does not include the necessary permission. - Please refer to section "Verify you can access WDATP app using your app" in Create an AAD app. - If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in Create an AAD app) or you did not authorized your app in the tenant (refer to "Application consent" in Create an AAD app​) + If you get this error when calling WDATP API, your token probably does not include the necessary permission, + [Check the permissions](exposed-apis-windows-defender-advanced-threat-protection-new.md#validate-the-token) included in your token. + If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app)) or you did not authorized your app in the tenant (refer to [Application consent](exposed-apis-windows-defender-advanced-threat-protection-new.md#application-consent)) ## Related topic From e941c176977d82437d681a2e1753d8b43d765096 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 30 Jul 2018 10:24:52 +0300 Subject: [PATCH 022/201] Fix copy-paste issue --- ...ows-defender-advanced-threat-protection-sample-powershell.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index 7e59c9a9ef..fdbaa62d91 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -86,7 +86,7 @@ $schema = $response.Schema If you want to run complex queries (or multilines queries), save your query in a file and, instead of the first line in the above sample, run the below command: ``` -​​​​$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file +$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file ``` ## Work with query results From e608d10f1d45d631c3ac0c1163e73597b3989fbd Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 31 Jul 2018 13:33:33 +0300 Subject: [PATCH 023/201] Add sample to get token using C# and PowerShell --- ...defender-advanced-threat-protection-new.md | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index cd7aa85cea..b687e0a4bd 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -116,20 +116,39 @@ where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) -### Using dedicated executable +### Using C# -- Download AadTokenGetter.zip application​ -- Unzip the application -- Open 'AadTokenGetter.exe.config' file and fill the 3 required settings: - - tenantId - - appId - - appSecret -- ​Run AadTokenGetter.exe +>The below code was tested with nuget Microsoft.IdentityModel.Clients.ActiveDirectory 3.19.8 -The token is displayed in the application window +- Create a new Console Application +- Install Nuget [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) +- Add the below using + ``` + using Microsoft.IdentityModel.Clients.ActiveDirectory; + ``` -### Using Curl +- Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) + + ``` + string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here + string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here + string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here + + const string aadUri = "https://login.windows.net"; + const string wdatpResourceId = "https://securitycenter.onmicrosoft.com/windowsatpservice"; + + AuthenticationContext auth = new AuthenticationContext($"{aadUri}/{tenantId}/"); + ClientCredential clientCredential = new ClientCredential(appId, appSecret); + AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, clientCredential).GetAwaiter().GetResult(); + string token = authenticationResult.AccessToken; + ``` + +### Using PowerShell + +Refer to [Get token](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) section in the Advanced Hunting document + +### Using Curl > [!NOTE] > The below procedure supposed Curl for Windows is already installed on your computer From a20f19e13890316f735cfc041864a4c7e2bd91d0 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 31 Jul 2018 13:36:56 +0300 Subject: [PATCH 024/201] Remove exe --- .../exe/AadTokenGetter.zip | Bin 155623 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/exe/AadTokenGetter.zip diff --git a/windows/security/threat-protection/windows-defender-atp/exe/AadTokenGetter.zip b/windows/security/threat-protection/windows-defender-atp/exe/AadTokenGetter.zip deleted file mode 100644 index 3050bec7a3dee0b9c0f1524165c76d2dc909db61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155623 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 From c989490a91ef9c6de6efeac7e4141afc94e0466b Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 2 Aug 2018 10:49:05 +0300 Subject: [PATCH 025/201] Advanced Hunting API - Add samples for Python --- .../windows-defender-atp/TOC.md | 1 + ...defender-advanced-threat-protection-new.md | 6 +- .../images/webapp-add-permission-2.png | Bin 11291 -> 14912 bytes .../images/webapp-create-key.png | Bin 22282 -> 28850 bytes ...ced-threat-protection-sample-powershell.md | 7 +- ...dvanced-threat-protection-sample-python.md | 139 ++++++++++++++++++ 6 files changed, 149 insertions(+), 4 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index f011865f79..425c6b1128 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -103,6 +103,7 @@ #### How to use APIs - Samples ##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) ##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) +##### [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index b687e0a4bd..3541fd8546 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -146,7 +146,11 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ### Using PowerShell -Refer to [Get token](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) section in the Advanced Hunting document +Refer to [Get token using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) + +### Using Python + +Refer to [Get token using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md#get-token) ### Using Curl diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png index 44708818effe2899ab49e1d7b9b474e885fa1658..9c00076cfdddd8010bba326ed4ae2d93888851bf 100644 GIT binary patch literal 14912 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 JU~buk|1a+D^>qLM literal 11291 zcmeHtX;@Rq)^1P%rD+5eg=SK_+YyP#U>F1$6m3wD8Dvs~Fq4R3POza7R0g#h5C}wC z8InK{kuV7XLDDiLD1-ZZean{Va5lLLW3-<~~V?Fa&GpnyP9n>Nb;Es&Te{=h$}C`TJh5P_mT3p{Ls zTAZ^0foih9S-B()Ja2)W@rVL}6gt*_rO1&LS3sb{kI!0LILG?T7fGtU-HI^$YUi9% z*WEuWt~j`Sw|7&@PqP&h4hMI?vt#}K>Wo#Ja);fk3DvqQH{jB#GU#;qnj+&GmSWJo znzYWd>HNU$YWn(5OH0Vhdp|1g)rl})UCgGJbt@_$VgAW4{lej z0d1iGUoQWT8q3?ZBHvlPlss|E{}J;2-l-qNso=yCQP=TSU9ih>8ac5SiBT|sm@js2 zufskm^Ia3s@#PqlvBy4f4nr;SSxx+GX&w%YTD%>#gqJMy+4wW+jG~w^4>iW_^T`y5-r8r|GbI@_8rF?2)S*XXg`|TdW%s6gUJtyI)3m7MM5=QaOie#Ek&||xH?^Pf? zf1jwT52;@?)9{21eRBbvx!kJGkfR8hF}~i_%OB3yjn_x|vQKr{e!HJ0B&|sVR6@i% zdnCuHNP=1YSdOoSQeCO0d^_*`#9-sfiOPi2!V9>{yl`o@tX3lI(PT3{DibQdcWNSQ z@7GzDY%RgW<=&HZN@#Bz@&Mc^0Pb5!2FCZ09LIp4y|+Y6b>8IoYl+~^2{ zU0Gp7ffI>Q856dPr>5mwu-uErw~ErK3V4YTRmHmV9s;(Ye2eV_HJf>6pSBHM2v#J8 zU2gP2!7)CbD7fG-FVOTn|Ho1Z+%6u@Y3@he6~<$+3mh8Wgn?t%RM`2StE1VP7zAdX z68i_ekLILm7t$4boX6XbdD_#?8dXkc3!;ie0R%d=agh3yUN=5p$Y3sfk4-owa0(b1 z=e1@^LRuJlCqqmZRbM~bUpQ^tm59+zPcJp;p3s&B?CwVhH()w1HLUgM$Gu^#C#P)7 zedB)0;fnjyrhY`9*`@7|1YD(+365Bep@?MRh!(<3Q|+4aJgO5j8(Vpf5W5 zD=(1Ax9D~u&CAESjtvS4A0_xGHpKyjGg-pbgFr8QmPoYT|}ga;S_~gM6ECR@8pB zYD&6$lkN`TYlI{6V{N7|nA>i2gBFw+{O-pcYgGY91j$in=G?~g1&+Tip33DrhUU(y zODtVU<>!lV3XR)XfDUO(}$k8aL>N-%4x<01f6HG8qFDD1bEzAw=fXKY-KDe%`RO+HR?yKjV9cAcVTX3?z8vW!bkx}dRoQHo1iEhYRJg;= z)X%8|q?AzDly_Ct73NbP;awi-l~`uB=6u4s^Q<$kf|xJf*}LcO27a;iuJiy@yYP5q zv3JU;vlyxt$nTzNmkF+=+;2*%P)<7i4P&t7w{O~2Wqzlw&;L>p;NqhQ@U$iD#?SBg z%Ns#<$2LJbH`p<48x_%)c8d~ML7-pd*J=8zcM=+At!OQ(0iTjjfEYLZ#lcxy|PX;ng{E8UGwVMr){3elNbPjTJ_E-GT~g?zvB z5}?KauXc~0?GGG1w5e-8^~MA-gmt}HoR|&WN@{3zW;RURI zqlRahx~*xS7w`zS{K14~Uo3J&@R!!~o6`WR{RNwFFb}?ot@3uq`$s9&OZZX5j@2DI zlzj{mIME}#{7b24>fM?l1Mwf zU6l0km5m8mQK3w;9GYA>J+eQQb2i(mqLqZ3IyMOpy2yU38c9D}gzwJC1}BcX&aUrv zMoM488es%6*R7X0ev^!gWUf`?eOH#cty6XbTJ~GlvUvwQ zlT?KI`K{`Ze(Zj){X@!fIk<9<06|^!{793p)MJ6`AGSbbPjK{v6fIi?1yhP zJue*47B>9C{i#Zg{>t4yA-p;BU9`LscS{u+QNEPC9GC^poD)?XDK^rEx2;V=bo!-xT|U7EE)xy!p!N?x(~vLF>%o)@awQ`n1f zNot1T5Uo+Dr%X{^TggW!| z#Y@9~#F$euP-*|PE67uBS+vj4K&awB; z^lu2|gH0?(Sl>hJG3!QfNt%t|4k1KcFQ6R0J^ zQVIZ!UbMQ>E`Le;=&ARBWA&E&3Av35CJ@`y*MXa(?+=+tJIk_F9%wk$Rjc0d*E*HkU}$zC=}=+X^y<4ED!poR0~ zVD0nQmuQpvxd%TIhGTgN&k3B;q=EE7d2#+oHu6HiXI%bJbQyZY+^i+3uJL)9)B^ z)GwAq+y^?@{wGK6reBhQCY}4;D3mc;y<2T#EvHet&K{v0BoJ&B9#jqy6a~|k`PDiY zH&_k4ZOq(E|If74ag)h<=IBH(KeoC5f|pKa!E-20g)-~I&aI-9Es z_4>F0w8JjJzP)p!p|af7A0ezqO$SIUc_1y;_%Qy*zQrf@smWejD3F^(<$?eJ#!@GM zcX#Yp)rNoYS;9KpIoz(gzt7OB_6yTVfj}Q#CVgMn*<zJZt+7u6qrJPccG~b} z9`ewR^{HP({EMNuk5l;dB;i9!lW6q=23+j}S&D~>!D}-&IH5^`Do!4CjyuRL9jWwe z*7YDd(6Xr)QT(J;t0%=Ym9=@T#HW!h5u9fnFk&WrIK` z&6Xpt{2Du4ZfQa2P@u?NRk(%cjp#!!mPD42L-in`rn-+0Uti)R+*v%m>pQfIJ<0ix zH)TdyJm#}~+yb5GFCYN|T~GW=H_8n+POvIrxc*PfLRUIRMc2A1Yblh;T6BN<@zdpo zOuZ^kH?87HSG9S5(?~7o_YgbV_}?a9Q<<-u=f7I4qw0|yxg)|bh~3^TnKmM9q2u1eq8~o|rS#u}anhf~-gP{-#GNl98OB*z<*X1A%ILjrQy+wTzxdl+ zPq!0VPTal^;`(_4!?>-9Ks_hcm!VxanoX+wBak_$>owC_r$Z~}E|0#y^EGvkVU4;ak z_$sEHJlo{?)BHe{zpFk$8cKU*My&|J zaD!Tm25`}GTC^hj&4Q>Q|ynV2j`lbnE1%L(=*BQOB&Fm6EEl%T7iR_a^i;nEfZmx}M&0?lX4%gG(va)c;pGrS>j;p#`Ae^~e6T%&=`> zvGakGonv2!2-vjc^~iiG0P|vf%UAJSn33PnWWb9kMh4l}R z?{(ro`x*PgfAWle0#v|`M#y_99F&KCvFLaLo?WcnP)EMmaCILvJa0H== zJ;s;^6ruf+m>*X_w4U0N39JuTMU?zig;<5w5kk-TUL7dWrA#%b4;`|TCgm_aR=yj% zLtcuQeP5X-A({MVDGW*idCvl_wV?7pJ>9SMh1wv8j_a^8j2F|{Y$0FtWNn*)e zBbKw8;8j%%S^nwE^q#jWwhhBQRof*-b3zlXc})cl5BHcb$wak`^7 z7B^aQB8z=oj5-cQw}`Um18`X)__$_$?rK&ow3?YVFIWch^2>}~({oaOHF}(hO22Xs zw^U16^YDZ~eHjZ{Fc6`*EVRb=LGa)@xOoKkL72B@O078BM6jLF2`}rWQQGMUwjOH~ z-$LGZVkR&@clE`C!j^SYa9lTq&uY{_155Zw-1un7U-24b5S3<|bNEW=={iOXnk6i$ z8~2U7qtH>)nhj(iPPKJ4y{z{Tr|FPFxmM$?^no|t z8(7z3H=wUGFq!L8yCHe|FFKwJ*G+Ik+hriDJ0@_nu=eUD_Vo_z z0PQr{1pUnnxpja@lJb;AD_CkE0#n!}snoPs5SEIMzFT~lEi013Zi^HWsH$F!yROe0XjP0eARbDjY~hjjbvBW5N0mJYfWs zvGJ=g{Jf0`iz05d8<$?q>oq=nW$UfvsP$0WeCdsURA7le%vCKXxXe>;$TDDLzd)c= zO&<1^6?ivC(*oc(nup6rTagLgP~KPzqLKX8gY||)-UaP%4(EQ_oBM**g5Ft<(`cTZGe27np^CBj7@0_qUZ`Z1|Cf%B+spA*@tyOksMfP z{*7m}$#Kwic~ z(}^M)oQgJb(y|GEfJ5;M$L$hhH3ML-4qi2vPicsLv3&SEWYi~UbA%qG+Pj&!{q^ND z=Sr?-p4gwLqYnwyZbH?Zi&FRGm|ANOI4V51B!`{IkjpJl%9?c6--u7Qa0|kQ*F`R2LEQYw zH-zCdPEfBVrkggV*U=YFb5YZ}IQ?A02|b2o;gT}Xk*~kpN_{9#(fz|{!swIn=!??s zp-K-Ys!o@xV@?7l`O%1NUqc8fcVr03@i=>gC3=``Hj-aMbM(L6?oqK-_O#XjQpi{` z)9N4(p|bUEOgJaxaMhWv2n2N*eX4pwd+;>L9iPcL?d%rb;)|eF6AHWb3i7H>^l+(d z{yCnzLLT}Dtr$Zyow#ONx|pcJ*HQ+>g}Gx|7qmFwC2q8_*1V97Um9Wa;Yoe)Etyv0 zM}e&^geFc82A_e+rjjwTpx-(MW!W)fapm!E@7fsq4)lNXpepGe<kfK!Vt&tlQRwC^6QB6b2q$B5sU}()J8#zUX%x%RiKJR$*Nq&)d($ zd)rFyl+F%xzZbz4jg=esCZghr-}g<->4q_z>dc5jtdDv* zbx&@neDNNdne-7!(QU~2x(iy&5$@>Id7vWA!V$P+_~v?HQx-mo`83$61-wnXqe;`4 zkk=))ezy9Ym8Veg-9>r)NHNt&j;_2o>TEu={g6F!0awlv$HFrd>Ij9RFc)y~!*tf` zCPt@jMW%4$$v8U%Y{+-#V9(%MYpte8M45eXKqbU*NUtScsdVY^fi6E>ypHX>lehE* zq@)8Wm* iYtcxe5#geky4w%3W^}3PMpp$fIdpiE>%Tld(cmbC%yL>m}VP84*R`B zU4ulq!;jv)bWjG8WAqr(wwd;dT0Bxw1=EtldE#1=A96yN?T*Ocu6~I@M?RSo?^S&HDFfM`&efi1T!sLi4m&4C<e7yHmv(tg9C#8y_8YFJG-QAS>W18j>7aiwvdPc3tQBBAqDxB<^ z)`c`j)<;bogQKxm>zqi>*GV?aasGtir0(&arys#GrxDkXg=7b2ER*%-7qTLGDm2J+ zHC6%63>OzYyr4k?_ULK#vU2*&{klOSr!#cQjHTkWp8`>%-DV${YIwR}2$yel1v%_< zQbh|~laKS zDeTs`;g8h1XiGKi;x*rLpMl4&ONuyy%4?d>S1-YtkWmA2Nq`>Yb}aKz_1&z} z@FE^iYje};@n1B6U91nza{0s$CXj1{#x@TnA>ab`&T8+uhs%w}8I4qk4knG;Wp-+` zJlZUa(HT0s$nkRC3hKVXNv^e=kqF0uT9X`g#f@=v%X^J=GJMhJEX|%-+ZN03JMNaS zG&d{KdI-w6bylG-`3nyYZesJD8n5=7QQ1_k1RJy~XzB(Z(p6M$G7|Efi7Yh2vpw`Uf;jqI-!lAPd-frUIQxsa@@1 zUyN+2+m2?lSlQ-gjPF33K98)GtanoCPYxxiZwAH5ABJ#4F90XpzlJb?7joBCKZgK- z{L&{s50^F}?*JU_ug3-dcN+ohVbn)f8%B&mnq6qz!)^pLGd?Ckz@gEAXl1=(-?uQ| zhjYQ>Bw`^oV!Gtd{6TI#e+X67kH}1F^=g2Xv>F;0(^;|Ats+hcn^HtGpnDArv!fi; zczl63Kukk*p;>!Sxgby}pr8ZSFUUYs^-~R`bxQgx9xK=H`tI$BJSCJ)nBTOd;^6?Q8lcDr??}UKsYlgRp!>9TV6@8=5;RW1O`?^nj%Q_IFl2@;nG+w5~G0-+)6q zQ(044U)hod=V9PjfirBEsz1LSsIXHDe)_^Ht`+B^9SI&6(0zUJh-@1cjc8ZY(Xhb`^c!GV z4?sZfk^20uWyZ&*Tsd<&Hz4Q4FUKHF$E49&~RL)=-rSHyDXgN=B?p|@HWq~YG|P& zypFioa}{zd+10EHaHd62!a&(M0g)q)^%1(ekl9KX8oT@xQJ(Q6a`h56bO+Ujd{#OM z*x0VO#0VDa1#oXf#c(}@U5B<$@N|TqV}Dev(;slyRgIEkvN~02vi6U6>>SYdcQ5$i#1w*0YG_ZPan%J$K>fZ+2zYQH+>}JrM)gTl7`4^09<ED7p!=IpciK3+v2@MM>y;L$$eXd51#H}t zSmrO?F7^SQLTdJVm8k})zXV9N%+!}VK9*&1RGH{ZxbrCgOrM>x!`URTAxgtSEXk3b zJ*v(XzwwOEtu?x+)?=!Wt>;1@_Bm8E{ayN_u29J8f1--615>7ONt0Z)YOM3P?zJw# zOhe+grCoap*n1PTCs!}~E}C8@t!lH(GHC*d5!PO7U>ZIO0(AhHfCGs28R~9l4yEvc zix!Hy1H>;#)sgWxr~w*wfc_bO{%4JCzyUF5`~h%)i{8QbJa6y6Pk8=i7WDrc|0yl} z_X?2(j?Asqz1F$n(+ybw`P=_zoAux9H3q+8d8+dT7+^ko!VZXjU6~uMePeYUzCKY2l znne*J9-{Kb6Q3%)UU%3w%YT?>c$J+4b`e82e29|O8M5u$har7BUzN;Hp%&v)_}L35 zE)=!AKQ9oe@p4}>({x;`pG9LuJoC850j+g7ktr4Ik2|D2r7YFet}hGi+rb6PgvfY| z$Dx*DcHxuwG-T1$Bo~%g&*D>Oemy%;GG$LnY8Z>5{tBI;Krji-O^a(q?*`RwV7b73 z#es8N`w!0UorgDMqyRf4iodaTDw7^aqORf)h}hy+-r5U+koC2=f;EINfcNitK!#&I96)CKh9 z#_tmmfolN7aE5CU1pa#yuT_jo(~PfZ;!{lU0xsPxO+f?4ICw2`w4tVnm1Tk>YbI2# z-_9$iUfOb0VKe1V*ZH!U;RSLOl89D~1MUGnj{op-Keu$l`yMdKi-{C6X~icJI1?+K z+wBMS2Ic;cdv%D!E>6Hbw8?e_0=5uu_C$M1RF;9fRF~9WUiMWnPVFAGeF}Y4^R>hl z`#l~O77V!;a{VK`J5?xsaivF)$*t-H;EKQ{X{gr&z;$U~)sxxoq1V$KJ&%Lt8bpnv z;jSlAC!JwtiJxH1^F1@VHx9Nzc0=sb|E`A%Y>9*`;ps+>J!>?+`u2?XP9V!NHi=oN zJYQs-BTw;kYiu2_BzeX1T7<6TY%QKT)O`a`Q{w-!83c0r%WnRYmK4{|rKm|@tF+ez z`BJvitO2pEe@-a2w#Rj@kNp{~SHhM5+tS{@$M7%x|0)9hpM0s~B3P4h7hb;C3md%- QAU5disq@wZOTXm*1xFDIRR910 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png index 2784135cc495e2d3f9d942dad623ed12dc4109e7..31e916edc59f75aed3a99e03b15eee1a5af2e692 100644 GIT binary patch literal 28850 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 An*aa+ diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md index fdbaa62d91..cfca29d851 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md @@ -65,14 +65,14 @@ Run the below ``` $query = 'RegistryEvents | limit 10' # Paste your own query here -$queryServiceUri = "https://api.securitycenter.windows.com/advancedqueries/query" +$url = "https://api.securitycenter.windows.com/advancedqueries/query" $headers = @{ 'Content-Type' = 'application/json' Accept = 'application/json' Authorization = "Bearer $aadToken" } $body = ConvertTo-Json -InputObject $query -$webResponse = Invoke-WebRequest -Method Post -Uri $queryServiceUri -Headers $headers -Body $body -ErrorAction Stop +$webResponse = Invoke-WebRequest -Method Post -Uri $url -Headers $headers -Body $body -ErrorAction Stop $response = $webResponse | ConvertFrom-Json $results = $response.Results $schema = $response.Schema @@ -102,11 +102,12 @@ $results | ConvertTo-Csv -NoTypeInformation | Set-Content file1.csv To output the results of the query in JSON format in file file1.json​ do the below: ``` -$results | ConvertTo-Json | Set-Content "file1.json" +$results | ConvertTo-Json | Set-Content file1.json ``` ## Related topic - [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +- [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) - [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) - [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md new file mode 100644 index 0000000000..b26196cbb3 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md @@ -0,0 +1,139 @@ +--- +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Advanced Hunting using Python + +Run advanced queries using Python. Please read about [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) before. + +In this section we share Python samples to retrieve a token and use it to run a query. + +>**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). + +## Get token + +- Run the below + +``` + +import json +import urllib.request +import urllib.parse + +tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here +appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here +appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here + +url = "https://login.windows.net/%s/oauth2/token" % (tenantId) + +resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' + +body = { + 'resource' : resourceAppIdUri, + 'client_id' : appId, + 'client_secret' : appSecret, + 'grant_type' : 'client_credentials' +} + +data = urllib.parse.urlencode(body).encode("utf-8") + +req = urllib.request.Request(url, data) +response = urllib.request.urlopen(req) +jsonResponse = json.loads(response.read()) +aadToken = jsonResponse["access_token"] + +``` + +where +- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +- $appSecret: Secret of your AAD app + +## Run query + +Run the below + +``` +query = 'RegistryEvents | limit 10' # Paste your own query here + +url = "https://api.securitycenter.windows.com/advancedqueries/query" +headers = { + 'Content-Type' : 'application/json', + 'Accept' : 'application/json', + 'Authorization' : "Bearer " + aadToken +} + +data = json.dumps(query).encode("utf-8") + +req = urllib.request.Request(url, data, headers) +response = urllib.request.urlopen(req) +jsonResponse = json.loads(response.read()) +schema = jsonResponse["Schema"] +results = jsonResponse["Results"] + +``` + +- schema contains the schema of the results of your query +- results contains the results of your query + +### Complex queries + +If you want to run complex queries (or multilines queries), save your query in a file and, instead of the first line in the above sample, run the below command: + +``` +queryFile = open("D:\\Temp\\myQuery.txt", 'r') # Replace with the path to your file +query = queryFile.read() +queryFile.close() +``` + +## Work with query results + +You can now use the query results. + +To iterate over the results do the below: + +``` +for result in results: + print(result) # Prints the whole result + print(result["EventTime"]) # Prints only the property 'EventTime' from the result +``` + + +To output the results of the query in CSV format in file file1.csv do the below: + +``` +import csv + +outputFile = open("D:\\Temp\\file1.csv", 'w') +output = csv.writer(outputFile) +output.writerow(results[0].keys()) +for result in results: + output.writerow(result.values()) +outputFile.close() +``` + +To output the results of the query in JSON format in file file1.json​ do the below: + +``` +outputFile = open("D:\\Temp\\file1.json", 'w') +json.dump(results, outputFile) +outputFile.close() +``` + + +## Related topic +- [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +- [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) +- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) From 5be088cf70f71f8f78ce0662dcbf30efe6c0fa6f Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 2 Aug 2018 11:18:56 +0300 Subject: [PATCH 026/201] Fixes --- ...-defender-advanced-threat-protection-sample-python.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md index b26196cbb3..01ac9c558a 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md @@ -56,9 +56,9 @@ aadToken = jsonResponse["access_token"] ``` where -- $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) -- $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) -- $appSecret: Secret of your AAD app +- tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +- appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +- appSecret: Secret of your AAD app ## Run query @@ -107,6 +107,8 @@ To iterate over the results do the below: for result in results: print(result) # Prints the whole result print(result["EventTime"]) # Prints only the property 'EventTime' from the result + + ``` @@ -120,6 +122,7 @@ output = csv.writer(outputFile) output.writerow(results[0].keys()) for result in results: output.writerow(result.values()) + outputFile.close() ``` From 0827cb505e9965b13ba752f5ade047420540c8fa Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 5 Aug 2018 12:46:37 +0000 Subject: [PATCH 027/201] test1 --- ...osed-apis-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 3541fd8546..34f09684f4 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 30/07/2018 --- -# Use Windows Defender ATP APIs +# Use Windows Defender ATP APIsx **Applies to:** From 89580f1af620334f5d2426862a2fb49f98173d8a Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 5 Aug 2018 12:47:33 +0000 Subject: [PATCH 028/201] undo test --- ...osed-apis-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 34f09684f4..7c563c289a 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 30/07/2018 --- -# Use Windows Defender ATP APIsx +# Use Windows Defender ATP APIs **Applies to:** From 51bd6c0d3e037e06878d591716e58fefa3d71ce1 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 7 Aug 2018 13:43:43 +0300 Subject: [PATCH 029/201] Add general doc for delegated Vs application permissions --- .../windows-defender-atp/TOC.md | 15 +- ...ows-defender-advanced-threat-protection.md | 2 +- ...d => exposed-apis-create-app-nativeapp.md} | 14 +- .../exposed-apis-create-app-webapp.md | 192 ++++++++++++++++++ .../exposed-apis-intro.md | 58 ++++++ ...protection-new.md => exposed-apis-list.md} | 2 +- ...rotection.md => run-advanced-query-api.md} | 12 +- ...d => run-advanced-query-sample-ms-flow.md} | 8 +- ...> run-advanced-query-sample-powershell.md} | 12 +- ...md => run-advanced-query-sample-python.md} | 12 +- 10 files changed, 294 insertions(+), 33 deletions(-) rename windows/security/threat-protection/windows-defender-atp/{exposed-apis-windows-defender-advanced-threat-protection-new.md => exposed-apis-create-app-nativeapp.md} (90%) create mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md create mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md rename windows/security/threat-protection/windows-defender-atp/{supported-apis-windows-defender-advanced-threat-protection-new.md => exposed-apis-list.md} (95%) rename windows/security/threat-protection/windows-defender-atp/{run-advanced-query-windows-defender-advanced-threat-protection.md => run-advanced-query-api.md} (80%) rename windows/security/threat-protection/windows-defender-atp/{run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md => run-advanced-query-sample-ms-flow.md} (89%) rename windows/security/threat-protection/windows-defender-atp/{run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md => run-advanced-query-sample-powershell.md} (85%) rename windows/security/threat-protection/windows-defender-atp/{run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md => run-advanced-query-sample-python.md} (86%) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 425c6b1128..7ae86fbea9 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -97,13 +97,16 @@ #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) -### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) -#### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) -##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) +### [**Beta!** Windows Defender ATP APIs](exposed-apis-intro.md) +#### Create your app +##### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) +##### [Get access without a user](exposed-apis-create-app-webapp.md) +#### [Supported Windows Defender ATP APIs](exposed-apis-list.md) +##### [Advanced Hunting](run-advanced-query-api.md) #### How to use APIs - Samples -##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) -##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) -##### [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) +##### [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) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md index 75e77a7dcf..4fbd212e29 100644 --- a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-windows-defender-advanced-threat-protection.md @@ -161,6 +161,6 @@ Check out the [Advanced Hunting repository](https://github.com/Microsoft/Windows ## Related topic - [Advanced hunting reference](advanced-hunting-reference-windows-defender-advanced-threat-protection.md) - [Advanced hunting query language best practices](advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) -- [Programmatic Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) +- [Programmatic Advanced Hunting](run-advanced-query-api.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md similarity index 90% rename from windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md rename to windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 3541fd8546..80eff210c0 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -26,6 +26,12 @@ ms.date: 30/07/2018 >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) +This pages describes how to create an application to get programmatical access to Windows Defender ATP on behalf of a user. + +If you need programmatical access Windows Defender ATP without a user, please refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md) + +If you are not sure which access you need, you'd better read the [Introduction page](exposed-apis-intro.md) + Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). In general, you’ll need to take the following steps to use the APIs: @@ -146,11 +152,11 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ### Using PowerShell -Refer to [Get token using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) +Refer to [Get token using PowerShell](run-advanced-query-sample-powershell.md#get-token) ### Using Python -Refer to [Get token using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md#get-token) +Refer to [Get token using Python](run-advanced-query-sample-python.md#get-token) ### Using Curl @@ -181,4 +187,6 @@ You will get an answer of the form: ![Image of token validation](images/webapp-validate-token.png) ## Related topics -- [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Supported Windows Defender ATP APIs](exposed-apis-list.md) +- [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md new file mode 100644 index 0000000000..838ffc6489 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -0,0 +1,192 @@ +--- +title: Use Windows Defender Advanced Threat Protection APIs +description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. +keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Create an app to access Windows Defender ATP without a user + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) + +This pages describes how to create an application to get programmatical access to Windows Defender ATP without a user. + +If you need programmatical access Windows Defender ATP on behalf of a user, please refer to [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) + +If you are not sure which access you need, you'd better read the [Introduction page](exposed-apis-intro.md) + +Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). + +In general, you’ll need to take the following steps to use the APIs: +- Create an app +- Get an access token +- Use the token to access Windows Defender ATP API + +This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. + +## Create an app + +1. Log on to [Azure](https://portal.azure.com). + +2. Navigate to **Azure Active Directory** > **App registrations** > **New application registration**. + + ![Image of Microsoft Azure and navigation to application registration](images/atp-azure-new-app.png) + +3. In the Create window, enter the following information then click **Create**. + + ![Image of Create application window](images/webapp-create.png) + + - **Name:** WdatpEcosystemPartner + - **Application type:** Web app / API + - **Redirect URI:** `https://WdatpEcosystemPartner.com` (The URL where user can sign in and use your app. You can change this URL later.) + + +4. Click **Settings** > **Required permissions** > **Add**. + + ![Image of new app in Azure](images/webapp-add-permission.png) + +5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. + + **Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. + + ![Image of API access and API selection](images/webapp-add-permission-2.png) + +6. Click **Select permissions** > **Run advanced queries** > **Select**. + + **Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! + + ![Image of select permissions](images/webapp-select-permission.png) + + - In order to send telemetry events to WDATP, check 'Write timeline events' permission + - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission + - In order to run advanced queries in WDATP, check 'Run advanced queries' permission + +7. Click **Done** + + ![Image of add permissions completion](images/webapp-add-permission-end.png) + +8. Click **Keys** and type a key name and click **Save**. + + **Important**: After you save, **copy the key value**. You won't be able to retrieve after you leave! + + ![Image of create app key](images/webapp-create-key.png) + +9. Write down your application ID. + + ![Image of app ID](images/webapp-get-appid.png) + +9. Set your application to be multi-tenanted + + This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). + + This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ + + Click **Properties** > **Yes** > **Save**. + + ![Image of multi tenant](images/webapp-edit-multitenant.png) + + +## Application consent + +You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. + +You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. + +Consent link is of the form: + +``` +https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ +``` + +where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID + + +## Get an access token + +For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) + +### Using C# + +>The below code was tested with nuget Microsoft.IdentityModel.Clients.ActiveDirectory 3.19.8 + +- Create a new Console Application +- Install Nuget [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) +- Add the below using + + ``` + using Microsoft.IdentityModel.Clients.ActiveDirectory; + ``` + +- Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) + + ``` + string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here + string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here + string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here + + const string aadUri = "https://login.windows.net"; + const string wdatpResourceId = "https://securitycenter.onmicrosoft.com/windowsatpservice"; + + AuthenticationContext auth = new AuthenticationContext($"{aadUri}/{tenantId}/"); + ClientCredential clientCredential = new ClientCredential(appId, appSecret); + AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, clientCredential).GetAwaiter().GetResult(); + string token = authenticationResult.AccessToken; + ``` + +### Using PowerShell + +Refer to [Get token using PowerShell](run-advanced-query-sample-powershell.md#get-token) + +### Using Python + +Refer to [Get token using Python](run-advanced-query-sample-python.md#get-token) + +### Using Curl + +> [!NOTE] +> The below procedure supposed Curl for Windows is already installed on your computer + +- Open a command window +- ​Set CLIENT_ID to your Azure application ID +- Set CLIENT_SECRET to your Azure application secret +- Set TENANT_ID to the Azure tenant ID of the customer that wants to use your application to access WDATP application +- Run the below command: + +``` +curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice​/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID​%/oauth2/v2.0/token" -k​ +``` + +You will get an answer of the form: + +``` +{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn aWReH7P0s0tjTBX8wGWqJUdDA"} +``` + +## Validate the token + +- Copy/paste into [JWT](https://jwt.io/) the token you get in the previous step +- Validate you get a 'roles' claim with the desired permission, as shown in the below screenshot + +![Image of token validation](images/webapp-validate-token.png) + +## Related topics +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Supported Windows Defender ATP APIs](exposed-apis-list.md) +- [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md new file mode 100644 index 0000000000..ccf0c67cdb --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md @@ -0,0 +1,58 @@ +--- +title: Use Windows Defender Advanced Threat Protection APIs +description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. +keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Use Windows Defender ATP APIs + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) + +Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). + +In general, you’ll need to take the following steps to use the APIs: +- Create an app +- Get an access token +- Use the token to access Windows Defender ATP API + + +As a developer, you decide which permissions for Windows Defender ATP your app requests. When a user signs in to your app he (or, in some cases, an administrator) is given a chance to consent to these permissions. If the user consents, your app is given access to the resources and APIs that it has requested. For apps that don't take a signed-in user, permissions can be pre-consented to by an administrator when the app is installed or during sign-up. + +##Delegated permissions, Application permissions, and effective permissions + +Windows Defender ATP has two types of permissions: delegated permissions and application permissions. + +- Delegated permissions are used by apps that have a signed-in user present. For these apps either the user or an administrator consents to the permissions that the app requests and the app is delegated permission to act as the signed-in user when making calls to Windows Defender ATP. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require administrator consent. +- Application permissions are used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Application permissions can only be consented by an administrator. + +Effective permissions are the permissions that your app will have when making requests to Windows Defender ATP. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to Windows Defender ATP. + +- For delegated permissions, the effective permissions of your app will be the least privileged intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Your app can never have more privileges than the signed-in user. Within organizations, the privileges of the signed-in user may be determined by policy or by membership in one or more administrator roles. For more information about administrator roles, see [Assigning administrator roles in Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-assign-admin-roles). + + For example, assume your app has been granted the Machine.CollectForensics delegated permission. This permission nominally grants your app permission to collect investigation package from a machine. If the signed-in user has 'Alerts Investigation' permission, your app will be able to collect investigation package from a machine, if the machine belongs to a group the user is exposed to. However, if the signed-in user doesn't have 'Alerts Investigation' permission, your app won't be able to collect investigation package from any machine. + +- For application permissions, the effective permissions of your app will be the full level of privileges implied by the permission. For example, an app that has the Machine.CollectForensics application permission can collect investigation package from any machine in the organization. + + +## Related topics +- [Supported Windows Defender ATP APIs](exposed-apis-list.md) +- [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md) +- [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md similarity index 95% rename from windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md rename to windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md index dfd76a0910..5b82fb439d 100644 --- a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md @@ -41,4 +41,4 @@ Machines | Run API calls such as find machine information by IP, get machines, g User | Run API calls such as get alert related user information, user information, user related alerts, and user related machines. ## Related topic -- [Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +- [Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md similarity index 80% rename from windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md rename to windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index e2d9e6a826..91afb2c337 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -31,7 +31,7 @@ This API is a beta version only and is currently restricted 3. The nu​mber of executions is limited​ (up to 15 minutes every hour and 4 hours a day) ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-intro.md#create-an-app) Permission type | Permission | Permission display name :---|:---|:--- @@ -127,12 +127,12 @@ Content-Type: application/json​ - (403) Forbidden. If you get this error when calling WDATP API, your token probably does not include the necessary permission, - [Check the permissions](exposed-apis-windows-defender-advanced-threat-protection-new.md#validate-the-token) included in your token. - If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app)) or you did not authorized your app in the tenant (refer to [Application consent](exposed-apis-windows-defender-advanced-threat-protection-new.md#application-consent)) + [Check the permissions](exposed-apis-intro.md#validate-the-token) included in your token. + If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in [Create your app](exposed-apis-intro.md#create-an-app)) or you did not authorized your app in the tenant (refer to [Application consent](exposed-apis-intro.md#application-consent)) ## Related topic +- [Windows Defender ATP APIs](exposed-apis-intro.md) - [Advanced Hunting from Portal](advanced-hunting-windows-defender-advanced-threat-protection.md) -- [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) -- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) -- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) +- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md similarity index 89% rename from windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md rename to windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md index 8d10b02b70..f02cf020ec 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md @@ -21,7 +21,7 @@ ms.date: 30/07/2018 Schedule advanced query. ->**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). +>**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). ## Use case @@ -81,6 +81,6 @@ You can find below the full definition ![Image of E2E flow](images/ms-flow-e2e.png) ## Related topic -- [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) -- [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) -- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) \ No newline at end of file +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md similarity index 85% rename from windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md rename to windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md index cfca29d851..22c4ca1362 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md @@ -15,11 +15,11 @@ ms.date: 30/07/2018 # Advanced Hunting using PowerShell -Run advanced queries using PowerShell. Please read about [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) before. +Run advanced queries using PowerShell. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. In this section we share PowerShell samples to retrieve a token and use it to run a query. ->**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). +>**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). ## Preparation Instructions @@ -107,7 +107,7 @@ $results | ConvertTo-Json | Set-Content file1.json ## Related topic -- [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) -- [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) -- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) -- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using Python](run-advanced-query-sample-python.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md similarity index 86% rename from windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md rename to windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md index 01ac9c558a..913731e59d 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md @@ -15,11 +15,11 @@ ms.date: 30/07/2018 # Advanced Hunting using Python -Run advanced queries using Python. Please read about [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) before. +Run advanced queries using Python. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. In this section we share Python samples to retrieve a token and use it to run a query. ->**Prerequisite**: You first need to [create an app](exposed-apis-windows-defender-advanced-threat-protection-new.md). +>**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). ## Get token @@ -136,7 +136,7 @@ outputFile.close() ## Related topic -- [Advanced Hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) -- [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) -- [Schedule Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) -- [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md) +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) From 47e605a309d5d141a3cc4022233873dea32bf6b1 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Tue, 7 Aug 2018 14:38:12 +0300 Subject: [PATCH 030/201] Fix links --- .../windows-defender-atp/run-advanced-query-api.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 91afb2c337..8a6c8b5831 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -31,7 +31,7 @@ This API is a beta version only and is currently restricted 3. The nu​mber of executions is limited​ (up to 15 minutes every hour and 4 hours a day) ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-intro.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- @@ -127,8 +127,10 @@ Content-Type: application/json​ - (403) Forbidden. If you get this error when calling WDATP API, your token probably does not include the necessary permission, - [Check the permissions](exposed-apis-intro.md#validate-the-token) included in your token. - If the 'roles' section in the token does not include the necessary permission, either you did not add the necessary permission to your app (refer to step 6 in [Create your app](exposed-apis-intro.md#create-an-app)) or you did not authorized your app in the tenant (refer to [Application consent](exposed-apis-intro.md#application-consent)) + Check [app permissions](exposed-apis-create-app-webapp.md#validate-the-token) or [delegated permissions](exposed-apis-create-app-nativeapp.md#validate-the-token) included in your token. + If the 'roles' section in the token does not include the necessary permission, + - either you did not add the necessary permission to your app (refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md#create-an-app) or [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md#create-an-app)) + - or you did not authorized your app in the tenant (refer to [Application consent](exposed-apis-create-app-webapp.md#application-consent)) ## Related topic From ae932090c5d95fc36abd88d3e3015949c841a417 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Wed, 15 Aug 2018 23:19:03 +0300 Subject: [PATCH 031/201] complete changes --- .../windows-defender-atp/TOC.md | 69 ++++++- ...defender-advanced-threat-protection-new.md | 77 +++++++ ...defender-advanced-threat-protection-new.md | 101 ++++++++++ ...defender-advanced-threat-protection-new.md | 96 +++++++++ ...defender-advanced-threat-protection-new.md | 90 +++++++++ ...defender-advanced-threat-protection-new.md | 189 ++++++++++++++++++ ...defender-advanced-threat-protection-new.md | 47 +++++ ...defender-advanced-threat-protection-new.md | 86 ++++++++ ...defender-advanced-threat-protection-new.md | 97 +++++++++ ...defender-advanced-threat-protection-new.md | 86 ++++++++ ...defender-advanced-threat-protection-new.md | 99 +++++++++ ...defender-advanced-threat-protection-new.md | 89 +++++++++ ...defender-advanced-threat-protection-new.md | 98 +++++++++ ...defender-advanced-threat-protection-new.md | 90 +++++++++ ...defender-advanced-threat-protection-new.md | 128 ++++++++++++ ...defender-advanced-threat-protection-new.md | 124 ++++++++++++ ...defender-advanced-threat-protection-new.md | 121 +++++++++++ ...defender-advanced-threat-protection-new.md | 84 ++++++++ ...defender-advanced-threat-protection-new.md | 97 +++++++++ ...defender-advanced-threat-protection-new.md | 103 ++++++++++ ...defender-advanced-threat-protection-new.md | 121 +++++++++++ ...defender-advanced-threat-protection-new.md | 89 +++++++++ ...defender-advanced-threat-protection-new.md | 104 ++++++++++ ...defender-advanced-threat-protection-new.md | 114 +++++++++++ ...defender-advanced-threat-protection-new.md | 84 ++++++++ ...defender-advanced-threat-protection-new.md | 99 +++++++++ ...defender-advanced-threat-protection-new.md | 106 ++++++++++ ...defender-advanced-threat-protection-new.md | 104 ++++++++++ ...defender-advanced-threat-protection-new.md | 91 +++++++++ ...defender-advanced-threat-protection-new.md | 165 +++++++++++++++ ...defender-advanced-threat-protection-new.md | 120 +++++++++++ ...defender-advanced-threat-protection-new.md | 84 ++++++++ ...defender-advanced-threat-protection-new.md | 86 ++++++++ ...defender-advanced-threat-protection-new.md | 123 ++++++++++++ ...defender-advanced-threat-protection-new.md | 121 +++++++++++ ...defender-advanced-threat-protection-new.md | 73 +++++++ ...defender-advanced-threat-protection-new.md | 80 ++++++++ ...defender-advanced-threat-protection-new.md | 103 ++++++++++ ...defender-advanced-threat-protection-new.md | 45 +++++ ...defender-advanced-threat-protection-new.md | 42 ++++ ...defender-advanced-threat-protection-new.md | 96 +++++++++ ...defender-advanced-threat-protection-new.md | 96 +++++++++ ...defender-advanced-threat-protection-new.md | 105 ++++++++++ ...defender-advanced-threat-protection-new.md | 44 ++++ ...defender-advanced-threat-protection-new.md | 93 +++++++++ ...defender-advanced-threat-protection-new.md | 101 ++++++++++ ...defender-advanced-threat-protection-new.md | 96 +++++++++ ...defender-advanced-threat-protection-new.md | 108 ++++++++++ ...defender-advanced-threat-protection-new.md | 23 +++ 49 files changed, 4676 insertions(+), 11 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 7ae86fbea9..07e39fd8d3 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -39,8 +39,6 @@ #### [Investigate a user account](investigate-user-windows-defender-advanced-threat-protection.md) - - ###Machines list #### [View and organize the Machines list](machines-view-overview-windows-defender-advanced-threat-protection.md) #### [Manage machine group and tags](investigate-machines-windows-defender-advanced-threat-protection.md#manage-machine-group-and-tags) @@ -97,16 +95,65 @@ #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) -### [**Beta!** Windows Defender ATP APIs](exposed-apis-intro.md) -#### Create your app -##### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) -##### [Get access without a user](exposed-apis-create-app-webapp.md) -#### [Supported Windows Defender ATP APIs](exposed-apis-list.md) -##### [Advanced Hunting](run-advanced-query-api.md) +### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +#### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) +##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) + +##### [Alert](alerts-windows-defender-advanced-threat-protection-new.md) +###### [List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) +###### [Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md) +###### [Update Alert](update-alert-windows-defender-advanced-threat-protection-new.md) +###### [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) +###### [Get alert related domains information](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md) +###### [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) +###### [Get alert related IPs information](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) +###### [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) +###### [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) + +##### Domain +###### [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md) +###### [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection-new.md) +###### [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection-new.md) +###### [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md) + +##### [File](files-windows-defender-advanced-threat-protection-new.md) +###### [Get file information](get-file-information-windows-defender-advanced-threat-protection-new.md) +###### [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection-new.md) +###### [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection-new.md) +###### [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection-new.md) + +##### IP +###### [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md) +###### [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection-new.md) +###### [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection-new.md) +###### [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection-new.md) + +##### [Machine](machine-windows-defender-advanced-threat-protection-new.md) +###### [Get machines](get-machines-windows-defender-advanced-threat-protection-new.md) +###### [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection-new.md) +###### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) +###### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) + +##### [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) +###### [List MachineActions](get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) +###### [Get MachineAction](get-machineaction-object-windows-defender-advanced-threat-protection-new.md) +###### [Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new.md) +###### [Get investigation package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection-new.md) +###### [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection-new.md) +###### [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection-new.md) +###### [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection-new.md) +###### [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md) +###### [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection-new.md) +###### [Offboard machine](offboard-machine-api-windows-defender-advanced-threat-protection-new.md) + +##### [User](user-windows-defender-advanced-threat-protection-new.md) +###### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) +###### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) + #### How to use APIs - Samples -##### [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) +##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) +##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) +##### [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..6f49e0bacf --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,77 @@ +--- +title: Get alerts API +description: Retrieves top recent alerts. +keywords: apis, graph api, supported apis, get, alerts, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Alert resource type + +Represents an alert entity in WDATP. + +# Methods +Method|Return Type |Description +:---|:---|:--- +[Get alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | Get a single [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) object. +[List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection | List [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection. +[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +[List related domains](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md)|Domain collection|List Urls associated with the alert. +[List related files](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) collection | List the [file](files-windows-defender-advanced-threat-protection-new.md) entities that are associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). +[List related IPs](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) | IP collection | List IPs that are associated witht the alert. +[Get related Machine](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) entity | The [machine](machine-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). +[Get related user](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) | The [user](user-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). + + +# Properties +Property | Type | Description +:---|:---|:--- +id | string | alert id. +severity | String | severity of the alert. Allowed values are: 'Low', 'Medium' and 'High'. +status | String | Specifies the current status of the alert. The property values are: 'New', 'InProgress' and 'Resolved'. +description | String | Description of the threat, identified by the alert. +recommendedAction | String | Action recommended for handling the suspected threat. +alertCreationTime | DateTimeOffset | The date and time (in UTC) the alert was created. +category| String | Category of the alert. The property values are: 'None', 'SuspiciousActivity', 'Malware', 'CredentialTheft', 'Exploit', 'WebExploit', 'DocumentExploit', 'PrivilegeEscalation', 'Persistence', 'RemoteAccessTool', 'CommandAndControl', 'SuspiciousNetworkTraffic', 'Ransomware', 'MalwareDownload', 'Reconnaissance', 'WebFingerprinting', 'Weaponization', 'Delivery', 'SocialEngineering', 'CredentialStealing', 'Installation', 'Backdoor', 'Trojan', 'TrojanDownloader', 'LateralMovement', 'ExplorationEnumeration', 'NetworkPropagation', 'Exfiltration', 'NotApplicable', 'EnterprisePolicy' and 'General'. +title | string | Alert title. +threatFamilyName | string | Threat family. +detectionSource | string | detection source +assignedTo | String | Owner of the alert +classification | String | Speficies the specification of the alert. The property values are: 'Unknown', 'FalsePositive', 'TruePositive'. +determination | String | Specifies the determination of the alert. The property values are: 'NotAvailable', 'Apt', 'Malware', 'SecurityPersonnel', 'SecurityTesting', 'UnwantedSoftware', 'Other' +resolvedTime | DateTimeOffset | The date and time in which the status of the alert was changed to 'Resolved'. +lastEventTime | DateTimeOffset | The last occurance of the event that triggered the alert on the same machine. +firstEventTime | DateTimeOffset | The first occurance of the event that triggered the alert on that machine. +machineId | string | id of a [machine](machine-windows-defender-advanced-threat-protection-new.md) entity that is associated with the alert. + +# JSON representation +``` +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 1", + "recommendedAction": "Some recommended action 1", + "alertCreationTime": "2018-08-03T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 1", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-02T07:02:52.0894451Z", + "firstEventTime": "2018-08-02T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369f" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..4b945f2c0f --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,101 @@ +--- +title: Block file API +description: Use this API to blocking files from being running in the organization. +keywords: apis, graph api, supported apis, block file +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Block file API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Prevent a file from being executed in the organization using Windows Defender Antivirus. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti.ReadWrite | 'Threat Intelligence read write' + +## HTTP request +``` +POST /api/files/{sha1}/block +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. +Content-Type | application/json + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + + +## Response +If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/files/7327b54fd718525cbca07dacde913b5ac3c85673/block +Content-type: application/json +{ + "Comment": "Block file due to alert 32123" +} + + +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", + "fileIdentifierType": "Sha1", + "actionType": "Block", + "fileStatus": "Blocked", + "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", + "requestor": "Analyst@contoso.com ", + "requestorComment": "test", + "cancellationDateTimeUtc": null, + "cancellationRequestor": null, + "cancellationComment": null, + "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..df75029191 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,96 @@ +--- +title: Collect investigation package API +description: Use this API to create calls related to the collecting an investigation package from a machine. +keywords: apis, graph api, supported apis, collect investigation package +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Collect investigation package API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Collect investigation package from a machine. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.CollectForensics | 'Collect forensics' + +## HTTP request +``` +POST /api/machines/{id}/collectInvestigationPackage +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + +## Response +If successful, this method returns 201 - Created response code and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/collectInvestigationPackage +Content-type: application/json +{ + "Comment": "Collect forensics due to alert 1234" +} +``` + +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "c9042f9b-8483-4526-87b5-35e4c2532223", + "type": "CollectInvestigationPackage", + "requestor": "Analyst@contoso.com", + "requestorComment": " Collect forensics due to alert 1234", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:09:24.1785079Z", + "lastUpdateTimeUtc": "2017-12-04T12:09:24.1785079Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..0028551bf1 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,90 @@ +--- +title: Create alert from event API +description: Creates an alert using event details +keywords: apis, graph api, supported apis, get, alert, information, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Create alert from event API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +Enables using event data, as obtained from the [Advanced hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) for creating a new alert entity. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alerts.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +POST /api/CreateAlertByReference +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. +Content-Type | String | application/json. **Required**. + +## Request body +In the request body, supply the following values (all are required): + +Property | Type | Description +:---|:---|:--- +machineId | String | Id of the machine on which the event was identified. **Required**. +severity | String | Severity of the alert. The property values are: 'Low', 'Medium' and 'High'. **Required**. +title | String | Title for the alert. **Required**. +description | String | Description of the alert. **Required**. +recommendedAction| String | Action that is recommended to be taken by security officer when analyzing the alert. +eventTime | DateTime(UTC) | The time of the event, as obtained from the advanced query. **Required**. +reportId | String | The reportId, as obtained from the advanced query. **Required**. +category| String | Category of the alert. The property values are: 'None', 'SuspiciousActivity', 'Malware', 'CredentialTheft', 'Exploit', 'WebExploit', 'DocumentExploit', 'PrivilegeEscalation', 'Persistence', 'RemoteAccessTool', 'CommandAndControl', 'SuspiciousNetworkTraffic', 'Ransomware', 'MalwareDownload', 'Reconnaissance', 'WebFingerprinting', 'Weaponization', 'Delivery', 'SocialEngineering', 'CredentialStealing', 'Installation', 'Backdoor', 'Trojan', 'TrojanDownloader', 'LateralMovement', 'ExplorationEnumeration', 'NetworkPropagation', 'Exfiltration', 'NotApplicable', 'EnterprisePolicy' and 'General'. + + +## Response +If successful, this method returns 200 OK, and a new [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body. +If event with the specified properties (_reportId_, _eventTime_ and _machineId_) was not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/CreateAlertByReference +Content-Length: application/json + +{ + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", + "severity": "Low", + "title": "test alert", + "description": "redalert", + "recommendedAction": "white alert", + "eventTime": "2018-08-03T16:45:21.7115183Z", + "reportId": "20776", + "category": "None" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..bfe251407b --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,189 @@ +--- +title: Use Windows Defender Advanced Threat Protection APIs +description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. +keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Use Windows Defender ATP APIs + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) + +Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). + +In general, you’ll need to take the following steps to use the APIs: +- Create an app +- Get an access token +- Use the token to access Windows Defender ATP API + +This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. + +## Create an app + +1. Log on to [Azure](https://portal.azure.com). + +2. Navigate to **Azure Active Directory** > **App registrations** > **New application registration**. + + ![Image of Microsoft Azure and navigation to application registration](images/atp-azure-new-app.png) + +3. In the Create window, enter the following information then click **Create**. + + ![Image of Create application window](images/webapp-create.png) + + - **Name:** WdatpEcosystemPartner + - **Application type:** Web app / API + - **Redirect URI:** `https://WdatpEcosystemPartner.com` (The URL where user can sign in and use your app. You can change this URL later.) + + +4. Click **Settings** > **Required permissions** > **Add**. + + ![Image of new app in Azure](images/webapp-add-permission.png) + +5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. + + **Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. + + ![Image of API access and API selection](images/webapp-add-permission-2.png) + +6. Click **Select permissions** > **Run advanced queries** > **Select**. + + **Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! + + ![Image of select permissions](images/webapp-select-permission.png) + + - In order to send telemetry events to WDATP, check 'Write timeline events' permission + - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission + - In order to run advanced queries in WDATP, check 'Run advanced queries' permission + +8. User with "Global Admin" permissions, need to click **Grant Permissions** in the **Required Permissions** tab. + +8. Click **Done** + + ![Image of add permissions completion](images/webapp-add-permission-end.png) + +9. Click **Keys** and type a key name and click **Save**. + + **Important**: After you save, **copy the key value**. You won't be able to retrieve after you leave! + + ![Image of create app key](images/webapp-create-key.png) + +10. Write down your application ID. + + ![Image of app ID](images/webapp-get-appid.png) + +11. Set your application to be multi-tenanted + + This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). + + This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ + + Click **Properties** > **Yes** > **Save**. + + ![Image of multi tenant](images/webapp-edit-multitenant.png) + + +## Application consent + +You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. + +You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. + +Consent link is of the form: + +``` +https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ +``` + +where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID + + +## Get an access token + +For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) + +### Using C# + +>The below code was tested with nuget Microsoft.IdentityModel.Clients.ActiveDirectory 3.19.8 + +- Create a new Console Application +- Install Nuget [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) +- Add the below using + + ``` + using Microsoft.IdentityModel.Clients.ActiveDirectory; + ``` + +- Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) + + ``` + string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here + string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here + string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here + + const string authority = "https://login.windows.net"; + const string wdatpResourceId = "https://api.securitycenter.windows.com/windowsatpservice"; + + AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}/"); + ClientCredential clientCredential = new ClientCredential(appId, appSecret); + AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, clientCredential).GetAwaiter().GetResult(); + string token = authenticationResult.AccessToken; + ``` + +### Using PowerShell + +Refer to [Get token using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) + +### Using Python + +Refer to [Get token using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md#get-token) + +### Using Curl + +> [!NOTE] +> The below procedure supposed Curl for Windows is already installed on your computer + +- Open a command window +- ​Set CLIENT_ID to your Azure application ID +- Set CLIENT_SECRET to your Azure application secret +- Set TENANT_ID to the Azure tenant ID of the customer that wants to use your application to access WDATP application +- Run the below command: + +``` +curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice​/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID​%/oauth2/v2.0/token" -k​ +``` + +You will get an answer of the form: + +``` +{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn aWReH7P0s0tjTBX8wGWqJUdDA"} +``` + +## Validate the token + +- Copy/paste into [JWT](https://jwt.ms/) the token you get in the previous step +- Validate you get a 'roles' claim with the desired permission as you've chosen when adding permissions to the applications: + +![Image of token validation](images/webapp-validate-token.png) + +> [!NOTE] +> The same token can be used for 1 hour and then it expired + +## Related topics +- [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..00e1b1e364 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,47 @@ +--- +title: File resource type +description: Retrieves top recent alerts. +keywords: apis, graph api, supported apis, get, alerts, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# File resource type + +Represent a file entity in WDATP. + +# Methods +Method|Return Type |Description +:---|:---|:--- +[Get file](get-file-information-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) | Get a single file +[List file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection | Get the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) entities that are associated with the file. +[List file related machines](get-file-related-machines-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) collection | Get the [machine](machine-windows-defender-advanced-threat-protection-new.md) entities associated with the alert. +[file statistics](get-file-statistics-windows-defender-advanced-threat-protection-new.md) | Statistics summary | Retrieves the prevalence for the given file. + + +# Properties +Property | Type | Description +:---|:---|:--- +sha1 | String | Sha1 hash of the file content +sha256 | String | Sha256 hash of the file content +md5 | String | md5 hash of the file content +globalPrevalence | Integer | File prevalence accross organization +globalFirstObserved | DateTimeOffset | First time the file was observed. +globalLastObserved | DateTimeOffset | Last time the file was observed. +size | Integer | Size of the file. +fileType | String | Type of the file. +isPeFile | Boolean | true if the file is portable executable (e.g. "DLL", "EXE", etc.) +filePublisher | String | File publisher. +fileProductName | String | Product name. +signer | String | File signer. +issuer | String | File issuer. +signerHash | String | Hash of the signing certificate. +isValidCertificate | Boolean | Was signing certificate successfully verified by WDATP agent. + diff --git a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..87e402b102 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,86 @@ +--- +title: Find machine information by internal IP API +description: Use this API to create calls related to finding a machine entry around a specific timestamp by internal IP. +keywords: ip, apis, graph api, supported apis, find machine, machine information +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: high +ms.date: 07/25/2018 +--- + +# Find machine information by internal IP API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +Find a machine entity around a specific timestamp by internal IP. + +>[!NOTE] +>The timestamp must be within the last 30 days. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/machines/find(timestamp={time},key={IP}) +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machine exists - 200 OK. +If no machine found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +``` +GET https://graph.microsoft.com/testwdatppreview/machines/find(timestamp=2018-06-19T10:00:00Z,key='10.166.93.61') +Content-type: application/json +``` + +**Response** + +Here is an example of the response. + +The response will return a list of all machines that reported this IP address within sixteen minutes prior and after the timestamp. + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#Machines", + "value": [ + { + "id": "04c99d46599f078f1c3da3783cf5b95f01ac61bb", + "computerDnsName": "", + "firstSeen": "2017-07-06T01:25:04.9480498Z", + "osPlatform": "Windows10", +… +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..26333d85c4 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,97 @@ +--- +title: Get alert information by ID API +description: Retrieves an alert by its ID. +keywords: apis, graph api, supported apis, get, alert, information, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alert information by ID API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +Retrieves an alert by its ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/alerts/{id} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful, this method returns 200 OK, and an [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body. +If alert with the specified id was not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442 +``` + +**Response** + +Here is an example of the response. + + +``` +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 1", + "recommendedAction": "Some recommended action 1", + "alertCreationTime": "2018-08-03T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 1", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-02T07:02:52.0894451Z", + "firstEventTime": "2018-08-02T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369f" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..42d2bad378 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,86 @@ +--- +title: Get alert related domains information +description: Retrieves all domains related to a specific alert. +keywords: apis, graph api, supported apis, get alert information, alert information, related domain +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alert related domain information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +Retrieves all domains related to a specific alert. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | URL.Read.All | 'Read URLs' + +## HTTP request +``` +GET /api/alerts/{id}/domains +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and alert and domain exist - 200 OK. +If alert not found or domain not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +GET https://api.securitycenter.windows.com/alerts/636688558380765161_2136280442/domains +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/$metadata#Domains", + "value": [ + { + "host": "www.example.com" + } + ] +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..5bac7b1862 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,99 @@ +--- +title: Get alert related files information +description: Retrieves all files related to a specific alert. +keywords: apis, graph api, supported apis, get alert information, alert information, related files +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alert related files information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +Retrieves all files related to a specific alert. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | File.Read.All | 'Read file profiles' + +## HTTP request +``` +GET /api/alerts/{id}/files +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and alert and files exist - 200 OK. +If alert not found or files not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442/files +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Files", + "value": [ + { + "sha1": "654f19c41d9662cf86be21bf0af5a88c38c56a9d", + "sha256": "2f905feec2798cee6f63da2c26758d86bfeaab954c01e20ac7085bf55fedde87", + "md5": "82849dc81d94056224445ea73dc6153a", + "globalPrevalence": 33, + "globalFirstObserved": "2018-07-17T18:17:27.5909748Z", + "globalLastObserved": "2018-08-06T16:07:12.9414137Z", + "windowsDefenderAVThreatName": null, + "size": 801112, + "fileType": "PortableExecutable", + "isPeFile": true, + "filePublisher": null, + "fileProductName": null, + "signer": "Microsoft Windows", + "issuer": "Microsoft Development PCA 2014", + "signerHash": "9e284231a4d1c53fc8d4492b09f65116bf97447f", + "isValidCertificate": true + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..d28d7e4c38 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,89 @@ +--- +title: Get alert related IPs information +description: Retrieves all IPs related to a specific alert. +keywords: apis, graph api, supported apis, get alert information, alert information, related ip +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alert related IP information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves all IPs related to a specific alert. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ip.Read.All | 'Read IP address profiles' + +## HTTP request +``` +GET /api/alerts/{id}/ips +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and alert and an IP exist - 200 OK. +If alert not found or IPs not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/alerts/636688558380765161_2136280442/ips +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/$metadata#Ips", + "value": [ + { + "id": "104.80.104.128" + }, + { + "id": "23.203.232.228 + } + ] +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..d4e17a8f25 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,98 @@ +--- +title: Get alert related machine information +description: Retrieves all machines related to a specific alert. +keywords: apis, graph api, supported apis, get alert information, alert information, related machine +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alert related machine information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves machine that is related to a specific alert. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/alerts/{id}/machine +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and alert and machine exist - 200 OK. +If alert not found or machine not found - 404 Not Found. + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +GET https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442/machine +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines/$entity", + "id": "ff0c3800ed8d66738a514971cd6867166809369f", + "computerDnsName": "amazingmachine.contoso.com", + "firstSeen": "2017-12-10T07:47:34.4269783Z", + "osPlatform": "Windows10", + "osVersion": "10.0.0.0", + "systemProductName": null, + "lastIpAddress": "172.17.0.0", + "lastExternalIpAddress": "167.220.0.0", + "agentVersion": "10.5830.17732.1001", + "groupName": "ContosoGroup", + "osBuild": 17732, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 75, + "riskScore": "Low", + "aadDeviceId": "80fe8ff8-0000-0000-9591-41f0491218f9" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..f2f994a6cb --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,90 @@ +--- +title: Get alert related user information +description: Retrieves the user associated to a specific alert. +keywords: apis, graph api, supported apis, get, alert, information, related, user +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alert related user information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves the user associated to a specific alert. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | User.Read.All | 'Read user profiles' + +## HTTP request +``` +GET /api/alerts/{id}/user +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and alert and a user exists - 200 OK with user in the body. +If alert not found or user not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +GET https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442/user +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://wdatpapi-eus-stg.cloudapp.net/api/$metadata#Users/$entity", + "id": "contoso\\user1", + "firstSeen": "2018-08-02T00:00:00Z", + "lastSeen": "2018-08-04T00:00:00Z", + "mostPrevalentMachineId": null, + "leastPrevalentMachineId": null, + "logonTypes": "Network", + "logOnMachinesCount": 3, + "isDomainAdmin": false, + "isOnlyNetworkUser": null +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..240b6627fc --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,128 @@ +--- +title: Get alerts API +description: Retrieves top recent alerts. +keywords: apis, graph api, supported apis, get, alerts, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get alerts API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves top recent alerts. + + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/alerts +``` + +## Optional query parameters +Method supports $skip and $top query parameters. + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful, this method returns 200 OK, and a list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) objects in the response body. +If no recent alerts found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/alerts +``` + +**Response** + +Here is an example of the response. + +>[!NOTE] +>The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. + + +``` +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "value": [ + { + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 1", + "recommendedAction": "Some recommended action 1", + "alertCreationTime": "2018-08-03T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 1", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-02T07:02:52.0894451Z", + "firstEventTime": "2018-08-02T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369f" + }, + { + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 2", + "recommendedAction": "Some recommended action 2", + "alertCreationTime": "2018-08-04T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 2", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-03T07:02:52.0894451Z", + "firstEventTime": "2018-08-03T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369d" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..d67c7e990a --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,124 @@ +--- +title: Get domain related alerts API +description: Retrieves a collection of alerts related to a given domain address. +keywords: apis, graph api, supported apis, get, domain, related, alerts +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get domain related alerts API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of alerts related to a given domain address. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/domains/{domain}/alerts +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and domain and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) objects. +If domain or alert does not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/domains/client.wns.windows.com/alerts +``` + +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 200 OK +Content-type: application/json + +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 1", + "recommendedAction": "Some recommended action 1", + "alertCreationTime": "2018-08-03T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 1", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-02T07:02:52.0894451Z", + "firstEventTime": "2018-08-02T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369f" + }, + { + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 2", + "recommendedAction": "Some recommended action 2", + "alertCreationTime": "2018-08-04T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 2", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-03T07:02:52.0894451Z", + "firstEventTime": "2018-08-03T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369d" + } + ] +} +``` + diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..0294068db8 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,121 @@ +--- +title: Get domain related machines API +description: Retrieves a collection of machines related to a given domain address. +keywords: apis, graph api, supported apis, get, domain, related, machines +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get domain related machines API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of machines that have communicated to or from a given domain address. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | URL.Read.All | 'Read URLs' + +## HTTP request +``` +GET /api/domains/{domain}/machines +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and domain and machine exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) objects. +If domain or machines do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +GET https://api.securitycenter.windows.com/api/domains/api.securitycenter.windows.com/machines +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "02ea9a24e8bd39c247ed7ca0edae879c321684e5", + "computerDnsName": "testMachine1", + "firstSeen": "2018-07-30T20:12:00.3708661Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "10.209.67.177", + "lastExternalIpAddress": "167.220.1.210", + "agentVersion": "10.5830.18208.1000", + "groupName": null, + "osBuild": 18208, + "healthStatus": "Inactive", + "isAadJoined": false, + "machineTags": [], + "rbacGroupId": 75, + "riskScore": "Low", + "aadDeviceId": null + }, + { + "id": "02efb9a9b85f07749a018fbf3f962b4700b3b949", + "computerDnsName": "testMachine2", + "firstSeen": "2018-07-30T19:50:47.3618349Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "10.209.70.231", + "lastExternalIpAddress": "167.220.0.28", + "agentVersion": "10.5830.18208.1000", + "groupName": null, + "osBuild": 18208, + "healthStatus": "Inactive", + "isAadJoined": false, + "machineTags": [], + "rbacGroupId": 75, + "riskScore": "None", + "aadDeviceId": null + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..cae669cc07 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,84 @@ +--- +title: Get domain statistics API +description: Retrieves the prevalence for the given domain. +keywords: apis, graph api, supported apis, get, domain, domain related machines +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get domain statistics API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves the prevalence for the given domain. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | URL.Read.All | 'Read all machine profiles' + +## HTTP request +``` +GET /api/domains/{domain}/stats +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and domain exists - 200 OK, with statistics object in the respnose body. +If domain does not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/domains/example.com/stats +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#microsoft.windowsDefenderATP.api.InOrgDomainStats", + "host": "example.com", + "orgPrevalence": "4070", + "orgFirstSeen": "2017-07-30T13:23:48Z", + "orgLastSeen": "2017-08-29T13:09:05Z" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..0c8cc1a590 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,97 @@ +--- +title: Get file information API +description: Retrieves a file by identifier Sha1, Sha256, or MD5. +keywords: apis, graph api, supported apis, get, file, information, sha1, sha256, md5 +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get file information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + + +Retrieves a file by identifier Sha1, Sha256, or MD5. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | File.Read.All | 'Read all file profiles' + +## HTTP request +``` +GET /api/files/{id} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and file exists - 200 OK with the [file](files-windows-defender-advanced-threat-protection-new.md) entity in the body. +If file does not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/files/6532ec91d513acc05f43ee0aa3002599729fd3e1 +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Files/$entity", + "sha1": "6532ec91d513acc05f43ee0aa3002599729fd3e1", + "sha256": "d4447dffdbb2889b4b4e746b0bc882df1b854101614b0aa83953ef3cb66904cf", + "md5": "7f05a371d2beffb3784fd2199f81d730", + "globalPrevalence": 7329, + "globalFirstObserved": "2018-04-08T05:50:29.4459725Z", + "globalLastObserved": "2018-08-07T23:35:11.1361328Z", + "windowsDefenderAVThreatName": null, + "size": 391680, + "fileType": "PortableExecutable", + "isPeFile": true, + "filePublisher": null, + "fileProductName": null, + "signer": null, + "issuer": null, + "signerHash": null, + "isValidCertificate": null +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..467ec1b0f0 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,103 @@ +--- +title: Get file related alerts API +description: Retrieves a collection of alerts related to a given file hash. +keywords: apis, graph api, supported apis, get, file, hash +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get file related alerts API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of alerts related to a given file hash. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/files/{id}/alerts +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and file and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities in the body. +If file or alerts do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/files/6532ec91d513acc05f43ee0aa3002599729fd3e1/alerts +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "value": [ + { + "id": "636692391408655573_2010598859", + "severity": "Low", + "status": "New", + "description": "test alert", + "recommendedAction": "do this and that", + "alertCreationTime": "2018-08-07T11:45:40.0199932Z", + "category": "None", + "title": "test alert", + "threatFamilyName": null, + "detectionSource": "CustomerTI", + "classification": null, + "determination": null, + "assignedTo": null, + "resolvedTime": null, + "lastEventTime": "2018-08-03T16:45:21.7115182Z", + "firstEventTime": "2018-08-03T16:45:21.7115182Z", + "actorName": null, + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..a4edd6751b --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,121 @@ +--- +title: Get file related machines API +description: Retrieves a collection of machines related to a given file hash. +keywords: apis, graph api, supported apis, get, machines, hash +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get file related machines API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of machines related to a given file hash. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/files/{id}/machines +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and file and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. +If file or machines do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/files/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/machines +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", + "computerDnsName": "mymachine1.contoso.com", + "firstSeen": "2018-08-02T14:55:03.7791856Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "172.17.230.209", + "lastExternalIpAddress": "167.220.196.71", + "agentVersion": "10.5830.18209.1001", + "groupName": null, + "osBuild": 18209, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + }, + { + "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", + "computerDnsName": "mymachine2.contoso.com", + "firstSeen": "2018-07-09T13:22:45.1250071Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "192.168.12.225", + "lastExternalIpAddress": "79.183.65.82", + "agentVersion": "10.5820.17724.1000", + "groupName": "WDATPClientTeam", + "osBuild": 17724, + "healthStatus": "Inactive", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..3c97bc8e75 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,89 @@ +--- +title: Get file statistics API +description: Retrieves the prevalence for the given file. +keywords: apis, graph api, supported apis, get, file, statistics +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get file statistics API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves the prevalence for the given file. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | File.Read.All | 'Read file profiles' + +## HTTP request +``` +GET /api/files/{id}/stats +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and file exists - 200 OK with statistical data in the body. +If file do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/files/6532ec91d513acc05f43ee0aa3002599729fd3e1/stats +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#microsoft.windowsDefenderATP.api.InOrgFileStats", + "sha1": "6532ec91d513acc05f43ee0aa3002599729fd3e1", + "orgPrevalence": "3", + "orgFirstSeen": "2018-07-15T06:13:59Z", + "orgLastSeen": "2018-08-03T16:45:21Z", + "topFileNames": [ + "chrome_1.exe", + "chrome_2.exe" + ] +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..ef6e67570d --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,104 @@ +--- +title: Get IP related alerts API +description: Retrieves a collection of alerts related to a given IP address. +keywords: apis, graph api, supported apis, get, ip, related, alerts +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get IP related alerts API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of alerts related to a given IP address. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/ips/{ip}/alerts +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and IP and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities in the body. +If IP and alerts do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +GET https://api.securitycenter.windows.com/api/ips/10.209.67.177/alerts +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "value": [ + { + "id": "636692391408655573_2010598859", + "severity": "Low", + "status": "New", + "description": "test alert", + "recommendedAction": "do this and that", + "alertCreationTime": "2018-08-07T11:45:40.0199932Z", + "category": "None", + "title": "test alert", + "threatFamilyName": null, + "detectionSource": "CustomerTI", + "classification": null, + "determination": null, + "assignedTo": null, + "resolvedTime": null, + "lastEventTime": "2018-08-03T16:45:21.7115182Z", + "firstEventTime": "2018-08-03T16:45:21.7115182Z", + "actorName": null, + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..c89ed86297 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,114 @@ +--- +title: Get IP related machines API +description: Retrieves a collection of machines related to a given IP address. +keywords: apis, graph api, supported apis, get, ip, related, machines +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get IP related machines API +Retrieves a collection of alerts related to a given IP address. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/ips/{ip}/machines +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and IP and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. +If IP or machines do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/ips/10.209.67.177/machines +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", + "computerDnsName": "mymachine1.contoso.com", + "firstSeen": "2018-08-02T14:55:03.7791856Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "172.17.230.209", + "lastExternalIpAddress": "167.220.196.71", + "agentVersion": "10.5830.18209.1001", + "groupName": null, + "osBuild": 18209, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + }, + { + "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", + "computerDnsName": "mymachine2.contoso.com", + "firstSeen": "2018-07-09T13:22:45.1250071Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "192.168.12.225", + "lastExternalIpAddress": "79.183.65.82", + "agentVersion": "10.5820.17724.1000", + "groupName": "WDATPClientTeam", + "osBuild": 17724, + "healthStatus": "Inactive", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..affd63c23c --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,84 @@ +--- +title: Get IP statistics API +description: Retrieves the prevalence for the given IP. +keywords: apis, graph api, supported apis, get, ip, statistics, prevalence +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get IP statistics API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves the prevalence for the given IP. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ip.Read.All | 'Read IP address profiles' + +## HTTP request +``` +GET /api/ips/{ip}/stats +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and file exists - 200 OK with statistical data in the body. +If file do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/ips/10.209.67.177/stats +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#microsoft.windowsDefenderATP.api.InOrgIPStats", + "ipAddress": "192.168.1.1", + "orgPrevalence": "63515", + "orgFirstSeen": "2017-07-30T13:36:06Z", + "orgLastSeen": "2017-08-29T13:32:59Z" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..d7dae982e8 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,99 @@ +--- +title: Get machine by ID API +description: Retrieves a machine entity by ID. +keywords: apis, graph api, supported apis, get, machines, entity, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get machine by ID API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a machine entity by ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/machines/{id} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machine exists - 200 OK with the [machine](machine-windows-defender-advanced-threat-protection-new.md) entity in the body. +If machine with the specified id was not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07 +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machine", + "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", + "computerDnsName": "mymachine1.contoso.com", + "firstSeen": "2018-08-02T14:55:03.7791856Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "172.17.230.209", + "lastExternalIpAddress": "167.220.196.71", + "agentVersion": "10.5830.18209.1001", + "groupName": null, + "osBuild": 18209, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..7f94e8c74e --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,106 @@ +--- +title: Get machine log on users API +description: Retrieves a collection of logged on users. +keywords: apis, graph api, supported apis, get, machine, log on, users +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get machine log on users API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + + +Retrieves a collection of logged on users. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | User.Read.All | 'Read user profiles' + + +## HTTP request +``` +GET /api/machines/{id}/logonusers +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machine and user exist - 200 OK with list of [user](user-windows-defender-advanced-threat-protection-new.md) entities in the body +If no machine found or no users found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/logonusers +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Users", + "value": [ + { + "id": "contoso\\user1", + "firstSeen": "2018-08-02T00:00:00Z", + "lastSeen": "2018-08-04T00:00:00Z", + "mostPrevalentMachineId": null, + "leastPrevalentMachineId": null, + "logonTypes": "Network", + "logOnMachinesCount": 3, + "isDomainAdmin": false, + "isOnlyNetworkUser": null + }, + { + "id": "contoso\\user2", + "firstSeen": "2018-08-02T00:00:00Z", + "lastSeen": "2018-08-05T00:00:00Z", + "mostPrevalentMachineId": null, + "leastPrevalentMachineId": null, + "logonTypes": "Network", + "logOnMachinesCount": 3, + "isDomainAdmin": false, + "isOnlyNetworkUser": null + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..5b98bf3a4f --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,104 @@ +--- +title: Get machine related alerts API +description: Retrieves a collection of alerts related to a given machine ID. +keywords: apis, graph api, supported apis, get, machines, related, alerts +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get machine related alerts API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of alerts related to a given machine ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/machines/{id}/alerts +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machine and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities in the body. +If no machine or no alerts found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +GET https://api.securitycenter.windows.com/api/machines/{id}/alerts +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "value": [ + { + "id": "636692391408655573_2010598859", + "severity": "Low", + "status": "New", + "description": "test alert", + "recommendedAction": "do this and that", + "alertCreationTime": "2018-08-07T11:45:40.0199932Z", + "category": "None", + "title": "test alert", + "threatFamilyName": null, + "detectionSource": "CustomerTI", + "classification": null, + "determination": null, + "assignedTo": null, + "resolvedTime": null, + "lastEventTime": "2018-08-03T16:45:21.7115182Z", + "firstEventTime": "2018-08-03T16:45:21.7115182Z", + "actorName": null, + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..2f3ae63b1c --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,91 @@ +--- +title: Get MachineAction object API +description: Use this API to create calls related to get machineaction object +keywords: apis, graph api, supported apis, machineaction object +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get MachineAction object API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Get actions done on a machine. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/machineactions/{id} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful, this method returns 200, Ok response code with a [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) object. +If machine action with the specified id was not found - 404 Not Found. + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/machineactions/2e9da30d-27f6-4208-81f2-9cd3d67893ba +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 Ok +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "2e9da30d-27f6-4208-81f2-9cd3d67893ba", + "type": "RunAntiVirusScan", + "requestor": "Analyst@contoso.com", + "requestorComment": "Check machine for viruses due to alert 3212", + "status": "Succeeded", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2017-12-04T12:18:57.5511934Z" +} + + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..ae7970fd01 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,165 @@ +--- +title: Get MachineActions collection API +description: Use this API to create calls related to get machineactions collection +keywords: apis, graph api, supported apis, machineaction collection +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get MachineActions collection API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + Gets collection of actions done on machines. Get MachineAction collection API supports OData V4 queries. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/machineactions +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful, this method returns 200, Ok response code with a collection of [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) objects since the Retention policy time of the organization. + + +## Example 1 + +**Request** + +Here is an example of the request on an organization that has three MachineActions. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/machineactions +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 Ok +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions", + "value": [ + { + "id": "69dc3630-1ccc-4342-acf3-35286eec741d", + "type": "CollectInvestigationPackage", + "requestor": "Analyst@contoso.com", + "requestorComment": "test", + "status": "Succeeded", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:43:57.2011911Z", + "lastUpdateTimeUtc": "2017-12-04T12:45:25.4049122Z" + }, + { + "id": "2e9da30d-27f6-4208-81f2-9cd3d67893ba", + "type": "RunAntiVirusScan", + "requestor": "Analyst@contoso.com", + "requestorComment": "Check machine for viruses due to alert 3212", + "status": "Succeeded", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2017-12-04T12:18:57.5511934Z" + }, + { + "id": "44cffc15-0e3d-4cbf-96aa-bf76f9b27f5e", + "type": "UnrestrictCodeExecution", + "requestor": "Analyst@contoso.com", + "requestorComment": "test", + "status": "Succeeded", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:15:40.6052029Z", + "lastUpdateTimeUtc": "2017-12-04T12:16:14.2899973Z" + } + ] +} +``` + +## Example 2 + +**Request** + +Here is an example of a request that filters the MachineActions by machine ID and shows the latest two MachineActions. + +``` +GET https://api.securitycenter.windows.com/api/machineactions?$filter=machineId eq 'f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f'&$top=2 +``` + +**Response** + +Here is an example of the response. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +HTTP/1.1 200 Ok +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/testwdatppreview/$metadata#MachineActions", + "value": [ + { + "id": "69dc3630-1ccc-4342-acf3-35286eec741d", + "type": "CollectInvestigationPackage", + "requestor": "Analyst@contoso.com", + "requestorComment": "test", + "status": "Succeeded", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:43:57.2011911Z", + "lastUpdateTimeUtc": "2017-12-04T12:45:25.4049122Z" + }, + { + "id": "2e9da30d-27f6-4208-81f2-9cd3d67893ba", + "type": "RunAntiVirusScan", + "requestor": "Analyst@contoso.com", + "requestorComment": "Check machine for viruses due to alert 3212", + "status": "Succeeded", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2017-12-04T12:18:57.5511934Z" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..35c4d198ee --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,120 @@ +--- +title: Get machines API +description: Retrieves a collection of recently seen machines. +keywords: apis, graph api, supported apis, get, machines +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get machines API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of recently seen machines. + +## Permissions + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/machines +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. +If no recent machines - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/machines +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", + "computerDnsName": "mymachine1.contoso.com", + "firstSeen": "2018-08-02T14:55:03.7791856Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "172.17.230.209", + "lastExternalIpAddress": "167.220.196.71", + "agentVersion": "10.5830.18209.1001", + "groupName": null, + "osBuild": 18209, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + }, + { + "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", + "computerDnsName": "mymachine2.contoso.com", + "firstSeen": "2018-07-09T13:22:45.1250071Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "192.168.12.225", + "lastExternalIpAddress": "79.183.65.82", + "agentVersion": "10.5820.17724.1000", + "groupName": "WDATPClientTeam", + "osBuild": 17724, + "healthStatus": "Inactive", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..e3b14550d2 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,84 @@ +--- +title: Get package SAS URI API +description: Use this API to get a URI that allows downloading an investigation package. +keywords: apis, graph api, supported apis, get package, sas, uri +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get package SAS URI API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Get a URI that allows downloading of an investigation package. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.CollectForensics | 'Collect forensics' + +## HTTP request +``` +GET /api/machineactions/{id}/getPackageUri +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful, this method returns 200, Ok response code with object that holds the link to the package in the “value” parameter. This link is valid for a very short time and should be used immediately for downloading the package to a local storage. + + +## Example + +**Request** + +Here is an example of the request. + +``` +GET https://api.securitycenter.windows.com/api/machineactions/7327b54fd718525cbca07dacde913b5ac3c85673/GetPackageUri + +``` + +**Response** + +Here is an example of the response. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +HTTP/1.1 200 Ok +Content-type: application/json + +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Edm.String", + "value": "\"https://userrequests-us.securitycenter.windows.com:443/safedownload/WDATP_Investigation_Package.zip?token=gbDyj7y%2fbWGAZjn2sFiZXlliBTXOCVG7yiJ6mXNaQ9pLByC2Wxeno9mENsPFP3xMk5l%2bZiJXjLvqAyNEzUNROxoM2I1er9dxzfVeBsxSmclJjPsAx%2btiNyxSz1Ax%2b5jaT5cL5bZg%2b8wgbwY9urXbTpGjAKh6FB1e%2b0ypcWkPm8UkfOwsmtC%2biZJ2%2bPqnkkeQk7SKMNoAvmh9%2fcqDIPKXGIBjMa0D9auzypOqd8bQXp7p2BnLSH136BxST8n9IHR4PILvRjAYW9kvtHkBpBitfydAsUW4g2oDZSPN3kCLBOoo1C4w4Lkc9Bc3GNU2IW6dfB7SHcp7G9p4BDkeJl3VuDs6esCaeBorpn9FKJ%2fXo7o9pdcI0hUPZ6Ds9hiPpwPUtz5J29CBE3QAopCK%2fsWlf6OW2WyXsrNRSnF1tVE5H3wXpREzuhD7S4AIA3OIEZKzC4jIPLeMu%2bazZU9xGwuc3gICOaokbwMJiZTqcUuK%2fV9YdBdjdg8wJ16NDU96Pl6%2fgew2KYuk6Wo7ZuHotgHI1abcsvdlpe4AvixDbqcRJthsg2PpLRaFLm5av44UGkeK6TJpFvxUn%2f9fg6Zk5yM1KUTHb8XGmutoCM8U9er6AzXZlY0gGc3D3bQOg41EJZkEZLyUEbk1hXJB36ku2%2bW01cG71t7MxMBYz7%2bdXobxpdo%3d%3bRWS%2bCeoDfTyDcfH5pkCg6hYDmCOPr%2fHYQuaUWUBNVnXURYkdyOzVHqp%2fe%2f1BNyPdVoVkpQHpz1pPS3b5g9h7IMmNKCk5gFq5m2nPx6kk9EYtzx8Ndoa2m9Yj%2bSaf8zIFke86YnfQL4AYewsnQNJJh4wc%2bXxGlBq7axDcoiOdX91rKzVicH3GSBkFoLFAKoegWWsF%2fEDZcVpF%2fXUA1K8HvB6dwyfy4y0sAqnNPxYTQ97mG7yHhxPt4Pe9YF2UPPAJVuEf8LNlQ%2bWHC9%2f7msF6UUI4%2fca%2ftpjFs%2fSNeRE8%2fyQj21TI8YTF1SowvaJuDc1ivEoeopNNGG%2bGI%2fX0SckaVxU9Hdkh0zbydSlT5SZwbSwescs0IpzECitBbaLUz4aT8KTs8T0lvx8D7Te3wVsKAJ1r3iFMQZrlk%2bS1WW8rvac7oHRx2HKURn1v7fDIQWgJr9aNsNlFz4fLJ50T2qSHuuepkLVbe93Va072aMGhvr09WVKoTpAf1j2bcFZZU6Za5PxI32mr0k90FgiYFJ1F%2f1vRDrGwvWVWUkR3Z33m4g0gHa52W1FMxQY0TJIwbovD6FaSNDx7xhKZSd5IJ7r6P91Gez49PaZRcAZPjd%2bfbul3JNm1VqQPTLohT7wa0ymRiXpSST74xtFzuEBzNSNATdbngj3%2fwV4JesTjZjIj5Dc%3d%3blumqauVlFuuO8MQffZgs0tLJ4Fq6fpeozPTdDf8Ll6XLegi079%2b4mSPFjTK0y6eohstxdoOdom2wAHiZwk0u4KLKmRkfYOdT1wHY79qKoBQ3ZDHFTys9V%2fcwKGl%2bl8IenWDutHygn5IcA1y7GTZj4g%3d%3d\"" +} + + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..74880584e6 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,86 @@ +--- +title: Get user information API +description: Retrieve a User entity by key such as user name or domain. +keywords: apis, graph api, supported apis, get, user, user information +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get user information API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieve a User entity by key (user name or domain\user). + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | User.Read.All | 'Read all user profiles' + +## HTTP request +``` +GET /api/users/{id}/ +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and user exists - 200 OK with [user](user-windows-defender-advanced-threat-protection-new.md) entity in the body. +If user does not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/users/{id} +Content-type: application/json +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/testwdatppreview/$metadata#Users/$entity", + "id": "", + "accountSid": null, + "accountName": "", + "accountDomainName": "", +… +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..d0024bf007 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,123 @@ +--- +title: Get user related alerts API +description: Retrieves a collection of alerts related to a given user ID. +keywords: apis, graph api, supported apis, get, user, related, alerts +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get user related alerts API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of alerts related to a given user ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alert.Read.All | 'Read all alerts' +Application | Alert.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +GET /api/users/{id}/alerts +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and user and alert exists - 200 OK. +If user does not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/users/user1@contoso.com/alerts +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts", + "value": [ + { + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 1", + "recommendedAction": "Some recommended action 1", + "alertCreationTime": "2018-08-03T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 1", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-02T07:02:52.0894451Z", + "firstEventTime": "2018-08-02T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369f" + }, + { + "id": "636688558380765161_2136280442", + "severity": "Informational", + "status": "InProgress", + "description": "Some alert description 2", + "recommendedAction": "Some recommended action 2", + "alertCreationTime": "2018-08-04T01:17:17.9516179Z", + "category": "General", + "title": "Some alert title 2", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": "TruePositive", + "determination": null, + "assignedTo": "best secop ever", + "resolvedTime": null, + "lastEventTime": "2018-08-03T07:02:52.0894451Z", + "firstEventTime": "2018-08-03T07:02:52.0894451Z", + "actorName": null, + "machineId": "ff0c3800ed8d66738a514971cd6867166809369d" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..5a304b14c3 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,121 @@ +--- +title: Get user related machines API +description: Retrieves a collection of machines related to a given user ID. +keywords: apis, graph api, supported apis, get, user, user related alerts +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get user related machines API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Retrieves a collection of machines related to a given user ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' + +## HTTP request +``` +GET /api/users/{id}/machines +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. +If user or machines does not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/users/user1@contoso.com/machines +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", + "computerDnsName": "mymachine1.contoso.com", + "firstSeen": "2018-08-02T14:55:03.7791856Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "172.17.230.209", + "lastExternalIpAddress": "167.220.196.71", + "agentVersion": "10.5830.18209.1001", + "groupName": null, + "osBuild": 18209, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + }, + { + "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", + "computerDnsName": "mymachine2.contoso.com", + "firstSeen": "2018-07-09T13:22:45.1250071Z", + "osPlatform": "Windows10", + "osVersion": null, + "systemProductName": null, + "lastIpAddress": "192.168.12.225", + "lastExternalIpAddress": "79.183.65.82", + "agentVersion": "10.5820.17724.1000", + "groupName": "WDATPClientTeam", + "osBuild": 17724, + "healthStatus": "Inactive", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 140, + "riskScore": "Low", + "aadDeviceId": null + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..67e10348a6 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,73 @@ +--- +title: Is domain seen in org API +description: Use this API to create calls related to checking whether a domain was seen in the organization. +keywords: apis, graph api, supported apis, domain, domain seen +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 04/24/2018 +--- + +# Was domain seen in org +Answers whether a domain was seen in the organization. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Url.Read.All | 'Read URLs' + +## HTTP request +``` +GET /api/domains/{domain} +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and domain exists - 200 OK. If domain does not exist - 404 Not Found. + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +GET https://api.securitycenter.windows.com/api/domains/example.com +Content-type: application/json +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Domains/$entity", + "host": "example.com" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..22da7d935e --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,80 @@ +--- +title: Is IP seen in org API +description: Answers whether an IP was seen in the organization. +keywords: apis, graph api, supported apis, is, ip, seen, org, organization +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Was IP seen in org + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Answers whether an IP was seen in the organization. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ip.Read.All | 'Read IP address profiles' + +## HTTP request +``` +GET /api/ips/{ip} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and IP exists - 200 OK. If IP do not exist - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +``` +GET https://api.securitycenter.windows.com/api/ips/10.209.67.177 +``` + +**Response** + +Here is an example of the response. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Ips/$entity", + "id": "10.209.67.177" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..0542b64fcf --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,103 @@ +--- +title: Isolate machine API +description: Use this API to create calls related isolating a machine. +keywords: apis, graph api, supported apis, isolate machine +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Isolate machine API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Isolates a machine from accessing external network. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Isolate | 'Isolate machine' + +## HTTP request +``` +POST /api/machines/{id}/isolate +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. +IsolationType | String | Type of the isolation. Allowed values are: 'Full' or 'Selective'. + +**IsolationType** controls the type of isolation to perform and can be one of the following: +- Full – Full isolation +- Selective – Restrict only limited set of applications from accessing the network + + +## Response +If successful, this method returns 201 - Created response code and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/isolate +Content-type: application/json +{ + "Comment": "Isolate machine due to alert 1234", + “IsolationType”: “Full” +} + +``` +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "b89eb834-4578-496c-8be0-03f004061435", + "type": "Isolate", + "requestor": "Analyst@contoso.com ", + "requestorComment": "Isolate machine due to alert 1234", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:12:18.9725659Z", + "lastUpdateTimeUtc": "2017-12-04T12:12:18.9725659Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..9afd33baef --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,45 @@ +--- +title: File resource type +description: Retrieves top recent alerts. +keywords: apis, graph api, supported apis, get, alerts, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Machine resource type + + +# Methods +Method|Return Type |Description +:---|:---|:--- +[List machines](get-machines-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) collection | List set of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the org. +[Get machine](get-machine-by-id-windows-defender-advanced-threat-protection.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | Get a [machine](machine-windows-defender-advanced-threat-protection-new.md) by its identity. +[Get logged on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) collection | Get the set of [User](user-windows-defender-advanced-threat-protection-new.md) that logged on to the [machine](machine-windows-defender-advanced-threat-protection-new.md). +[Get related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | Get the set of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities that were raised on the [machine](machine-windows-defender-advanced-threat-protection-new.md). + +# Properties +Property | Type | Description +:---|:---|:--- +id | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) identity. +computerDnsName | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) fully qualified name. +firstSeen | DateTimeOffset | First date and time where the [machine](machine-windows-defender-advanced-threat-protection-new.md) was observed by WDATP. +osPlatform | String | OS platform. +osVersion | String | OS Version. +lastIpAddress | Ip | Last IP on local NIC on the [machine](machine-windows-defender-advanced-threat-protection-new.md). +lastExternalIpAddress | Ip | Last Ip through which the [machine](machine-windows-defender-advanced-threat-protection-new.md) accessed the internet. +agentVersion | String | Version of WDATP agent. +groupName | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) group name (when defined). +osBuild | Int | OS build number. +healthStatus | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) health status. +isAadJoined | Boolean | Is [machine](machine-windows-defender-advanced-threat-protection-new.md) AAD joined. +machineTags | String collection | Set of [machine](machine-windows-defender-advanced-threat-protection-new.md) tags. +rbacGroupId | Int | Group Id. +riskScore | String | Risk score as evaludated by WDATP. Possible values are: 'None', 'Low', 'Medium' and 'High'. +aadDeviceId | String | AAD Device Id (when [machine](machine-windows-defender-advanced-threat-protection-new.md) is Aad Joined). \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..e611322103 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,42 @@ +--- +title: File resource type +description: Retrieves top recent alerts. +keywords: apis, graph api, supported apis, get, alerts, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Machine Action resource type + +Method|Return Type |Description +:---|:---|:--- +[List MachineActions](get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | List [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entities. +[Get MachineAction](get-machineaction-object-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Get a single [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entity. +[Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Collect investigation package from a [machine](machine-windows-defender-advanced-threat-protection-new.md). +[Get investigation package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Get URI for downloading the investigation package. +[Isolate machine](isolate-machine-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Isolate [machine](machine-windows-defender-advanced-threat-protection-new.md) from network. +[Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Release [machine](machine-windows-defender-advanced-threat-protection-new.md) from Isolation. +[Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Restrict application execution. +[Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Remove application execution restriction. +[Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Run an AV scan using Windows Defender (when applicable). +[Offboard machine](offboard-machine-api-windows-defender-advanced-threat-protection-new)|[Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Offboard [machine](machine-windows-defender-advanced-threat-protection-new.md) from WDATP. + +# Properties +Property | Type | Description +:---|:---|:--- +id | Guid | Identity of the [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entity. +type | String | Type of the action. +requestor | String | Identity of the person that executed the action. +requestorComment | String | Comment that was written when issuing the action. +status | String | Current status of the command. Possible values are: "InProgress", "Succeeded", "Failed" and "Cancelled". +error | String | Error code providing more insight as to what have caused the command to fail. +machineId | String | Id of the machine on which the action was executed. +creationDateTimeUtc | DateTimeOffset | The date and time when the action was created. +lastUpdateTimeUtc | DateTimeOffset | The last date and time when the action status was updated. diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..305514fa27 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,96 @@ +--- +title: Collect investigation package API +description: Use this API to create calls related to the collecting an investigation package from a machine. +keywords: apis, graph api, supported apis, collect investigation package +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Collect investigation package API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Offboard machine from WDATP. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Offboard | 'Offboard machine' + +## HTTP request +``` +POST /api/machines/{id}/offboard +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + +## Response +If successful, this method returns 201 - Created response code and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/offboard +Content-type: application/json +{ + "Comment": "Offboard machine by automation" +} +``` + +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "c9042f9b-8483-4526-87b5-35e4c2532223", + "type": "OffboardMachine", + "requestor": "Analyst@contoso.com", + "requestorComment": "offboard machine by automation", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:09:24.1785079Z", + "lastUpdateTimeUtc": "2017-12-04T12:09:24.1785079Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..8f738be715 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,96 @@ +--- +title: Restrict app execution API +description: Use this API to create calls related to restricting an application from executing. +keywords: apis, graph api, supported apis, collect investigation package +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Restrict app execution API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Restrict execution of all applications on the machine except a predefined set. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.RestrictExecution | 'Restrict code execution' + +## HTTP request +``` +POST /api/machines/{id}/restrictCodeExecution +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + +## Response +If successful, this method returns 201 - Created response code and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/restrictCodeExecution +Content-type: application/json +{ + "Comment": "Restrict code execution due to alert 1234" +} + +``` +**Response** + +Here is an example of the response. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "78d408d1-384c-4c19-8b57-ba39e378011a", + "type": "RestrictCodeExecution", + "requestor": "Analyst@contoso.com ", + "requestorComment": "Restrict code execution due to alert 1234", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:15:04.3825985Z", + "lastUpdateTimeUtc": "2017-12-04T12:15:04.3825985Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..9d33981067 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,105 @@ +--- +title: Run antivirus scan API +description: Use this API to create calls related to running an antivirus scan on a machine. +keywords: apis, graph api, supported apis, remove machine from isolation +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Run antivirus scan API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Initiate Windows Defender Antivirus scan on the machine. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Scan | 'Scan machine' + +## HTTP request +``` +POST /api/machines/{id}/runAntiVirusScan +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. +ScanType| String | Defines the type of the Scan. **Required**. + +**ScanType** controls the type of scan to perform and can be one of the following: + +- **Quick** – Perform quick scan on the machine +- **Full** – Perform full scan on the machine + + + +## Response +If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/runAntiVirusScan +Content-type: application/json +{ + "Comment": "Check machine for viruses due to alert 3212", + “ScanType”: “Full” +} +``` + +**Response** + +Here is an example of the response. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "2e9da30d-27f6-4208-81f2-9cd3d67893ba", + "type": "RunAntiVirusScan", + "requestor": "Analyst@contoso.com", + "requestorComment": "Check machine for viruses due to alert 3212", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2017-12-04T12:18:27.1293487Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..e8279e443f --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,44 @@ +--- +title: Supported Windows Defender Advanced Threat Protection query APIs +description: Learn about the specific supported Windows Defender Advanced Threat Protection entities where you can create API calls to. +keywords: apis, supported apis, actor, alerts, machine, user, domain, ip, file, advanced queries, advanced hunting +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Supported Windows Defender ATP query APIs + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +>Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-supportedapis-abovefoldlink) + +Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. + +## In this section +Topic | Description +:---|:--- +Advanced Hunting | Run queries from API. +Alerts | Run API calls such as get alerts, create alerts, alert information by ID, alert related actor information, alert related IP information, and alert related machine information. +Domain |Run API calls such as get domain related machines, statistics, and check if a domain is seen in your organization. +File | Run API calls such as get file information, file related alerts, file related machines, and file statistics. +IP | Run API calls such as get IP related alerts, IP related machines, IP statistics, and check if and IP is seen in your organization. +Machines | Run API calls such as get machines, get machines by ID, perform actions on machines (s.a. "Collect investigation package") information about logged on users, and alerts related to a given machine ID. +User | Run API calls such as get alert related user information, user information, user related alerts, and user related machines. + +## Related topic +- [Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..e3cb3d3e64 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,93 @@ +--- +title: Unblock file API +description: Use this API to create calls related to allowing a file to be executed in the organization +keywords: apis, graph api, supported apis, unblock file +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Unblock file API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Allow a file to be executed in the organization, using Windows Defender Antivirus. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti.ReadWrite | 'Threat Intelligence read write' + +## HTTP request +``` +POST /api/files/{sha1}/unblock +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. +Content-Type | application/json + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + + +## Response +If successful, this method returns 201 Created response code with action details, which indicates that unblock message was sent to Windows Defender deployed in the organization. + + +## Example + +**Request** + +Here is an example of the request. + +``` +POST https://api.securitycenter.windows.com/api/files/7327b54fd718525cbca07dacde913b5ac3c85673/unblock +Content-type: application/json +{ + "Comment": "Unblock file since alert 1234 was investigated and discovered to be false alarm", +} +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", + "fileIdentifierType": "Sha1", + "actionType": "UnBlock", + "fileStatus": "Blocked", + "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", + "requestor": "Analyst@contoso.com ", + "requestorComment": "test", + "cancellationDateTimeUtc": null, + "cancellationRequestor": null, + "cancellationComment": null, + "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..aacb10b79f --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,101 @@ +--- +title: Release machine from isolation API +description: Use this API to create calls related to release a machine from isolation. +keywords: apis, graph api, supported apis, remove machine from isolation +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Release machine from isolation API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Undo isolation of a machine. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Isolate | 'Isolate machine' + +## HTTP request +``` +POST /api/machines/{id}/unisolate +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + +## Response +If successful, this method returns 201 - Created response code and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/unisolate +Content-type: application/json +{ + "Comment": "Unisolate machine since it was clean and validated" +} + +``` +**Response** + +Here is an example of the response. + +>[!NOTE] +>The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "09a0f91e-a2eb-409d-af33-5577fe9bd558", + "type": "Unisolate", + "requestor": "Analyst@contoso.com ", + "requestorComment": "Unisolate machine since it was clean and validated ", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:13:15.0104931Z", + "lastUpdateTimeUtc": "2017-12-04T12:13:15.0104931Z" +} + + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..e08b5d033f --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,96 @@ +--- +title: Remove app restriction API +description: Use this API to create calls related to removing a restriction from applications from executing. +keywords: apis, graph api, supported apis, remove machine from isolation +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Remove app restriction API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Enable execution of any application on the machine. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.RestrictExecution | 'Restrict code execution' + +## HTTP request +``` +POST /api/machines/{id}/unrestrictCodeExecution +``` + +## Request headers +Name | Type | Description +:---|:---|:--- +Authorization | string | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + +## Response +If successful, this method returns 201 - Created response code and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution +Content-type: application/json +{ + "Comment": "Unrestrict code execution since machine was cleaned and validated" +} + +``` + +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "id": "44cffc15-0e3d-4cbf-96aa-bf76f9b27f5e", + "type": "UnrestrictCodeExecution", + "requestor": "Analyst@contoso.com", + "requestorComment": "Unrestrict code execution since machine was cleaned and validated ", + "status": "InProgress", + "error": "None", + "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "creationDateTimeUtc": "2017-12-04T12:15:40.6052029Z", + "lastUpdateTimeUtc": "2017-12-04T12:15:40.6052029Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..76d372f7b5 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,108 @@ +--- +title: Get alert information by ID API +description: Retrieves an alert by its ID. +keywords: apis, graph api, supported apis, get, alert, information, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Update alert + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + +Update the properties of an alert object. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Alerts.ReadWrite.All | 'Read and write all alerts' + +## HTTP request +``` +PATCH /api/alerts/{id} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. +Content-Type | String | application/json. **Required**. + + +## Request body +In the request body, supply the values for the relevant fields that should be updated.Existing properties that are not included in the request body will maintain their previous values or be recalculated based on tchanges to other property values. For best performance you shouldn't include existing values that haven't change. + +Property | Type | Description +:---|:---|:--- +status | String | Specifies the current status of the alert. The property values are: 'New', 'InProgress' and 'Resolved'. +assignedTo | String | Owner of the alert +classification | String | Speficies the specification of the alert. The property values are: 'Unknown', 'FalsePositive', 'TruePositive'. +determination | String | Specifies the determination of the alert. The property values are: 'NotAvailable', 'Apt', 'Malware', 'SecurityPersonnel', 'SecurityTesting', 'UnwantedSoftware', 'Other' + + +## Response +If successful, this method returns 200 OK, and an [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body with the updated properties. +If alert with the specified id was not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com + +``` +PATCH https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442 +Content-Type: application/json + +{ + "assignedTo": "Our designated secop" +} +``` + +**Response** + +Here is an example of the response. + +``` +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts/$entity", + "id": "636692338844234222_1806644926", + "severity": "Medium", + "status": "InProgress", + "description": "An anomalous memory operation appears to be tampering with a process associated with the Windows Defender EDR sensor.", + "recommendedAction": "A. Validate the alert.\n1. Examine the process involved in the memory operation to determine whether the process and the observed activities are normal. \n2. Check for other suspicious activities in the machine timeline.\n3. Locate unfamiliar processes in the process tree. Check files for prevalence, their locations, and digital signatures.\n4. Submit relevant files for deep analysis and review file behaviors. \n5. Identify unusual system activity with system owners. \n\nB. Scope the incident. Find related machines, network addresses, and files in the incident graph. \n\nC. Contain and mitigate the breach. Stop suspicious processes, isolate affected machines, decommission compromised accounts or reset passwords, block IP addresses and URLs, and install security updates.\n\nD. Contact your incident response team, or contact Microsoft support for investigation and remediation services.", + "alertCreationTime": "2018-08-07T10:18:04.2665329Z", + "category": "Installation", + "title": "Possible sensor tampering in memory", + "threatFamilyName": null, + "detectionSource": "WindowsDefenderAtp", + "classification": null, + "determination": null, + "assignedTo": "Our designated secop", + "resolvedTime": null, + "lastEventTime": "2018-08-07T10:14:35.470671Z", + "firstEventTime": "2018-08-07T10:14:35.470671Z", + "actorName": null, + "machineId": "a2250e1cd215af1ea2818ef8d01a564f67542857" +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..509ded9db9 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,23 @@ +--- +title: File resource type +description: Retrieves top recent alerts. +keywords: apis, graph api, supported apis, get, alerts, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# User resource type + +Method|Return Type |Description +:---|:---|:--- +[List User related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | List all the alerts that are associated with a [user](user-windows-defender-advanced-threat-protection-new.md). +[List User related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) collection | List all the machines that were logged on by a [user](user-windows-defender-advanced-threat-protection-new.md). + + From 7c07c111923fb9793c2e6e1c5dae54198fba00e4 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 08:44:30 +0300 Subject: [PATCH 032/201] fix --- .../security/threat-protection/windows-defender-atp/TOC.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 07e39fd8d3..e0fbd229bd 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -96,6 +96,11 @@ #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) ### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +#### Create your app + +##### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) + +##### [Get access without a user](exposed-apis-create-app-webapp.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) ##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) @@ -152,7 +157,9 @@ #### How to use APIs - Samples ##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) + ##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) + ##### [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) From 7fe9692f380f648d952f9423cb1a29e015118b21 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 08:51:12 +0300 Subject: [PATCH 033/201] foxes --- .../windows-defender-atp/TOC.md | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index e0fbd229bd..e46669dc19 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -95,14 +95,26 @@ #### [Experiment with custom threat intelligence alerts](experiment-custom-ti-windows-defender-advanced-threat-protection.md) #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) -### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) +### [**Beta!** Windows Defender ATP APIs](exposed-apis-intro.md) + #### Create your app ##### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) ##### [Get access without a user](exposed-apis-create-app-webapp.md) -#### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) -##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) + +#### [Supported Windows Defender ATP APIs](exposed-apis-list.md) + +##### [Advanced Hunting](run-advanced-query-api.md) + +#### How to use APIs - Samples + +##### [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) + ##### [Alert](alerts-windows-defender-advanced-threat-protection-new.md) ###### [List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) @@ -155,14 +167,6 @@ ###### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ###### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -#### How to use APIs - Samples -##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) - -##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) - -##### [Advanced Hunting using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md) - - ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) #####Actor From 07946c4cee3e4c1779b581c8dcf1a9e9aacef4b9 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 08:52:11 +0300 Subject: [PATCH 034/201] fixes --- .../threat-protection/windows-defender-atp/TOC.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index e46669dc19..b4d24cbc95 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -96,26 +96,17 @@ #### [Troubleshoot custom threat intelligence issues](troubleshoot-custom-ti-windows-defender-advanced-threat-protection.md) ### [**Beta!** Windows Defender ATP APIs](exposed-apis-intro.md) - #### Create your app - ##### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) - ##### [Get access without a user](exposed-apis-create-app-webapp.md) - #### [Supported Windows Defender ATP APIs](exposed-apis-list.md) - ##### [Advanced Hunting](run-advanced-query-api.md) #### How to use APIs - Samples - ##### [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) - ##### [Alert](alerts-windows-defender-advanced-threat-protection-new.md) ###### [List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) ###### [Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md) From 972931d8fbb2f02b4a124f811783385045b6370c Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 09:48:06 +0300 Subject: [PATCH 035/201] fix failures --- .../alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...reference-windows-defender-advanced-threat-protection-new.md | 2 +- ...osed-apis-windows-defender-advanced-threat-protection-new.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md index 6f49e0bacf..b6aa792424 100644 --- a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ Method|Return Type |Description :---|:---|:--- [Get alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | Get a single [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) object. [List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection | List [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection. -[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) +[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced Hunting](run-advanced-query-api.md) [List related domains](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md)|Domain collection|List Urls associated with the alert. [List related files](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) collection | List the [file](files-windows-defender-advanced-threat-protection-new.md) entities that are associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). [List related IPs](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) | IP collection | List IPs that are associated witht the alert. diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 0028551bf1..970ce1702b 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -20,7 +20,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Enables using event data, as obtained from the [Advanced hunting API](run-advanced-query-windows-defender-advanced-threat-protection.md) for creating a new alert entity. +Enables using event data, as obtained from the [Advanced Hunting](run-advanced-query-api.md) for creating a new alert entity. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index bfe251407b..68d63bddd1 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -152,7 +152,7 @@ Refer to [Get token using PowerShell](run-advanced-query-windows-defender-advanc ### Using Python -Refer to [Get token using Python](run-advanced-query-windows-defender-advanced-threat-protection-sample-python.md#get-token) +Refer to [Get token using Python](run-advanced-query-sample-python.md#get-token) ### Using Curl From bc236fc8f7b299b7b84e7e4e146a37bb65000b1d Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 10:20:14 +0300 Subject: [PATCH 036/201] fix two warnings --- ...osed-apis-windows-defender-advanced-threat-protection-new.md | 2 +- ...ineaction-windows-defender-advanced-threat-protection-new.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 68d63bddd1..b64bf198ef 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -148,7 +148,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ### Using PowerShell -Refer to [Get token using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md#get-token) +Refer to [Get token using PowerShell](run-advanced-query-sample-powershell.md#get-token) ### Using Python diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md index e611322103..cc9b4418a7 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ Method|Return Type |Description [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Restrict application execution. [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Remove application execution restriction. [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection-new.md) | [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Run an AV scan using Windows Defender (when applicable). -[Offboard machine](offboard-machine-api-windows-defender-advanced-threat-protection-new)|[Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Offboard [machine](machine-windows-defender-advanced-threat-protection-new.md) from WDATP. +[Offboard machine](offboard-machine-api-windows-defender-advanced-threat-protection-new.md)|[Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) | Offboard [machine](machine-windows-defender-advanced-threat-protection-new.md) from WDATP. # Properties Property | Type | Description From d98bc8fac0e982cafaafcb18134f8463439a7cfe Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 10:30:03 +0300 Subject: [PATCH 037/201] Add prereleased prefix --- .../threat-protection/windows-defender-atp/TOC.md | 11 ++++++----- ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 6 ++++++ ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 5 ++--- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 2 ++ ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 7 +++++++ ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 4 ++-- ...windows-defender-advanced-threat-protection-new.md | 3 ++- 44 files changed, 101 insertions(+), 43 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index b4d24cbc95..7e5b918b32 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -102,11 +102,6 @@ #### [Supported Windows Defender ATP APIs](exposed-apis-list.md) ##### [Advanced Hunting](run-advanced-query-api.md) -#### How to use APIs - Samples -##### [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) - ##### [Alert](alerts-windows-defender-advanced-threat-protection-new.md) ###### [List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) ###### [Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md) @@ -158,6 +153,12 @@ ###### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ###### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) +#### How to use APIs - Samples +##### [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) + + ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) #####Actor diff --git a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md index b6aa792424..25f518344c 100644 --- a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Alert resource type +[!include[Prereleaseinformation](prerelease.md)] + Represents an alert entity in WDATP. # Methods diff --git a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md index 4b945f2c0f..84bbef9016 100644 --- a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Block file API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index df75029191..7f8808cd66 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Collect investigation package API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 970ce1702b..dc6e3ab67a 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Create alert from event API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md index 00e1b1e364..8961b49e34 100644 --- a/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # File resource type +[!include[Prereleaseinformation](prerelease.md)] + Represent a file entity in WDATP. # Methods diff --git a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md index 87e402b102..eb6d684c80 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 07/25/2018 # Find machine information by internal IP API +[!include[Prerelease information](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index 26333d85c4..46cb0db71b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alert information by ID API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index 42d2bad378..bfdfc9935b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alert related domain information API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 5bac7b1862..90083b44b6 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alert related files information API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index d28d7e4c38..1ed55af361 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alert related IP information API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index d4e17a8f25..46b6be0dc4 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alert related machine information API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index f2f994a6cb..6ac1ca8121 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alert related user information API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 240b6627fc..ac34277345 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get alerts API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index d67c7e990a..a64b80a325 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get domain related alerts API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index 0294068db8..c757b85e20 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get domain related machines API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index cae669cc07..cac75199c0 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get domain statistics API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index 0c8cc1a590..0b128088bf 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get file information API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 467ec1b0f0..79d9ce83fb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get file related alerts API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index a4edd6751b..7f56ef7bb9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get file related machines API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index 3c97bc8e75..455b5c051b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get file statistics API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index ef6e67570d..a1b072c358 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get IP related alerts API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index c89ed86297..fad2a57955 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -14,6 +14,12 @@ ms.date: 12/08/2017 --- # Get IP related machines API + +[!include[Prereleaseinformation](prerelease.md)] + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + Retrieves a collection of alerts related to a given IP address. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index affd63c23c..4744b4c554 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get IP statistics API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieves the prevalence for the given IP. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index d7dae982e8..ed74621b98 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get machine by ID API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieves a machine entity by ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 7f94e8c74e..db2f410ad7 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -15,13 +15,12 @@ ms.date: 12/08/2017 # Get machine log on users API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - Retrieves a collection of logged on users. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 5b98bf3a4f..29a18a285d 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get machine related alerts API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieves a collection of alerts related to a given machine ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 2f3ae63b1c..32946e2f35 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get MachineAction object API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Get actions done on a machine. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index ae7970fd01..8adbf1ddfd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 12/08/2017 # Get MachineActions collection API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 35c4d198ee..8f57ed8f68 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get machines API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieves a collection of recently seen machines. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index e3b14550d2..95c7d5f771 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get package SAS URI API +[!include[Prerelease information](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Get a URI that allows downloading of an investigation package. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md index 74880584e6..cabf478649 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get user information API +[!include[Prerelease information](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieve a User entity by key (user name or domain\user). ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index d0024bf007..9d2755148a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get user related alerts API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieves a collection of alerts related to a given user ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 5a304b14c3..6c7f9ad663 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Get user related machines API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Retrieves a collection of machines related to a given user ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md index 67e10348a6..1c1e122d2c 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -14,6 +14,13 @@ ms.date: 04/24/2018 --- # Was domain seen in org + +[!include[Prereleaseinformation](prerelease.md)] + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + Answers whether a domain was seen in the organization. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md index 22da7d935e..7459ba5ffd 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Was IP seen in org +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Answers whether an IP was seen in the organization. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 0542b64fcf..cb23139a00 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Isolate machine API +[!include[Prerelease information](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Isolates a machine from accessing external network. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 305514fa27..264b5d8a98 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Collect investigation package API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Offboard machine from WDATP. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 8f738be715..a2ee20bb6c 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Restrict app execution API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Restrict execution of all applications on the machine except a predefined set. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 9d33981067..2c50e1f063 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Run antivirus scan API +[!include[Prerelease information](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Initiate Windows Defender Antivirus scan on the machine. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md index e8279e443f..ac8271ccc0 100644 --- a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md @@ -15,6 +15,8 @@ ms.date: 30/07/2018 # Supported Windows Defender ATP query APIs +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows 10 Enterprise @@ -23,8 +25,6 @@ ms.date: 30/07/2018 - Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-supportedapis-abovefoldlink) Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. diff --git a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md index e3cb3d3e64..6132ed769b 100644 --- a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Unblock file API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Allow a file to be executed in the organization, using Windows Defender Antivirus. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index aacb10b79f..9a9609fdba 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -15,12 +15,12 @@ ms.date: 12/08/2017 # Release machine from isolation API +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - - Undo isolation of a machine. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 76d372f7b5..e9d317c65e 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -15,11 +15,12 @@ ms.date: 12/08/2017 # Update alert +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - Update the properties of an alert object. ## Permissions From 09be5a18a19f8c9282a0e0ad8c0e5f32abfd0258 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 10:59:15 +0300 Subject: [PATCH 038/201] fix oren comments --- ...defender-advanced-threat-protection-new.md | 103 ------------------ ...ows-defender-advanced-threat-protection.md | 91 ---------------- ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 6 +- ...defender-advanced-threat-protection-new.md | 93 ---------------- ...ows-defender-advanced-threat-protection.md | 89 --------------- 10 files changed, 17 insertions(+), 393 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md delete mode 100644 windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md delete mode 100644 windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md diff --git a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md deleted file mode 100644 index 84bbef9016..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection-new.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Block file API -description: Use this API to blocking files from being running in the organization. -keywords: apis, graph api, supported apis, block file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 12/08/2017 ---- - -# Block file API - -[!include[Prereleaseinformation](prerelease.md)] - -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - -Prevent a file from being executed in the organization using Windows Defender Antivirus. - -## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) - -Permission type | Permission | Permission display name -:---|:---|:--- -Application | Ti.ReadWrite | 'Threat Intelligence read write' - -## HTTP request -``` -POST /api/files/{sha1}/block -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -**Request** - -Here is an example of the request. - ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com - -``` -POST https://api.securitycenter.windows.com/api/files/7327b54fd718525cbca07dacde913b5ac3c85673/block -Content-type: application/json -{ - "Comment": "Block file due to alert 32123" -} - - -``` - -**Response** - -Here is an example of the response. - - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", - "fileIdentifierType": "Sha1", - "actionType": "Block", - "fileStatus": "Blocked", - "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", - "requestor": "Analyst@contoso.com ", - "requestorComment": "test", - "cancellationDateTimeUtc": null, - "cancellationRequestor": null, - "cancellationComment": null, - "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" -} - -``` diff --git a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 933ac113b2..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Block file API -description: Use this API to blocking files from being running in the organization. -keywords: apis, graph api, supported apis, block file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 12/08/2017 ---- - -# Block file API - -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - -Prevent a file from being executed in the organization using Windows Defender Antivirus. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/files/{sha1}/block -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -**Request** - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/files/7327b54fd718525cbca07dacde913b5ac3c85673/block -Content-type: application/json -{ - "Comment": "Block file due to alert 32123" -} - - -``` - -**Response** - -Here is an example of the response. - - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", - "fileIdentifierType": "Sha1", - "actionType": "Block", - "fileStatus": "Blocked", - "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", - "requestor": "Analyst@contoso.com ", - "requestorComment": "test", - "cancellationDateTimeUtc": null, - "cancellationRequestor": null, - "cancellationComment": null, - "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" -} - -``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index ac34277345..d412cbe067 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -1,5 +1,5 @@ --- -title: Get alerts API +title: List alerts API description: Retrieves top recent alerts. keywords: apis, graph api, supported apis, get, alerts, recent search.product: eADQiWindows 10XVcnh @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alerts API +# List alerts API [!include[Prereleaseinformation](prerelease.md)] diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index 8adbf1ddfd..442cc66b64 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -1,5 +1,5 @@ --- -title: Get MachineActions collection API +title: List machineActions API description: Use this API to create calls related to get machineactions collection keywords: apis, graph api, supported apis, machineaction collection search.product: eADQiWindows 10XVcnh @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get MachineActions collection API +# List machineActions API [!include[Prereleaseinformation](prerelease.md)] diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 8f57ed8f68..8fe48d7d82 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -1,5 +1,5 @@ --- -title: Get machines API +title: List machines API description: Retrieves a collection of recently seen machines. keywords: apis, graph api, supported apis, get, machines search.product: eADQiWindows 10XVcnh @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get machines API +# List machines API [!include[Prereleaseinformation](prerelease.md)] diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md index 9afd33baef..3144f9c7d1 100644 --- a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -1,7 +1,7 @@ --- -title: File resource type -description: Retrieves top recent alerts. -keywords: apis, graph api, supported apis, get, alerts, recent +title: machine resource type +description: Retrieves top machines. +keywords: apis, supported apis, get, machines search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Machine resource type +# machine resource type # Methods diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md index cc9b4418a7..3166f0526d 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -1,7 +1,7 @@ --- -title: File resource type -description: Retrieves top recent alerts. -keywords: apis, graph api, supported apis, get, alerts, recent +title: machineAction resource type +description: Retrieves top recent machineActions. +keywords: apis, supported apis, get, machineaction, recent search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Machine Action resource type +# MachineAction resource type Method|Return Type |Description :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 264b5d8a98..de81a4a47f 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -1,6 +1,6 @@ --- -title: Collect investigation package API -description: Use this API to create calls related to the collecting an investigation package from a machine. +title: Offboard machine API +description: Use this API to offboard a machine from WDATP. keywords: apis, graph api, supported apis, collect investigation package search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Collect investigation package API +# Offboard machine API [!include[Prereleaseinformation](prerelease.md)] diff --git a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md deleted file mode 100644 index 6132ed769b..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection-new.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Unblock file API -description: Use this API to create calls related to allowing a file to be executed in the organization -keywords: apis, graph api, supported apis, unblock file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 12/08/2017 ---- - -# Unblock file API - -[!include[Prereleaseinformation](prerelease.md)] - -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - -Allow a file to be executed in the organization, using Windows Defender Antivirus. - -## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) - -Permission type | Permission | Permission display name -:---|:---|:--- -Application | Ti.ReadWrite | 'Threat Intelligence read write' - -## HTTP request -``` -POST /api/files/{sha1}/unblock -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 201 Created response code with action details, which indicates that unblock message was sent to Windows Defender deployed in the organization. - - -## Example - -**Request** - -Here is an example of the request. - -``` -POST https://api.securitycenter.windows.com/api/files/7327b54fd718525cbca07dacde913b5ac3c85673/unblock -Content-type: application/json -{ - "Comment": "Unblock file since alert 1234 was investigated and discovered to be false alarm", -} -``` - -**Response** - -Here is an example of the response. - - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", - "fileIdentifierType": "Sha1", - "actionType": "UnBlock", - "fileStatus": "Blocked", - "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", - "requestor": "Analyst@contoso.com ", - "requestorComment": "test", - "cancellationDateTimeUtc": null, - "cancellationRequestor": null, - "cancellationComment": null, - "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" -} - -``` diff --git a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 7ea3ec1258..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Unblock file API -description: Use this API to create calls related to allowing a file to be executed in the organization -keywords: apis, graph api, supported apis, unblock file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 12/08/2017 ---- - -# Unblock file API - -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - -Allow a file to be executed in the organization, using Windows Defender Antivirus. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/files/{sha1}/unblock -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -**Request** - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/files/7327b54fd718525cbca07dacde913b5ac3c85673/unblock -Content-type: application/json -{ - "Comment": "Unblock file since alert 1234 was investigated and discovered to be false alarm", -} -``` - -**Response** - -Here is an example of the response. - - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", - "fileIdentifierType": "Sha1", - "actionType": "UnBlock", - "fileStatus": "Blocked", - "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", - "requestor": "Analyst@contoso.com ", - "requestorComment": "test", - "cancellationDateTimeUtc": null, - "cancellationRequestor": null, - "cancellationComment": null, - "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" -} - -``` From eb0171a8116dec21902d35db9855f7d843607d17 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 16 Aug 2018 11:23:32 +0300 Subject: [PATCH 039/201] undo removal of block and unblock from old docs --- ...ows-defender-advanced-threat-protection.md | 91 +++++++++++++++++++ ...ows-defender-advanced-threat-protection.md | 89 ++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md create mode 100644 windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md diff --git a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..933ac113b2 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md @@ -0,0 +1,91 @@ +--- +title: Block file API +description: Use this API to blocking files from being running in the organization. +keywords: apis, graph api, supported apis, block file +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Block file API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Prevent a file from being executed in the organization using Windows Defender Antivirus. + +## Permissions +Users need to have Security administrator or Global admin directory roles. + +## HTTP request +``` +POST /testwdatppreview/files/{sha1}/block +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. +Content-Type | application/json + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + + +## Response +If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. + + +## Example + +**Request** + +Here is an example of the request. + +``` +POST https://graph.microsoft.com/testwdatppreview/files/7327b54fd718525cbca07dacde913b5ac3c85673/block +Content-type: application/json +{ + "Comment": "Block file due to alert 32123" +} + + +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", + "fileIdentifierType": "Sha1", + "actionType": "Block", + "fileStatus": "Blocked", + "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", + "requestor": "Analyst@contoso.com ", + "requestorComment": "test", + "cancellationDateTimeUtc": null, + "cancellationRequestor": null, + "cancellationComment": null, + "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..7ea3ec1258 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md @@ -0,0 +1,89 @@ +--- +title: Unblock file API +description: Use this API to create calls related to allowing a file to be executed in the organization +keywords: apis, graph api, supported apis, unblock file +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Unblock file API + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + + +Allow a file to be executed in the organization, using Windows Defender Antivirus. + +## Permissions +Users need to have Security administrator or Global admin directory roles. + +## HTTP request +``` +POST /testwdatppreview/files/{sha1}/unblock +``` + +## Request headers + +Header | Value +:---|:--- +Authorization | Bearer {token}. **Required**. +Content-Type | application/json + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Comment | String | Comment to associate with the action. **Required**. + + +## Response +If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. + + +## Example + +**Request** + +Here is an example of the request. + +``` +POST https://graph.microsoft.com/testwdatppreview/files/7327b54fd718525cbca07dacde913b5ac3c85673/unblock +Content-type: application/json +{ + "Comment": "Unblock file since alert 1234 was investigated and discovered to be false alarm", +} +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "fileIdentifier": "7327b54fd718525cbca07dacde913b5ac3c85673", + "fileIdentifierType": "Sha1", + "actionType": "UnBlock", + "fileStatus": "Blocked", + "creationDateTimeUtc": "2017-12-04T13:06:23.4502191Z", + "requestor": "Analyst@contoso.com ", + "requestorComment": "test", + "cancellationDateTimeUtc": null, + "cancellationRequestor": null, + "cancellationComment": null, + "lastUpdateDateTimeUtc": "2017-12-04T13:06:23.4502191Z" +} + +``` From d911f45f7ba2f583e56bf2f9b98aedd6edd26603 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 19 Aug 2018 13:26:06 +0300 Subject: [PATCH 040/201] David comments --- ...defender-advanced-threat-protection-new.md | 16 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 9 +- ...defender-advanced-threat-protection-new.md | 189 ------------------ ...defender-advanced-threat-protection-new.md | 2 +- ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 11 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 11 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 10 +- ...defender-advanced-threat-protection-new.md | 11 +- ...defender-advanced-threat-protection-new.md | 13 +- ...defender-advanced-threat-protection-new.md | 18 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 10 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...defender-advanced-threat-protection-new.md | 13 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 13 +- ...defender-advanced-threat-protection-new.md | 15 +- ...defender-advanced-threat-protection-new.md | 18 +- ...defender-advanced-threat-protection-new.md | 13 +- ...defender-advanced-threat-protection-new.md | 12 +- ...defender-advanced-threat-protection-new.md | 29 ++- ...defender-advanced-threat-protection-new.md | 11 +- ...defender-advanced-threat-protection-new.md | 11 +- .../improverequestperformance-new.md | 8 + ...defender-advanced-threat-protection-new.md | 6 +- ...defender-advanced-threat-protection-new.md | 8 +- ...defender-advanced-threat-protection-new.md | 14 +- ...defender-advanced-threat-protection-new.md | 6 +- ...defender-advanced-threat-protection-new.md | 12 +- ...defender-advanced-threat-protection-new.md | 17 +- ...defender-advanced-threat-protection-new.md | 14 +- ...defender-advanced-threat-protection-new.md | 16 +- ...defender-advanced-threat-protection-new.md | 14 +- ...defender-advanced-threat-protection-new.md | 14 +- 45 files changed, 164 insertions(+), 503 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md diff --git a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md index 25f518344c..2e9a1b2edf 100644 --- a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md @@ -22,20 +22,20 @@ Represents an alert entity in WDATP. # Methods Method|Return Type |Description :---|:---|:--- -[Get alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | Get a single [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) object. -[List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection | List [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection. -[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced Hunting](run-advanced-query-api.md) +[Get alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) | Get a single [alert](alerts-windows-defender-advanced-threat-protection-new.md) object. +[List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | List [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection. +[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[alert](alerts-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced Hunting](run-advanced-query-api.md) [List related domains](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md)|Domain collection|List Urls associated with the alert. -[List related files](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) collection | List the [file](files-windows-defender-advanced-threat-protection-new.md) entities that are associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). +[List related files](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) collection | List the [file](files-windows-defender-advanced-threat-protection-new.md) entities that are associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). [List related IPs](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) | IP collection | List IPs that are associated witht the alert. -[Get related Machine](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) entity | The [machine](machine-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). -[Get related user](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) | The [user](user-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md). +[Get related machines](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | The [machine](machine-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). +[Get related users](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) | The [user](user-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). # Properties Property | Type | Description :---|:---|:--- -id | string | alert id. +id | String | alert id. severity | String | severity of the alert. Allowed values are: 'Low', 'Medium' and 'High'. status | String | Specifies the current status of the alert. The property values are: 'New', 'InProgress' and 'Resolved'. description | String | Description of the threat, identified by the alert. @@ -51,7 +51,7 @@ determination | String | Specifies the determination of the alert. The property resolvedTime | DateTimeOffset | The date and time in which the status of the alert was changed to 'Resolved'. lastEventTime | DateTimeOffset | The last occurance of the event that triggered the alert on the same machine. firstEventTime | DateTimeOffset | The first occurance of the event that triggered the alert on that machine. -machineId | string | id of a [machine](machine-windows-defender-advanced-threat-protection-new.md) entity that is associated with the alert. +machineId | String | id of a [machine](machine-windows-defender-advanced-threat-protection-new.md) entity that is associated with the alert. # JSON representation ``` diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 7f8808cd66..3fb8f55a22 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -41,7 +41,7 @@ POST /api/machines/{id}/collectInvestigationPackage Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json. **Required**. ## Request body @@ -61,11 +61,7 @@ If successful, this method returns 201 - Created response code and [Machine Acti Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/collectInvestigationPackage diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index dc6e3ab67a..ea866b92f6 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -59,8 +59,7 @@ category| String | Category of the alert. The property values are: 'None', 'Susp ## Response -If successful, this method returns 200 OK, and a new [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body. -If event with the specified properties (_reportId_, _eventTime_ and _machineId_) was not found - 404 Not Found. +If successful, this method returns 200 OK, and a new [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body. If event with the specified properties (_reportId_, _eventTime_ and _machineId_) was not found - 404 Not Found. ## Example @@ -69,11 +68,7 @@ If event with the specified properties (_reportId_, _eventTime_ and _machineId_) Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` POST https://api.securitycenter.windows.com/api/CreateAlertByReference diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md deleted file mode 100644 index b64bf198ef..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: Use Windows Defender Advanced Threat Protection APIs -description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. -keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 30/07/2018 ---- - -# Use Windows Defender ATP APIs - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - ->Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) - -Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). - -In general, you’ll need to take the following steps to use the APIs: -- Create an app -- Get an access token -- Use the token to access Windows Defender ATP API - -This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. - -## Create an app - -1. Log on to [Azure](https://portal.azure.com). - -2. Navigate to **Azure Active Directory** > **App registrations** > **New application registration**. - - ![Image of Microsoft Azure and navigation to application registration](images/atp-azure-new-app.png) - -3. In the Create window, enter the following information then click **Create**. - - ![Image of Create application window](images/webapp-create.png) - - - **Name:** WdatpEcosystemPartner - - **Application type:** Web app / API - - **Redirect URI:** `https://WdatpEcosystemPartner.com` (The URL where user can sign in and use your app. You can change this URL later.) - - -4. Click **Settings** > **Required permissions** > **Add**. - - ![Image of new app in Azure](images/webapp-add-permission.png) - -5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. - - **Note**: WindowsDefenderATP does not appear in the original list. You need to start writing its name in the text box to see it appear. - - ![Image of API access and API selection](images/webapp-add-permission-2.png) - -6. Click **Select permissions** > **Run advanced queries** > **Select**. - - **Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! - - ![Image of select permissions](images/webapp-select-permission.png) - - - In order to send telemetry events to WDATP, check 'Write timeline events' permission - - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission - - In order to run advanced queries in WDATP, check 'Run advanced queries' permission - -8. User with "Global Admin" permissions, need to click **Grant Permissions** in the **Required Permissions** tab. - -8. Click **Done** - - ![Image of add permissions completion](images/webapp-add-permission-end.png) - -9. Click **Keys** and type a key name and click **Save**. - - **Important**: After you save, **copy the key value**. You won't be able to retrieve after you leave! - - ![Image of create app key](images/webapp-create-key.png) - -10. Write down your application ID. - - ![Image of app ID](images/webapp-get-appid.png) - -11. Set your application to be multi-tenanted - - This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). - - This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ - - Click **Properties** > **Yes** > **Save**. - - ![Image of multi tenant](images/webapp-edit-multitenant.png) - - -## Application consent - -You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. - -You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. - -Consent link is of the form: - -``` -https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ -``` - -where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID - - -## Get an access token - -For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) - -### Using C# - ->The below code was tested with nuget Microsoft.IdentityModel.Clients.ActiveDirectory 3.19.8 - -- Create a new Console Application -- Install Nuget [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) -- Add the below using - - ``` - using Microsoft.IdentityModel.Clients.ActiveDirectory; - ``` - -- Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) - - ``` - string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here - string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here - string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here - - const string authority = "https://login.windows.net"; - const string wdatpResourceId = "https://api.securitycenter.windows.com/windowsatpservice"; - - AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}/"); - ClientCredential clientCredential = new ClientCredential(appId, appSecret); - AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, clientCredential).GetAwaiter().GetResult(); - string token = authenticationResult.AccessToken; - ``` - -### Using PowerShell - -Refer to [Get token using PowerShell](run-advanced-query-sample-powershell.md#get-token) - -### Using Python - -Refer to [Get token using Python](run-advanced-query-sample-python.md#get-token) - -### Using Curl - -> [!NOTE] -> The below procedure supposed Curl for Windows is already installed on your computer - -- Open a command window -- ​Set CLIENT_ID to your Azure application ID -- Set CLIENT_SECRET to your Azure application secret -- Set TENANT_ID to the Azure tenant ID of the customer that wants to use your application to access WDATP application -- Run the below command: - -``` -curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice​/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID​%/oauth2/v2.0/token" -k​ -``` - -You will get an answer of the form: - -``` -{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn aWReH7P0s0tjTBX8wGWqJUdDA"} -``` - -## Validate the token - -- Copy/paste into [JWT](https://jwt.ms/) the token you get in the previous step -- Validate you get a 'roles' claim with the desired permission as you've chosen when adding permissions to the applications: - -![Image of token validation](images/webapp-validate-token.png) - -> [!NOTE] -> The same token can be used for 1 hour and then it expired - -## Related topics -- [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md index 8961b49e34..076ab10d21 100644 --- a/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ Represent a file entity in WDATP. Method|Return Type |Description :---|:---|:--- [Get file](get-file-information-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) | Get a single file -[List file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) collection | Get the [alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) entities that are associated with the file. +[List file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | Get the [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities that are associated with the file. [List file related machines](get-file-related-machines-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) collection | Get the [machine](machine-windows-defender-advanced-threat-protection-new.md) entities associated with the alert. [file statistics](get-file-statistics-windows-defender-advanced-threat-protection-new.md) | Statistics summary | Retrieves the prevalence for the given file. diff --git a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md index eb6d684c80..8e140990af 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 07/25/2018 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Find a machine entity around a specific timestamp by internal IP. +Find a machine by internal IP. >[!NOTE] >The timestamp must be within the last 30 days. @@ -44,7 +44,7 @@ GET /api/machines/find(timestamp={time},key={IP}) Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index 46cb0db71b..1ca4e9a7e3 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -41,15 +41,14 @@ GET /api/alerts/{id} Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful, this method returns 200 OK, and an [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body. -If alert with the specified id was not found - 404 Not Found. +If successful, this method returns 200 OK, and the [alert](alerts-windows-defender-advanced-threat-protection-new.md) entity in the response body. If alert with the specified id was not found - 404 Not Found. ## Example @@ -58,11 +57,7 @@ If alert with the specified id was not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442 diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index bfdfc9935b..f514a5809c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -40,7 +40,7 @@ GET /api/alerts/{id}/domains Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -57,11 +57,7 @@ If alert not found or domain not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 90083b44b6..26b2ce24f5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -40,7 +40,7 @@ GET /api/alerts/{id}/files Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -57,11 +57,7 @@ If alert not found or files not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442/files diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index 1ed55af361..cc1b764c25 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -41,15 +41,14 @@ GET /api/alerts/{id}/ips Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and alert and an IP exist - 200 OK. -If alert not found or IPs not found - 404 Not Found. +If successful and alert and an IP exist - 200 OK. If alert not found or IPs not found - 404 Not Found. ## Example @@ -58,11 +57,7 @@ If alert not found or IPs not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/alerts/636688558380765161_2136280442/ips diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 46b6be0dc4..480e3a73ec 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -42,7 +42,7 @@ GET /api/alerts/{id}/machine Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -58,11 +58,7 @@ If alert not found or machine not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index 6ac1ca8121..6a63063984 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -41,7 +41,7 @@ GET /api/alerts/{id}/user Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -58,11 +58,7 @@ If alert not found or user not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` @@ -78,7 +74,7 @@ Here is an example of the response. HTTP/1.1 200 OK Content-type: application/json { - "@odata.context": "https://wdatpapi-eus-stg.cloudapp.net/api/$metadata#Users/$entity", + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Users/$entity", "id": "contoso\\user1", "firstSeen": "2018-08-02T00:00:00Z", "lastSeen": "2018-08-04T00:00:00Z", diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index d412cbe067..2bca208feb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -46,15 +46,14 @@ Method supports $skip and $top query parameters. Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful, this method returns 200 OK, and a list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) objects in the response body. -If no recent alerts found - 404 Not Found. +If successful, this method returns 200 OK, and a list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) objects in the response body. If no recent alerts found - 404 Not Found. ## Example @@ -63,11 +62,7 @@ If no recent alerts found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index a64b80a325..6a1c66a8f4 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -41,16 +41,15 @@ GET /api/domains/{domain}/alerts ## Request headers Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and domain and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) objects. -If domain or alert does not exist - 404 Not Found. +If successful and domain and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities. If domain or alert does not exist - 404 Not Found. ## Example @@ -59,11 +58,7 @@ If domain or alert does not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/domains/client.wns.windows.com/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index c757b85e20..9bd21b69fa 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -30,7 +30,8 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | URL.Read.All | 'Read URLs' +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' ## HTTP request ``` @@ -39,17 +40,16 @@ GET /api/domains/{domain}/machines ## Request headers -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and domain and machine exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) objects. -If domain or machines do not exist - 404 Not Found. +If successful and domain and machine exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities. If domain or machines do not exist - 404 Not Found. ## Example @@ -58,11 +58,7 @@ If domain or machines do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index cac75199c0..92e88b5f76 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -48,7 +48,7 @@ Authorization | Bearer {token}. **Required**. Empty ## Response -If successful and domain exists - 200 OK, with statistics object in the respnose body. +If successful and domain exists - 200 OK, with statistics object in the response body. If domain does not exist - 404 Not Found. @@ -58,11 +58,7 @@ If domain does not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/domains/example.com/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index 0b128088bf..fa5304bd4b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -42,7 +42,7 @@ GET /api/files/{id} Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -59,11 +59,7 @@ If file does not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/files/6532ec91d513acc05f43ee0aa3002599729fd3e1 diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 79d9ce83fb..6fe4d8bd01 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -42,7 +42,7 @@ GET /api/files/{id}/alerts Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -59,11 +59,7 @@ If file or alerts do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/files/6532ec91d513acc05f43ee0aa3002599729fd3e1/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index 7f56ef7bb9..bc829eca2b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -42,7 +42,7 @@ GET /api/files/{id}/machines Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -59,11 +59,7 @@ If file or machines do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/files/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index 455b5c051b..6cdada986e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -41,7 +41,7 @@ GET /api/files/{id}/stats Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -58,11 +58,7 @@ If file do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/files/6532ec91d513acc05f43ee0aa3002599729fd3e1/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index a1b072c358..6d8a3c4b91 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -42,7 +42,7 @@ GET /api/ips/{ip}/alerts Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -59,11 +59,7 @@ If IP and alerts do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index fad2a57955..559d950e2c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -20,7 +20,7 @@ ms.date: 12/08/2017 **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Retrieves a collection of alerts related to a given IP address. +Retrieves a collection of machines that communicated with or from a particular IP. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -39,7 +39,7 @@ GET /api/ips/{ip}/machines Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -56,11 +56,7 @@ If IP or machines do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/ips/10.209.67.177/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md index 1796c563b1..9e0adbf0ee 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md @@ -36,8 +36,7 @@ Content type | application/json Empty ## Response -If successful and IP and machines exists - 200 OK. -If IP or machines do not exist - 404 Not Found. +If successful and IP and machines exists - 200 OK. If IP or machines do not exist - 404 Not Found. ## Example diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index 4744b4c554..6133e368b8 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -39,15 +39,14 @@ GET /api/ips/{ip}/stats Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and file exists - 200 OK with statistical data in the body. -If file do not exist - 404 Not Found. +If successful and ip exists - 200 OK with statistical data in the body. IP do not exist - 404 Not Found. ## Example @@ -56,11 +55,7 @@ If file do not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/ips/10.209.67.177/stats @@ -76,7 +71,7 @@ HTTP/1.1 200 OK Content-type: application/json { "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#microsoft.windowsDefenderATP.api.InOrgIPStats", - "ipAddress": "192.168.1.1", + "ipAddress": "10.209.67.177", "orgPrevalence": "63515", "orgFirstSeen": "2017-07-30T13:36:06Z", "orgLastSeen": "2017-08-29T13:32:59Z" diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index ed74621b98..c69c8c7fb7 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -40,7 +40,7 @@ GET /api/machines/{id} Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -57,11 +57,7 @@ If machine with the specified id was not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07 diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index db2f410ad7..28fae29459 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -40,7 +40,7 @@ GET /api/machines/{id}/logonusers Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -57,11 +57,7 @@ If no machine found or no users found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/logonusers diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 29a18a285d..c04950f37e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -40,15 +40,14 @@ GET /api/machines/{id}/alerts Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and machine and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities in the body. -If no machine or no alerts found - 404 Not Found. +If successful and machine and alert exists - 200 OK with list of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities in the body. If no machine or no alerts found - 404 Not Found. ## Example @@ -57,15 +56,11 @@ If no machine or no alerts found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` -GET https://api.securitycenter.windows.com/api/machines/{id}/alerts +GET https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/alerts ``` **Response** diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 32946e2f35..48d22ae303 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get MachineAction object API +# Get machineAction API [!include[Prereleaseinformation](prerelease.md)] @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Get actions done on a machine. +Get action performed on a machine. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -40,15 +40,14 @@ GET /api/machineactions/{id} Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful, this method returns 200, Ok response code with a [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) object. -If machine action with the specified id was not found - 404 Not Found. +If successful, this method returns 200, Ok response code with a [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entity. If machine action entity with the specified id was not found - 404 Not Found. ## Example @@ -56,11 +55,7 @@ If machine action with the specified id was not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/machineactions/2e9da30d-27f6-4208-81f2-9cd3d67893ba diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index 442cc66b64..c3b6f32ab8 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) - Gets collection of actions done on machines. Get MachineAction collection API supports OData V4 queries. + Gets collection of actions done on machines. Get MachineAction collection API supports [OData V4 queries](https://www.odata.org/documentation/odata-version-2-0/uri-conventions/#FilterSystemQueryOption). ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -40,14 +40,14 @@ GET /api/machineactions Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful, this method returns 200, Ok response code with a collection of [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) objects since the Retention policy time of the organization. +If successful, this method returns 200, Ok response code with a collection of [machineAction](machineaction-windows-defender-advanced-threat-protection-new.md) entities. ## Example 1 @@ -56,11 +56,7 @@ If successful, this method returns 200, Ok response code with a collection of [M Here is an example of the request on an organization that has three MachineActions. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/machineactions @@ -128,11 +124,7 @@ GET https://api.securitycenter.windows.com/api/machineactions?$filter=machineId Here is an example of the response. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` HTTP/1.1 200 Ok diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 8fe48d7d82..581b175fe0 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Retrieves a collection of recently seen machines. +Retrieves a collection of machines that have communicated with WDATP cloud on the last 30 days. ## Permissions @@ -39,15 +39,14 @@ GET /api/machines Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. -If no recent machines - 404 Not Found. +If successful and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. If no recent machines - 404 Not Found. ## Example @@ -56,11 +55,7 @@ If no recent machines - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index 95c7d5f771..ce05cde3e4 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Get a URI that allows downloading of an investigation package. +Get a URI that allows downloading of an [investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new). ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -32,14 +32,14 @@ Application | Machine.CollectForensics | 'Collect forensics' ## HTTP request ``` -GET /api/machineactions/{id}/getPackageUri +GET /api/machineactions/{machine action id}/getPackageUri ``` ## Request headers Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -64,11 +64,7 @@ GET https://api.securitycenter.windows.com/api/machineactions/7327b54fd718525cbc Here is an example of the response. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md index cabf478649..4766668f1f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md @@ -39,15 +39,14 @@ GET /api/users/{id}/ Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and user exists - 200 OK with [user](user-windows-defender-advanced-threat-protection-new.md) entity in the body. -If user does not exist - 404 Not Found. +If successful and user exists - 200 OK with [user](user-windows-defender-advanced-threat-protection-new.md) entity in the body. If user does not exist - 404 Not Found. ## Example @@ -56,14 +55,10 @@ If user does not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` -GET https://api.securitycenter.windows.com/api/users/{id} +GET https://api.securitycenter.windows.com/api/users/user1@contoso.com Content-type: application/json ``` @@ -76,11 +71,15 @@ Here is an example of the response. HTTP/1.1 200 OK Content-type: application/json { - "@odata.context": "https://api.securitycenter.windows.com/testwdatppreview/$metadata#Users/$entity", - "id": "", - "accountSid": null, - "accountName": "", - "accountDomainName": "", -… + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Users/$entity", + "id": "user1@contoso.com", + "firstSeen": "2018-08-02T00:00:00Z", + "lastSeen": "2018-08-04T00:00:00Z", + "mostPrevalentMachineId": null, + "leastPrevalentMachineId": null, + "logonTypes": "Network", + "logOnMachinesCount": 3, + "isDomainAdmin": false, + "isOnlyNetworkUser": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index 9d2755148a..b13bd6028c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -40,15 +40,14 @@ GET /api/users/{id}/alerts Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and user and alert exists - 200 OK. -If user does not exist - 404 Not Found. +If successful and user and alert exists - 200 OK. If user or alerts does not exist - 404 Not Found. ## Example @@ -57,11 +56,7 @@ If user does not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/users/user1@contoso.com/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 6c7f9ad663..15d20fd626 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -40,15 +40,14 @@ GET /api/users/{id}/machines Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body Empty ## Response -If successful and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. -If user or machines does not exist - 404 Not Found. +If successful and machines exists - 200 OK with list of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the body. If user or machines does not exist - 404 Not Found. ## Example @@ -57,11 +56,7 @@ If user or machines does not exist - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/users/user1@contoso.com/machines diff --git a/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md b/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md new file mode 100644 index 0000000000..b9e64dc7e6 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md @@ -0,0 +1,8 @@ +--- +ms.date: 08/28/2017 +--- +>[!NOTE] +>For better performance, you can use server closer to your geo location: +> - api-us.securitycenter.windows.com +> - api-eu.securitycenter.windows.com +> - api-uk.securitycenter.windows.com \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md index 1c1e122d2c..42327cbefd 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -54,11 +54,7 @@ If successful and domain exists - 200 OK. If domain does not exist - 404 Not Fou Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` GET https://api.securitycenter.windows.com/api/domains/example.com diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md index 7459ba5ffd..97d668298e 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -39,7 +39,7 @@ GET /api/ips/{ip} Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. ## Request body @@ -63,11 +63,7 @@ GET https://api.securitycenter.windows.com/api/ips/10.209.67.177 Here is an example of the response. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index cb23139a00..684e292d69 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -39,7 +39,7 @@ POST /api/machines/{id}/isolate Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json. **Required**. ## Request body @@ -65,14 +65,10 @@ If successful, this method returns 201 - Created response code and [Machine Acti Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` -POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/isolate +POST https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/isolate Content-type: application/json { "Comment": "Isolate machine due to alert 1234", @@ -95,9 +91,11 @@ Content-type: application/json "requestorComment": "Isolate machine due to alert 1234", "status": "InProgress", "error": "None", - "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:12:18.9725659Z", "lastUpdateTimeUtc": "2017-12-04T12:12:18.9725659Z" } ``` + +To unisolate a machine, see [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection-new.md). diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md index 3144f9c7d1..093e47ba79 100644 --- a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -33,13 +33,13 @@ firstSeen | DateTimeOffset | First date and time where the [machine](machine-win osPlatform | String | OS platform. osVersion | String | OS Version. lastIpAddress | Ip | Last IP on local NIC on the [machine](machine-windows-defender-advanced-threat-protection-new.md). -lastExternalIpAddress | Ip | Last Ip through which the [machine](machine-windows-defender-advanced-threat-protection-new.md) accessed the internet. +lastExternalIpAddress | Ip | Last IP through which the [machine](machine-windows-defender-advanced-threat-protection-new.md) accessed the internet. agentVersion | String | Version of WDATP agent. groupName | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) group name (when defined). osBuild | Int | OS build number. healthStatus | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) health status. isAadJoined | Boolean | Is [machine](machine-windows-defender-advanced-threat-protection-new.md) AAD joined. machineTags | String collection | Set of [machine](machine-windows-defender-advanced-threat-protection-new.md) tags. -rbacGroupId | Int | Group Id. +rbacGroupId | Int | Group ID. riskScore | String | Risk score as evaludated by WDATP. Possible values are: 'None', 'Low', 'Medium' and 'High'. -aadDeviceId | String | AAD Device Id (when [machine](machine-windows-defender-advanced-threat-protection-new.md) is Aad Joined). \ No newline at end of file +aadDeviceId | String | AAD Device ID (when [machine](machine-windows-defender-advanced-threat-protection-new.md) is Aad Joined). \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index de81a4a47f..af1d892f23 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -39,7 +39,7 @@ POST /api/machines/{id}/offboard Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json. **Required**. ## Request body @@ -59,14 +59,10 @@ If successful, this method returns 201 - Created response code and [Machine Acti Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` -POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/offboard +POST https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/offboard Content-type: application/json { "Comment": "Offboard machine by automation" @@ -88,7 +84,7 @@ Content-type: application/json "requestorComment": "offboard machine by automation", "status": "InProgress", "error": "None", - "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:09:24.1785079Z", "lastUpdateTimeUtc": "2017-12-04T12:09:24.1785079Z" } diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index a2ee20bb6c..f11a938c5f 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Restrict execution of all applications on the machine except a predefined set. +Restrict execution of all applications on the machine except a predefined set (see [Response machine alerts](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information) ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -39,7 +39,7 @@ POST /api/machines/{id}/restrictCodeExecution Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json. **Required**. ## Request body @@ -60,7 +60,7 @@ If successful, this method returns 201 - Created response code and [Machine Acti Here is an example of the request. ``` -POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/restrictCodeExecution +POST https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/restrictCodeExecution Content-type: application/json { "Comment": "Restrict code execution due to alert 1234" @@ -71,11 +71,7 @@ Content-type: application/json Here is an example of the response. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` HTTP/1.1 201 Created @@ -88,9 +84,12 @@ Content-type: application/json "requestorComment": "Restrict code execution due to alert 1234", "status": "InProgress", "error": "None", - "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:15:04.3825985Z", "lastUpdateTimeUtc": "2017-12-04T12:15:04.3825985Z" } ``` + +To remove code execution restriction from a machine, see [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md). + diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 2c50e1f063..63ea7a6b03 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Initiate Windows Defender Antivirus scan on the machine. +Initiate Windows Defender Antivirus scan on a machine. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -39,7 +39,7 @@ POST /api/machines/{id}/runAntiVirusScan Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json ## Request body @@ -68,7 +68,7 @@ If successful, this method returns 201, Created response code and _MachineAction Here is an example of the request. ``` -POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/runAntiVirusScan +POST https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/runAntiVirusScan Content-type: application/json { "Comment": "Check machine for viruses due to alert 3212", @@ -80,11 +80,7 @@ Content-type: application/json Here is an example of the response. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` HTTP/1.1 201 Created @@ -97,7 +93,7 @@ Content-type: application/json "requestorComment": "Check machine for viruses due to alert 3212", "status": "InProgress", "error": "None", - "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", "lastUpdateTimeUtc": "2017-12-04T12:18:27.1293487Z" } diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 9a9609fdba..fffe759586 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -39,7 +39,7 @@ POST /api/machines/{id}/unisolate Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json. **Required**. @@ -60,14 +60,10 @@ If successful, this method returns 201 - Created response code and [Machine Acti Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` -POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/unisolate +POST https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/unisolate Content-type: application/json { "Comment": "Unisolate machine since it was clean and validated" @@ -92,10 +88,12 @@ Content-type: application/json "requestorComment": "Unisolate machine since it was clean and validated ", "status": "InProgress", "error": "None", - "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:13:15.0104931Z", "lastUpdateTimeUtc": "2017-12-04T12:13:15.0104931Z" } - ``` + +To isolate a machine, see [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection-new.md). + diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index e08b5d033f..942629d81d 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -38,7 +38,7 @@ POST /api/machines/{id}/unrestrictCodeExecution ## Request headers Name | Type | Description :---|:---|:--- -Authorization | string | Bearer {token}. **Required**. +Authorization | String | Bearer {token}. **Required**. Content-Type | string | application/json. **Required**. ## Request body @@ -58,14 +58,10 @@ If successful, this method returns 201 - Created response code and [Machine Acti Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` -POST https://api.securitycenter.windows.com/api/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution +POST https://api.securitycenter.windows.com/api/machines/1e5bc9d7e413ddd7902c2932e418702b84d0cc07/unrestrictCodeExecution Content-type: application/json { "Comment": "Unrestrict code execution since machine was cleaned and validated" @@ -88,9 +84,11 @@ Content-type: application/json "requestorComment": "Unrestrict code execution since machine was cleaned and validated ", "status": "InProgress", "error": "None", - "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", + "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:15:40.6052029Z", "lastUpdateTimeUtc": "2017-12-04T12:15:40.6052029Z" } ``` + +To restrict code execution on a machine, see [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection-new.md). \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index e9d317c65e..6d777a5382 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Update the properties of an alert object. +Update the properties of an alert entity. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) @@ -55,8 +55,7 @@ determination | String | Specifies the determination of the alert. The property ## Response -If successful, this method returns 200 OK, and an [alert](alerts-windows-defender-advanced-threat-protection-new.md) object in the response body with the updated properties. -If alert with the specified id was not found - 404 Not Found. +If successful, this method returns 200 OK, and the [alert](alerts-windows-defender-advanced-threat-protection-new.md) entity in the response body with the updated properties. If alert with the specified id was not found - 404 Not Found. ## Example @@ -65,16 +64,11 @@ If alert with the specified id was not found - 404 Not Found. Here is an example of the request. ->[!NOTE] ->For better performance, you can use server closer to your geo location: -> - api-us.securitycenter.windows.com -> - api-eu.securitycenter.windows.com -> - api-uk.securitycenter.windows.com +[!include[Improve request performance](improverequestperformance-new.md)] ``` PATCH https://api.securitycenter.windows.com/api/alerts/636688558380765161_2136280442 Content-Type: application/json - { "assignedTo": "Our designated secop" } @@ -87,7 +81,7 @@ Here is an example of the response. ``` { "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Alerts/$entity", - "id": "636692338844234222_1806644926", + "id": "636688558380765161_2136280442", "severity": "Medium", "status": "InProgress", "description": "An anomalous memory operation appears to be tampering with a process associated with the Windows Defender EDR sensor.", From 7c71ad856c7483e1df78bf63ee02808915134f12 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 19 Aug 2018 15:04:10 +0300 Subject: [PATCH 041/201] fix link to create an app --- ...n-package-windows-defender-advanced-threat-protection-new.md | 2 +- ...reference-windows-defender-advanced-threat-protection-new.md | 2 +- ...nfo-by-ip-windows-defender-advanced-threat-protection-new.md | 2 +- ...nfo-by-id-windows-defender-advanced-threat-protection-new.md | 2 +- ...main-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...iles-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...d-ip-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...hine-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...user-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...et-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...ed-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...-machines-windows-defender-advanced-threat-protection-new.md | 2 +- ...tatistics-windows-defender-advanced-threat-protection-new.md | 2 +- ...formation-windows-defender-advanced-threat-protection-new.md | 2 +- ...ed-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...-machines-windows-defender-advanced-threat-protection-new.md | 2 +- ...tatistics-windows-defender-advanced-threat-protection-new.md | 2 +- ...ed-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...-machines-windows-defender-advanced-threat-protection-new.md | 2 +- ...tatistics-windows-defender-advanced-threat-protection-new.md | 2 +- ...ine-by-id-windows-defender-advanced-threat-protection-new.md | 2 +- ...-on-users-windows-defender-advanced-threat-protection-new.md | 2 +- ...ed-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...on-object-windows-defender-advanced-threat-protection-new.md | 2 +- ...ollection-windows-defender-advanced-threat-protection-new.md | 2 +- ...e-sas-uri-windows-defender-advanced-threat-protection-new.md | 2 +- ...formation-windows-defender-advanced-threat-protection-new.md | 2 +- ...ed-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...-machines-windows-defender-advanced-threat-protection-new.md | 2 +- ...en-in-org-windows-defender-advanced-threat-protection-new.md | 2 +- ...-seen-org-windows-defender-advanced-threat-protection-new.md | 2 +- ...e-machine-windows-defender-advanced-threat-protection-new.md | 2 +- ...chine-api-windows-defender-advanced-threat-protection-new.md | 2 +- ...execution-windows-defender-advanced-threat-protection-new.md | 2 +- ...n-av-scan-windows-defender-advanced-threat-protection-new.md | 2 +- ...e-machine-windows-defender-advanced-threat-protection-new.md | 2 +- ...execution-windows-defender-advanced-threat-protection-new.md | 2 +- ...ate-alert-windows-defender-advanced-threat-protection-new.md | 2 +- 38 files changed, 38 insertions(+), 38 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 3fb8f55a22..3fc76468dd 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Collect investigation package from a machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index ea866b92f6..05ecd44a39 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Enables using event data, as obtained from the [Advanced Hunting](run-advanced-query-api.md) for creating a new alert entity. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md index 8e140990af..443b86b728 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md @@ -28,7 +28,7 @@ Find a machine by internal IP. >The timestamp must be within the last 30 days. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index 1ca4e9a7e3..ea5d18dcca 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Retrieves an alert by its ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index f514a5809c..1c6eeee2a3 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Retrieves all domains related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 26b2ce24f5..114dd4ebf5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Retrieves all files related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index cc1b764c25..027e4f2dfa 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves all IPs related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 480e3a73ec..1b02c04a0e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves machine that is related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index 6a63063984..e31cb2df14 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves the user associated to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 2bca208feb..0bc8191610 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -27,7 +27,7 @@ Retrieves top recent alerts. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index 6a1c66a8f4..5c96f8e93f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given domain address. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index 9bd21b69fa..5c00e541d9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines that have communicated to or from a given domain address. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 92e88b5f76..3192b853ab 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves the prevalence for the given domain. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index fa5304bd4b..1294734ef7 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -27,7 +27,7 @@ ms.date: 12/08/2017 Retrieves a file by identifier Sha1, Sha256, or MD5. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 6fe4d8bd01..a67c221e7d 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given file hash. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index bc829eca2b..6781f48a9a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines related to a given file hash. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index 6cdada986e..5123aa9f3e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves the prevalence for the given file. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 6d8a3c4b91..1cb5b54981 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -26,7 +26,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given IP address. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index 559d950e2c..b50d7dbc2e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines that communicated with or from a particular IP. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index 6133e368b8..597e70c583 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves the prevalence for the given IP. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index c69c8c7fb7..0ec132066f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves a machine entity by ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 28fae29459..8c1da55b43 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves a collection of logged on users. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index c04950f37e..3a0717469c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given machine ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 48d22ae303..5c15530e45 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Get action performed on a machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index c3b6f32ab8..d5084a4d5e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Gets collection of actions done on machines. Get MachineAction collection API supports [OData V4 queries](https://www.odata.org/documentation/odata-version-2-0/uri-conventions/#FilterSystemQueryOption). ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index ce05cde3e4..e8b45a5419 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Get a URI that allows downloading of an [investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new). ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md index 4766668f1f..b0c31a0088 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieve a User entity by key (user name or domain\user). ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index b13bd6028c..cc16ae3c5f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given user ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 15d20fd626..37be0e6280 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines related to a given user ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md index 42327cbefd..9fc66f2cd0 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 04/24/2018 Answers whether a domain was seen in the organization. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md index 97d668298e..0b0e8a826b 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Answers whether an IP was seen in the organization. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 684e292d69..97470afecb 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Isolates a machine from accessing external network. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index af1d892f23..7ef5465b2c 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Offboard machine from WDATP. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index f11a938c5f..863ca96953 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Restrict execution of all applications on the machine except a predefined set (see [Response machine alerts](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information) ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 63ea7a6b03..e76b3d51be 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Initiate Windows Defender Antivirus scan on a machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index fffe759586..1f759231a2 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Undo isolation of a machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index 942629d81d..4fef4dd344 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Enable execution of any application on the machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 6d777a5382..6900e0585a 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Update the properties of an alert entity. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- From 64f5a66c5cf44b179868f17d0a87d2c42c43a298 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 19 Aug 2018 15:37:01 +0300 Subject: [PATCH 042/201] remove redundant file --- ...defender-advanced-threat-protection-new.md | 2 +- ...defender-advanced-threat-protection-new.md | 44 ------------------- 2 files changed, 1 insertion(+), 45 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index e8b45a5419..121dc80314 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Get a URI that allows downloading of an [investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new). +Get a URI that allows downloading of an [investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new.md). ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md deleted file mode 100644 index ac8271ccc0..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection-new.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Supported Windows Defender Advanced Threat Protection query APIs -description: Learn about the specific supported Windows Defender Advanced Threat Protection entities where you can create API calls to. -keywords: apis, supported apis, actor, alerts, machine, user, domain, ip, file, advanced queries, advanced hunting -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 30/07/2018 ---- - -# Supported Windows Defender ATP query APIs - -[!include[Prereleaseinformation](prerelease.md)] - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - ->Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-supportedapis-abovefoldlink) - -Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. - -## In this section -Topic | Description -:---|:--- -Advanced Hunting | Run queries from API. -Alerts | Run API calls such as get alerts, create alerts, alert information by ID, alert related actor information, alert related IP information, and alert related machine information. -Domain |Run API calls such as get domain related machines, statistics, and check if a domain is seen in your organization. -File | Run API calls such as get file information, file related alerts, file related machines, and file statistics. -IP | Run API calls such as get IP related alerts, IP related machines, IP statistics, and check if and IP is seen in your organization. -Machines | Run API calls such as get machines, get machines by ID, perform actions on machines (s.a. "Collect investigation package") information about logged on users, and alerts related to a given machine ID. -User | Run API calls such as get alert related user information, user information, user related alerts, and user related machines. - -## Related topic -- [Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) From 0bbc860820588faa842194b2148b33168f310799 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 19 Aug 2018 15:55:13 +0300 Subject: [PATCH 043/201] add author to YAMR --- .../windows-defender-atp/improverequestperformance-new.md | 1 + 1 file changed, 1 insertion(+) diff --git a/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md b/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md index b9e64dc7e6..169b2ffb46 100644 --- a/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md +++ b/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md @@ -1,5 +1,6 @@ --- ms.date: 08/28/2017 +author: zavidor --- >[!NOTE] >For better performance, you can use server closer to your geo location: From 9dd90660b7171ebee998335caba6f123fa0451df Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 20 Aug 2018 14:23:03 +0300 Subject: [PATCH 044/201] Full scenario --- .../windows-defender-atp/TOC.md | 10 +- .../exposed-apis-full-sample-powershell.md | 120 ++++++++++++++++++ 2 files changed, 126 insertions(+), 4 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 7ae86fbea9..1b26c144a4 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -104,10 +104,12 @@ #### [Supported Windows Defender ATP APIs](exposed-apis-list.md) ##### [Advanced Hunting](run-advanced-query-api.md) #### How to use APIs - Samples -##### [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) - +##### 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) +##### Multiple APIs +###### [PowerShell](exposed-apis-full-sample-powershell.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md new file mode 100644 index 0000000000..cc35edb442 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md @@ -0,0 +1,120 @@ +--- +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Windows Defender ATP APIs using PowerShell + +Full scenario using multiple APIs from Windows Defender ATP. + +In this section we share PowerShell samples to + - Retrieve a token + - Use token to retrieve the latest alerts in Windows Defender ATP + - Run a query to retrieve command line of the process related to the alert, if the alert has medium priority and is still in progress + - Remediate the machine related to the alert if teh command line + +>**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). + +## Preparation Instructions + +- Open a PowerShell window. +- If your policy does not allow you to run the PowerShell commands, you can run the below command: +``` +Set-ExecutionPolicy -ExecutionPolicy Bypass +``` + +>For more details, refer to [PowerShell documentation](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy) + +## Get token + +- Run the below + +> - $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) +> - $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) +> - $appSecret: Secret of your AAD app + + +$tenantId = 'b3c1b5fc-828c-45fa-a1e1-10d74f6d6e9c' +$appId = 'c71cd133-0e50-4bd4-a1a8-ec14152af1c4' +$appSecret = '8zFkg61mDxH7DuMGFJHZd6CRr9J5HNMuJGIV6p0shMY=' + + + +``` +$tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here +$appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here +$appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here + +$resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' +$oAuthUri = "https://login.windows-ppe.net/$TenantId/oauth2/token" +# TODO!!!!!!!!! $oAuthUri = "https://login.windows.net/$TenantId/oauth2/token" +$authBody = [Ordered] @{ + resource = "$resourceAppIdUri" + client_id = "$appId" + client_secret = "$appSecret" + grant_type = 'client_credentials' +} +$authResponse = Invoke-RestMethod -Method Post -Uri $oAuthUri -Body $authBody -ErrorAction Stop +$aadToken = $authResponse.access_token + + +#Get latest alert +$alertUrl = "https://wdatpapi-eus-stg.cloudapp.net/api/alerts?`$top=10" +# TODO!!!!!!!!! $alertUrl = "https://api.securitycenter.windows.com/api/alerts?`$top=10" +$headers = @{ + 'Content-Type' = 'application/json' + Accept = 'application/json' + Authorization = "Bearer $aadToken" +} +$alertResponse = Invoke-WebRequest -Method Get -Uri $alertUrl -Headers $headers -ErrorAction Stop +$alerts = ($alertResponse | ConvertFrom-Json).value + +$machinesToInvestigate = New-Object System.Collections.ArrayList + +Foreach($alert in $alerts) +{ + echo $alert.id $alert.machineId $alert.severity $alert.status + + $isSevereAlert = $alert.severity -in 'Medium', 'High' + $isOpenAlert = $alert.status -in 'InProgress', 'New' + if($isOpenAlert -and $isSevereAlert) + { + if (-not $machinesToInvestigate.Contains($alert.machineId)) + { + $machinesToInvestigate.Add($alert.machineId) > $null + } + } +} + +$commaSeparatedMachines = '"{0}"' -f ($machinesToInvestigate -join '","') + +$query = "NetworkCommunicationEvents +| where MachineId in ($commaSeparatedMachines) +| where RemoteUrl == `"www.bing.com`" +| summarize ConnectionsCount = count() by MachineId" + +$queryUrl = "https://wdatpapi-eus-stg.cloudapp.net/advancedqueries/query" +# TODO!!!!!!!!! $queryUrl = "https://api.securitycenter.windows.com/advancedqueries/query" + +$queryBody = ConvertTo-Json -InputObject $query +$queryResponse = Invoke-WebRequest -Method Post -Uri $queryUrl -Headers $headers -Body $queryBody -ErrorAction Stop +$response = ($queryResponse | ConvertFrom-Json).Results + +``` + + +## Related topic +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using Python](run-advanced-query-sample-python.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) From c937b2eba66341b6b37795daca77902e47a39842 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 20 Aug 2018 22:33:18 +0000 Subject: [PATCH 045/201] Updated .openpublishing.publish.config.json --- .openpublishing.publish.config.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index f9d982e542..38266abdb5 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -508,6 +508,10 @@ "master": [ "Publish", "Pdf" + ], + "atp-api-danm": [ + "Publish", + "Pdf" ] }, "need_generate_pdf_url_template": true, From 93b90ecb0ed17b930b6a09eb00a21aef2b9dc5e5 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Tue, 21 Aug 2018 14:04:46 +0300 Subject: [PATCH 046/201] tokens --- .../exposed-apis-create-app-webapp.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 838ffc6489..fe039331c2 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -82,17 +82,25 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of add permissions completion](images/webapp-add-permission-end.png) -8. Click **Keys** and type a key name and click **Save**. +8. Click **Grant permissions** + + In order to add a permission to the app, the Admin's tenant must press on the Grant permissions button. + + If in the future you will want to add more permission to the app, you will need to press it again so the changes will take effect. + + ![Image of Grant permissions](images/GrantPermissions.png) + +9. Click **Keys** and type a key name and click **Save**. **Important**: After you save, **copy the key value**. You won't be able to retrieve after you leave! ![Image of create app key](images/webapp-create-key.png) -9. Write down your application ID. +10. Write down your application ID. ![Image of app ID](images/webapp-get-appid.png) -9. Set your application to be multi-tenanted +11. Set your application to be multi-tenanted This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). From 79d7f306da39071832add360446f7c90a4820eb7 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Tue, 21 Aug 2018 14:10:29 +0300 Subject: [PATCH 047/201] step --- .../exposed-apis-create-app-webapp.md | 2 +- .../images/webapp-grant-permissions.png | Bin 0 -> 10183 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-grant-permissions.png diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index fe039331c2..cb022fb3f5 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -88,7 +88,7 @@ This page explains how to create an app, get an access token to Windows Defender If in the future you will want to add more permission to the app, you will need to press it again so the changes will take effect. - ![Image of Grant permissions](images/GrantPermissions.png) + ![Image of Grant permissions](images/webapp-grant-permissions.png) 9. Click **Keys** and type a key name and click **Save**. diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-grant-permissions.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-grant-permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..363bb4a32ab6fc98813bb495d9f9a68652798c46 GIT binary patch literal 10183 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 Date: Tue, 21 Aug 2018 10:15:58 -0700 Subject: [PATCH 048/201] fix broken links --- .../security/threat-protection/windows-defender-atp/TOC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 7ae86fbea9..8f079ee812 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -12,7 +12,7 @@ #### [Onboard machines using Group Policy](configure-endpoints-gp-windows-defender-advanced-threat-protection.md) #### [Onboard machines using System Center Configuration Manager](configure-endpoints-sccm-windows-defender-advanced-threat-protection.md) #### [Onboard machines using Mobile Device Management tools](configure-endpoints-mdm-windows-defender-advanced-threat-protection.md) -##### [Onboard machines using Microsoft Intune](configure-endpoints-mdm-windows-defender-advanced-threat-protection.md#onboard-windows-10-machines-using-microsoft-intune) +##### [Onboard machines using Microsoft Intune](configure-endpoints-mdm-windows-defender-advanced-threat-protection.md) #### [Onboard machines using a local script](configure-endpoints-script-windows-defender-advanced-threat-protection.md) #### [Onboard non-persistent virtual desktop infrastructure (VDI) machines](configure-endpoints-vdi-windows-defender-advanced-threat-protection.md) ### [Onboard servers](configure-server-endpoints-windows-defender-advanced-threat-protection.md) @@ -43,7 +43,7 @@ ###Machines list #### [View and organize the Machines list](machines-view-overview-windows-defender-advanced-threat-protection.md) -#### [Manage machine group and tags](investigate-machines-windows-defender-advanced-threat-protection.md#manage-machine-group-and-tags) +#### [Manage machine group and tags](investigate-machines-windows-defender-advanced-threat-protection.md) #### [Alerts related to this machine](investigate-machines-windows-defender-advanced-threat-protection.md#alerts-related-to-this-machine) #### [Machine timeline](investigate-machines-windows-defender-advanced-threat-protection.md#machine-timeline) ##### [Search for specific events](investigate-machines-windows-defender-advanced-threat-protection.md#search-for-specific-events) From a58f04f16a44e81a9d4ae371d75f09c5b305f57c Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Tue, 21 Aug 2018 20:43:20 +0300 Subject: [PATCH 049/201] step --- .../exposed-apis-create-app-webapp.md | 34 ++++++++++++++---- .../images/webapp-decoded-token.png | Bin 0 -> 80299 bytes 2 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/webapp-decoded-token.png diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index cb022fb3f5..fb5bfa9d7f 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -84,9 +84,9 @@ This page explains how to create an app, get an access token to Windows Defender 8. Click **Grant permissions** - In order to add a permission to the app, the Admin's tenant must press on the Grant permissions button. + In order to add the new selected permissions to the app, the Admin's tenant must press on the **Grant permissions** button. - If in the future you will want to add more permission to the app, you will need to press it again so the changes will take effect. + If in the future you will want to add more permission to the app, you will need to press on the **Grant permissions** button again so the changes will take effect. ![Image of Grant permissions](images/webapp-grant-permissions.png) @@ -149,8 +149,8 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here - const string aadUri = "https://login.windows.net"; - const string wdatpResourceId = "https://securitycenter.onmicrosoft.com/windowsatpservice"; + const string authority = "https://login.windows.net"; + const string wdatpResource = "https://api.securitycenter.windows.com/"; AuthenticationContext auth = new AuthenticationContext($"{aadUri}/{tenantId}/"); ClientCredential clientCredential = new ClientCredential(appId, appSecret); @@ -189,11 +189,31 @@ You will get an answer of the form: ## Validate the token -- Copy/paste into [JWT](https://jwt.io/) the token you get in the previous step -- Validate you get a 'roles' claim with the desired permission, as shown in the below screenshot +Sanity check to make sure you got a correct token: +- Copy/paste into [JWT](https://jwt.ms) the token you get in the previous step in order to decode it +- Validate you get a 'roles' claim with the desired permissions +- In the screenshot below you can see a decoded token acquired from an app with permissions to all of Wdatp's roles: -![Image of token validation](images/webapp-validate-token.png) +![Image of token validation](images/webapp-decoded-token.png) +## Use the token to access Windows Defender ATP API + +- Choose the API you want to use - [Supported Windows Defender ATP APIs](exposed-apis-list.md) +- Set the Authorization header in the Http request you send to "Bearer {token}" (Bearer is the Authorization scheme) +- The Expiration time of the token is 1 hour (you can send more then one request with the same token) + +- Example of sending a request to get a list of alerts **using C#** + ``` + var httpClient = new HttpClient(); + + var request = new HttpRequestMessage(HttpMethod.Get, "https://api.securitycenter.windows.com/api/alerts"); + + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); + + var response = await httpClient.SendAsync(request).ConfigureAwait(false); + + // Do something useful with the response + ``` ## Related topics - [Windows Defender ATP APIs](exposed-apis-intro.md) - [Supported Windows Defender ATP APIs](exposed-apis-list.md) diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-decoded-token.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-decoded-token.png new file mode 100644 index 0000000000000000000000000000000000000000..be98e49216da7b69964e3688da55e803e821eb13 GIT binary patch literal 80299 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 literal 0 HcmV?d00001 From b9cce0b9b7fca38f319da8d84c85adc2536de230 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Wed, 22 Aug 2018 09:36:12 +0300 Subject: [PATCH 050/201] Add sample for Power BI custom reports using Advanced Hunting API --- .../windows-defender-atp/TOC.md | 1 + .../exposed-apis-create-app-webapp.md | 9 +- .../images/power-bi-create-advanced-query.png | Bin 0 -> 34980 bytes .../images/power-bi-create-blank-query.png | Bin 0 -> 39358 bytes .../images/power-bi-edit-credentials.png | Bin 0 -> 32221 bytes .../images/power-bi-edit-data-privacy.png | Bin 0 -> 32291 bytes .../images/power-bi-open-advanced-editor.png | Bin 0 -> 35909 bytes .../images/power-bi-set-credentials.png | Bin 0 -> 14353 bytes .../images/power-bi-set-data-privacy.png | Bin 0 -> 14521 bytes ...ows-defender-advanced-threat-protection.md | 5 + .../run-advanced-query-sample-power-bi.md | 128 ++++++++++++++++++ 11 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-create-advanced-query.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-create-blank-query.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-edit-credentials.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-edit-data-privacy.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-open-advanced-editor.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-set-data-privacy.png create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index f374da6e2e..5fca7a6375 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -157,6 +157,7 @@ ##### [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.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 838ffc6489..a2f4765c25 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -74,9 +74,12 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of select permissions](images/webapp-select-permission.png) - - In order to send telemetry events to WDATP, check 'Write timeline events' permission - - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission - - In order to run advanced queries in WDATP, check 'Run advanced queries' permission + For instance, + + - In order to [run advanced queries](run-advanced-query-api.md), check 'Run advanced queries' permission + - In order to [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), check 'Isolate machine' permission + + To determine which permission you need, please look at the **Permissions** section in the API you are interested to call. 7. Click **Done** diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-create-advanced-query.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-create-advanced-query.png new file mode 100644 index 0000000000000000000000000000000000000000..d5fdf37ac2ff767e6bad864158f9ae2331432084 GIT binary patch literal 34980 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 VSs!g~0_XpA^w25O>;o5n`#(N>j|cz& literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-edit-credentials.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-edit-credentials.png new file mode 100644 index 0000000000000000000000000000000000000000..62c96acf75ac69175ac856f881044b0b1d3769e0 GIT binary patch literal 32221 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 S=-z=Vq4eack{~5SN?;t?pcLsP6cGrW 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-open-advanced-editor.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-open-advanced-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..16675b01ba5d15cf9532284665347bb0ae6df336 GIT binary patch literal 35909 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Ⓢ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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials.png new file mode 100644 index 0000000000000000000000000000000000000000..dce1698521b978d2bea0cd3a671d361b6b7d9fbe GIT binary patch literal 14353 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md index ee949dfc75..05a565f9f6 100644 --- a/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md @@ -200,5 +200,10 @@ There are a couple of tabs on the report that's generated: In general, if you know of a specific threat name, CVE, or KB, you can identify machines with unpatched vulnerabilities that might be leveraged by threats. This report also helps you determine whether machine-level mitigations are configured correctly on the machines and prioritize those that might need attention. +## Related topic +- [**Beta** Create custom Power BI reports](run-advanced-query-sample-power-bi.md) + + + diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md new file mode 100644 index 0000000000..045d211d0c --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md @@ -0,0 +1,128 @@ +--- +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Create custom reports using Power BI + +Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. + +In this section we share Power BI query sample to run a query using application token. + +>**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). + +## Run a query + +- Open Microsoft Power BI + +- Click **Get Data** > **Blank Query** + + ![Image of create blank query](images/power-bi-create-blank-query.png) + +- Click **Advanced Editor** + + ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) + +- Copy the below and paste it in the editor, after you update the values of _TenantId, _AppId, _AppSecret, _Query + +``` +let + + TenantId = "00000000-0000-0000-0000-000000000000", // Paste your own tenant ID here + AppId = "11111111-1111-1111-1111-111111111111", // Paste your own app ID here + AppSecret = "22222222-2222-2222-2222-222222222222", // Paste your own app secret here + Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", // Paste your own query here + + ResourceAppIdUrl = "https://securitycenter.onmicrosoft.com/windowsatpservice", + OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""), + + Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="), + ClientId = Text.Combine({"client_id", AppId}, "="), + ClientSecret = Text.Combine({"client_secret", Uri.EscapeDataString(AppSecret)}, "="), + GrantType = Text.Combine({"grant_type", "client_credentials"}, "="), + + Body = Text.Combine({Resource, ClientId, ClientSecret, GrantType}, "&"), + + AuthResponse= Json.Document(Web.Contents(OAuthUrl, [Content=Text.ToBinary(Body)])), + AccessToken= AuthResponse[access_token], + Bearer = Text.Combine({"Bearer", AccessToken}, " "), + + AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query", + + Response = Json.Document(Web.Contents( + AdvancedHuntingUrl, + [ + Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer], + Content=Json.FromValue(Query) + ] + )), + + TypeMap = #table( + { "Type", "PowerBiType" }, + { + { "Double", Double.Type }, + { "Int64", Int64.Type }, + { "Int32", Int32.Type }, + { "Int16", Int16.Type }, + { "UInt64", Number.Type }, + { "UInt32", Number.Type }, + { "UInt16", Number.Type }, + { "Byte", Byte.Type }, + { "Single", Single.Type }, + { "Decimal", Decimal.Type }, + { "TimeSpan", Duration.Type }, + { "DateTime", DateTimeZone.Type }, + { "String", Text.Type }, + { "Boolean", Logical.Type }, + { "SByte", Logical.Type }, + { "Guid", Text.Type } + }), + + Schema = Table.FromRecords(Response[Schema]), + TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}), + Results = Response[Results], + Rows = Table.FromRecords(Results, Schema[Name]), + Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}})) + +in Table + +``` + +- Click **Done** + + ![Image of create advanced query](images/power-bi-create-advanced-query.png) + +- Click **Edit Credentials** + + ![Image of edit credentials](images/power-bi-edit-credentials.png) + +- Select **Anonymous** and click **Connect** + + ![Image of set credentials](images/power-bi-set-credentials.png) + +- Repeat the previous step for the second URL + +- Click **Continue** + + ![Image of edit data privacy](images/power-bi-edit-data-privacy.png) + +- Select the privacy level you want and click **Save** + + ![Image of set data privacy](images/power-bi-set-data-privacy.png) + + +## Related topic +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) From d8aaa0646bca0d9febf84b4068afe7899d4e921b Mon Sep 17 00:00:00 2001 From: David Laufer Date: Wed, 22 Aug 2018 10:08:35 +0300 Subject: [PATCH 051/201] Fixes --- .../images/power-bi-create-blank-query.png | Bin 39358 -> 33149 bytes .../images/power-bi-open-advanced-editor.png | Bin 35909 -> 26917 bytes .../images/power-bi-query-results.png | Bin 0 -> 55785 bytes .../run-advanced-query-sample-power-bi.md | 105 +++++++++--------- 4 files changed, 54 insertions(+), 51 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-query-results.png diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-create-blank-query.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-create-blank-query.png index 7e94252e109e6b73b279f54b45987fae600a56bc..d060becd5b305d6f08f44070199d9e69ddd4aebf 100644 GIT binary patch literal 33149 zcmbTd30Tr;+c!LO*NinSR!%wPHo0V`Mx&sgqV_Dzs>31}5f$2uw4TskxGp z3p$lc=9ViW0+p5GI<6=nl!7~;ARr>}V$J zr|Xs<_Wbb8H{Wb=JMH5A%{S|$-+c409UHz^zmgaWJfr^eZKSvB@o%bnbZ690)`uMP zIQGpqHEEkxuYRX~zVXg!zsPUC+1k4H^KD!B%b;(*xwpg3<=FXH5RU|}*QFuZGr-Bh z(fnZ8jnv-!Bj>DY^R>Ei&c>gLj?WK@x607c^T~elCi~>kOl)hAE@J=N+V`e;KN?45 zyzG9y!EcAb{=|CQq#b5E{$(~Eq2ab|)5aa^H;jL~z6R(x@38S;%!=<2UOvnNU+}%) zJH+F!#P`Vl6)0sjH$+Dvn_tZ-x=g}`b&hY?dw<*7ud`4?f`)qA>c{WY@BaPo(>v*i ze_q_E@qc*{Mpev2p+kzke*T+Zkv~hddOEc|^Q;k+s~{AgHz`h0)xjYHz(as=q;Ej< z=kxfTUq5`-`WRO!rh)Bz10qf?q4k|bMBx6cmM%*D6{zy_#0`n0t*a6U3fYx5Y}(e3 zKYOCYWZ+4t_Oap793(#1&i3xG;A7zhqbNfeoE9GV<55_`}Np{>gdtWC-eGg|b66V(xw-NRaIhrCK7RsET_JCML5TCd#KX zLmCCV;lZ@Cou0mv$0mb+3Xvdvvz9B`FDQTGjP|&u=^v&nCsS?~z$bH{iJ)waP?c1r zWc#+64}^@$(ic(uDb&F@;Axa31l@SY;KF!sTF}s|3#4Z7N-;P|8PoSswmJo5S6V(? zx^TnkUu%1NbLUK_f=r<31s0>{hYLNPc;zyQ__orMMRE<`SdjiDJZZ3U#VYl&IkE|C zcyqTT@*7!-VopZ|@}g5@Gia#u0vVt8fS@Y&-B(>apFOAQ1?4<8nt1pZl+b%?ik7v# z%W7hSGS=_|ML9=-_7nmQw%DZrfkMh=cY?78e=H*CQjlt$!Sb&*0qZFM_sd7WAjT=J zXC{v%zwcC8-3~_eb5Nh#sn1}7Q_vUa)fwDaO@a}GS1E-XiVQ_hKIW(mVGVbe>7%q+@~=o&G4B9IEwZb3bF71*ociN)|}})SrW`> zcib!=Q#^oBFxw=mm4xtQ7ZlG@9XPU^HKewjyaIc9a6to5(5NWJf^skEzZJNbT&;fN9ta{}9W*&x*E^)q<40`ywFD$J zEL5IHk>&NN8gV!Syq5#{io8iY?2ix!qxXFg{*cFy*@%p2_@#n-*xYY z3;8?(7qo4$(Raj`MIOG5W3wyWtfb4Lb9oNKj$@W?uJqIXyIoI|>>Wrdm0hYbouo9& z&|VwlECjlT88ZOLrP-}kf^u52t;!-9rzWD0qE=&%&j-i;REz7+d@$&{S890gqS8fD zae8H9WrACYaUKI~uK4Xt&Z8m-R-1yBHpZj(^nY|V{k4P1T^#}|h6>(vsG{}jCdV3M zYNCY7CnMsJxsG-cIDD!#@cU#45jxiV9=i@@V3pqpy^RY@gX*nG_-me-vD9$h@H@kW zyWyn*Mwg^@@C@RJBz2iW|L0Z3aZqHCl=- zuIropV0~9?~ZRf$cEg{{AVVf~~8D%;Pu{(N-u~jbmY#6lz4;ZcD*9Li<=qLtt zC}s#zYn%NBQj*T>4ChsjbQZqB(AWee`jMg9HC0!y3SQ9qqc3xm%m=<*Jx&P-%|Q%f zMyh8&TNj^$3XJ6TTrI;OCxVA^h{tbvoz&;-(+hb+KRknR3o~9Zy5W?w-w5l zrhHb?HNK}SdDt(~sl{7ZC+;v#Y3UE?yYJ-jsi84=+ivZnc!Ibp>V`Zyp}C|40ZuzK`}4V!A7rb^Qwxpvwh@<=5$P3_#z81&O#!c-r1!k^X=t7a1A zuk**?Q8u3Ylb|8L+x)`-aDTzTPb$60PtzqWIj3BPdv%)zTF8rnvg3e^W@`=9Pv_^q zeYO58NBEm+B0WTI5ef;Xg@D^=3Oq`rx(b3%`gY5vRQnHL?7wdADeC__yZFC+(lk@9 ziCXy62WRQunEtOXTCV0X&kw`Ul6k*Oqjsk+SA4^{$Hch&v()d@bp+GIpVh2x?SavN zdF?pH|N6~+nw$dTKbY&jymMB+-O24A!M=Iwn2yNY0Mq>P&LQ~V&r zS5^>;X*b?7V@N=#Q<*Q{H&2to#Z8*~CuDh?I+Z2YsESP{jNjw`&b?>e<JOq+(76rSNzTNFja9V!j<24 z*a%F}&XBIZv{RY*!d$uzMq+f4{X6phjT7#BF3VENXupFE37^TnfL(wAS`B~SL0QF3 zwi=*9&P#i$ZyzoPG9l8>Lu0nA&2Xyv52phBAZdmoqlB8#83azC92n{C9Dvm@YllZg<( zIMWQ@pZlY#q(;P&0ap@_;p>g$=W_4?B-su7gzm2Ina& z-0}t0H${iO_vLe=GA}KayN{SlQOL`I!*d*Mjhbm1<^aceM|ag-$%6~OaR%K6q0$O? zjIXy*1nMtqU22Va%iif;M0idR=!LctMiBWGdHNZYO=!-USAOLqB^keDAS#hjIq`&; zwrabqcBI#P2k)7HhMrx&B?GHA#{_|0?E8ENj))jpaRkEx%TLEg?cFcu86sus%t8G) z1bKXq*;%r^p!-nzi$sgvj~n^_ z&U7Bf7!qj4X zBnrMv!&qp;y!LF-&^!KUOWU8(_jzYO9-hzp{I0p$w1O6&Gb}dle89wW-_=Xl%UAw62sFTF}mSDw<1U zo{kz+9QJRd*!(7CZbCe_51pW8tbE<_Y^RXh>CXM2J%@ewn?Y4uYT+Si1p}&_P0)Ga zC|v64p}K+hn;tf70k8C(ilmwfJUEef$mtD{15_eTTM9YcHXIndt59~sixqsyu-Xgf z7`m&lAcb+4-aKKu+Yg%@283({!YYr#_B&IKERBS8zr%o2)I9&4QK3zOf&8p7lHcSJ zG+G;6{6cKkT{iyH-IXOXQU6MCMwb97sqT75-ZI(#ZfjjQqx)Qr?beMks|F_QrisMk zeJd{=E>!zwL?4~hXT{f{0{Bnd0tZV5hV^3dtrO+of_B(pL#bvJ6#@=`JVJK+0-xp(8|M2Nydoo%1IR=c&d0Ly7WV%QbJZO*36kot{=E*_^zgrJb}h-dyTbBY0xqq&vwu zXH44MjwH;pm3A5L3y(zH{i~-#G5)sl#^T?SzreLA{>ODyt||K#{Jx4#yWbM?9VI5< z;%vS1$6rnk4-_~dx(?F}_eP;@h}xI}vUyv2mv5 zJJPieKh!}OwsnzHJ(rCJ(nF~>QobeX+soPI=LlXpRn`Fh(VOZz$MuXZwrHX59H-%l z8_u@p*WqfLwd@c;tE5-r=YmOoa9PxiA!udQSRdpR`9i5GF$&h{Em3Phfls?yGMf(bFk?W5}jJp`0d*MB)FvDL3@Y&lHC8(=&w<4E6 zc#!Pj>Rg!hQk}Y(HyEr+us+w@Di2gK*>#^yL=tnft|B~RBHQ5VZ)y${9FD4kM;cy%)22kZEfHUPloSt4OJ|-2dwO^9iGUrzHJo&brOv^kc z`>an%7}ZC!Kc|4N6+i6`dt+VUJN8>=Ain-W0V`qf2Y2LLa5D7G?ZR z%&@BD{c2bP4jm4QDm%s>Q2V0UY{b>`ZW~Rce{3LkAqM`a-gq3>H@Vlc9jSa=E7%zI z18TrDM!xmnD@J>YEvv`{N}^@E2|tzO7s3x43!<|%rbf+=XKI{xY z_XJUfKpAD2Z6)aaK=RkBjht_P1{$mR@MmIktGv;bn>)xDi6~Dpml{g=D!(Ey0boAP z%Rp?8bFlbVctRjS``bMs1R&~epM|sXyGTiKLNnri>O76Ud~#rEk&^VN`ley^N%}41 zAnp~d-0?`Slcc~gqQ%!V<{Tl4e?s!n2~NWV9K)8+Tn@x#gm%<7G*`64QY@r8jr#K& z30VkVda}#MDEW@JF{OvkTm&wi^_oWuudpJg@U@ms+RMc|DuSy zi8xIlI%M4CmxvvsaNh7qNSc8`y4WV5CWe89qfcoLGJpnwIAA>&TK9UQZ~9Df(B}sU z_NGnc6XsHl=A5gog1AE4!6ZtJOcFJ4vcUsjrXH?m^M}w zLJQ5a#dHgQ9*wamAJEVDbX3%;eY)|#D6ub9*zE!LVz{hRl8rJXIe-dW9!E}&WROxo zI|pI&?SC9yoep`JMEafCCR8qzjNK{;8xJ|D=YgL{{w3YejcYfo+t{M45381c?= zX|QM7cD0itc?7>Q(6UkS*PG{zQD?{SMMAi%?*|j%=x9*oj;dJ8>e=OZ>Jagf*CrgQ$m%_n`P z7AdKhd~1Zx7QN zKy=<%%x<1YWcdgM(@#PnTF3b2X_6bay!j8TGOf1405)dJ@X67FA8%xorkr(GBdd-j z{6q-OtoiokCEreC<^eLTW#@4G&kqbi&K=2Gt7@So>gK2hxl>A?H7gz?l78p!RX=1>z7tb$BAB@wDn+2oDQC?29~^E z#vz+?J?D2yr_aQNG@-LtdcA4jDKDc+&pb71@XeXhz`G`*cKyhk(i44!9~dOQw7aU1 zTx=?A6^@^vJd*?(_u)*w3nJ}@JVDSd*ksVIkxFLNfu?fAwT;VH@x#CiipYmn5v5>P zVO41}NBQ@&6O&E?xYwY{!*0yxH{eAWFe%-428|frGGZu z5H*f{jXG+QX4P{A?3bC!#3o8^yz=MQW%_y_r>X(kQBmJ+^Kh@w{;?w@=%NLHs04)y?K`hi)Ue)P&Lx| z+9~mIv1+bw?(~9J!6CF_z+h|p$}>QV<@RKA2~=(+uWQHbjFq2{R|%M|;xrJ=!86P| z{JOmIfVh)n&hmU-F5vUTyCK%!IhR*q?#(>u-QV^X#xyO)1y$`gA}<=H@a86qO_eW= zgesRTiD6&K1>=kSx#tj=AcOyjELqvFF^2o39*uPrI|k=dsM{K%(s| zF^=Z$#|x#Q-5ZZ@H(1%~QAGWYzuhh>b;!~$}Z#yzBPfY_(dMznG+L532 zoXGfD`eEV+$WAqETaQM~K9OOn9rK^kRIrH?eTjc?Y5`8^FERdN1?EvRCdL84XY467 zP8x{`r{GO945=I63hD!i+_G=|!jJP!lI5UBsDoD$G@bAr7Pl3l;mafA_oicH(U;V^ zSO#8x7hd#Hl3{m|&s~0EcifqP^!-&c0&>GJWfs7Z1SwGGH?YjuAeE>O;cA#^sM%Ae+3PPF)XMm@ z#>Zl|w8#0tz&7f5dzz$ngeY*Uw;)UI*;sW5d-r`nRRM!dEp?jq>=64;PdH;Olf!Ea zR<#f{tMaJO0kgd4Z9jW_EKju^Go)t9BN6(kv#&gJfN8!{i{NB6A71OV!m5{q2u zfwCtF^8~MtSbK9xW_dN)-o9~H;s&xF_#tnuIWxv-uk`2(u}`qepw!^<{FcrzFu!ir z4XLJi?Z}ASBMVd;7f{~mK5p4@euM0#A?%HF#B(G4aywT;6IEJV@s9+9g6nNwPxAzc zH2BU83LM?r%8Onv zWmb}P>nO~i6FGWQ;Su>i#42rM+5XIJeJ%#D+MT9Cby`k~%k}bPslrBoAvdRs@x- zOJ^3ipJSz!W7nXvMJ=^smA`4ZDlQ_cQ@Lg?ODT~}kE80A`%gv2D!;8;p0B(S(JH>N zNbPm0eo^a*tM4mGVb1+5RoF@{u7)$^XP1J6S~!|e`r%{=svP5_(ZO!G&kUJr)KF)6 zBj<$7o*Q2FuGIQYz;cHNAMAkc zvT$B0J7#9EV@7ZSha60KLV$4IW|TVpLdCpFRl$AE^BbJ^?fpk|U(OLIgE&D{3}vYK z^?HYDCOfj%Y2#Hq7Z!1@AXNambi0z-D*y&wUZBRFLRb%(NvkQ!IOBi>{MZoUoA%ch zQ1IbH5DrL#kj7}b7XICt^q|G66}Wl$ZpjKpf^(loGlsAQU4MvWcnEAclb zGbyOW{G+uJ`u+5&l%-NCa%b6^>b17CZh=*suI)W5(SghW>rsgXF0Wm)O8wC(J*_hfarB7XcOJsI z7(eQKA^z`&PY|*Qqjkm*I%I_Tj$|QdH3ZtNu{voKvAT zrhOdeWF9&R-jYT7Ty-9z5Z)gUIc2%Vx;CCna|-SI2ciG4 z+S~QY@}x(Eg^zR9xi7rpp}*2ar&e-L5ok~R~tS1JKKBn&bHGsuwhV#IZ3r9B=bcF!#1J+Lc#CvgOrMt$QI^2)T|tTw&us4@U4B z-gTA~hZ3-bb?xk(cr?nwoQ+r_v%(-Neq};qm-XNxCR;z)2uanmo>&c8xXpQQ$m?Yh zGSnfHhI95)$D}&RD6L2Lmp1fjMBPF$-c{APaOh$<2s;vD;=S+uqVmbje=O=txaQwI z-C))nek&7X+h4e^=Yq@ofTlY)2Y!EDdUDS7dG|z7r{eV`0-p73WBkR{P`jLe!c=71 z1UzAEaZEXTnk8OhP!xjS|^>g#D z2YC+lKY93+K;-Q@epOdsD%=H~LA&!8)8$lkvT>Y`Y2WFyz0Euv&U9?%7DGb~Dys<| z4&6g+Ki`=|L;+k~rNzn)XsHpisKIKKRDekKx4?Ht>uoHh!VmAg?3`Iz&%*dkL$^m| zfA~4Z8Fxeyqo4MUiFx-e-0EjSimNc&w!_ej$9o|56HkCE{eRBJ6Eke-O;M%O(LMB# zG{r*F`@&|2Xhs6@@J#%;D_eKOxA^SKafR9cR=tc#w~K%t`Q?w=o8c2%B5${*tlLqz zYqua0NY8)tBvdrAkAS`Tufm;>6_4V7^ouzW%ewmSAU}3@z+>{df&9{VBb*@Q|3J*w zJ|jCspiF%hC-w$qtPD&6axqgNw+&>@J=22Judw}BDcdxIu~^8C`nh>0*r>8Pj8ezy zqMRQKe<13rYo9wLtT&7MSu=`@8rdnI0z3XqycWKes^vaG__F>wyVs9IocOo!|Lu;} zCU>xb(K)gSpz?YoEifiWA(y&Nxm3NM%8-Y%R`f(f8k;6}Y`hk}{jCa9E%^>i*FPFp zL33rb!}h8>3^&8o&MUE<H9g@tfzA-EBHCi)P51}tkrlftEd9e!1182KoJ_G*+IX|>gGK!2^FVY>a^sygFgB4P`? zE`v4Fa5Imk>GldMwQnJR6UGVkS^AZ=HagV#w&mr>rju9?cMJ?5XN!TU;RK5K^Kw}g zs((E=EHBI6>-Z|q=2m^^{jM6Lgs$;>xXA^6_vHH;qsf9O#*i%92vSt}rPqC#eL-z6 z66vUxspr$t(b1QyN+Q&{4Ru5-QSnade49MFUFsD-uGRNv3R7C>(BsATgP>YMD`kUv z>?D}fC(T2=PV6$6{0DO?`HSuhne^ngXeK{SV9rHwL5OXIMUTn{|LtrrmxNot@~3md zKD!ANp$;+>e~rQ|zTT(O2En@>W$!*uix;f{QaW{A9mD``)Ok1yCP*_4W;cr>)}uFn z$%Bkx#JW{@xy}5szdyoO=D$->HA-iDSl}lGo-Ee)zoNtGXaDngQh^=nHJ!gO{AJ5k}8 zj`KZdR-2>do(o+KkoCS2B1KLlNrZGo{4U%1OE!Y$N%FLqfK|6@{NLhvC_!CV9Fmh_ z;cLzTJ#R4Sc12k4mAY|s-gZ(}ULTE^48R*3XzcRJP3v-gle# zk48-_`*KV|(X*aae0P%L6|eH%Ghckk9#4pKe%1I4am$Im_t28 z(5}Jq;_r@45lz~WtefKnrdCkQcz~@(&vjgz>eZjjwu}kxYYwFJgB}eB)!QBAl=ye@ zC-kgOVG{pGj1>W?nlMns8jEynZ%;RjHAP%Eo|T9$8H0jApiPESbs2CN>Ob9pVUIDK zg{QK^ZgElSVan$t5yb)SRpqid-`q|Br3E{8kvGi9c=jdX+;Q|sR~1WFp(i(VY>}N5 zjmhyZ2LKpHkz+RufcM>^g&r>IEvsZH_oI8A zH7~RPP5zyXdsnL|v;)p@_de;A#Ib+79Pl(!u0NL@L{;3XoA2)Iy43&`s(nOVaAiNyJ-1mWSJ2$_rBu(|=y_%J0$0t@6-XQeq9IeVu9QF+ijdP+} zN`!tEQ)w6HP5#J2B>J~OWMhwBhfUn#dfP5VD^Ab*=87-tndyFYQv_@&3oU8fGM4$d zMfp)@aspprO_W@e>Rguo&Ty%RpLW-RQIK-UwCRrCme=^0zp|Qq=eZYGudW&7UM{F0 z8!a59-a~QoW_#I+F%a>=hvgBF@m|m4Oi0;D9n^i|Ifux?2Nk0dmPLEOQlKz#>` zsQy!WzKLi3^GdDM>?oOEm(A0VN>ILlYSC~1d)uqN$JFjE>xoz#>05W>szB?8sxeDl z3sViY9Fg|!yUfo!`)C3^+5`hyv?EokeVH+r=E|#VNClkFv3$bAlusR`yepc62-w`W z7e3V)P8^QnvOpv+jC?BEpm*Eq*o~nmTFwQc0+uJf5iCd|Gdw#STFX~_SADCnu$f*m z--Udn37R#En~rQ&cfix-#=;mrH)*kyLSc0|iLc>p@`mOnyQfgE$$f11gtI$gg;{I$ zkW61fmTWl@<~@bQAPu5ua*0e z=DYjm>;V2_5Xw+RQ<48L1T){6UHxd~a!u6hDz>kpO!$*=A*Iw4cgR&+ntKA^)W2O> zo#!-n(3*%^@p>M|an9M+rm9t!u09lasl!7Uaww~WHc)fDO$+@)@2S5zAbNr0(dCdw z319kG=n`~kRD-B9V^VNtDP&I87czh%wUpVlE9s1RFQsNv>3gDDeU zy6B&R&&RG32@#!tYs_AF5)tC5V60c(}U5@E$d=`W!wzs<mkm6Eb%)EN^SiYwtDARRbK=F$e0oDj_=`%aA6ofomtR!|mwX#a z47q-sEHduZ`G{SvFqcA;I+4=Z7IcI2o}QO;;-m9bzt23D+}Lv=UlbJ4YdzV%5_Uc# zW{ofaQCgyxC)ca2+35ZN#hB>}%60U@GZ3i1LJ4?vNC5%yVXk+%ENq;*qm5=7Zj9Pt_y@puCYX^l$X0i#ubWG3 zO+9t(T(|Q1?Na;5J0i{VM*&(h?ki8o!F%ZSuH8rSZ#SA<{sROIWaz zpyRE!_xqQ<5LBU)E2z%$D$_!l3YFF>syY<{x*1~R8kCVm=4WdF_lFQYMSEB0X!_smogmCv_N=;#r z8WC7}RunllXu)=>WT2ku?y|rO8`Y2+*xxK*ldO|ks>V%!&Sz$&$z%B1(T>-46(|di zE^{i5w(#927wB`{?~Ht1GicuX)LxLDDrXZ+Uwr5wsnPOQbMyJ72QO2S)w30~!0m#6 z!2s9L)F0{&*C}2%PpXG(6Pc#15zh)9x5kaNz$2d(9z3HSZ(b8Tzzc?d5n$8IC(gxr z1FDNF=5gt^wE=HA00&(*I!p?R5Ff2GhN~4GhBQB?2uyZu{~oo=d|_--{zLq^%GBW3_ZSG&e)O?De@p z{EFoA-w6E4^m0A2G1PUWr~4Gg+0q+4e=lyx1a+KDvKIt2X#OPWzH@bqrZpT!K06ne z$-R}O?uXdwm)X`1guZhG0)g3mlNbKSZs76Pi$UdKCr0dAA4Gw@E>+8{D(Bp?%MZi6 zJ{qlkt0GZ+#3j!cLO5M_j9+T>WmIZvF&WXoN*RvMZ6)tMSRs#l7uSsq4fLuFFlr~s z4-sndxgjcB+*xo?>A-zIt+_78*c3P;j}^ok>yc`%;4C+a!x#aR_H!+`IOAX`g^${B*;i4XdRXO$p#1(BXzS#+y zZoQyjjQUX>!ch*pq5ONGKNs<#ePRc?ZJ80*>v{9sJ7*-x*A~=icU0uI`Xk$p$e_DD zDqYp=UG5E$O&q`246TLz4H-|k?nQ|ltOJdmZCgBuaFPiM9XqodwleMExTw@$=*>^K zd(QE3c5X}SW2J6F_#aHX4k-U~-5FT`1LW8=8Y=)M^a4!?p2*E|_5fqsO*PaPe7jOAv!Gr7Ad z+`N35F)B%rhp7#0LpygGXxCl?IIcMN7leR@{%f1?PHQ3ILWbCSZG*2o`7f@*tw-&C z)0Ku3q^hF)`nvF6DL9|1c+shS4qvz1P@vI$I9zAnjG=JMd<8p}tIOv=XpYkjUTL<~ zbl8VQcDmKP{^p=2x#g!fb_FQ-WxrC@PKEi?MY}~$1}KMzcyhPY?#}OK_6D8=yhUer z7UCK#5+>-8Tb1JU+R6k)Rpv$nuG+oRr!qx4U~ZcHG;|ZXrHP_kS2J&;J}xDF(4=_H zao(87apwIw6u1u^xXkFRj%JrBk|eOq$@zhyAn!@cvKcvig>l%gAWm0r zM7tT{5LK%=LM(g5n4AC>a?>{XC62i$e{7gDfPE`$zEG|k?iQI<#i+>Kl#L2(W;gLO z^F3>;HddE~keX-s{#vM(PW2%jVf)nUi_ipOHLjPg#63Afgc?NU`(D^5T`7#g*h(1I z(guG4`P-gcu{prboYolz*D{%F=eVv}?%|q?M)(N|Z;$A&i?r@aEQuNrUEUH+*>F?Y zK~j~XIB#}Q`nbj<_Q93cOIvTn`OmOJ^OpDha+G(g9|r>P>xI3p!?iyiy+SAh@f)~H z&X1pS?@oacfnLH6BpKOL$c~kbK{A{{=&`1WS^2w#ACGRVG5CEkUTpn3We~Fkk|P@2 zGDlghEj2xgMCVBuO@gB_a+5X#+rk-!J;Cd7rqDD`5j@iy0+ZFt(uQ;DT3`>T2i>nB zE@r#sc#W4XlXp|>RtmNG5>IH|d)xD=dglVA0=X+P2$kq(^AD;upgtKpB2%n4n%3bs zr9RowoMiO5EXIU5@t%Jzm`zboLcd^|p|~bYiy56WBRDF0KL^2UaV`87+FWMwTY zFT}Z7tf>1~qN}&qPcH|W(!Z^_e%L=UD^^|rP=)1EM~{}!I0sl z0g&A}yEEP^yPKY8$2iwMRM=N`Ppi!=Ctq_^deE=Nux*ur`QV8ZaBAv$JE+0odKYv4 zQHz{LONFrFvtzZZ$7S`%-0+yB;`Ktgp^!S(!Uxu>EOR&{L)K2T_|X5Di4f@r9v=F7pW|U{ zw<@)bfYC=Fj(BItXmVvT%yjSK>L}os+HkW5QKqgb(tqpLsX4ID!MrD^AbKKW>9*S8 zWE{?qG1zU%^|BSi1;BPQBsj(Mhy(97ZZp8Y@hrq4ZeOr-V&S;_1|4zzwIjR6h$nuz zTP3qV2ec>6?W_q8z353askz z)feX68rC?=4UdYteu^H@^Z29|dSA8bJW^(<{FSkHE!I~Z`7`{@`#gso0M#x72N0fF z&{7VmV=oB5wd9pMoVFJYc`#$%%Gw(&K6sOuQtU5LtRaor56JTrK89*3#cgI!twub7 zWY~l76)~IqQpr}C>Hzi&kiTTo6Cd2|zO?stTMWLKqNoq<=u^G9Gg>5`=yLr?-oKmd z*mGx#zze8GFiUni|7_Ir9tvct@cz-(tQ+2wq6z{BBi*W=-m5QJCg(_4e|HpjK_l@! zkUUA8+GvZj-2Fr%zcpp*^{{_FrX7Yq*m)rUPqp?mty+Wg(_wLiuU&`4U|=HfVlB<* zqcaOPwZ9{z2Kh~}QkuytZx+4U&Or$$l1M4TsptPOl{nq!-Q{Zp@4UHmqA)a&wc>TW z{m6ZuqjO&nD^0zbwfXLnsIfWCpTZB$5BwJy5+tokeZwDh@X^=8j?ae^O%Ixi|4~r= zgqxyQmfE4V?TWkiG3jf}G+sT{4bex%mHJ5xNh3AnD2k5IaC7wM#(#d z!a0PuZr#`K+{^pbZ$Q`S|47nq7+q842!NxQC`)>5Sri}ga<;MyVzO>f&y0LP1ieNy1ixU)oYldlBaeX()$sH%FM)ssHCNKW(r> zF|3E^KA|(&{ScDSWt0c9K}Y~E|4>cH3%%RYtj|_8lus@mG54jjnMYc2jW90T+2ytB z%G>48T*-m>_?X`rl<2nKf#Fsbuxc?EFCc?Vz#BL@B|faYsirg~?9AxG8vU-@H$1To z0&3tIc7IPOO#M2?pO?Z+0%VfI1kdg@v*oJ+=VNH}sqQu?NGFhskD7rA9JiHYtC-c( z;2{CL7aPX3stg0gGcOrmj7`S;c%4t6zGb! z;WMdd*&6Y@d^z`%>JzJ;O*akp-Jz=NS~gQT$+F5P6Di1}`#<*GktXJxGw2KBogvoa zxi!C*q6vRj4;XyP7{<0lyEsJ*q3`6@RxHBW&==qHUQqI7h7P!WU2bLBKz|x~2kJ>D zR7}5VCY|EfKJN~zx0r<_4g53})VXi5NLW9JxDfJmo?iNZR)-84UBYxV_d65RHD0=; z)KPwGi(K?0dv@NG?e>Jy-4^52z8L&zrl;2F1;u-B=Q;7>vk}yyK^3XDMLvtr8i$Ii zJP8|C5!GoXs>XzZxuG%`J25Nl!h7D-v3g)Ba^scGy0)2WUsdn%E#Si7_aN`t^=Lyj zaV$zuq@vj{c>_$VAoU} zj@EZ7X34d-eQ9A#@3qp2R;vdmQlqQHlKB04pyF6uXt*cu)0G6#Fq~)jwo#*|p3FRr zLwt(d`r`??P_B1z%Ck-XiX!^oa7j#@lnim}ca*&ZFOo;Zo(c3wOm+L_ovU$PJNkp| z3Mk5~=bj~35Dn4}q?TzOyyVCm%OB9eW{u$XEJQ|3 zCEuygZveCG+Kd;-`#vU5J&T<8RYB{l^4)(Q`wUfit~_V&)?dld+C;uskoC@VSxe69 zwnld!JRxb8_WTm5ShDGbhY})b}Z4peO_*nOy1|``i-MGk4Ei6^bOdm30nbfl!vcT_|_- zOGaCCJ}i@;9TiMLTmUMGVs8O9l*e?Q(qgNbpqSoL!Y> z{Fzr1u1l8uS^m;~|aj;Q*Tnsc8vc$MI7RnhbJR&`zhQV`{>Y)oXfPaMgUZhQlvC1}z z(2ZsUKeql2d$vV?EDGfDL*b`#L12!wo_C{D1B+M=L1nr5Q=kNP2@BosdLt;NoRYV|Fp)&PBYC3U1_x2R)*`X1^f?9Vcc$V_3<4tt9 zYSN)#mu&TKNhJs6%TXMnFFJUBmMZVNsCxnENPuRBpL{U+)hBoT%c?()M%`M-ZU|!9 zU9lR)bBPoC!>_3t9v3#91ceDqix2vOl}&z8i{JJ;J=&6r0j|0G`5zh%N^4$%qs#sG zWi(=Q{1MdyRZJo;GeUDK3TIngt1EfK1(&(y2bC6lT5erD*5!2Q6l`4Y?-k#NoZn|t z^N{Z*4i;W4)I*a^_!|p!VnFqaw;%S3UKdfTZe!mkJW0tkR^AEeg&3W!jb_9#$kO%G!|@*n22%m&z&%H>cPHB#Bik}) z^h9r6G+YCF0zCPd8nYuSpsmkJoLUIgK_cJJ)d5ija7&^7(tv=XHM)x=o;{e*sE_G9 zdSpJE$T$K1-jY8ctZtH>6Qv+*^K|$lH(85`i04-DzY8Gd)vDDJ*Fpbf4WqgKgE1dr zO>;){1c*cEgqjc9rpoy|_Byl1Uam)u*6NZJ3R5x_14zos+}lP=5v!vxHn--^huzFn zYVb=$K`jj_)E!XGgs$|SY!G>yNsEZIeMcSVP4P3p5HS~V2@z9}yyW00lZFyW4l0K> z`j8$qwc`igrhex+k9g@7XKG zgNBKQsuGZYuw%p670#!>vcg1kaKZBLPr#o#2MNJ+jXK?B`_?kk`G^kv)g^dh>25Cy zW}4I8<4dZ0x1CvBdK&QQ9pVyB>^pq0+zq9lqrTx#{xpaBr=sGfC^zwLYM-CB;O808)@&k z&-tF`-sgVz-~93$_TFo+^{#jC^==aj8B+Zhx>P)@?9AIe1S*i zE*sE(Y{)oM9M-WeVuMx=_x2T@jzGLGl1X?M*00l!Y1e2Q8bMVv#9d5{$TSy{tbBex zHjtiHG7C?&-tK*<3)4Fg$N7ofH0&JMc;e?sn=lOqjevmi~6%1H1N(w+8-Mkj1&&lU=5R z|Dhwq;pHSMlBGJ%u}uy9@I$HF9gHj_%kXqhP7Ak_u$=A5@#DG zxYV>sn%Wr6PA^Iy*U$^SWiv=`G29C)oareHay37~8<`wf*YDo;VPgk<&Nu#;W@PWc zi}^aW8C{wzSNNoHp!P(__t003;;zZ4sM2SCrXHT9i>3$Dl4V3*-XA<>vD~I4Tbv?lxRx}Gwb+1z8QDL+ME&zsj zQ|e^Z0CDOjc3KXlf*hY3#dpBCtZ$rdzoVOpfhS4f(d%NN^G9T$Cb~~`pKlB-gp#3=9ugmHN zfnVW5Fh+Uf1NHDzZuY`<^fo`^mF*A1*V(wWC51Tci1+W>d_3Y5ZL%5J5}04R*kNHr z?z^IFIzm!rKT_y3+@%|aXotZ&hPx6um56&xVbF;LaV6N#>`~5v`}-B)G~aCy7mAxF zB5{kZUc&1%PSI_iYD&WHoV@I*EE=3TA>H-#I~a--1^%^=S0P8?h*R0@Oz;w{srU9A&nlSCtR^cDX8R9c2#HS+Elt@YB<1$Ur%y2sM zQ0H0Mz236nxI(@0QDBE-_*Pxw_+25ce$u_*NYkM?bSQq8r8mZQ`5Qvbz;%hU-QsH?woA{Lm)av#AQ={B3Xl30A!gc@o3)0Tq9o-0u3noe>aWTk+MFNjA z%L)1#GoM4O^yAm;D(#dFEyh4fMEQ?Oo9|%WdY2d}qu@_&f-%p9TM0!5`ndO6kJQgX z69d{L7Qc)?M4}6r z4w**vKsf*urzfiX2ZiMA!L^b!ZeKf&*B*|R)w7{o-?}jbhE770OA^{^>$m!Gj&TCh ztecyC^;qdXUy&k*v+-%RP?@M8qdUw~s|(Le4s+&1x%}iQ9YL|A(s|HtCR+#kfWJ;D z;^-S*E{ujR84Rw4@ahVmk%PHRsmjKw=xY>SQBEn=lj4wJUc|S!momYXM)mEYk7eaW z$n0ES_g9>ZBS{*+V2mAhfjaKVxH!we@DJMLh)f?azhW7+2H9l0d0Aw@Pf-g`7O(3V zcF#F6aW4Z&n==e~s&TxH(sH=|Na}Fu8}ke#HfML^OI&(*do;n3V0&v4*^f<{`~eF< zjx+z^`ujXBPeY4lHGfKI(mt^9;QPB`9p~4?H(>$w@dZ!9+zVq03c{*5Uj&KPenQIb zaz}?Dl%~wSsSFqU>*t&w{$Ng)g!Km`g$|XJqXPP2L0P%q)JS@>TcUh*g>j@jg2p4e z*GOo*tw$s%f=lZfzqv0F)BSYh-huV(>@?3Bcadit1KpROH>u$d%`IsEO+5Nd?Ewe2 z1^j(uHqR(sls~Q(YCKnivd`lL7#Y!FewJjlqiAgL$efgT?Q}?4mu!!f=J?s#&VZT^ z(iBJ}eWp~@eX&f8-H+G~53pNoRH9hC4INv1>~fE5|K`0ZfxKj%12j+hc&MeZEq_%2 zL!j+za$Hp)&7q60U(1XdU}73VQ=3r;TQ_233weDGsDgrx>Cn&NvJ<5kJs#HDB6l>( z*Kcrp52pHzYAE~)r)NCPzvFbVq_5$i={~p*^bL}AY0gAq@XEnS$2L7)$e6y^A9(Ac z75Q1Y_?IBu`|S^J@Xz1ER`96zQT?!yMYxT1F6Xye=m zfEyf0`1NmGPvgqf&i>RtT<`~rXKQBchBE5Tct5@?!rr;W zsQEFfJF&x7{9C#+zw_+Ica@uiEcwO9R7pzd5#Sfm&NZ38X%v)NPDM)(8krbhit9l| z#KB*3l(n!38=0xK!!G0fg{xr7b4t^i;|Cp72|QE1K;mf%ues4|0&CZ;#KBtM=#<2I zGfD&c%yTEAN_j>v-HPH>JIk&2m$S_*^&j+{3WE)aP6y*w_7@`feEex_pY2pRyunI( z9+iOB*tWe)cZ?2?Dh=x={VtCDv1Kxiq(lzP9c(~S{KLodTC}4iCdAk-I_ykm*&C<6 zAOigIG?-zzI~G!2we<;0JfrQpd?? zo!<&L+SgBSJWr&1M~F(xvo zUv274F!!H+uIF$!vMN$wQjbDR>W$2TZn`tT*W15|kh+x>41}v^cfUW;K74?rQC=`N z)56qet?Jwo&WzM!OqeuVM|9jVgk|=+hqCuLP~a-@``eScQUrx1CFLdUn_C$xPa5G) zMY2XGjsfqgC(1kv4^>79TG&4}mHxIr@OpQO_U^76ndg;Q$Xi3RUmfZYpQ8web$iYC zit+^CZ8G7)&g93D5tZ7jBuZ@~*geucu=vNx&uaG#Ya46yBnvwldNy^Wpr=xgbcpZO zkK$^68snv(9!5=vH%7*cMvYTKcU2cS%xrb;UCHjtB5?YjbK_tD-(`N^bsm+9E_|Tp zAmy3b&?_Dmw!gw*7^MXzLP=55)GOlktR{0j2djS`XQM0j1_sSqHDsw)Mzq-NTUS4% zYr`Lw>TY5Pi-+|6)f3vM*t^h~y*2%QfPx&%x7%9ZFdd^kj-0W>vaJAS>yuC`V7?otTb zqS2dR%P&IK!TFx;Z2=_UFQ0L2AE=Wsn5$Ah);nMEySvhrU!Ot_^MdDu<=k6Qy`*N| z9+OKxez`iV^fe^ylaC-GOuZ89gZV!oa{q=bQEK03aM{iwV>PL|zY=+?v#?yF3rC_C zT59k^Gj7iM$qtedgYlvy@58k~7blPImd3qMMg)RA zCY@5_=sA$-HMf>DoW?ZJ?uX2$Fp$3E?Lq>GEp-fykhbr^n=ID;M8HN$WrWlGkOnv{_;;N$@!-Ky#rdR{RA~ zZR$1uVG$x}U4F``m0e3(kAlzZ;;^>$X03?dY+&*IAHQss|B@_rMqrcgygkZaBNqy_ zPFH3~QgmHcui4T&kFVm*XT87jL+qLt5%q8ZSAhm-F5ZYbXn#Jvs;bJuIAZ!z()H_~ z2aUda^^I60h%Xp=HT^Ru5fnyC2bvz9m{;myRkp|rJCiXwQxNKeW0>&lwr}~zH!sL> z-LEgP;47({v?PknFjMzb5D_oP(+4&Hp`P0d;$3gNTmoHb$(R{-B&rqHUf|YQ6&3gi zu!RNDuAdE?=am%XP|%;zO~nv9NI}TIyrZuyq8Ar&RPnWr{QmxaakpDhO`lE5h49K5VZD8agtdXCCvJJyVjf z%j(Oyz3Ug$!~9l~qTU_a3xp-4>y0=+zk{D%knZv}s4-iS>qAljMP6$a{t9F~K7B8{u**Wu)rXR;D+ zeZeXc!89#N{PYav@`=nXsWD4Ww5g?@az9jKwi;CbY}K56OE6T|H(q+g4$+qxIlWS_ zFVmpEkq|!xWuzJ)>#na=X^}E|7vy4pHoVID?$VPK%-}E=kBIA)Obj-kI5vbpb2kS~ zR0bAvt9X44Apn&MB0DHN7VID5Lc<_0FUF?gN=98qTY>kZ?rg76umuRA*bz1)7-s6C zmJr#Hb&$MatG%JTHAE69u$L z^X=U>#c{|>O*phiq#qaS+E=E!#lBAhptMyo3KAk~ZxtMrP2Y|TkTzLCXKLsMvVq3P z3d&$b=3ECGtQj$rDcpy2AAeVJ_)n~=hqlw4x=qEwq2}RcFmlWO)YRcNW9QkZl$|2O z1(CTD)!yw_oJu*eo>ZdBUGX7zEU(piRN|u&zpL+rSKXPyGwy6z&y=PF`-=cyMI38P z@5nwikbp5-ygfC6>z){@>q0);GYyskl~6GBwG<2{+x>ZA=h;YBRifVerp@BGQMS%> zxa-~^`nKl};{R-wVUodO|tlAXtz znOZeewFRv$);g5Zt2|piw``8xCOb4Frbi4XHpz%jC4u+ZV~NDp=*KGI_q*nvo@S|a zOX|&00axeM^}bEdv*br7b+n@&Fen;ek@T?>UnXdrqoH||?RAWCWZg_OBpu-{g??NyN>`*Eq{<>5xzH6hIuIyH3 z<1uHUOoEgd5V`QPiq@(}qR;XR(+|564$wpE1(qn;FX`r94jE8CK6~tIXMXO1rBQy1 zLYyp-HZL{Xme2caQrbk2eXk`-DA7@B8Tahcn98+(4ZMNeMV6#GqBQoU)rpVtwd3EQ z2(PQ!-4DxpAJUBv_~~aUerzBKC9tZLu8Qw8SbnJpRcJXRof(t;Xw8?<7#@oKzyu-~ zdhQf&2ZFI*pGaUBl&)cbaKT2S8}YI_%1on79R;gWe9sfG#jubvcH21o!@Z8N51~QT z%A(YKnrQcUK%w-rQr%R_l4H4pS?%D2g6BXLCdgF~0Tu)nzfC{N-+4ryfB(N-zSZll zJQx_WXB-E{A1FHh;q~R-=nlrwQek{n{a0Sjjp0BLG|CTC{LcI-t35D<<~W_=M{D+Q zE>)~wE&a&)Ks{RrhzWyW`p8H5kC-r`y;?f4P2~8fR@0eaCdOvcjB{D;JFztd<5Z#X@MM!}5Er|dudw%*YI+Fh8Q{(_6^%t#foHfTNUE?fF~`3o&-B&4AJy20k$ z`i^4c!*s)3&#dYlO9Qq2@v2u~10@1fv03xu zFCskSo{{%C$MJuB=0NxELqZ)n3EV8Zu-Z+|JilYCUB7JC6lHo#YOC!lsb1{$|CTP|_8Uuk~CseNfxhO^p?){Sn&2K>b0Hd8gbsAF!|In~Ff z*lMAhYRlUZ0VY>B!GbvlKe7ifgfW<*>0bv@#1F}Yo1o0Qe6TQFAF?19VEp1G<|o#} z-O@~~Rvncspcn?R02zSaB{OC$T==)>8@i{|TFI_ZhOE78?h^Lm1GfiasB2Uq8nTX$*S-#=weM;Xi zczJ%y(ikhXTzzLp<*3*orh4*6wE~vx?hL?2iU1E-Cs2cYvM9VdKTZC{S6EdWJw==_nJT(s?@Q=3;rmMg{FD9B7QVkY^FpM+Mthy%Q1IgO2J*|sTZ z9q8AJMWGdZ9x8^;7nL$#Ng9ZL2{TSwk$H60+H#* zQN#HuuB7;3WM4U!(K_YdJ!WZPnniWVnzQ)ndDn3*k&kmnHi2(iUuWz&R%Myn*r4C= zcswZs7Y@U9+(Cydbv;0KZm)6=YK43D#w9h@KdN2p6l?wM za4lMAAU9<0^Pkym>fOxJQ-qk!L(+)XgN@{f7w@LpWn-^0wSBq?xipR~NoTaoP5{NY z`z_f^X$=*7KWjBDdAh_K3j`<7FhJcN+<+>yf5_Cj=DvcaU3Pp>{p(YaVtz>iWc>r3 zo`NsK3a7PuJ9y6d?V3HotV#Z%fep}Gct$!B=&TvKi|c6P4LS=knU|BYYUsF{2>#x) zN&wYagkbl9T=sAu_xfaCO;0xtgGnihqO>~#JS%|_2wN7*v`!Z#yTyITeNAj zS%&I#bKMtb@;7xyBMR!BSaa-0lj_=y6wP_{={H_B3~bkruiA&SK>GD-ue8;PT+cw# zE;?K+@5<;lLdN;eJvE-Kv+tX@Wf_u|o%qsG1MGk4#=9VYSBI2eDXe{Qvru}UR-)7I zf^|7Vibp6pAfF4oXEu%ZmNm^DA7(#m%yM4zxpvP`kfZ#wU)$G8d{yF74ImNi+c0Cw zeVi;zy;>o4Q*x~g8QSd|7tD-r=sw>-faW`py*Cki*%OtWD(Ay~bPp?>2s>tcnjZsn zPa;jl*%mHzCXe6r*<|@7F8!F>tlOuvrt4FyTWHkKy-Oibj-vN)rJSzA2`$l_=w4sz znLHI5GVbZHwY1BAXrg*=lP*~Lobmf8@a+}JWn3Ks=$3lTVYZF~Ew)gfLiW!15m(v-WC@Vxio2jlhuC2NgPzn znEpjbm6H|!|6F!hIh~ z)H<$==m1Flk*U;BcZk<2a4vF-{|7+n=2zdrtrR*PM7Bm|RkTX0PXc2p?94MkyG5t1 zBU!;Uy-U$X9?zCRZe%$Z*HE|r^tlwRqL#V_U%%3t>2NVgH8;Y4&%s#W?`_Z=oWIvC zz)FakeTl(sb!1QFKfo49(S53u#lgoL9hjHLi@oxah1Tzobs4S!Z0{Z$aVqIp>b|*; z|DMZ%I!}-v=w9(FeA(Ej$4hFQUQKld1Y67j)?irO8yNzr6M)kGUSC~&u%yQr{+ zJm%*~iA;7+5XZ%chN5b)8T<)OXxtlkh3?FzCHN?Bkt5%e@<5pDrbpw5oqNc)a4-RL z>L+&P)rq26n_~r2WC;tp(xeAIeRblZ;yCz_AQomQjp#D58mQ~pN#xchhYPmM4qS+| zc++1u@@+SbQ{AJ>TP=MTVdtfIBNlArpLh<%xZ?JYT~%rs?luevXvL#=Tf#9=Ivau7 znmJ9+j~^O8GfDV^Ta#y3&|cc@I{SLvi4esRwqQtrTyN&q+RF?x#uo}R{1W$1tRQDs z6q(5d<0|Zo3pfw>0Br@(S&{s&GhPb@H55vV{hUO|Sn{57Z0)Q-d&(bP1Vr&dDVo0v zYo?dTPPsV(l0aUNs7U(wxbUODACCIdyDp$N?T`Mn?Arm?{09vBo2LB_zMP?tqDRb( zId+i43RxPda|(UvFi!vnRjfDKG3~T0a^yrChy!bj2*BH@DE`p}z)@%5 zZ4}J_(7s2fR8~ZWFTpB#t^l0-9qh_iggC|bCxTM?XcfqlW=)`IuaHCA@Qd$AO9t5?FT4;0(njFPc@3sV8R zoeK7aq>uMET1hg^FrhzfJ(&~6rrwNjeuLQrAr6ZC8DRx1?SeOAB3E3YIR5|_A}<$M ztD<)gyVj~cetW0C^j&mNAJ4gSvjkG%SYRK}8(i4X7@|cFgJMO*X~rsk_Hn3OKVgBG zn;*_3PHpS#cs~S4Fk;&x26C$Fas${N<{0swAZfC5J<^~3^?F+pz%PE~T;=X_^p>vM z8ri!B98+FW-C4RPwijsYcSG>dPm2fz-897pDx)CIBaInmNa^LOioUj0hy&UUl#6l2YsX|_SQz2-kwCpC^pP7;^(4No_@t#WigbZ+`7Z5P!I%gXFn`cM7+Y#1l7xsz|RIZ$wmve|B(AJAaf#e=wnQsTWrDZ0Qy+|&dgjvc!yL@?!k79yFjajOq$^IKW&Hr#v2{1Od7LR9k$;G$+T=km|giP!S zj|?^cmtaZmkHtQDkWU2aRI9JRG8K(z4;SzcfXqVzy7vt`3 zDj;6NhWhJboK!r$8uH-LF+@443>i#K2MQh+nf2ebDz*dEmCcR3jk9aKM{@4~#O=@* z6i5v?D~EYAq*Xs|;k2Y{@-elebD|&Xj6q?(DO1-F${xh0I^xd!S>fieJW*{)D2^bR zO*PIo6<)W<8cS{PT?ke?K<>K&35pJP3jNP*jQ`x#qeI1m*cDq+KkN9<*M9wY?dk;f zM9-iW{btQR0XFbU31^4j_B6$W40tqTL&gcQ_x@B=K=zR+jyA5Ca4?J25DSZ2$DRtD zMH~T}MtgjlL5bX-&Kr0LTd`C0s=8kTq{yIwwE?w+LRqf2seG+XlMXZ>!iFt>$2X+S z{8H9+IgiJg=Azlz$+@MziVtbN#?hEPb@YXx?_GW5kpn#a{Z9yqhZTdtH7FaEWR<+_FUIx-R=OP#3xaxNCALU*mPzD z2~#UoIUb1?-Qa(9-n~Oq_j8T!@-_nP(P*#t?8pmS=u-D_u=VJn&a~$2m|BE=U+4aa z;dn5EKg#XX?uebNHl%*nExWmI)W>+5SNl*1*7leE2cs`hm;wJDFg-h+O4#|RY%!V} zf^NU6>2d9c&5PJml|gnca7v3WtTEfG?1!+JKiKTPAHeo2Eo(ql zxrar&wy*-b_+Fq&Xjg(=vtW{Czi__$`m3Efnxa}f1d@y-U{8TG+W#-t_sP#=F&|HD z1dw;j^0$B<-enc{_g64SSIB0E3#~?TwU&R#;f1{mO;dn{m0LAyp`)H2pWhL2b9wvh zYpG!G1aA4K`C9OcQ9~_zLtH#44|%qW(|vvK_TTQWKHZ60Sm%m~Tz=bk{Nt(K;!TSv zX`#ansVF*gzxX=h0R5du$37xoz3;WIzgUw2lRoj}o5twZ3vVy~s%BkLoLvB^iPEEz zl6um`?R~FmWHd>rPXDPZuqOp~`jArd>bXFSX(0pE(YlTSIhi7wdQV1@#n7lzT^@ zd0m^|)IVvsEO^;;F|hU``jAG~TwX=z%vc|$qbMwR*4-;5q>pUWSu)rPw&Hv|)T|&^ z8udcJ@R@|r+Rl7&+>gBMf&)pVgZ<)s6lv&5ejO02L|L+!M_3clRm$&6bVLQ$tei)AM`+gM3Q0Rk zOwpSb;@8|N_uhU{gO6XIsg?6AMy-mFJG}vD=I0^wTmI5zLrECbex^?0q4DwY&bt@S zyb|TQnQH#Vf5t2LO8lV9Z&x!s2^o7HQLS0vo=psCh|tn9-8Ad(c8-;K46)*Op(D=W z&2WW|?~dhN*QzVh97ewYl6kpi>Yzw~6)+jSC;YK{1+mw5d2jhT@&z=p|KXHDym;Sv z`ZwNEpuV$gz83|OQ37~k408F+YD688^bpYFUUq{%aP#`hyE6vFhQG}G9_HV;jiEc3 zux+5``Y-dz4F!2%zTe!j@9#cFXCFA%*AJV}{$ZEr-+fe(CJLeD>=x4cbDbDHl$Tp> z;8hn5p?Mcj#%xL<`ncua`&5tA4F-RvmOf{Da;P+7u16#ObJtGm0~i&4k<9G_m2)Qz+BZ%x~=l{I_B-k~I5t^a@|fVe;Zi*@Rm zkja43Jz8*&?!c<;e;}ud-#^^my3=z0@Ypwd?qI%lb;vk!)Ot`p+@F-J>D~T1r5zEO zdFSo?S+m~C3r++a-F|IhrBO8b`)HY7ky*7q$&R-2YE2Rkloe~OTvoEy3* z26%H9@%=;)ypDfvU5WcbeCLZ^j67uj1X;>|JQxBeu2UZ&@>P%#w4~mJO2!}t3}r#n zAk!T07Ux0TvHTr4wahJ=H~O>h8|d=bG{TvZoVy%!5(vFQDY;=2wK@sS+aypjbXr5~ zU<2b7iXfRR93R{^%+}P_#@54@exhAJYOXc7H{YS98d=FO9f}JqNL*}0F1USXN$uJd zL%4fT6*1f=nna2baAH)Ot4P`T=j*8<34& zl!i?Zy>&O|Jng{PzOh4NQe(2U1xX*!c~i6j&m{?rWw;M^B$jub;sGo_{iX%G>$--j zydmSx!K<)UC>ye;!$er{wMRZ8Y+?5>?2rU#1^HT+RoYUs&(N>l7mDm-$A^xR#IX{! zZhGd^^ajr%H5I(iqyF!NX#J4II}CH)66BnJJwAc^bo+x!`v#AIWI#<8vfVR>{Y+m` zz`S{+gC5wBI|N~x9#C~npTZuf4qg~&tIuaOpxqy9~Hm z_Y9`%NRWzwu=NZd{#b-7Dp<08nIalb#%-(jG%OI zSpVq0E|gct_SPD`c|p&+wmfO8v8!C?HTRVQw=tUFrux98 zg`Bo+FUWqt&6RIg5ynsRgiI69yL@v+6Xjp--pmy7 zh+g_0M9*WfTocGlZuzJtwBbi1a8tXc^OTyo*^XQK=VpX5PbM!^@W2T-;t>m+c`6&t zEg{fsc&4$=_@E<)yDpTJ6Uk9OpP44~q5=?l_~@f)f$iIN2PN`NuZ7rQNqI4L){{V~3i>KSfR{Rn)t@{p_i#-~j&QzZ|$3?ek>!u3g_R1oG{> z5g+hl|BZxxW%*OLZ1AGTvg1F?MvWil$BQMX>F1Px$YYj0-m(K-u??$PTV#I87<8f! zqHe@rzuS+!lOf^Qi%NNA#W$pXZDz6lDG^Hl@3#w{&myGqMF~p8^mg ze8^YY$~BkFZNo1v`c*)3$P(O75C;f+J7ANi*4nUo*_msBJ^Habo~I33IekWc4ErQ9 zqDJUl#^xY*5|XsHa(o{bT%ld}W>&k3{H~jC*RG|z24)2+@?4@)1|5}rxLC@{z>KtH zfBVQm5&XPlIGK$ErHS>&1p;U>HR>w*uCWfq23Yzjc3)} z&R|uLI5K$UeB|8Y3o$WcEoA19WEizJ#7a_RcI+xvUh zh90rxE>DAX?!PMLzPbu*wSuy@Li9$*>7C4HUTSy@KHgzk%X49@;<#_9jjG&nf<^}K zv{gGnO*y#~Eq%Q205LZ{02z7?{C5RCm{U0!+AyT7;3D|0pM;Om>N~)N^wh8Mh^9jA znpZAvm!tZZZz^K5NPdzs_#j%7_|$l8Ktl_8eoU$>K9(NIBwp^Qw-D%j3;VN*?750o zL)zZH*5bQ~aKv@@v);D!ZG|Pc#i>q~Wk4kl0V$%fn7O~#OZ~?9?&14o_l{VpcNXWG zD2f^Wb!Q=`5^6CUMmOSAkwk|RU|E<6PvP~>-B78V(X|(8aC%vOxd;k39qEt;gjmt} z<)yrO-c3$}M-d5e*env#q1eA4@U^d|`vr`1Rb1Y*zkPm8i>zsA7qDeh`8IlJuG*Xa za*(|?$$ho@I{|$tOF1k7Vf2{yo~AHA|Knh*YCg;0{+ZXWzQhqLQk37dOWr)&$-wMS zdRjQ>kf>u#vSGm*u%L7KXd)yjeeW^n=>s4*%n~E`>ZHIQyLSD2r|85^xGnI<5_1TY z|Ne2JhhLNxV|tU9Pc_wMyD&D&D=QP?0|A5mFnLe{`1N`E4DgU$F%3$Op*j|PfUE85 zOZ&}-nhGO&q!0bN$>Be5f?WT7lNCS)vfuO1`T9p;?=BQ)`#l%lVNo^rd|*rVPqO&u zdQRuR+-qR~yr<^<<$Sl2{KJdCD3yEpMWQyYEaqv!&ez-Z>XQq`f1@={J?vYnnT0_} z>dwPs?4;QuCM*9SG7DoC<#xW?^0giXu8!lMo2JS_SaVd>uu5&^RG*JA+pA|F_IcD9ZrW71`5ENa zNuAynLO8}Udh2BxkErOw8cc^Y5xdd|v$Cqde|tdhu1;XV-|TFOk+cgXJun^slWEN* zgrIRo&=tOCe`>+^7%NKO7hD>;dt8UZ?{bUpL*4ZHb2a$Bo%I^zJ)RpkcX+@zBr}_L z%7N0fzQX-5=|&Sx4A7H#o$wKbu7`K)I60(5twUE-1`(#n#_$|$e(?p~x3x)+4gurP z&(pfs{GI&4W+)N|JL<1!Xt(~n?T_*$1wz-{MlIo`rPKF`){o)U66-Z&@LSl0^iN?d0LsIqicZvoc=#XlT{R^9I{(~CnpEU4{IxC; zS=KyZON1J1fR3W7?`y{0J@!&`bYr2lh&?IEyV}rn-v5Fh9r{w$se%0@*e1ay180$k zg_^!XALagBrK&pV;xv@BoD9ljm|BAoN6w0834ZHeYPb8N1wYy?wY=2P#_3&SevYiq zvHci{wc$b$IjN!TkbzS8(5bFf3^qJOX>P7FBQsSgk|E3vl-#)-7 zCKVq;qY(T+Ov7|Ux^=EpH+TSfFZHPQDm9>CNJ)YC0?4bQZ2`Q`5u5*9PLwgwzI&@K z+?4U0`&US40BH;=ac~)jH z=GDiT#9NT2pHKtMg?xYay9Q#tf2Zxnb)mVbkZTp67R1NR&!DCEZlTgYd8Uxbk|2EF z-|Hu@sFCZZ-g=#~vu0feT+8L;U4yt(#}V|)p`7Tj$!UIQ4a?v@5| zt{WL*2zX%$OkU=3{I==YDVnt)vm}mkf1*!eajUk{2X`j)m^wTLO>{jRJNG&?8>RpE z`9G1G8G6e>-)37aNWg+^n?qXTs0s^}4yB`z(MwG}VSGbPPWkt7a&k(t_i1!AxKNw7 z9B$O7P;*xPea#q9A9o41Chw$gm>pA&U)Ge9)mXZ-`q z#zGCHX2AV!sf{upD^l%2z*qXae@QHH1Mn%A2K5^LzaQR%8aBKGLxEL12@~1z&(5H? zH&AVp2M3}7L(|IOHyktGi5H*C&d5K!^(*4^W&K~?6ciE+9S5RZ;IwR9-*Gbe@UxUJ(r=0sRz0p?kju`NWJT*&L7Uv{ z=$3oyZt@)yHD7u3tfQ@k-|*qqy2;Z2{7~Q{73Gbe3`7)#gmiM0-*veL(_C*G;^(U@KLo7z!>ToDr4J zjb;cUgDpZYY0VrT-i+Rhjb7v0W4ggexZ29+e(3w}d8gQDxmu}90l0EP!ETUP1qF>) zA{c2?WE>zHYaGH~EPt>=hNea-`ii;kx-sm>U(%SS0ggE;Xz?F(V9^|f2UjO?m_N9& z1h?^Nr&UNmgxbn;Z;G;N196~jQ%%L}Kyf+hO`aQqO$cau?CKOWcUMxv#v$CaVVeMw+r*5C14ewu)X{9Rc16}%8{7vb(Zy-9OtQBlRptyj^ouV6 z&7)qhQfXKnNZUO%8awN7U~eyP1zd3^mDNE@pq_>{M=t&oJ+u@F0oVJ7!?qvO(*^yu zv#+#CRG{K8sd`LL*pEip7BA~!-+`vDaR}It?+_Jm>(5w18!D2bD%ZGDMBpm%-Z#o5 zkkLOu7?dh2AoRghPWZmbT3_tQqjUb58cFCYsSvI$Y|sk(zTFv@!fTyI;zkK=obZ?Q znIP*6%37&E1OFKrC_x7?j31qIoz2{g7XQ)?@{6ix&w{qnSsmuV8m9{`a4GWzoLE z0don_tA~(34j1>%g!{9hyR`2cbk>&MTx}#(EK;9r$@sF|6za6uEqWUdFIlwfLN8LL z8ZsoZ*A1m+m0PH;O=B{z(G-8x!PdBKZc2E0gJY;+&;D$WeE@){?|8hlzT+V=JP#k~ zXrPHfsjUu~roQyZ4Yl5&5MMv?#Y769Gy+Pu{e>#>dk7u9Yepdd0qM3oC(Mla&O5H6 z$^NB<_^;1q+w3$#`2v5m%@F=V`C&(nt9|+z@XyHYvWG`9Ce(?!c9e1VHlS(<<=ZDM zX>am4^C4s=f;3C@Z-sj?@aDNqPvb)4L%V9-T7IrI-?!x(QkKhlbW4ZC=D=)hu6AS$ zG`SPRF|NN!V^Y5Y?dHm(^Vj*#zf&8`=S=4N*2lfN`s-CUgu8xAXX1%$XP-uu?~$~W z)fXT9B{L_q%%1lv%CEwcQv-MQ?<~H~-|k(Cc>3yuP{+ zCTt-oL8cy)`P$!Zl9%7V--UMz>ew@m;bb(Ubpw`&X`o|d{<)1xM;ux+kKd&+?m7N1 zJ*boe$fHG<{aHLV5YG#TZYL4+aLB6-yjjeiVOeqy-r!xXZI7Btm0O<T_Iz^kES>N#hlH_q<2G9dG*zV-kIhG;rHp+Jzn2OX|05ZG5Cp^|%A& zDUYUdOlv+~Jq$c5>|xSL>^Vu93iR4RjQm2t zaw_xZW{5@iC32rPdhBH9NgJF+nmC?$(uUGg4HsH!%x|9*Dv+@K*}c@>*nYXA(RIH2 zBx(U*y38)o#G923Ma^?vtUbQAM-H>TUZp)cB5i{_QRFm`)&y2m%^#v`ID~fOy$|s` zC6;un>68^Cz#V4gGyPRj-sI#~=c{nOeLf%KCd&Aa3!OBc*t(h_Q5E|NcB)pq2;jJR zYxE0SL{En-T3=0^?S?1;0g_9cHSO;tVou^+4_9Fi2H`)+LTSXOK*6+K-NQ^qJykHZ zMsFxP_&pIF)@LpjjpDwl%x*TIWp4OpEiC+nXhQA%x)%)hR9jv9OAyti2gmu2uGy~N zDai}B_Bt$40Qck~bA~(&%uZTl(hVrKsz14D<0Hg+qNHVUUIpt6{Dg}} ztEyU=MwyP5pF>cDQ~&Fj`bc`L5vWy7S$C=U`m4HzvO9*Fq~Vi01oio*81Bn`^x51L+qV_eZ%X7sd!_-8J-a2Y@sY-lvn8>EVJ^J1dg7DvY#u z^?%a!MsKkBMk1{BPSaz+4BEer4oq!6Pqj9`;b5=gTi7Y?}^w{7Y^P)?2my6+QFZbVA4lG?# zr6v2ude!D)<)DM;#??=xOtyHWM$NYL!5ay?LFLg5r<#YJhb2PWU5~?|#upXl+L{Jc zLE!1SZ%D@!!de@L(1ByEH4=>eiCJt>ae|X)J(t%v1N#es4VY4q-&(al=Rj%j=Y6Zc zS>ZSxHIh;c1eTKq+n&Zg)4B)78af3!rL`RlG{F(aoNXh%-+Ezz!FtN+M?|6Uzw zYL0FI&7-tN)bLj;Ky+BQI!Ff{uq5yw_^0SXvY{6lYgYNnbSP&$mJ%lfbU3>nqb~O^ zxj$=+5qi@xphUOMfFQW%Vr%5vaphruR{+M#7wOivN=*i0fOD2Fp&^!6nd?thhkm#( zpCkP^F|rk3Sa39aT8gmR1}ATt<=e5v--{#)n(}@|UAw4o{G~XZ!X*V!-k>dJLuVoH zh@uU&Y~CO>Ps#i&xRD;EG>F?vxix;>DsHCHd(kXMW$CW|AEO_iZT^ZXS?^M>zVAV^llza9aFtrF_QIo`_( zsWR_?!e0_uY|&`f4p<#%_U#J1@iOB&?Zl=h)G#o z;vrCI7AE)VGQZ2+8Ii>3z;D+OM8i;%_TJ6W8rdw`r(wBqr|!3bRXdn+#YG02?#RpN zNBA?o%_hCi|2ZA?#k;qul~WU2?c6er7(zc%iF$s|W6|u6qS>;ivV2x0vTD4~w*6z3 zTmMdSd=V||7L2@=O=K=St6+IK0UH~@{n~khoYC} zbZ|JwJldvGZw)#U26G46Q)u+ZW^Q`RZ{i@j(;L(E&bUxGJT(FzJd#PgYnMgpQSXgHwlh7E~V&8`-w;8-p@w_I-6yD1&nF` z)H5QFvbL{&)pb%j-BU*QZh{MqlUzSe)K93N>Oa2aIL^_mGMBQYxaoDdXtinXGl^JfiyY$_%4``m>-$zT#}S zHI5|F3ZDB(?JH$=l&Y5AGbjVdzH6R9=fxMz>(j~nE;)8GBNZ7c*s_=-di|E>dR7Qa zUI~P=w5VmaU!e1+mt4r;@v6|*PrK!!%GhLdeT1jIIkWTX=#^_F@lc!$Q)xd|F-@^X)TV@lfwR*>}K+vOF^GTA5VUNBtD^ zye|^%6xL53UAL`y;3-#h;bx+m?~$;fLv=6neOH<`_ZN%PMo3~E%NXEma6Z1}FGM8F z1xZTSXVd^1hL&zU@5hhGdYOb!S=?h+`}{rL;Jw7!Dx`1cwJVK?Qf(+T`8 zLBp+Hc_$oe8=~hg-_Gzl)uQ)K63FC2P@!#(G^OH3BEWk8H&|!FXTdYGYe`4&8LBSx zel1a9(6#B4fV~EEb+obk%ky-O;SJ8hCm(X+Ur4flP~XSBEt#w$kpQy=LjQ|X*199Y z^R8cva<{6-Fz~?`+n!a8-g&1x$Ull~_>-AIU)6NEfsba@>wHOw92fFn)RxHOt$GVm zrq&Ct_~S!+YHkCtJ#^q(A8C=anRn0iip~li61-9M+}U9{cAn@xd!n+W240?XqGq-d zq#N?#?BOl2tzMK0{Jh&WgkEwf2KDrMFY0ps%%$dh(l7L0$Gk#lmB%EW^GFwVYv+Ju zk2rubuz*vqtD}LSDU#T8ZthmFt?9+jP5?#K14Jkn?D-^zpq`V2X9`M!rVCC`*_C*n z{{}P%2*nF)3Z}g^t)tk5ny*Tb+EVt|p*kz*{zLoiJwzByqJGJKJPZVW1;)PNGT*v3 zvn_?B^}ePDU-VWK8qB_N^>C_Gw5jR)G%NkE;lOBnV!+=HY}336|0hNzqMjt)2bp2E)jyN zOAYu431_I*hirUag~^(-pr1*~QGDn9Ynb-TA!NPt!}e`} zP@hiT2`^csXOr&VyWPvwUWK}la!*w8&vl!FRX}h`>eyjH(g|e>St)hM9Z>Q#@fd3` z(uYd_mZX0t>*uF{^vd9*0bRQHIA?!xb_h~CV&}O&hckjQ>@KWn`9T0F{|Tjh}#V z4u7Hcts3}S5YeXqFpj)48)VZwv3wNR?LO)X>M6k7Qutk5-8btr|HI|g^npvS z3RCz0)toy;5>IczgWqZ{W_@Vh6iGz+H9YX-IMyugena$jUKv+1B(7hsTkH!)hs~%u zH$E*QizNc)0D-fzmLo4J&24d6R|JgP1&p`R`&}9URu7b?LNvL0M$J(5v2>I_b2=;3 z-<@xLI(SfA|MK1ZF7R!df2HeK=H?aV#TRma02Qkc_CnGKj`2+yyzGEvwPvy%{yZzt zNoGBHX){w_g~0WdIVoaUh$0|kk1BfuhEvh6@PbR0O8bw!`n7E(4RV>jrw~3}BC&R- zYiF;2SCP*{ZoQ-acmtL>E8ciYS=HL0@A$vAXrJI`TJOKN=oBDyVzNyEOTELtqbAIE zeeg$8y8fKl*_e4;7MyQiVVrFq5RGU6g;S#xpy*cM%82cOo297^GR;JD!FZ#32ZWfb zo5SY$6v46Rz&`gw5_ssSQTrJ@k~`|%YlB?TAyl^TnyDASyn!FkF^|9)>6^WReD8Aj z_VuE+GJ$l~t3F;jk1Wh2fDfew(SfDE{7db z`?Ox@Yq`d^l^w9BycQ;0@l`;>_oW|Fl9yu+LuGFS&o}~IM4qEYk2n7K-k627UtWFE zO#40XaEZp&g%0CzWTt(i+s}f4RvGS-Yk-zYA4L%+DHoBGk z%m@UEcGds6(~Lra$d%DH`a5mL?$OC){^L380gG!21PYS)ow`x!VDA*g+D$lMu5XzV zwehH=x74qtl0A`8c@9Uf%di>#GS>90Z&|(tqX`(y>pKP;t@aP$jDYPmJT(@~eh~7z z!$FseXl&jpZo=HGX#B+P4fj(-GiS0B_9w&x60o;@z5XrX^8jjV@z2Pt2MU)MFEU=H z>eW_3RqXEF)?u-Ruxct4-iixy)9X76Hih0SVsA4RFf_mVYW8QF!HWGVDCf4<$S9MO z|D!`qb*4i~~g)fHVac<{a`St%&flKa5_g5xXw+EuS%x9rq0{zC2mY7ia;XROVGc@c9!9a1QohxyjfiJp7F_&U!0XPW1s`W~18s9cyPRoc>&jyT(@B`tVd`yUMSYCG`JNwU*} z#|w0Y@?eWo7Xam$_^=+QpwtC3 z6-v$}uz0JFGvypYCW$$si60z?Ujujs5<0jX7AAO5uP!Tkr?dkgRjNeSu(#f5R~{C} zHB?2OpAM$)woEEA&LX={?WA+W|2i;MRkJ1Fu04Cx(3B=rS#Z8YE3QZxC+D~dT6&n$>@uJYB* z5=nf@{PDrtg#^7vY=CyOCW`x)%=(i#4YQj>c0ZwC!I3^JInYwgCaF5;ZtQzxgh~}l z14cFuI&TBS0hTd+apR)!myXy}U3>k2?a6}u$AA8f@l!#s^(zTt7PGEGDvPgI5e`xA z7<@JSC8H$7r#ekXj_)4rR&g;oM~X#;TQw}?O(MctFj}bHE1Myi?%!i$`Y-QxY0&`t zIbOP0IS7AyD-!Es_mD4eJ`Yt|175z1mzJElrw?CS%OWIL3Sm92eJrt4rNIk)a1a1P z*)s&Xehb(1e7j~9Y$5kLWg&2I5Oo{k_ckVCanNZ5KoAUHG82e1*4W`ZC(N=xG*7f~ zl=q9ogJl~Lw}57^bE})G{Hg0vc@rcz<;~{oUvaUnya9LW`oHbXi-G{9mE^aSvO6!~ z&V)zP8<$t&?wDvMC8!8=X0(P{F)~en{yAuK{?tne=w%+WZCi~z!;(9yT;zS2)0}nc z>Uu9Q>-DezV0i~6It=;twLYL`VdWMpPB?AOhUg-N}o5bE~={<$s)!Vbpc(CH;dtp{mQ9&n#qeCz!r zmCEAGFEou4|26!T+ypciEh`ty{Vg-*MDiiw;Zw@~PJ;A;I~RjEcHTDO9I+OYpA4{mKs6W>@(;w&6{?R#aXS~j5vStTT z76bP4>$9NlC$gh!6gVe|fLHae>_u_%k){l74|o|I$C|Z?UeLiwMRG4JFo<;n=g?u~ zHv}+(pkdXz9*aq5-c&ToR68SJT-W(H&g($Bc4aKfw(WycJ6t3&BCE2fO0`n#UAOAo z510esrA@Q7YL3DAp)Iq&GRZ>)mKQLtA&P5^yrVoq=hjHtNKWj6X`SAQ%nldC z9xnD?t*IE#{>62C9zyh(6Rx9@#$#7I;xp(2_dK~DiTOF3Yz1cEc%Zo&*IAtQ<@ApFD<;bO9!-ThI>^E1 z-f^G$$z5FYWK_uFk}8l{K;j69X~|O=Hj9+_@K!@!D~M?1yOT4Hizcd>udF0kKx(80 zo(s))WZdoQ0#>}^)#E!bH`5lMnf7wR9cA@wJ&6Ticx{&c){76J?e%K6UTM`PyYFZp z+1To5z(~{h;2@62lC|Os>|Nl#k5qXA?G+@qm(Kic_T)YOb4iw$$A)xd@ z0lhIMCL~&QB>cFppv91nJTTz>F>?nCdJ>;jB77YQ845iQj)1q^lv78 zd(gP1C$XvCcnW|suy4Pl#LhT%TI8&nZu)JHs}7;=Flx_f5VasTYJRw<@ptHK4>wr3 z2>9rGdkP7(M4Tg0R3P-+9uU9j8;q7}FyDH)Kf-&4dMt;bR`EN00-Q4L##du1T|0@`vK2J#@dd)?x4O*5XUiT&u61X2thbYxaxC5yE59H_HOR$E@{0$5^7R-4Ko zKu0CeuYoLp?F}xPrw+bO?dQ-P?PrlBkKU+?S?gH@UeyGXVB6lDq+6e_l{DQ2h+oT^ zP*YbhTIgSa;O<1FGZ^TIRuj{%QcBhWAHTQVrqTroM%NM6DdNoE=U7yfPpZjw|akzm&3!#^`MG=)2suNt>79x7Je{iuTvS zp6!T?fNoPyuEoAjRhSN7wHEAdAZCK_u9Bq84WP@K2~>iIk^`2bqZ$g9c#*uOXthP0!RKcjiykkT>AlKN&~f=Fw?|^jR|xf zf6?*R-Q4R=rjiKxncE_)3oEfieNv>}PV-|35VZ;(Ix1@(@I%(bc)G*TaY1_oIspMN zFJ}AhU4){FsX=L6mRm89Kix;{@PiHXIBKjKseW8V9Yef@CSvN?R|HRJu*t&csFt z2a^trI?YqLbTpc|zbRmfsbDH6`%)s5AtBcdX8#Z@qIK=ZCS0!`;&*u-2g?#LPNPiQ zIt7jT5>~O4@}M58x^yUGKsz|V{}_BQ*=Bm!$W2qJeKbsVYj)a@!l=BDvDe`>edgb zVM`x$LV}}KuE7>Rw^9qDRL)S)1WQ7TO^)sCCYjfIv@+(%fIFL$uZ90qg%CS`c9XQ| zelnhOAD!>H`a)&g6)0~Hx8!flpplCn7fEqgu#!BWH6Yn`s+V*tAJ5&QU<3F98KL1X zZEo2b#xeBi{r#7A7dqb1tZ|1$g{Om$T1o&RV}AaKk((j<)x{cgOG=I6)++nkgNScdGOB7-N)bh*iD7=nWb+BvY1>2*q9@&mJQr^bgM2=xiRJ~ z(p|%$b!7@$sv$r1#R!MB74(N>PBKft&yWHe7!yU#X0b@%q5_iyVll1;Og1D z1Ud2OL;TKJac=Q$32vy+&asxEpKA%8nZUeLDC5rQmlDqGbqdd&QD})i-0vS9;NcA; z^B1ZJnm9W3G+_657?h=pm3xi#LCtYDE0bR#4>Kn28Hjb`;u$C6Im}7xs&6OrXByZ7 z#$QwFW-Ylhy}rJZdx1nu^3UXgOM(Hq^(9-Id-CP*sjVNR=M&XgQdXLsj~|6ysS1OU zk2_D-KM^o?)OEPPU3u(w3+Sl4jb(M)?3D+R(IwMJI)TsuI1L@gW}F=*q&Yh~ygH>t z0a{JR@X$M}&Gfcqj0BQiiMDBFy5i2%A*fLVTpn`R3{5*$qC6L)E0dFei2m_o%5q9F z7hu813gX_Xq9`CC)vOHOk0)pGRORT3Vd-y6!P`HK2!9E#DuZXE5DmO1X=vwhL@Ru) zR~F!MY&*u<8}J!Al*-*1DnHy6|G)CzCoEVMa2UoNz%m(hwFBRs|E}0eq@%qaPlykC z@Hao;7TviPt8zM=$oaz=SM{|HNp!4-JL_L}MmvRkIcHTMq4Ol^q?t7F(K&CY$v#fV zPVa-_6n&HN#-EOU6?F2~Bfk)rb_xOD5xRxepPuUIP=I^5kSJ)f@oFEnyM`a zlHKA+9(gdL1;hJj)#)yGx#{p*d$AFkZW?>PYHMI3qgwd%F3&|f`7|DsDC&D1^A_Dv zaQQ%CUNL<}0??_CX#4%OJ~7=qL8m?9Or66t<_Fa~emUP6RV@Hip2${WecC;o@X*n)m%qmTzP`3FP&RG0xcuvhTAyOx zs?Z@fs;Xs6J8Zu5W)nlZFSKgA%>MTWrfZ+WNl6p|_F1G}5%Wryocch_gKT%m)I7^P zxmvOMCav}>@hV@H%D;?!Y5re7Q5YD-k6V9%5GJgAXAzQ^%BZeMQ1+43{{AEcB!8lE zrn-!E28Fdc=)WCX^gagA2pA7*z4Xs7$1>4u3|g7KGWjCppoG_duJY2%$QL7@=^=^# z{uz}lPEm2pQ%ztoit-Pq6y?(uW))>+10f|DL_1J_XR#wO!pF~Pg~jNMCa1g2m|vQ% zD2(Wj(z;`yiH-@JNRG* z4;cSx#K%F`gopju84+4r+VDcj-er3liS-u4U5!M4Eb*SL%YOEOOPmk<-aWXSY=?f{J@&s@tA(Frl*H1D~LL-)^% zCSK?59i&oL|8`O=_5Yeb?izSLb#m3qcd!#_dbdeW8fG-obgo-=yjgE)rWIamIhDz- z%EWN8xM2ee24|X2#qaLgBK;Vm$@=W9dc%nh*(e~k<`7tqzdU3||2dN)sw!^a?rX)yY7ekI z{CNpE(T>5klv5mX&fs6)mr0Y~yoY-EexkxwS6ZB`Dl>|nSar1&r|7qOwYu-E^oW=~ z{=}PD1I=Ed6qSYn^e1vqjjM&yP#s@ch-3!DpntfwuCvaBMJ>CIZ>=#Sc|r44HIXKN zK5XQwYmpJ7r-~J$Nx2$I@^g@LQpH}Y--y!lkrT`6hV8pQhNI$7GuJNmK>AO2-2*uP z;ulfK9j7DG zH+1se$|xqhudH#r`*EjD(2K!8JK>t?B@dLXUm_|0x)g_@ZL z8}5Km5g$a)h7HU!CI>eB6RrI*%VB$QtrJ@|tg^tUj!fZAU#UijNBY0fkMb*Pb<(6z z@GPH2{bV-zZI>0{Po$J<(%AJEzij_qG{T<2`{wP8v?aZA4b3A~-N+dKNYw2R9BfQW*NVEdoQRxjkLK}R=EgaI!4?49<>Wo{hHAU z%*_Vk1)U}!H3fE>WqD+Y?@9_guJ5!)(oU}mRI)>8d|;jmt@g?W81$s4$+_U?WTEk< z>GYoJR~qszbtl7gw8QKhAHw;DwzC_E6mQq*8!r9_8+o#;OzmbE0)7fvAjXO$1Rgvm zH8tKnV@i{&dlpB~%-2ZKW?I4SfGCZ!^A&aD7qS;TbcWH#{`B<@MTbvtyZF90V6BT~ zb27gv+qq}{LUz^v&PuBn2prymA*8sER8MtuJ5qvR%)SK!ugwdd0TRvO9*lzJ(9%uj zK|O1`g$urOuy#Tu(}{?1(8%XZnUS{2FR6h8vpYE7Al79f1#MCXlg_wLNul$n>W*2T z_*fYZ#HyTj*849dicVF&3E;NH)4G=g%jc)OBKsd?=-f>||J!0eUh~{5ZKbLFKISd- zWry@vWvNz-&X6;Uw0k>kJ$5%U zZ8s<2Gh_l)W2S;VLpI}1$b>>`QK?O{1geR~pLS&Yd_{PJE`k{R&q##$GH?v#LMgp* z;)piY)~(NbN|RP5rOoT}Kx=8hv)j3{+=-sISO-aQrFp?G9lcSH0wCgBq&f9yNJ^tP z8Q)KG?EX}86OR~m(LnPT`USl&{-AfOX6aAWBKn@lp%VPpIUviL*%)jLMjl}vF{yD7 z0yiZh20H+eB26r}ctXeX&%CXPn?Boby|Ajx8l;h0js+&?p-$uMj_L3hej<;e^}GER zy8Lctgeb{df8Ul&7($wlM+MqbC~Ng-Jef4FF(c|miGGJ^SuX*N(=lthMHI}Z@uqW- zFvL`{?QL87w{FE{FW|sv;P?WK?c)KY%XMEUr@Gq$i&N#ZE-vkkCt+*Ln-?CLHLd@w z&iy{{GqvAhFy&K66Nh{x6jpQ{sj~o}1s7j#u|_QRUGq}=jn!A!{mRVwu5#TPOY0`!t_6Im}OgGHhKiukU$k{T($kfs8 zZ42!FK{kb#;-N2Ke4!cH+uIxaX9Q}z!)9FS_A`-=J)qWQ@epKVoAeTcFk}i=LPxfN zdS#)FnwOp2vw=)D#ee+aW|3rz*rB~fkf8>qw-mnV*q9miyyYPYC1L+lf~rKTV;1>; z+e;qUgmdtld?q1NTU1mfN_(F(bFwAS*T)9Z;$~hio9l;pn2F%4ij+3>i`uxU7=?Mo zX$9Y2;CDG`q#8MdE+NB?BQd4}<6y0A=~-tx*YAw@pvChCSCcHj{zp0WE3zNQY1$Ob z7H2%#C(MDHMH+S=2|9{BPpmpp%_Vy|AO-@@&#hpo(#&^%iFR9o{da?Z?-BVP`)+(uZy&?CrEsU)Hi2{sj85z^i&`+eIn)>RUF9 zBc6TMeS0&0c66J_CU;xVf?CQ1(3Ml2J|AMfLi(u%w|y>WIs)uB<)B2;?K*zL!)cR; zC6+ww{QdW;zN}ua&mX>C7T|eW3s=2!Fb5!~(c92gNpR}Yzs?PveSBaxY~-Lse>Glo z!O2maH9%-W^`caxOSK({8N{8lEyE`N$*9+1?DcL;Qe{)k^i~fg%^ngF&1f5Rv|DXK z@+O{N;X9Vpr%qlR0~T3xbOH{=3d7E;x0}5Dv60BN_6^6|oUE05`PYa4D+5;5Du8dVNmj@l z6shVYN?)qrRXxR9Zg>PA<+^wOH-i6V9bK~_&{-a}W%Z>!+}=Yc4j2P^DY4)f!XL!0E(Dz`jKDHhDC+2C&|8_jsY*JutEvVRNdwB1yNEqyfe5#$fIU|^U$RS~7r(QtN0~ke zvv!C33EczDp8odraw3Tn)loGGZ zh$8zlRmH%%`wMylNQmtOlT5Xct8^f0pZgp~OsgOn}rqIChtL^j&F9*byz8S4$o9zh0-BZ!_^ z194F596A7@d#FVlp@MRg@xyCDI(k>Ypbpq3oEM8zg(t#JlFA9UL7s5Fo>5G4X0JgiRgJQnk)KXMv`1*=J|)cThb|V> z^YJ5?fme6CP$(p!+2t2_9Ybq}Jd~+@R0ijI75bZ?DCBrHUfbrtg#z{)+Gke}$RoKi zt)xutnO?bD<68H-LP6%`!*{5!GZ|%e)%&!sO-_Qo=vWrPcon>%0cy~F6H@dFT5hyc z$Id$z8OCdRb_yAHzW})Wx>dEh7PV_>jAh7i#3-%My}E$hPRD8o^sH9W;Z1yL8Fsw~ zgANaS$lgx4Mrx^h^Qy(C*7;OSl+?GblcN_Qg<$|%qmYh7Hc9VwXFSs!8+aK>*rpms ztZs*@S5!E;USD*=HE!}nXRWUf%8)ot5BD$Ylu~5rUK;k3fm+3p@=9QDhn30MRmMvC z)*kTj{yt}p-#hp?Vt^5rUeM7*e>LKXHaLgtE7Gou_yk4Rs-a|L(#VA^^y`7X2F)YY zU1JqQvyNtlVUH!6Sdry#v}-S?5HBlzEDW%<06ve&=sWz%tQ&j#6i>m~i28)xIH&&6 z>)s{1`9SLlIoNGvy!BGIF14Z0qlIC?v^5GE9=4y}hmKJ!K*v{*8bA5RgRyHtHuV1L zRYaZ+&uuolfgJbYUh#G_qVF9BnE_&uPqA(=-D=mM`+8lJcYQy93m)FySA21uiFnDf5H@YxB)y=p#yHdZbqsTb=o-uFe zLog{KyC-p)!~Q0rTJ|LqQvPPgBkteMF2M&4u$SPjn3z^z) z>Ne#kl7gNpI`7}oTu&Qqb0!dlhpXlAd%E6v$5kA7`&uogPg)bBzc59w<9Zz2gw!)A z4S>pv&NGG6m9G6J7r({7V$jLAgU0Xr`u?j4@dn0STljtJE4|T4UFTZTS|zCQ@UYC) z@+I!6#TvP+!AwFe)%lA=U=b`#_Vm;e_&T!~sSKjoXitOG!rMi#RdRSLl?-iq^D{aw zdErg+-Wz>q0z9(W*6!qR*R)thaE?5vbn`GkQtxn4FJhV=_Z3ACzesbflh?!;-@npH zF2HRHjwhPqbWJPRMI|S15Rz)IcC(-2pjLgOd07t)rAX)Pc*owNcDDeQj1?qI1U7{82~@b(X2$6@Mw#|!X~!K-P39=_)A zgtM`K)VHxcCv`p{`C`(=d_0U%#PF_MA3|MKAX7{NxEL#00>MKw-%c(Q2uHly`H?B0 z2eWZbl<9-)LTF|Ita)VgavW(LX{3v?943nm$7nahITkn6b zeArbAag==boJd}g;Ie;M4WwrX2}-PI*I*F;VnU{N{rWhl;Sy4tawUcn0bD&O`A$zwrp|40;LYnOR!U>m$$*9Hl&OeQ{~e}*6|8-k)# zxNpg*3*Od4wFgH}lKO8%+NTEI=s50Xi=eJAW4$C_Y$oj+)VUkyQ3CSo3I&+7SeHWP zZNOKwo*fpOvtLK3ZbBQV%6!QYlyEl=Re{W9%X#mt5&>pTj6q1%%B#$D0hfbUwmXLV(` zsAmN#E7(}&2fe^H(F2=|8VTn|;Z|vV9&Ci$1ym_=V5)sEk)iKYLBjTxp6p?wdhl*X zP$4QxxCi}aH!^Op5OJEL=rm;_RQ_VEj^Fv_XEk=v4oG7Lb=~^!;Y@bZR2#{9wAvoQ zMs8_9l|^waU@$x4A5%85g#e84ij(|6bon^UB(&YH4@Ft6+W|eqQXM}6qInj4=lmfAo=vkfhhCTti3@^x3y!Ai$8Xe=!Xq_B>?5o4LjHi0zP$>M> zz9g4_&)WQ*3 zy6gBcWtn8_bi(~S{R)Q@5-SosXuw^qO7PM%wA<(LZ5ayQ)`k9nS?;>^PEvLJO-A8O zY8J^F@*Pupa#LEo??(2E9VZ6qcS|9MhkII#t>KCK<0Y_|O;o~ZzgA-H)havt1f0I= z9p!$|h4mA`qZ%1CKY!{cXyHj;IQ@r;%H2tYRXT?Y1HTPtHI^w;J9-=V1`I`FD;D3) z8dlWxICXV&+};uAG#q?~w|rfot=Ulg5*nU5`Z6-ill2J)kEk;!b>sMb(pN&}lgqS- zB%IQzkc;XK@4#mFd`dY+WJ2?m&C{-Q`)0Q}l{>f<~ z2p>8;n3u?)H2D@nujPr1P_Z)JH>m$p%dm1T!EB^Qzjk;;!)fxZrgY=E_s3D zx9u-BbV-(}5D~dK#`@v`-FKXp5g+z0?eCL+eI(D6Ikwt z(5&Czq~AtrFH_#c=xHGWay1flAkplep-p+&7lp5>i6P(MaZ{E5z-IPGI zOb0rO?LC4aT40iUzc=soCi5j2b-GP|KaBbGO_vv%(}K~#5gQ-FYrk6%T>wxEyZOC?deAG~=_wmx)>u{z3oL<@j4k z?AXoWB;PZugN2+H7hHmobp=Fw=bil>vrZv?CcI!G0r&j%r=Iu zx;easxgqMt=<+IYdPI}YrctYQI6vfw(bC0HtuCHgkCsN%ekvR3d+DRVS(e4N+FGBd z68cS!ZEPx$dw!N&19+fcr09B-7+a61pS-J;{U0Hjb1? z7fbV7C!S1=$*UY6uEsu7fEFDEtmHPzff>-ETD*E{U<6A;7^`^rm3oe=8Wwau8w`S_CGWxY{3Ekiq?Ry zze>G)4RLv3FU=pnmLecF2B$A-xY>&cRO8U@=hi+gOVGT~Ay>-~sq#eUeRLrvljs7wwYx zeVkICgb2QLL5r?G_~d%8d&9sbPYaW8|LGg5!j?rOK|uzyu;u&JWf9~(hgZw>C6(;S zE~wL9Ef=pMX&U^u%qTXz1>L_jeniuAculG~`qaYcuC-nAvVyD%6>ofLcOdaYwJ z*T}&%JL$`+wJ75*tqBN~siO3OR*re>ycOYgxYP1* zs#1Jy0921!-R9;|F^PgS?;hy4or1&{|`?GP0(>goV)&M_I5Ka@+0T>(A*I6P-ah{_@pwX^E}uBGYLn zg{Iae>e%|sx?lRSQuLouglCH(N$K?$uh`p{4i!iZj}5RD^Aiyl;IUi^69?bac!=1f zr8+naDXl%e3XH+gzMFY;UH@;?@DmT$ljSsYy2f-ytBHbd(TD1|FmxRhN3gB!VPovz zIKl_JLRSkmdVHiWitXE7{r#}V!DGxrhVlf>4!?7(m;DTnk>M+9;Y89FO;r!|dPGyY z)WPvzR~84I3;3;&)a=0hG<-WFX~?KFH0u`e%piGRoG8@oRb1C>Z*FuF zIr))ZSKsK_s7oyNE9o7p+{@M}hgAci>8Qt3xdSgzDoULtc1@Jpa;@&zN#7ScR2^&9 zm>^UbN zv%9RUSN?MCo<*dB3!wH<$HqijrpVmdXxpfb$=;ms8xzUevKzrt${T@_?|M^7igLAm z$!>n11CymOx0?vXO-hfeI>){#lLF$t@33nq7hR6br-OIZ7{w(O#847VvuAQnrQ z&e-Y`T0Iaa-)7jo%#*n4-Xc^nFL;!vn}PxvzRPbrvw;=ZE2~31MG8df6T%ZlM(Zb0 zofpiAgb$5w?44Eg&)i`0doQAS5Fy)cL^XkN){Vz_wW1L|g<4TxWsi-+eArFWZgTIm z_6opjL}CfKe@pDy)A~jqZoX z?0zcccnwU9RCQI;Fzv#S2xE~dp~Af;i79X5vCW-*`vwRDqxA+;uN#`<`;XeoAC_^w z9ANOvF&TKon)vHzf4$Q$8q45jMlvNk&DsX0TGn$D^Ze28l8C->%+5BpGv`HbF6(e7 zuIXxfT0(O`5GYY$2Sj?Hi`oZ_+>Uq)lmxE1VF2#slvqbH4#JaAD@s-Nj0Ahw!(sMz zeQnj}-(O<;eF;`(DU7_%ab%b2x^)m=pQ-^9#1H6cC8XUoGGjNXkyTjD81(_7?#K7| z2R}4JqqmTcW#ccPTk8jJT*7+3B&Lr z))#U0r;5_;>x+ob-!ps=CzT2~hdS1do#2%0op|i3NuVC&$#;^PCTes_T0^IhVae!5~EsWhNf-1YFJ8$wW;Wq zr4gL&yPq3YF!P_S6VxR^QbJlXg@kUatIKE!OBc6JfJ*8~!u!`2CIS+>XYr0T>YaA0 zg1*1m!R$n%eP2cAPkptx^mGa4`N43R zvw%eJvxQq=6LOWD;&V;NAgD5gjDV$2JiE9wfFi-6Y3e;bcjo7_>&K@+z7Slcs)FcG z{#n9v6wi$D??m}eYt}vlV=G{#e3r4l_Z{@K$)!hAn-l;^SNWCAPq^2KcK-Cy&xQb& zui=wxnv_I#-yO9C7xglshTs1UmR)HvMmlWCU|kfqbg#J(8vpBG_p?*>AC-u*jDx%Z zly%Z(e9FIp9ff5BvY;K#XC!i6>iG>-<99Wm1oQ}2TXoOzd{C7su_;L6IiT|6-?1IM zC0tcLo2MuIkgTCz9*P;W@d?${8sSI`72&reh|Od=}a zz`*G=O^6EUcv?AoBts@;6!5Ik7$o>;=kq`tK!p>!vU{S@-0HwiP;)K#)_|tcv>mD{ z$f4ZWErlG5Tgty{fngbQdls_zkzCDMKI!K(kjxt^wOlKg+w~A62ZQ;iUkgsJ7N2JL zNt$+Bn7q@zy#A1EIh==bx@0qc>l&+uqV!5>|`z)%9sjlDl6t2`q^MtGZ3le_fzaD zxm?E$F)cpS+Qw5u|3bBbX1kn`82k3n{M?}muzc5oO#e3^UWJ#HamL{ZcIDl7{G+u3 z`fh(rA~SMorl*G014+~NJiyltr=aNu)3!dW{Mxd}1(K%P!XeD1Jcs{cvKjaphM?wt z*9fd^dXh#kqIAYg*Opq*vZtSN;A9s3V^VPSv0&y+kb7LG@}a(*jjhqLM~uYznkNQW zymDpdQks>KFKdu~ZW@@5@(gIUXVtrsidAxe6a{>Trljd2{xD^SOu})5D=7;cAAvge z3uh0!CK?58VGDmN|UoYmN;ZvtifP&wQ3Iv4IVmZ=cgOynt0oZx?o#9w>yfZ~O zu9wf7d~q@SiB18*h7z^<{*>SK$GcjZv^R7&hB?$Oc&fPxB%6gpTDe<$QnAhgtP6Ia zQ#8eb=CfUuJk=^2-C5exM)P$^uvslvJzZ(=F)et~hxI(8&O9|Fz=Oy*oGiEJWk^IV zNZTG3&dA8lAh2D**f!N}K&Z{pLURTOomN@3`#PO931Y^m*SJ_^PuHU-KAwWSS=?)D z650jIM?*2zd+Q?<_U$y4Xt*Pi!s_XJqQ?L%p=D1WzSgRS>XpryPC^Y3bp|#mR6vp! zJHIsr#py0)#lE}H;|80>-3iJsTS=?sZUM6Wee^d!YvOip=7yyaSoBLP{h%o%>_xC-56u9c zUKcirgP@*bF79*?4tvU^hNS5r5TC~9Apz66#%Jwcv1v3I>TC2_iLpUKuzBFO7u7Z6 z@RCo8a>o^fZ`yxYA}R*sZX>0r)hD%$KyoG(aD~5N~C5mpz?hQU=o8dvi4D9_KFl_rF!9ZVYi(&dAG8P zi%H{FnM#@>TOYWHz969WgFxjxHmo;hyRjzaF<9hCr|n1yFOODVXH;s)t4HI4-WW{F zO1@huQvH!Voi7DL)=DvhPFV!@zwe@@mcrEmc_xd3gigCq2*J~?PaBVch_cYk=%Q_b zE?yp_LX_Xj$ zfC}C~1Qbq4u-tQ=Sqa_a@QXuYqdC-WNiHZ07j{==j+IdFHLj6!NCHMps1dP(CU(ab zhAe&?eD=UjktR-=ERYvYx%$IPBUFcMx4iS3?LrGduL$hZTOPPcWQkHH=>y9m0%ai4 zj5n+XIWR>4na*#oFwt@~A_TE5xM#CSxZEXnYx2dz$L@idSZ-b{*hmMeX35PrJ8x1d zn>VpU);ux`eool`cB{=uOTIo(WrzS|d$t$S zwQZkbe*075a9HJ1CUIbC8vmZwD}Z9i(mWbaxCXHJ_66%ieSDrVv<-K-=2s)iy{zgO zTmPZ+$~t?8^?}nzQArSXq>j&`cZT7ZV`A&nwxAnW$?T=!)%Of9sFaVE(7xKOjh2E> zk!WA{LBQ%zdK6i-lA>_rmgQTSI@M>xSET);Y9R$o%i(uf;?R8tl< zMn0wIQ(fFZH;*$iI49F?CDSh@#o;;}bb)?ZQhC7lKH(IotZ4B%__kUfQSla(zG&|_ zS6`IgJG@rfVG0p|4YU+$Y>|ZrfZ}bLl>fBdYqto>ziX3V`6C03(EQ)gi{1b}Ir}iI zK@s^#&gm-}@K=cihbl_Ow~92j95bK9fF3&NSV!|i-mtcVwa)yIjW zLhzvjsIpVKzPiISFhiY|#;nOGS}cGoJDFfOb|eLGqG(a!9yzH?8k>7AKfG-5N2#ID z8dEx6hW;z>wWR5#;mOlMN(hDlqh~2^N;NfP+i8{Jl|7E*$3%t)cqyhciWAIK=U~ZAKpFg3%F~{w zGfyj@T~!xy#2DlvX7sW%T%i5_TKmq|wW}*@Z~_A-HUvUAH)AMP<(xKo20Bix$N@Ge zxBSsea6RTXX#IGbWv{(S852LM9N%L2bftj_i~-b;o`AHu9K}wldB_osM0MF^o{Pyl zz^&joen+fm)C9iDli;a=V-Z_~k~C+I8UrOPvc5N00}o=u(g-?Vh(USiV)of3xj{nZ z)e9DeL7Cprw2+pIBKPBMIk?qItbm(JQ+KEy@C1AmaV0_NIn{eSF6G5!=hF8~Dp zesY)whC@wgdB7$_B|(!(ytL^TQ)oBE4LwzrpN;oJ*8zrL7hs3w7`ZDQ^@O5O3%Fxg zH(`@EPc;@|jWoqi{Ik1Kkh}ma9Nx^QaXYUjG|=zl0o~Hln%h}sv|DqXj~Tf?yULQc zv?v)N0{jOn=R49P=} z(~OrT>y>G$B6@J6gIelO3jTokZ8JcOH@PTFW7oJ=>;3}Ppw*pQTr&V~WZ2zxNWO6X zeD6p1c9o9QE;`2k6tYF1)F#HhmTTnfECE-rr$`9YN&)xb7pCk>e|Px$--%KkbP0cY zLwL)tevdueV^1qTVfHP@BDWm!ZtLavO2{cepG^IZ_BBAB?_it`-iyWA+~14aeu7YP zGDFf-fxJ_3&|%CO)7h*qbf_%Kc+6g~`g5DA4j6R9d_dMjee4_tR^#uHmMIUH{Y1Qg z30`~9Dekn}85f1UvTbaaQ_{*`b+JlHkmHYCoJ-y)DsicICp;`&{Dh4U_7G8GGS*`%6K^+H?c=|CZQOu{Zl$I1yaPP#_M+b;K!mOy9VO0 zY$;ah;0@lcOf31l^wZ`>73dE90#%#6(w|jSNU0Vin9G+uM}b5NJ#3(U*H2H#T&$=WK2^G2IeP+vQW$WL9UDJy&ZPTU5fCeA>wj%XZhF)@w-2(KJ4+p-XEB15syo52;c5 zt`f@cP*8kxYgJT@$4OmbNX5#ctk=$4OZ9TBxDl@<-&wLX(<8$HUBSkUTcy!MjC!n8 zP5>J?+t8&yp+*Z2es^s60D*W(HJ-=KvblNq3jD+~5n4Db0n@d?me>{*EwUf)Wf8cBiQKMzjlj^)yiBgBoQz%7N1 z%-^ZneB6!uz+SBGM1D#HKJ&*R4 z?jo~VwhN)45^pau?PpizAOJ82IJGz4B?(n%m^WQV`|9hG$w8a@8tEiFgNVEadnN!1 zAS5(voYWEpZq%&lOF~fDtN6~d*eS6ZgCuf-f4B{H2abuNs3*ywA$)iR zY|?M9VBmx}D0hmc%y;Ql{Mip8vS*+ouy#2s9Ro%1uhO+MOBA@V05%h%z9D9lSX)j3 zelUJC4wz=g3yFLsR*2B70O-Nf9MyEw8$%xorKy?=1ks6hbXgKtC^3G#;{XH*NJB2e_Di~f?-a$qu-N?JR47-CBDbG#C zcR7(?*$Ev%{;oH5clxms$v>snUuem9qJI27oY9zh>H4{Y=%Ack{Lq$uN=y3Eh$Fi# zvP$*JP)7A)lL_YlE_wcNK171mCsjY^o21_kxx8VQAxz65kvG{JD;IUD)Q2;` z3cqNB=AEUW%(0hL;=9E)wN@05v?yaSMWHRgGkxr(RzxQBw+3~k=HMliL9@++80XNg zT+Hz=kd7;w@Bn4?tLXZJ`^sxtSnB$*jgzbZ(P;`N> z1`p~{+GKe=Bji3P(-1@ioX9>eMcVU_M8nOQxLDf>Tr(0T@d=qT0#gAK~Bme3_hdfiXRezc1Q>?x@$_M5V0YHY{86zyxQbXPg;Uq9d z15AOQT2T+0s|o67#9xTpFKiCjkn`D#zIaokB(eV6-}|jmaL;ZMSjVj^Y^&!d;G2Ng zIusq_SZz9vNzxOOj*xlya&3EZKP?VI{y9$MSVI--*8>i_jynYA(vKL6ZtN})*pE4G^4V2l<@N$ZiMTCZ?CjoG ze07P7F<|Ts8*Z~#DfKlgcG-2(AS&?EHnEtbGI-A`qP81+QP&Gw^tBGM8anRuOhCqegI zPlZp?RPXYJ*>JiBoQD#%^(Y{ZN94M6R!~M0P|kt%6&NeY3V3jT87&kuvV*^K)uJWD zitoFOPpnNPP|L%g&LB&Wl%xqk+=_Y-Kb@ScgavU+Xese3L$cdzh(Vm+XyrG|CvxaR z=x;Bs1!$ar^xmEWlL;uXq6hg#0%EKUihpG|F{#bn;LM_;Cu(U8YUnS7X8CfdjnX+c z2Vfwpd?#CsvMC0_*z-}~pn&AwK}f;kK(ObIt@chG4w2VSYM6txPYSVGcWfnKwbHuy z<%vWT$cOMVVlMpHH*gOpWg@;O$nviPN}8Wp5rn}3OCBKDUs|Qi9MQr}*RH0NFEoFY zR61EVNYu0+Q>!5SwgO0>L(pT*6JV-|;s5~6k;DMt;VL<>sS~CqEh)IfkPgq@1{+iB z)Tn2TC{yl@`(e?nS|zsSL?|_BvTAwLWbJ8L>Kq*iJ3dwL z*>aXV_7SWoz?{`@3EcsstM$o(9^ycQINkq#YHkI_+T4iiGy9m7{R2X={G?+J<(}}p zTtVVZeWqau0q!g{SV`fOUY%?(Z*UMG{i^T*$MNGO!U-*ieCFHs8YpJ7B+p z1I#bXw2MvI5B5q>u)x>Ud`9uN#^(;~6y_~73BU1EHDf1iP43j>*BdL@VZRB}9ij(? zzP%XpmgY!}3YrrbofCQ$1zLA5i?AcrIAM(Z?t}2s-m1|ZINhqVt>qcJgU`GTvaL}@ zI`$lPAu_;@4e=!Hq0aFz#?L`WPWlP&?@;Pn z6Mp{dPMXlYrGX${tel=nXa3W6{cT$urN(L~jBb*8-5d7Q`AQfs-cc&J!T;KL9cKZo>Mbvn)5Lzej5*(VTm39}L;?(B+-P z6aw<*%01cVZ=01ViTfH0!O|2v?P0*WptLXOi_h(Oq0_AzfR_AIDCHnjHj!SkkD9pk zX?ds@-C&)g6g>;0_oegA>4dJ+=A=0IH=o+q#3pjgl5ot0dPgA`5{=ufWf2&{E3|tS z*M(y<{n622R zu>5TUd)l$5K^YDel-BTdBtW!{sd$g0Vh`cTYq6IVuqgDC5abGHZ@1^7nee?Wc|s)p zJ<{SFnJ9o#C-xaNA#Vi3ciGP5PPcT#JaJ3}Zu3GH-Z|D&6!C0DBI@7{- zeYVFv6MD%t_17LX*{R2DLc}i428|;7bTqiI5Keia0>(KbvR}Sck_a8E8fp0sF3%h&CpEe8H0?LmBsb4`{;ws3? zD}KAO1Mu!o4bniV%-Y!ff~(?%S2YXvF#ar>|f zAx~%x3LR_W6NCX4s_-T1k-FOj{+2LL+#b+#7wAs1Ku@$qc0cPBJF6!ipLq;8@OZCQ zIxd;>u8oO6Jqin+cFk#>AU6!?^rA39rb}{7g^vr85|p?A2+FTS66Oy;4u)U$0*DG{ ztCMuZA_oE?$08`g7_~@?2*Uq>S@U-G@y~NQAR=G})vE|!CNOF%KxST;Dryt{Hn#`- z&0eH>&Iy+GT{lwedZs!>&EwiB=+TmTg14==l1^ToFfu3X%8mRWe3iuX$)s&)ic4X% zfm6@cQ&<*!2XsswYRUVk=3%3J&b@;6NKWwaww_=c0YOltJfx*idr!92sxL0vGuJHQ zUNz2jpD4PrLgIhi|=w#DwwrBYPo zf^t2<9JvZA*7#G1wOTHt@@>6zU2uB!K3PV5MZC+=y)wKC30|D`wgZ7HZ0mX`CzB?l zy8!!m=*DL|mbQ_01sMhTJhjr?OKc#eB8nZ9>5RJw3|rtQw0-dYEUP#d)z^8s3pQQ=F;pxWVKXirv#(@vtT1aN8anN(5}vjDh-ajp zgZ;Ij!wWfNGmU1jZxYHU*=_+~(#Ei3qi;;_23ZN?YrC&aB5L6GZl9F@tfk`De8|+h zO&Ej|f8xV6a$O-4_Y6k1f%*hy45`qa`e>Is*b|2L;j_Lq#CMTt{H2(k#@)n0SzgD^9whGPmY0rdKHftMsQs|bu8IGbxk;GLp z!+;+a+7CZ*o{VC4P+p`ZuCt4o*A}IEP=RT|JI zOIBf59~wGmxw%dX>g7gGK*_L zEO<`#_#ZI!Ka}*$w;~i+JdvaYL^mli@wZGIVQD^GR1vPQw7ZMgI;<@(k` z`I-Cm=d~%%W{>o-8~mtC)A?n!3ml8?SfekXQcbn+d%8s_Cn4l?KJwJCAMjn(s3C8@ zL2NmQ^;|gzj)RZexeNipwv^ym4UtV79XMvY;%*)sUA8m4+|qHE9oHHAR8vc+EQJVW z=Rq6F&veQ|U(Y`@*Sw`qIj!asVyQ22v6N1=%kcp#t?K4{qgb})59DgwRdOF@Gc)sj zvVV{*5ON)t5kwWlLI5&GJi8zMAr$;63JDx?;KBSg#Br?20Nciaz>@fx6zRDoYCp8R z(v`FH@SKb1OW{8Vw*V@=2wBXZp)=C6ez~BC+d|ne(rs^7?lV3Bn%Jhg=Y7LzlcA1M zTuD~$!edd{OTfwi>t9Sj_!@i#092s5?D|&)9=!x*gFk`|tv;0>beezGCbGL}X~Y-r z*Q?}q*WNf9b#x)9uLfbrpYQc9=zbryX``hSC@BvI;A?%YU{YI_Kd6KngBY^*0uHmEiDO_Drl6G|FT|(6>Jv3E>#H z_`ZPvg#GUym8JwxgaPFrn)X-C{crz^)L0tvjX&K%f6VsG?9oh!{D*f2{j>>yZ*be( zo}V3q|IbHu7G<<7fx7^4-QCmPB`G4^! zd)qy9{$EYqzYrTci}lk0Pk3aMH_ah)41lz(wHe zhqSLo`|>1byR;IDt`D63d1$QOT##=Qs+P#^q&au0&v`{h>D*^lqIobu23hzDTV5;S zG(T%6R#3NLg0&CApZ8e)pptFo?7dcmuvQv0cFwf1v)IP33luz100aK^Xmurlw|s72 ztR*}XARfWjuY!(4=QQnymR6!C(E^YxY}&awSC;w<;j^eGl6Z=9-_b`%pYsla&y$&f z1CwC_BuYd>Gb?{!km$tO-u&lp`u}rwb>(q;K_)?98U!)8AC9ctSo>yX+iY761m5!x z*Z$T0|LuQPs|Y+$DJSj}K~!GQv2*NLBn+7~(~JMfa%n#SF=dgoR|=#5^W|sG1O8(E z{O_K%%cWH2%ucJ>Z~mVgsYk+41%K6F|AWu9^Zb-k4%T#lv@__$&8!qg)}wjjv!-trNK`Tj=;t%NW#>t6nxnT@6YY^8C?FCwJ5Ne9aZYFH zk^?{hR(vuS$@KV(ubkDhrQI(xvgepa&Ejt>XKpC%PK_7(I$)B`0WziCz45|jDMHia zQ8spX=BC+a&(YylLu9;g&C>i?Jv+buCr3axV1tDoAOG>-CmIbF)QCC(5ZF&kOeJsP VSs!g~0_XpA^w25O>;o5n`#(N>j|cz& diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-open-advanced-editor.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-open-advanced-editor.png index 16675b01ba5d15cf9532284665347bb0ae6df336..5c340e31380d28179e7612938e54703ad01eb4f8 100644 GIT binary patch literal 26917 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 z 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 B4M6|^ literal 35909 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Ⓢ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 diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-query-results.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-query-results.png new file mode 100644 index 0000000000000000000000000000000000000000..25392791c09314ab8e1e879385976ac309da213c GIT binary patch literal 55785 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

      cM!S7#9O+{zIt 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 {c{0}, c{2}})) + Schema = Table.FromRecords(Response[Schema]), + TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}), + Results = Response[Results], + Rows = Table.FromRecords(Results, Schema[Name]), + Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}})) -in Table + in Table -``` + ``` - Click **Done** @@ -120,6 +120,9 @@ in Table ![Image of set data privacy](images/power-bi-set-data-privacy.png) +- View the results of your query + + ![Image of query results](images/power-bi-query-results.png) ## Related topic - [Windows Defender ATP APIs](exposed-apis-intro.md) From 9c8a74c69c0deb125383f49a74614ea655da6b33 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 10:55:10 +0300 Subject: [PATCH 052/201] step --- .../exposed-apis-create-app-nativeapp.md | 12 +++++++----- .../exposed-apis-create-app-webapp.md | 4 ++-- .../images/nativeapp-add-permission.png | Bin 0 -> 50358 bytes .../images/nativeapp-create.png | Bin 0 -> 10938 bytes 4 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permission.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/nativeapp-create.png diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 71b50119af..0208b3ef98 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -41,6 +41,8 @@ In general, you’ll need to take the following steps to use the APIs: This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. +**Note**: When accessing WDATP API on behalf of a user, you will need the correct app permission and user permission. + ## Create an app 1. Log on to [Azure](https://portal.azure.com). @@ -51,16 +53,16 @@ This page explains how to create an app, get an access token to Windows Defender 3. In the Create window, enter the following information then click **Create**. - ![Image of Create application window](images/webapp-create.png) + ![Image of Create application window](images/nativeapp-create.png) - - **Name:** WdatpEcosystemPartner - - **Application type:** Web app / API - - **Redirect URI:** `https://WdatpEcosystemPartner.com` (The URL where user can sign in and use your app. You can change this URL later.) + - **Name:** + - **Application type:** Native + - **Redirect URI:** `https://127.0.0.1` 4. Click **Settings** > **Required permissions** > **Add**. - ![Image of new app in Azure](images/webapp-add-permission.png) + ![Image of new app in Azure](images/nativeapp-add-permission.png) 5. Click **Select an API** > **WindowsDefenderATP**, then click **Select**. diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index fb5bfa9d7f..47d539a280 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -150,9 +150,9 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here const string authority = "https://login.windows.net"; - const string wdatpResource = "https://api.securitycenter.windows.com/"; + const string wdatpResourceId = "https://api.securitycenter.windows.com/"; - AuthenticationContext auth = new AuthenticationContext($"{aadUri}/{tenantId}/"); + AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}/"); ClientCredential clientCredential = new ClientCredential(appId, appSecret); AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, clientCredential).GetAwaiter().GetResult(); string token = authenticationResult.AccessToken; diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permission.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permission.png new file mode 100644 index 0000000000000000000000000000000000000000..32860c3359b2d6a7f2db37b29401e4d13509d578 GIT binary patch literal 50358 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 z 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 LzbbiY`0@V&$Z~~~ literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-create.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-create.png new file mode 100644 index 0000000000000000000000000000000000000000..05d76ec80728af6be88d6ef95c9e4510c73d9a2c GIT binary patch literal 10938 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 Date: Wed, 22 Aug 2018 11:34:30 +0300 Subject: [PATCH 053/201] steo --- .../exposed-apis-create-app-nativeapp.md | 81 ++++-------------- .../exposed-apis-create-app-webapp.md | 4 +- .../images/nativeapp-add-permissions-end.png | Bin 0 -> 12937 bytes .../images/nativeapp-get-appid.png | Bin 0 -> 20758 bytes .../images/nativeapp-select-permissions.png | Bin 0 -> 50344 bytes 5 files changed, 18 insertions(+), 67 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permissions-end.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/nativeapp-get-appid.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/nativeapp-select-permissions.png diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 0208b3ef98..c1e21647a3 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -42,6 +42,7 @@ In general, you’ll need to take the following steps to use the APIs: This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. **Note**: When accessing WDATP API on behalf of a user, you will need the correct app permission and user permission. +If you are not familiar with user permissions on WDATP, please refer to [Manage portal access using role-based access control](rbac-windows-defender-advanced-threat-protection.md) ## Create an app @@ -70,11 +71,11 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of API access and API selection](images/webapp-add-permission-2.png) -6. Click **Select permissions** > **Run advanced queries** > **Select**. +6. Click **Select permissions** > check **Read alerts** & **Collect forensics** > **Select**. - **Important note**: You need to select the relevant permission. 'Run advanced queries' is only an example! + **Important note**: You need to select the relevant permissions. 'Read alerts' and 'Collect forensics' are only an examples! - ![Image of select permissions](images/webapp-select-permission.png) + ![Image of select permissions](images/nativeapp-select-permissions.png) - In order to send telemetry events to WDATP, check 'Write timeline events' permission - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission @@ -82,42 +83,19 @@ This page explains how to create an app, get an access token to Windows Defender 7. Click **Done** - ![Image of add permissions completion](images/webapp-add-permission-end.png) + ![Image of add permissions completion](images/nativeapp-add-permissions-end.png) -8. Click **Keys** and type a key name and click **Save**. +8. Click **Grant permissions** - **Important**: After you save, **copy the key value**. You won't be able to retrieve after you leave! + In order to add the new selected permissions to the app, the Admin's tenant must press on the **Grant permissions** button. - ![Image of create app key](images/webapp-create-key.png) + If in the future you will want to add more permission to the app, you will need to press on the **Grant permissions** button again so the changes will take effect. + + ![Image of Grant permissions](images/webapp-grant-permissions.png) 9. Write down your application ID. - ![Image of app ID](images/webapp-get-appid.png) - -9. Set your application to be multi-tenanted - - This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). - - This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ - - Click **Properties** > **Yes** > **Save**. - - ![Image of multi tenant](images/webapp-edit-multitenant.png) - - -## Application consent - -You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. - -You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. - -Consent link is of the form: - -``` -https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ -``` - -where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID + ![Image of app ID](images/nativeapp-get-appid.png) ## Get an access token @@ -141,10 +119,12 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ``` string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here - string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here - const string aadUri = "https://login.windows.net"; - const string wdatpResourceId = "https://securitycenter.onmicrosoft.com/windowsatpservice"; + string username = "SecurityAdmin@microsoft.com"; // Paste your username here + string password = GetPasswordFromSafePlace(); // Paste your own password here for a test, and then store it in a safe place! + + const string authority = "https://login.windows.net"; + const string wdatpResourceId = "https://api.securitycenter.windows.com/"; AuthenticationContext auth = new AuthenticationContext($"{aadUri}/{tenantId}/"); ClientCredential clientCredential = new ClientCredential(appId, appSecret); @@ -152,35 +132,6 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co string token = authenticationResult.AccessToken; ``` -### Using PowerShell - -Refer to [Get token using PowerShell](run-advanced-query-sample-powershell.md#get-token) - -### Using Python - -Refer to [Get token using Python](run-advanced-query-sample-python.md#get-token) - -### Using Curl - -> [!NOTE] -> The below procedure supposed Curl for Windows is already installed on your computer - -- Open a command window -- ​Set CLIENT_ID to your Azure application ID -- Set CLIENT_SECRET to your Azure application secret -- Set TENANT_ID to the Azure tenant ID of the customer that wants to use your application to access WDATP application -- Run the below command: - -``` -curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice​/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID​%/oauth2/v2.0/token" -k​ -``` - -You will get an answer of the form: - -``` -{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn aWReH7P0s0tjTBX8wGWqJUdDA"} -``` - ## Validate the token - Copy/paste into [JWT](https://jwt.io/) the token you get in the previous step diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 47d539a280..2addcf762e 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -111,7 +111,7 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of multi tenant](images/webapp-edit-multitenant.png) -## Application consent +# Application consent (for multi tenant apps only) You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. @@ -147,7 +147,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ``` string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here - string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here + string appSecret = GetTheSecretFromSafePlace(); // Paste your own app secret here for a test, and then store it in a safe place! const string authority = "https://login.windows.net"; const string wdatpResourceId = "https://api.securitycenter.windows.com/"; diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permissions-end.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permissions-end.png new file mode 100644 index 0000000000000000000000000000000000000000..eb866e3ccee0355ae7dffe730e1a663b54ac2aef GIT binary patch literal 12937 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%0AdJ`u7w!u!<^`wjHupaBNF#PA*P&8THbO z;N!W~DKWLHp;50_AK4g^Qh?wy^ZWtCK6=0i+LfKG@VDV{*}Z5Z^#;%RSINz5a=o-6 zT_zQFIb19(2C&Q6n}Em$%IQ~0=S1H$(1*+LKl*SVj=2q8_UPeqM~M#4R#ApFcRX_g z$8xEWI+c>m)@T2EG>|WYI*@PoaH5fCU4{T|o`Y4>a749UqV2G1e}bXyuRl@ddG&+u z7f1~Fn|rKCl}4&rx`8TBe*J>$`J2uk8{r~dS+|k!K4`*MEto})_Worx5pz5Pb1`;~a#Tv=Ltoj1Y7C1w4JlvzebC`h<0Nb$@@pds1(V}Ei>OW}6u5^u z3CEUJ)Y_bgO%8HQwd;HX=0rr(y<-OKtBgk5b7ci(_oeV`2edLOn<#2cYd-x5u{87Y zDcz{hCjw5}#KtE=E_8l8!>6!8Xa1$+Bz{48#H+m!-u{!68f!K0RR`9dCp33DGeOl) za9{aoaJc<_>r?UNWR|M$D_UxBpqg23v~CaN+(5|k`gW$|xc}@P#oAkI-vo*loXTf* z`X%jUm!9dmn1|1=G3FlpZn^b!7O0q|5mK*GlIIOb?#{4pc+Tx}!ESV3;n*+^gI$r2 z#6&rAxQOUm2_{~4g3fS{)%o$MUlB$I6;&E5UFWJUgtn3-+O{KGC_k&y2@`0M>T%!m zS%E2er1jrXUu&J9PubU!cVB9tzxwlyNT=`@Cmv=mOtYj|A9sN9Po|!sAuaSTuc2Qr zmX<47ya}8u4)n_V-p{d$_U#d=QrcwI@BH>YCA79^%v7j59Sh+;_v2tcr2Xc{o_PjF zMnbtAj}NE0?UE0CqclrG+X&Y#Y9t!nui-TUeZDld9hV%5)g%4bm?Ep?CG7 zBdMif9;=m4s@)r@m^l+>n5L~~b*$ws9f0Q<6zxBT{f1G!L|{9|@MnoH|DRP@pZ_c! z`|BO<{hrvv%FfQda)m}nV>h5_OhZHCW@?|nr>;7v?0t}wRK4OrO?kQ41U+yX?o?@) znm}7N;H;daKPtyKj%Fp$(ER-~{`+fIcB?o0{P}Y$6K%_I+`!_y$&rz`it!@xu0*UpY~a3Xhv#w*0rR5;$TZHL-O4VG5qI^;hu?3Lw(DXoEo$Jn_#xG7r-5)@wBc3 zXRba0uY=TfT+pMGDz1X}tC-PZa)FrCiEuPmqzvE3ehN9gQusshPY^n4XaCsr*6m*_ ziCc!&&CB6NEEduCu9mXJ9;hn%5n@TTv1DrvsN8A{{l&MyLrr2~5z(L#@SM~<@J&7I zEvTbjlXGjqTPl>#Y>7ft^}wF8yIF zx6gvRSDu`^Sh)vc$F-dC1~prj=E=y4JNK+1vPt_!zka=*IeW#jHvifDdI_(7f!ZfS z75PKk$6As}9j5yphi6+oNUu3O9IX>44!^y_kNy%=e6e2`>9v(7SdSDcN_qDpD-c}2 zevOI5O#1QHiCQ21GYLrE4RjICDaP61r0ZZq`Nzdic7ijVv z(#E^lJQ&=xB6WP(N?@_PKTb#Un|I*?#nJzh;0QLxWbW7ZSU9x?8e^1F=mG@wJ z;Y7vQ9eb>%eIv`yfVN37#wslz6e3bU!!uh>YRUng46j>w);)R7g%at-_!Y5pGZ^~H zZ*KKr`$??SlTKFL2lVgpmz=75H1k{}fgu|SobSE%dQveSn(J@(#mksBEGqG)Bg3|% zSr}QVq8tD#qjGn}LKx^{V#XEhi3O=uGZhoW_a6RR+}^ky9^^#KO;~e^73*kW6GV`^ zu{*X<^PHv+8@g8o5r#0mp)UR9rNaQRetTW2RavzcYG#XnT23|cRpm+wV?RSRzq!kn*2<5w)?s<{ zJNuhv{Tfa7s)~I;)k;u?vk&GRTrS7oJS7cr&~`u|YL=t))Ep3*v!)t};csU~jU&=U za!#tJZF!J9eAt-PTX5-mn8#Pr4gdQSwbye6Gcj!G{Fj;Xl(pP+1~rebF zWk}VlD6IBy?PrytfT8yFbKJ|bNQ-42355}@=uRi9qvHF{Yef$xr;kwS`YoX46NV%J z`QqqgCQqr0{Hbc=+oCEc@8ECC8t?|CKI7R4+U*NFqtwn&q-}f|%E_#}+|97`-N%<@ zR(1Pyb8Ek7dI~SXX6(fH(_ikIRk&T;sEhmUA@Suw&T4&(s>R@0@d=5wGbf~KuNTDp zCb2>{J}qwx3=m(Gvcvr1t6p1&$opB{Vb;=YmdFnWj2kwNnRI7}1m(6Z4R{lB;RY<5oo(Z+#Yg+^5dWd?7T$m=|52RTX9bMb26^ zjgOBrw!paktn_W8qLv1Y{~u zWw*V^G{FKNf3;moZQn{kzeP`4P3Xc`8hGR0N7F5echD4*Z`0w}B!pD0Ge;;!EkGsQ z0}OJpHuk4yrTIGk@Fk*<1H;8vQsAZwj-IrA4LFCa`qJw95us{lM7`e2Vl$gE&nG)A zqq9>O_JBa$+G?B)qK^b%vI(g|JANc+4CF+;NO_D*2Lp~VF!VQ-cc z>bd~AC>hwqLH%fGd_x*bH3;l-FDsCxy#R7U*OPxD5rX!I(}VPN9l^ayX{vL*N;*C= z3?Zt`_^m}v8Dt-m@2edoJDaFwVI!mt!z8RczcKDH)!taaSDw1qAMN4u&T1&~yIcJ| zC8bcV6CpV_VFPT9`S~}WR~kPTzg#QP`3(-|-QioW;RhkpT~5)3xGyjIH^V<~d4ctQ zPI)>vEbsYO&mz=_|MV*|OQ;S&-rGMD(~mP~&(JUlP`PJPEW;m(^b3Ec03K5tT7d1| zKT^(gKtTksUHR)BuGO2B3=R%j(I2z2?_S(&hd4N>jyoA7t9KB4#VYdiyU4yZ(b3W4 z3P5greGK7SNd!}sCZ_We0fV9m!Tv*{`|qFe-(K_8zxLPwKdQ!3Gf1~>$v>_S`K0q< z&oxGerfpQiX1G7AD}_FddgDSG#Bf~NJ7ru(Lg9_9kuteXA0UCH!G+gM_v5!a_sKM6 zrw&M^hj(@qH|s0b9loE*-RdFZhhs*foqtzi<_D^>)6F8%g{b_Pw~k#}90=@V(x~-9YwUf4uho&4FhQ9S zd~2Tn4gBHzwT@LTxpH-T^wiF%f5Ja+Sv$N!lg){pgVWNNPF}`2{FYP6Hy2^W)S=N? ze=6JuldV{uxwlX8@c39xc+}#H`L&ue*DT4*25Ij~?Wd%Ni-RPzTmyFZ6Kf_B!RpZb zI63QnAKL{&Je{M+zNid04dJWWgH9*lv)^w@498ei&L%G;&SFRTJXhCaJ7WF@Vz)0{a?w=9I-M#s zf)C2&DG!@Jvj}grX19a!8-)AM*%ZmPx?18m6o*P)8fA337wFCv+h8A(1oyhaPEIb_ zj4MR*zPc-&e~c*9l<0fdzi`#XB3IDa-wgTsG^rYxgYzYMq1ec?dfRedArruCIgjZd z+!K70*s&Y{y(X@*3Lc?AFnjB6;c0^>NWwB`@eSdo;sW!d?O#qJ=XmwxF2+7CF|VS2 z|7F#9RSj!3S~j)L;cjurw4O4sokJq$=bVG*#rvb!2^Hkc!Mc2v{EbK8XN+r)a{(mY z>Hr{EAItn%_@zDCgK_-I${Vk|T)~`|Pl9JkbZ)eqPMY{+&dv~~yY|(w>_Wm~#scNt zeRNTa-|;(K4n{S&?c{~8u??R|;ev{@;p2>s5KPI2R)W4&=%(SK;giOm!qV*|(}Io; zG=US=r+940uJVEtYnaME;C3vs>EeyrL}^x#Oqp zas{zsnOAQhFw8YK)I0?inoFI#O_SXhyTiVxn1J#RE@JLGGlb8}7Bn5s5%T(yN|*IHX8FA}*-hwJ>p-@Q_SHxM{EOa+;6!htFLV1opc zEa#X*B5r)zs1Ql?Tu%u_(6 zywA=1yYy4dMZ^l4B8LMJ^J!NU#XmP`PlSyZwfPM6GCLK(M=57O%`r*2vS^^!lMlqM)Rt>lOh;NTXV z?rd#sUBe7u>ur$Bl+%8{2=G{B2sfwzoB{enk^4Wv;lGKB{Yh;uIZ~8v=B?>U%aQA% zL8hWS{v(>lGSg0!ODKYr>>@m1(ONxa4cC8z z#wVV<7-^*`djND``jfpT_+=wB^A8 z#Ic#>!PLnO3swf?+s5M-)24QB9`3jZ7ava4GpfWd1JTFByVtq2!2u$^%U+P3fpHzO zy9AEtWZnL7M?!~m{Gy@D=M0Or&>td=9wN7CDti`U>^ct{wXH=Dyuomsdql*RCC{F7 zj-~%#On%88K4W)hQONS(o*flD+^saZ&ksLtJ^jf-dPqbAoBza$_JLD|Ig1w=>3r$2 z(~yBTTc%1NOAc9L1eaf<;@WXZAAwZqYMpkGE8fc6ye@0By$|Em$}dF2^=RC;TO?p8 z4i{pjQuX9oukLomQIKmolsXkP(mQ8ZiRdmg;97%Q)fAA%B8)>g!#%{O-#XOAK zwtt%47AbyXDCRdt&l}Z~<}Ibebb@^nPHN@%tPPAaMbrMZ ztLxmT;6;jCwdj52Iika5DSwL4HM6%IuEwC zJ+Ix&k+Xijwq)Q@SaQ9rj;Q$aJ-2)rib=y8)!d;tE!6_E{akQ3!v)JU`{R z{htB+_C`!|YYx@*ObV?tfo3G0I$3aS@v8zT!>id%I(s&N7jdF6U5Pk#zVeZ0Od(oG z_o9pjOFsb3GTKbyb>ep{iaa^+r|2+evzA{sJ6E#Ub=RmwR`a|Tx2OMM%6i}=!zv&EfZSo){7EB9z0uQ72>TJOV6 z8wtGBkN!3nC7H{5fu}MMO;=cELGm=+cxAu4(NCuD>}NaRC`vSycmX=H|MP34RNVb; zfzXBTnL?5srs#NfOtwTs*Qr3T+Fju(G5IQe)Oi`>WbF;)ZQi_52g>-$iKGH{>8`Fg z6>}vDxn}$KZbo@fFX=>0PNv-DG@I24;qY&EX2e$Myc?6H#4Zs=y5U^!^K5pr*x_6# zB?dGhQtCHWm!IQgUU0K8-2i#+N%qL)O~FgfydNfrNxu7Y$d`dO0#FEk>v<*@c#_5v z9knl1W{I=ES??l`P=XRrHM1h`3NgO}T5&4CjKabx+sesD1w(f38?^W3G#pVOUxv}u}up`$R^?lTAJl$)}PF$Pe!H2Mqkg}8! zpMvoVP5swO#aAY=b}7LL((X(Jmw9h@gD=r zQXJ`@5;Xe3CzE%WL9UDf#ie#|@F`8}Ta+o-tc@AKf^Zi$?iITw8p2VXfHj z1M3kzaLa{)%%VuRBH(c#&Uz^RdxgO-IrrI#JxK?Hug(f)zL|6RPQ0AoL82we6|b%$ z4vsy57)qT=xpEQZ6RQZrIQeMOqMr@mL}`;4>V2EL;eBUV*SHFN-m69vrDvo-CEUR{ zWms_wdyS6CvzpHB1lj071J~bL^|T$upP==sdK3gHD(5O8)uJK2C52;A4P$f#OD#`p z0EMa=tyS+Prj^LX8LIP|X+8(j1MP%E38(ulQvv-?3NTcj-*m5=yTewlx&FntiUD?A z)P$NOT}gXCY<}^rdNpcULgRkVn&FnOM&sKZCAsi@jpqD}T@6{Te#hFrdS&C+_BwKM zd8@5McUbxvHk=8%xldUQ=lhN;_O?Oa_PKF&5nqysnqwK(DPbp9iD@5B-+S4e`Oy`$>F+-kIoFzM`LF(liVPKCPTXg^6fe?0-c zv-zm`a$!D0O6gPAR1aD6r#Qz|`vQ1B?G(aUXCSS|S=)0fscc5b@N5<@f3$!syU(wF z$?aC~OHWr!=k4{Z%(vM26V;&L24A=G;>>#e#kcc?i>w?62jn48$-?Y{zG*PbxbrkA zIw8fnv%`Nuulh$Cd`2cO_>$77>JFn|7-gA~Ocb?5AJ})7?Akudy_ToNsRI&J{cUZv5w_!BWZcTD1~4 z%hNt&X}k$2VCXc0r$TA-dCVszhwVf13-Fpt*@{B&rdFK0Q|Ii3u6eiD;o&F2r)bo4 z6=0%Xy1KgEHkIAa#38mZ9{@UIRcnOLeRdcQ&D|a8(vdJQ2?A>B$PS0K9)~EHZtJe4 z)SBbLN>#?0UN%-h!26qi(1R;9(`LV*B-l_*LT>eLil#Y|VB?KTdH2+B2OGN-3!(fr z!)kj1*!#ufmyCQn+@smJHGO$ zlJlFpPo<@#a-2Yg>b!GaoY#TpLpV+~l}frXBO&X~8D3^H?R+J%E4xNm^; z5I~;2eB=Jnz^Eqbo=`|m-w8vOr&>_C`EU#ipXQITa%QUFxmt&cR$Wdl%gW)Q z?W>Ni1djr*bco*_fC8SbdnjxuclbM}Oab#Y&k)%^c3Jdr@mQs&F?fdSm5{98H(is%wUI`hE)$_$&H6wZ<~UBl2?E6EpPRdS`<=z zLZ`4UY{Dr|nlKh9dVfod5u{#$yhPfYZ#F6R%++jABmRn*^IIL+-D5kf(Pl<6;=#a^ z`|@t>r8(^{ZX+wN0A?ZJFYqqohYMQZJi~!IlZJqg+-oEs*19U`9E85{UxgZAGTR8Jd%~Kzxfvs?jW{(?H+L13&pSy3qy{CZmS;@Y} zR*LagC{y7uNWsVzAe$-i=>Z!_n*xiDXza3QPeQcG=Jv`|3P3*e#_)d4peBV#u@N#- zW;xNAq7PHIiwv0`mB!|773Sgx-~QN-dx(SY6bb*B=i?r|K9E`(vi{7%S4j{bm}&xn zjJ!@J`|T~ULCbTu4z6GKTbX81aY3qi2Tscg2a`@mD^Nbxo}*sibk#X4F1GaG^i4cs z^H2$U_;b12(iIBA*BK;Q_`L=>#n?~o@@;juvLTYW*h(kzI4~9kf}kRdKAW1$bG+n+ zz9^T>=Xa&f!_kJtgKxbL5=PA-ZX1PeZou+^!%O~V#r2?)FYT~okghQ1$1iQZjFJX* zHos4tY!16_OV31XBe;65)pYu83M0L4Wm#*U?9bM1k5HC}G!5auKXnnI9;L;8ntM!F z)M4e2qAFU1%f?SM+#jH9v8h_V$XZ1ZPjWnkVSdDN4>=kh#;oGfNUJZSYkn~8&@mA< z=yg>E3lhKv0z~y52*P~B+j2p~ShSA*Vv;!$cl_Pn7kPku8cDoi{8BzyKJ$8n#o$zK zP%-TASuC$sF}l$O;zqm7YSO$dE)1?RwAMlvU4Ou2j~@$TN^4MF9<{ViEO`zsG4pSl zN(wNGT?2m?@>dqk-T4u@xbp0el^ef02FmIxzsg8{s;9LgpM3y^jEsV(O7nc*md#aY z^flb@i=0wF)KOAu9-J!`!8AhZtM$r@m+q<5I*oRyY1;iPx0LBw9ZmNzVBGdRGTdBS zd#S4ynSUBeUN|q%^0AP4 lLo+g=5D#2r2KU259=l@32*$IP+SJuNQqfc{xo7q2zW`P9k(U4f literal 0 HcmV?d00001 From 3cdb002d3d1fad503a2a57a4321db821e29aee60 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 13:00:09 +0300 Subject: [PATCH 054/201] s --- .../exposed-apis-create-app-nativeapp.md | 38 ++++++++++++++---- .../exposed-apis-create-app-webapp.md | 2 +- .../images/nativeapp-decoded-token.png | Bin 0 -> 76584 bytes 3 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/nativeapp-decoded-token.png diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index c1e21647a3..bd4ef69058 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -117,27 +117,49 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co - Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) ``` + const string authority = "https://login.windows.net"; + const string wdatpResourceId = "https://api.securitycenter.windows.com/"; + string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here string username = "SecurityAdmin@microsoft.com"; // Paste your username here string password = GetPasswordFromSafePlace(); // Paste your own password here for a test, and then store it in a safe place! - const string authority = "https://login.windows.net"; - const string wdatpResourceId = "https://api.securitycenter.windows.com/"; + UserPasswordCredential userCreds = new UserPasswordCredential(username, password); - AuthenticationContext auth = new AuthenticationContext($"{aadUri}/{tenantId}/"); - ClientCredential clientCredential = new ClientCredential(appId, appSecret); - AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, clientCredential).GetAwaiter().GetResult(); + AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}/"); + AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, appId, userCreds).GetAwaiter().GetResult(); string token = authenticationResult.AccessToken; ``` ## Validate the token -- Copy/paste into [JWT](https://jwt.io/) the token you get in the previous step -- Validate you get a 'roles' claim with the desired permission, as shown in the below screenshot +Sanity check to make sure you got a correct token: +- Copy/paste into [JWT](https://jwt.ms) the token you get in the previous step in order to decode it +- Validate you get a 'scp' claim with the desired app permissions +- In the screenshot below you can see a decoded token acquired from the app in the tutorial: -![Image of token validation](images/webapp-validate-token.png) +![Image of token validation](images/native-decoded-token.png) + +## Use the token to access Windows Defender ATP API + +- Choose the API you want to use - [Supported Windows Defender ATP APIs](exposed-apis-list.md) +- Set the Authorization header in the Http request you send to "Bearer {token}" (Bearer is the Authorization scheme) +- The Expiration time of the token is 1 hour (you can send more then one request with the same token) + +- Example of sending a request to get a list of alerts **using C#** + ``` + var httpClient = new HttpClient(); + + var request = new HttpRequestMessage(HttpMethod.Get, "https://api.securitycenter.windows.com/api/alerts"); + + request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token); + + var response = await httpClient.SendAsync(request).ConfigureAwait(false); + + // Do something useful with the response + ``` ## Related topics - [Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 2addcf762e..6dc9ac40bd 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -111,7 +111,7 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of multi tenant](images/webapp-edit-multitenant.png) -# Application consent (for multi tenant apps only) +### Application consent (for multi tenant apps only) You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-decoded-token.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-decoded-token.png new file mode 100644 index 0000000000000000000000000000000000000000..92f46bf116ef0379c8521fbcd74a1e210f52653f GIT binary patch literal 76584 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 `C0V^`;D>zY=ocxPY9j8Iwh>l-p-4$ctRBJY-_6 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

      $mIo=}eKhqt(3h-PPfNjq!5l_0i%I1)ME#0#l*} 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 L092`I8}YvYQ)rLe diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-grant-permissions.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-grant-permissions.png index 363bb4a32ab6fc98813bb495d9f9a68652798c46..b7c7e0926f516b3151a08868476e922df69a721d 100644 GIT binary patch literal 11871 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 literal 10183 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 literal 30641 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 From 60df1934fccbd7b14fd16dee7d454f63441adbb9 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 24 Sep 2018 16:08:47 -0700 Subject: [PATCH 076/201] update images and text --- ...defender-advanced-threat-protection-new.md | 32 ++++++++++-------- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- .../exposed-apis-create-app-nativeapp.md | 2 +- .../exposed-apis-create-app-webapp.md | 8 ++--- .../exposed-apis-full-sample-powershell.md | 7 +++- .../windows-defender-atp/exposed-apis-list.md | 5 --- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 6 +--- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 6 +--- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 8 +++-- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 7 ++-- ...defender-advanced-threat-protection-new.md | 5 +-- ...defender-advanced-threat-protection-new.md | 4 +-- ...defender-advanced-threat-protection-new.md | 7 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 8 +++-- ...defender-advanced-threat-protection-new.md | 4 +-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 8 +++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- .../images/power-bi-query-results.png | Bin 55785 -> 60704 bytes ...defender-advanced-threat-protection-new.md | 7 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 5 +++ ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- .../run-advanced-query-api.md | 15 ++++---- .../run-advanced-query-sample-ms-flow.md | 23 +++++++------ ...vanced-query-sample-power-bi-user-token.md | 8 ++++- .../run-advanced-query-sample-powershell.md | 20 +++++++---- .../run-advanced-query-sample-python.md | 10 ++++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 6 ++-- ...defender-advanced-threat-protection-new.md | 4 +-- ...defender-advanced-threat-protection-new.md | 5 ++- 48 files changed, 161 insertions(+), 183 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md index 2e9a1b2edf..b1cde1afaf 100644 --- a/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md @@ -14,6 +14,8 @@ ms.date: 12/08/2017 --- # Alert resource type +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] @@ -22,36 +24,36 @@ Represents an alert entity in WDATP. # Methods Method|Return Type |Description :---|:---|:--- -[Get alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) | Get a single [alert](alerts-windows-defender-advanced-threat-protection-new.md) object. -[List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | List [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection. -[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[alert](alerts-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced Hunting](run-advanced-query-api.md) -[List related domains](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md)|Domain collection|List Urls associated with the alert. -[List related files](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) | [file](files-windows-defender-advanced-threat-protection-new.md) collection | List the [file](files-windows-defender-advanced-threat-protection-new.md) entities that are associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). -[List related IPs](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) | IP collection | List IPs that are associated witht the alert. -[Get related machines](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | The [machine](machine-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). -[Get related users](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) | The [user](user-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). +[Get alert](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) | [Alert](alerts-windows-defender-advanced-threat-protection-new.md) | Get a single [alert](alerts-windows-defender-advanced-threat-protection-new.md) object. +[List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) | [Alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | List [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection. +[Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md)|[Alert](alerts-windows-defender-advanced-threat-protection-new.md)|Create an alert based on event data obtained from [Advanced Hunting](run-advanced-query-api.md). +[List related domains](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md)|Domain collection| List URLs associated with the alert. +[List related files](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) | [File](files-windows-defender-advanced-threat-protection-new.md) collection | List the [file](files-windows-defender-advanced-threat-protection-new.md) entities that are associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). +[List related IPs](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) | IP collection | List IPs that are associated with the alert. +[Get related machines](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) | [Machine](machine-windows-defender-advanced-threat-protection-new.md) | The [machine](machine-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). +[Get related users](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) | [User](user-windows-defender-advanced-threat-protection-new.md) | The [user](user-windows-defender-advanced-threat-protection-new.md) that is associated with the [alert](alerts-windows-defender-advanced-threat-protection-new.md). # Properties Property | Type | Description :---|:---|:--- -id | String | alert id. -severity | String | severity of the alert. Allowed values are: 'Low', 'Medium' and 'High'. +id | String | Alert ID +severity | String | Severity of the alert. Allowed values are: 'Low', 'Medium' and 'High'. status | String | Specifies the current status of the alert. The property values are: 'New', 'InProgress' and 'Resolved'. description | String | Description of the threat, identified by the alert. recommendedAction | String | Action recommended for handling the suspected threat. alertCreationTime | DateTimeOffset | The date and time (in UTC) the alert was created. category| String | Category of the alert. The property values are: 'None', 'SuspiciousActivity', 'Malware', 'CredentialTheft', 'Exploit', 'WebExploit', 'DocumentExploit', 'PrivilegeEscalation', 'Persistence', 'RemoteAccessTool', 'CommandAndControl', 'SuspiciousNetworkTraffic', 'Ransomware', 'MalwareDownload', 'Reconnaissance', 'WebFingerprinting', 'Weaponization', 'Delivery', 'SocialEngineering', 'CredentialStealing', 'Installation', 'Backdoor', 'Trojan', 'TrojanDownloader', 'LateralMovement', 'ExplorationEnumeration', 'NetworkPropagation', 'Exfiltration', 'NotApplicable', 'EnterprisePolicy' and 'General'. -title | string | Alert title. -threatFamilyName | string | Threat family. -detectionSource | string | detection source +title | string | Alert title +threatFamilyName | string | Threat family +detectionSource | string | Detection source assignedTo | String | Owner of the alert -classification | String | Speficies the specification of the alert. The property values are: 'Unknown', 'FalsePositive', 'TruePositive'. +classification | String | Specification of the alert. The property values are: 'Unknown', 'FalsePositive', 'TruePositive'. determination | String | Specifies the determination of the alert. The property values are: 'NotAvailable', 'Apt', 'Malware', 'SecurityPersonnel', 'SecurityTesting', 'UnwantedSoftware', 'Other' resolvedTime | DateTimeOffset | The date and time in which the status of the alert was changed to 'Resolved'. lastEventTime | DateTimeOffset | The last occurance of the event that triggered the alert on the same machine. firstEventTime | DateTimeOffset | The first occurance of the event that triggered the alert on that machine. -machineId | String | id of a [machine](machine-windows-defender-advanced-threat-protection-new.md) entity that is associated with the alert. +machineId | String | ID of a [machine](machine-windows-defender-advanced-threat-protection-new.md) entity that is associated with the alert. # JSON representation ``` diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 6c1b1ccd6d..7e8d70c5cf 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Collect investigation package API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Collect investigation package from a machine. diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index f5d19d8b8c..e5e7d337a8 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,14 @@ ms.date: 12/08/2017 --- # Create alert from event API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + + Enables using event data, as obtained from the [Advanced Hunting](run-advanced-query-api.md) for creating a new alert entity. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index c1525aaa7b..28a6892fb8 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -25,7 +25,7 @@ ms.date: 09/03/2018 [!include[Prerelease information](prerelease.md)] -These pages describe how to create an application to get programmatical access to Windows Defender ATP on behalf of a user. +This page describe how to create an application to get programmatical access to Windows Defender ATP on behalf of a user. If you need programmatical access Windows Defender ATP without a user, refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md). diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index e0b16ad6af..0ae84e76b3 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -23,9 +23,9 @@ ms.date: 09/03/2018 [!include[Prerelease information](prerelease.md)] -This pages describes how to create an application to get programmatical access to Windows Defender ATP without a user. +This page describes how to create an application to get programmatical access to Windows Defender ATP without a user. -If you need programmatical access Windows Defender ATP on behalf of a user, please refer to [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) +If you need programmatical access Windows Defender ATP on behalf of a user, see [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) If you are not sure which access you need, see [Use Windows Defender ATP APIs](exposed-apis-intro.md). @@ -102,9 +102,9 @@ This page explains how to create an app, get an access token to Windows Defender 11. Set your application to be multi-tenanted - This is **required** for 3rd party apps (i.e., if you create an application that is intended to run in multiple customers tenant). + This is **required** for 3rd party apps (for example, if you create an application that is intended to run in multiple customers tenant). - This is **not required** if you create a service that you want to run in your tenant only (i.e., if you create an application for your own usage that will only interact with your own data)​ + This is **not required** if you create a service that you want to run in your tenant only (for example, if you create an application for your own usage that will only interact with your own data)​ Click **Properties** > **Yes** > **Save**. diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md index 01f1b37243..ed69b07caf 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md @@ -10,10 +10,15 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 30/07/2018 +ms.date: 09/24/2018 --- # Windows Defender ATP APIs using PowerShell +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + Full scenario using multiple APIs from Windows Defender ATP. diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md index 5b82fb439d..4afdfd5ac2 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md @@ -16,11 +16,6 @@ ms.date: 30/07/2018 # Supported Windows Defender ATP query APIs **Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index d92068a830..dc9498c8f0 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,10 @@ ms.date: 12/08/2017 --- # Get alert information by ID API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] Retrieves an alert by its ID. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index bf4cd3243e..6e7721ecde 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,10 @@ ms.date: 12/08/2017 --- # Get alert related domain information API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] Retrieves all domains related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 56d4524ea3..7fe0e0b9d5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,10 @@ ms.date: 12/08/2017 --- # Get alert related files information API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] Retrieves all files related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index 4e60b78b74..29f7b7ed3e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,10 @@ ms.date: 12/08/2017 --- # Get alert related IP information API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] Retrieves all IPs related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 9632c79913..279fbf2f70 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,10 @@ ms.date: 12/08/2017 --- # Get alert related machine information API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Prereleaseinformation](prerelease.md)] Retrieves machine that is related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index ea99a3b8d1..abdd6ee9d9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,10 @@ ms.date: 12/08/2017 --- # Get alert related user information API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] Retrieves the user associated to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 15875f3291..a05d4dba9b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,12 @@ ms.date: 12/08/2017 --- # List alerts API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + Retrieves top recent alerts. diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index b693400163..b8b7730bad 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,12 +14,13 @@ ms.date: 12/08/2017 --- # Get domain related alerts API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** -- Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index f9af7b8a81..053470d9a6 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,10 @@ ms.date: 12/08/2017 --- # Get domain related machines API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Prereleaseinformation](prerelease.md)] Retrieves a collection of machines that have communicated to or from a given domain address. diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 8ad81fef65..1625a17a50 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,11 @@ ms.date: 12/08/2017 --- # Get domain statistics API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] Retrieves the prevalence for the given domain. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index 2c7d7416cb..c817a1c653 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,13 @@ ms.date: 12/08/2017 --- # Get file information API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + + diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 9a48a46092..3c3605bebb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,16 @@ ms.date: 12/08/2017 --- # Get file related alerts API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + + + + Retrieves a collection of alerts related to a given file hash. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index da84931205..1a96bc4743 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,11 @@ ms.date: 12/08/2017 --- # Get file related machines API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Prereleaseinformation](prerelease.md)] Retrieves a collection of machines related to a given file hash. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index 8146e74ee5..e8a8ede6fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,14 @@ ms.date: 12/08/2017 --- # Get file statistics API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + + + Retrieves the prevalence for the given file. diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 130c22ad36..4d83cb3d73 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,14 +14,11 @@ ms.date: 12/08/2017 --- # Get IP related alerts API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Prereleaseinformation](prerelease.md)] Retrieves a collection of alerts related to a given IP address. diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index 91b327d71b..ecdab586f3 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -14,11 +14,11 @@ ms.date: 12/08/2017 --- # Get IP related machines API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** -- Windows Defender Advanced Threat Protection (Windows Defender ATP) Retrieves a collection of machines that communicated with or from a particular IP. diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index a33784bce5..990bd3f852 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,14 @@ ms.date: 12/08/2017 --- # Get IP statistics API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + + + Retrieves the prevalence for the given IP. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index ef0c177338..7a7fbac1dd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,13 @@ ms.date: 12/08/2017 --- # Get machine by ID API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prereleaseinformation](prerelease.md)] + Retrieves a machine entity by ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 3811fc208f..55a04d003b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,15 @@ ms.date: 12/08/2017 --- # Get machine log on users API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prereleaseinformation](prerelease.md)] + + + Retrieves a collection of logged on users. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 1af227a95a..780354b0dd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,12 +14,12 @@ ms.date: 12/08/2017 --- # Get machine related alerts API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** -- Windows Defender Advanced Threat Protection (Windows Defender ATP) Retrieves a collection of alerts related to a given machine ID. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 8a2fe385ab..0abd8e7cfc 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Get machineAction API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Get action performed on a machine. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 7c13dee9ec..2eccd27c17 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,15 @@ ms.date: 12/08/2017 --- # List machines API - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prereleaseinformation](prerelease.md)] + + + Retrieves a collection of machines that have communicated with WDATP cloud on the last 30 days. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index c854d33b50..b7b734a241 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Get package SAS URI API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prerelease information](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Get a URI that allows downloading of an [investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new.md). ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index 418ad94328..7bbc0c5ccb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Get user related alerts API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Retrieves a collection of alerts related to a given user ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 4039343929..203642ef2e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Get user related machines API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Retrieves a collection of machines related to a given user ID. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-query-results.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-query-results.png index 25392791c09314ab8e1e879385976ac309da213c..b94ee3a009eb4756a0890f73de2abe011eee8c4c 100644 GIT binary patch literal 60704 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≫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�+4gs#*hW6Qjb6JKpgoCSV=QcdA=x$0*LkS|I| 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

      8?2i+e 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 h`WvC`b-cz-ACW5Nu51}%N|Qhdt80d-S(6zj1MK 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

      DSGVgY{C~6o2>cV5q%I> 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%0A)b?|T1%-T8- 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 literal 0 HcmV?d00001 From 4871bcd4f4c4cd3372acb6912ec948943f97e5bc Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 13:23:35 +0300 Subject: [PATCH 055/201] s --- .../windows-defender-atp/exposed-apis-create-app-nativeapp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index bd4ef69058..c98328699f 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -140,7 +140,7 @@ Sanity check to make sure you got a correct token: - Validate you get a 'scp' claim with the desired app permissions - In the screenshot below you can see a decoded token acquired from the app in the tutorial: -![Image of token validation](images/native-decoded-token.png) +![Image of token validation](images/nativeapp-decoded-token.png) ## Use the token to access Windows Defender ATP API From d7e6e563833ad2d4bd768f4b109f9e2f7ea9d7ad Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 15:04:31 +0300 Subject: [PATCH 056/201] s --- .../exposed-apis-create-app-nativeapp.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index c98328699f..c64297e1c1 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -56,7 +56,7 @@ If you are not familiar with user permissions on WDATP, please refer to [Manage ![Image of Create application window](images/nativeapp-create.png) - - **Name:** + - **Name:** -Your app name- - **Application type:** Native - **Redirect URI:** `https://127.0.0.1` @@ -77,7 +77,6 @@ If you are not familiar with user permissions on WDATP, please refer to [Manage ![Image of select permissions](images/nativeapp-select-permissions.png) - - In order to send telemetry events to WDATP, check 'Write timeline events' permission - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission - In order to run advanced queries in WDATP, check 'Run advanced queries' permission @@ -114,7 +113,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co using Microsoft.IdentityModel.Clients.ActiveDirectory; ``` -- Copy/Paste the below code in your application (do not forget to update the 3 variables: ```tenantId, appId, appSecret```) +- Copy/Paste the below code in your application (pay attention to the comments in the code) ``` const string authority = "https://login.windows.net"; @@ -123,12 +122,12 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here - string username = "SecurityAdmin@microsoft.com"; // Paste your username here + string username = "SecurityAdmin123@microsoft.com"; // Paste your username here string password = GetPasswordFromSafePlace(); // Paste your own password here for a test, and then store it in a safe place! UserPasswordCredential userCreds = new UserPasswordCredential(username, password); - AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}/"); + AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}"); AuthenticationResult authenticationResult = auth.AcquireTokenAsync(wdatpResourceId, appId, userCreds).GetAwaiter().GetResult(); string token = authenticationResult.AccessToken; ``` From 568bdcd9b02490bff20e6ce0d5e916b4b592862a Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 15:38:10 +0300 Subject: [PATCH 057/201] s --- .../windows-defender-atp/exposed-apis-create-app-nativeapp.md | 2 ++ .../windows-defender-atp/run-advanced-query-api.md | 1 + 2 files changed, 3 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index c64297e1c1..d35e6536d6 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -44,6 +44,8 @@ This page explains how to create an app, get an access token to Windows Defender **Note**: When accessing WDATP API on behalf of a user, you will need the correct app permission and user permission. If you are not familiar with user permissions on WDATP, please refer to [Manage portal access using role-based access control](rbac-windows-defender-advanced-threat-protection.md) +**Rule of thumb for user permissions:** If you have the permission to perform an action in the portal, you have the permission to perform the action in the API. + ## Create an app 1. Log on to [Azure](https://portal.azure.com). diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 8a6c8b5831..83d52d04e0 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -36,6 +36,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | AdvancedQuery.Read.All | 'Run advanced queries' +Delegated (work or school account) | AdvancedQuery.Read | ## HTTP request ``` From 94c166c6b69ab70d2364819e08f9c5e821fce6f2 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 15:53:44 +0300 Subject: [PATCH 058/201] s --- .../windows-defender-atp/run-advanced-query-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 83d52d04e0..dfd31656a7 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -36,7 +36,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | AdvancedQuery.Read.All | 'Run advanced queries' -Delegated (work or school account) | AdvancedQuery.Read | +Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' ## HTTP request ``` From 5d2cd4e307fbde2f8a12cfd21c1fe70306a79cfa Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 16:40:33 +0300 Subject: [PATCH 059/201] s --- ...package-windows-defender-advanced-threat-protection-new.md | 1 + ...ference-windows-defender-advanced-threat-protection-new.md | 1 + ...o-by-id-windows-defender-advanced-threat-protection-new.md | 2 ++ ...in-info-windows-defender-advanced-threat-protection-new.md | 1 + ...es-info-windows-defender-advanced-threat-protection-new.md | 1 + ...ip-info-windows-defender-advanced-threat-protection-new.md | 1 + ...ne-info-windows-defender-advanced-threat-protection-new.md | 4 +++- ...er-info-windows-defender-advanced-threat-protection-new.md | 1 + ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 ++ ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 ++ ...achines-windows-defender-advanced-threat-protection-new.md | 2 ++ ...tistics-windows-defender-advanced-threat-protection-new.md | 3 ++- ...rmation-windows-defender-advanced-threat-protection-new.md | 1 + ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 ++ ...achines-windows-defender-advanced-threat-protection-new.md | 2 ++ ...tistics-windows-defender-advanced-threat-protection-new.md | 1 + ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 ++ ...achines-windows-defender-advanced-threat-protection-new.md | 2 ++ ...tistics-windows-defender-advanced-threat-protection-new.md | 1 + ...e-by-id-windows-defender-advanced-threat-protection-new.md | 2 ++ ...n-users-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 ++ ...-object-windows-defender-advanced-threat-protection-new.md | 2 ++ ...lection-windows-defender-advanced-threat-protection-new.md | 2 ++ ...achines-windows-defender-advanced-threat-protection-new.md | 2 ++ ...sas-uri-windows-defender-advanced-threat-protection-new.md | 1 + ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 ++ ...achines-windows-defender-advanced-threat-protection-new.md | 2 ++ ...-in-org-windows-defender-advanced-threat-protection-new.md | 1 + ...een-org-windows-defender-advanced-threat-protection-new.md | 1 + ...machine-windows-defender-advanced-threat-protection-new.md | 1 + ...ine-api-windows-defender-advanced-threat-protection-new.md | 1 + ...ecution-windows-defender-advanced-threat-protection-new.md | 1 + ...av-scan-windows-defender-advanced-threat-protection-new.md | 1 + ...machine-windows-defender-advanced-threat-protection-new.md | 1 + ...ecution-windows-defender-advanced-threat-protection-new.md | 1 + ...e-alert-windows-defender-advanced-threat-protection-new.md | 1 + 37 files changed, 55 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 3fc76468dd..6c1b1ccd6d 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.CollectForensics | 'Collect forensics' +Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 05ecd44a39..f5d19d8b8c 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Alerts.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index ea5d18dcca..d92068a830 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index 1c6eeee2a3..bf4cd3243e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | URL.Read.All | 'Read URLs' +Delegated (work or school account) | URL.Read.All | 'Read URLs' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 114dd4ebf5..56d4524ea3 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | File.Read.All | 'Read file profiles' +Delegated (work or school account) | File.Read.All | 'Read file profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index 027e4f2dfa..4e60b78b74 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Ip.Read.All | 'Read IP address profiles' +Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 1b02c04a0e..9632c79913 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -30,8 +30,10 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.Read.All | 'Read all machine information' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index e31cb2df14..ea99a3b8d1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | User.Read.All | 'Read user profiles' +Delegated (work or school account) | User.Read.All | 'Read user profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 0bc8191610..15875f3291 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -33,6 +33,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index 5c96f8e93f..b693400163 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index 5c00e541d9..f9af7b8a81 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 3192b853ab..8ad81fef65 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -30,7 +30,8 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | URL.Read.All | 'Read all machine profiles' +Application | URL.Read.All | 'Read URLs' +Delegated (work or school account) | URL.Read.All | 'Read URLs' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index 1294734ef7..2c7d7416cb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | File.Read.All | 'Read all file profiles' +Delegated (work or school account) | File.Read.All | 'Read all file profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index a67c221e7d..9a48a46092 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index 6781f48a9a..da84931205 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index 5123aa9f3e..8146e74ee5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | File.Read.All | 'Read file profiles' +Delegated (work or school account) | File.Read.All | 'Read file profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 1cb5b54981..130c22ad36 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index b50d7dbc2e..91b327d71b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index 597e70c583..a33784bce5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Ip.Read.All | 'Read IP address profiles' +Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index 0ec132066f..ef0c177338 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 8c1da55b43..3811fc208f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -29,7 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | User.Read.All | 'Read user profiles' - +Delegated (work or school account) | User.Read.All | 'Read user profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 3a0717469c..1af227a95a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 5c15530e45..8a2fe385ab 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index d5084a4d5e..0e8e2ed4a8 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 581b175fe0..7c13dee9ec 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index 121dc80314..c854d33b50 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.CollectForensics | 'Collect forensics' +Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index cc16ae3c5f..418ad94328 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Alert.Read.All | 'Read all alerts' Application | Alert.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.Read | 'Read alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 37be0e6280..4039343929 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,8 @@ Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Read.All | 'Read all machine profiles' Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md index 9fc66f2cd0..5823c0d793 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Url.Read.All | 'Read URLs' +Delegated (work or school account) | URL.Read.All | 'Read URLs' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md index 0b0e8a826b..b015a3afe9 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Ip.Read.All | 'Read IP address profiles' +Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 97470afecb..45a75dc778 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Isolate | 'Isolate machine' +Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 7ef5465b2c..001aac7db4 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Offboard | 'Offboard machine' +Delegated (work or school account) | Machine.Offboard | 'Offboard machine' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 863ca96953..0ecc9cd09c 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.RestrictExecution | 'Restrict code execution' +Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index e76b3d51be..d9adb2e60f 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Scan | 'Scan machine' +Delegated (work or school account) | Machine.Scan | 'Scan machine' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 1f759231a2..aafaac2b2f 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.Isolate | 'Isolate machine' +Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index 4fef4dd344..6d624f7855 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Machine.RestrictExecution | 'Restrict code execution' +Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 6900e0585a..40f47a0edc 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Alerts.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` From bc045102fee3eae2e1d251f59c8c8879961106ea Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Wed, 22 Aug 2018 17:05:32 +0300 Subject: [PATCH 060/201] s --- .../exposed-apis-create-app-nativeapp.md | 13 +++++++++---- .../exposed-apis-create-app-webapp.md | 10 +++++----- .../images/nativeapp-select-permissions.png | Bin 50344 -> 52601 bytes 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index d35e6536d6..2f96cc142c 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -75,12 +75,17 @@ If you are not familiar with user permissions on WDATP, please refer to [Manage 6. Click **Select permissions** > check **Read alerts** & **Collect forensics** > **Select**. - **Important note**: You need to select the relevant permissions. 'Read alerts' and 'Collect forensics' are only an examples! + **Important note**: You need to select the relevant permissions. 'Read alerts' and 'Collect forensics' are only an example! ![Image of select permissions](images/nativeapp-select-permissions.png) - - In order to send TI events to WDATP, check 'Read and write IOCs belonging to the app' permission - - In order to run advanced queries in WDATP, check 'Run advanced queries' permission + For instance, + + - In order to [run advanced queries](run-advanced-query-api.md), check 'Run advanced queries' permission + - In order to [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), check 'Isolate machine' permission + + To determine which permission you need, please look at the **Permissions** section in the API you are interested to call. + 7. Click **Done** @@ -146,7 +151,7 @@ Sanity check to make sure you got a correct token: ## Use the token to access Windows Defender ATP API - Choose the API you want to use - [Supported Windows Defender ATP APIs](exposed-apis-list.md) -- Set the Authorization header in the Http request you send to "Bearer {token}" (Bearer is the Authorization scheme) +- Set the Authorization header in the HTTP request you send to "Bearer {token}" (Bearer is the Authorization scheme) - The Expiration time of the token is 1 hour (you can send more then one request with the same token) - Example of sending a request to get a list of alerts **using C#** diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 6dc9ac40bd..627139a682 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -111,13 +111,13 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of multi tenant](images/webapp-edit-multitenant.png) -### Application consent (for multi tenant apps only) +**Note**: -You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. + You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. -You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. + You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. -Consent link is of the form: + Consent link is of the form: ``` https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ @@ -147,7 +147,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ``` string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here - string appSecret = GetTheSecretFromSafePlace(); // Paste your own app secret here for a test, and then store it in a safe place! + string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here for a test, and then store it in a safe place! const string authority = "https://login.windows.net"; const string wdatpResourceId = "https://api.securitycenter.windows.com/"; diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-select-permissions.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-select-permissions.png index 3e9ad569f09485987eedd80a564167117006cb44..5b17f2dc028a25a6c3299027695fb376646bf970 100644 GIT binary patch literal 52601 zcmce;c{E$!`}mvc;H@oMs@|ojYN=VNxoD}XDbzegw5A$DYltz@R#j2d7)t11s4?as zBve~-)ELB2CB_g_gcx$;^S$fd-(Bl_*YEecf84WH*2&4)=bXKtz4v*Z=k+{0F{VI0 z_OpCv0RRBI{-XzG0Kmx#=EvioGt6J)-w)qp?oRld>1hMX@mH6a2dCWc8{Y>2DihBg zJUPugW_$j~)*k@i_;LI>ktWH(4*>LX=s&n`5$s5wJQwZ|h-5HK9=(dKvvQER%=d~- zJmd5^NKNuLtWL_X$OM>>6!5_q{}zneAt8IrnfZEoksHdDR;y|G-xlB7L*pURnrs}U|58C0OOG6 zeu`N+z{@M;&z?QIW$xhMEq21mr^`j&?O#E`%YmRfZ7nS?uQ&$JoEDdq#I&vyD~- z_IX_n(fmU^R{(&XJ9yW$h{#!- zxW&_pcsnEsT{H5-IfQ=E)Ku)TR(=-3(T|xq$FaqkHb4X2vYxKA*A_BVROv3U%X>M& z?sWCz$B$>vR?=A-{1b>5jsg~58xML+f^jhZZWw9A4mTsH3nWR@hpeDXU4NtFM6%5nH|#ZrH4V~`sV?he_x|$JuRM;mJe$6ZLX>#x44-OY#Y$LS@4@sx0DxS2 zzc%^7_ma9q7V_3+mLv}Kedg6>5xmjiXvv(lI7Imo(N{3&vOBTbvK+e(^PAHyloj?0qhQO})UST&wKU>E; zB|KW?`%!dP7}Uzrn>3FD}k&$T^MCRXMyM$aE{bLTcT)INldmR#Bcfv zY1(oiQG~(i{YN2Tn?Q_3m@ahsMXkdwR>bx5m{n4bR*i)w%y~WG`8}xj`E1NybXVs> zZHE9Ra=&_kwt57;EV!q+N2eUDlE;c^=F0-z2RbI{oQ#@wnbQT1^3OL+sq zz-3po4$ycwVi`AS32v~|M#Ne}4g07w3@8G`Ii>IvtYd(Xjd(l|$> zzDms5$$xxt^w5Q3!hS9>9P>uzRaB`$g^tn@F`DEO)*FcL6X3$0(v(0K2Tn!IX)jD< zt!xs0;!dq4m05#tQ6vLtUn8o4M-|W6P62u>8OSP_jf$tCkyr-O_{Tc`Y*3Xy}}&!*N%x+NDz%uf!z)?d@-95BO7fq`Z|)$1x65{m+Y)3cYxf zIW^yPm$=q(V>?_iI8KcV-`GvN&(O%o$C*s`oJzxoq10h(1ys|f!8{28#y72hKbKjU8=+S1+@8>* zL7PZvU>xl$42G2jpaf=Ci2tlnT|Dk`gZ-T5KV;A;YHkdSWm|GB+=4;1Z|==B=wE3f z9ME8`wxk`q5GT_q~?@c50BSc2yJEmMPc)m8Xo!p35qJ{^?S5%*EPJi!t z7k4of9&;0aJBza5IGxZDjA+pw*)!CekDEt7l!nume=7#XG)AaKAKJ{1Ds0qs;wt|bnfh|SHI)?3^Q{KSBd`-8M*xM_B6Z26o6Q*>94(W zJ3*vnitxhUZQl^8z27Z8MXUdFd4KiDFQu__Xlp3wXbQO_D(StxMj4y6N!}YWh8?j( zUh>{G*@eyneRJWR6MnC_50HPbB3rZd)r@L5&*hK#J zl~ak8mQ&o;HH#j#kZ@g?Q&KqTogf^%`Wz*;jAK-nLm5QDp1T2=&7uNTN?UpgCLzm- znf8rAr;jk_OKEl8@|s! zw9#R^7d=+QlIMGQ;ewW=q9xvH2Sxv;5*-}luoYcd+{)ge!0D4J3p+4e<}d2a-cwZ- znU}hfxVgLJw;itjS>OPwIve1=y{1R+nFgU9#kGc~_s&yk=fq-yVp-}O86f|w(cx6J z2J%V6rmeqWx@ruZZ}(SEat|s;Oe|#ouFcdIL(}coTJua|mARt`Yx9&**D4Nc46V0h zqiI=8nL#tIAQ|IP^Ax;&gk(?{b!`Youor#K^0Ijj+8%L8C3M@mBQ4h@p>7FRkt%6T zz=zv2dF3HqeSr+(6u4{3TvEa&_AU%TeqK^1xT6%(7prrUaackHs+y-S_iJg~5Rq8O z*?{bQ4?CbP;9P4D;yk!FY7Qt!Voy`j@icQ|PBYBhh$LJBe{;QXGb+UobmE-NLK<+7 zfrTX4VMC|%mt$Q84g_Ct>^nBhBrbmg`+rbDv=B)I^s1?KX!}t#RyW)5PxuR&SL&qn z>8Vv~jU2}18Loc-87mW>ZH?`-{66(h9%PMb8^d2VGYEbj2zpot@7!0Vt4x{mP_)3? ztDS?^2X<@gYe0IQ9!kJUjbJa-?1Y7d)Pq|)*wM32!#rhET<&*%l zs=r^GYBZ7J6uq36DI1CED)Gz6-XQsQ>a)h)4JAdBGISe3#QdsG!>VN!&4|qKfS8W% zB3XloU7Ev~yvmw4NA{kS!u&7kkiqJ)}&4JP1{<>~Xg^$MQv_K-q!Dw%=G#Ti4c2I7wb{c8j$xmuBhl z^!OuPHGNF zVaS=R&dwrW7U|!>Uxs)k=PHy1#VPw;)B*G7L@?8eEp*DVMx&Co9V=71Ygk9M4*znQ z^W8Fm8v<2ZaQZ5LQhkf;r8OA)ex!GVVY2MjudVTSC+A6Qo>A-I$@OhCFzI9yf9A=# zRA1Hm>q``{xa#z`+2)7tMNO-v=Wgtk?B`KlQO+17v_CO1;Ok2G;95xN4vN@$*|amH zKw`kC?VAFV0`469yw6{A+`9H7cReYN^f%7`{6cEy%Ft$%?|$q-B}H>@7>!TfJeiYT zR>rG;kRk8!Xw1jysZi2N9Ry*qwJdqpc%MmsV)ITKenz&DyNH$*7vfIp9r)U$U&o(W zzizaa6x@DO(_`!x&jo;-GHJO&+`1ijI%@<9ibT6(J;%9EtM{)*XAt%K#eBL{V3!VW zSC5oa>U61hcdC1?6i6peW4DXE`T{hyzQC58=66t+M`8y5tb%*5ej)g)zdy^~sB^2? zq%-`lD2_M(0I5PUb>g={uTowuJM0>l<#aP&)$R#Z`(y1`?Le;zNUHVFS@Wf z!4UJ+h32CZz>aXrT8rhMHHxdnOUtc8rP3*C4~7FXfjx1i3Ll)h~HQK zyVgTXSKB{V+s!HNgk13H3jZFScpD#--U^z`^tDzaI?|hytXp~vi3-f8AFe)bKM!aL zAQB)>fmwupHE%z4=)ek(r=6iwE~7W?%e2wglDCt)_pEAF6t|E15XL;W_m<$D#szQ3 z^*0^OAv9NgrK4Nx^tT$x^dp2WI{B(#v;V`#$Q0{*=B#DZu+L4b~Az}=5}*N_=uHqGuBvC?tF#o4(0#avUDKIX&^* zYqwVQr1~7)5H60t`8;bv$fln0**7f+-3ns{2KqNhNcN#5V>{3#%Hwtc(9McZbCq2v0n=;?MC!00qw=H#-=Vpb;Ax#hI zs4z+BU$j<~Qc>_PkUp_tsO*QkzVPmJ>ue|WEL-87F(UqtPUd{Q^yKgSK1!gY$cE!# z*L4bJ$L*u!ux3|Zm%}Hp&=WA{XY|qzy%c;n+w6FK!Ryw`B7dfuO{5oRUjwo5hx4f@ z7&`eQ9vrnX+!Hasxkh`^d(i2N9yFZE0@cb8e^+5ksoF7t%Vw*%>U5^awq~>S)|;?k zAzPM`O99fIKV_Q*2)+-V!`C*(2}ewmm1X2g__wkBvVN3E7%IYebeX0`FryuOq^w}C zORYRDI-1-bhYt=iF@d9OXDk_q1QBV!c! zodZ~nS$cX(|qD~O*8|l6r{=9{sx0Agl=w}8g*aHeYK*FL+7TDeBK6_U4 zr706xMuCw#O75`S@u@ydci-#7YV*G~yEEQ9`|{}UmC_!4A4QF7WVQTsV+aOT z_QO1rctmZ+hXwn~^tr6S9{7>b0Ko7N3`yx8za%k0WW*@YWMnj0KqC zeD_*lKqO@?`#)JeO-N^)9yP%kW4rX1-qBw6*7TWEY^Q9F_xEmGaAFc803hi<_=gF2{<{KBmvnV?q34;! z_WAz5T>n3Pz<*yrmnm-euY{8=*=e0FF2TX0=b7$Z>~VYJWU;s4hbv&xsB>bi7qbCQ zUSq99zI&S_s5hly#*$O5iR1kFM{qdq%C=%vX=%>^lV-JG z70ON=qqACPKm|>7Yh3p~1Z=NBv4y3DIna)A*xup~w&TkE@5$@GZ_fXY#Q*=k!}qJ_ zD^MM4>N07AyqEPKKTf)nNA^ChM9X_6Gz+ ze(l4&UFsYf5AnNGRv}~foQ*n=7;kP^k#|+faXC3e?=oP&>l|ly!DSwY>EH~D@Pp{8 z5FtdPPvf?OD$OCN-lm-B#%q*jjOc3M1&f(C^FxS%yd{)7^4`(7YCe|suLzKV8Y}Z& zrk`y2oqQQ1Nt?f-T)9xwv{uW(C#z>w!Q~C}eC{@3RUO>WCv%YGcx6FhNo$|D#Tu`o|;5cE>~AsHK#>LYA@jq7z?sZi=Q^R5QE(y^Gs=>~=ocTa}nKAxZ#| z5oYtfK?Met7)L9QLKz6V6b6WR=U8bw_n7D3E$=~bMS%tl1u(2dRzu)xP4J*bRR}4@ zZze|4)xZ1{f5q}PXJ>MIkg;KroLkPT&+e=L9t$GE{|h_$Rdka*Hhc>@*1YkwsA8*t zC?T*`-XU;G8PsUCb~mI`X#jNC`$q06c5GU0%yQl8QuqNjj{2z= zlxf!?dM^k5nV$EROs;O;IOv)qpX;+?On*KJ?daNS{%sE(=&bs&=5;FU060_SPY&|w zML3~51FffS`EBY?McfYZUNii7AMxEWjAjd!Iqvv+X2;Jmb}|mYE4qFo_PiA0A3h6c zUAP`1c>LN5Z?I3gWK(g|LTvfo{%-kI;pbaCQ)&x2VNvv<*(xuh(inA@OVzs)^FtcA1l?v+tWJ|q$&kcI8e$$ z^Au}qWkEEgii+23YYknE-(38v-1X}oWX?$p_=eD+hp3is z0N^6h0!&$vVMhxO4@bmTrOdfBJTAZbb>>_7FG*#`%&#zy%gg z1S80+`d1DmfeN}iTj}vtZ8K>mY&Cjl<9&Z7w;Lx&dbeE6ZguF9T2mv_pG&{d^D^e# z5xP#9*`9lsc-Yz5U1Q_oR_DAC$#1`S>W_;{_a`M4)FU$t3clvwd*l#;b(p1=*67P9 zTD}HJk`BCNQY{+^Gqsqx^BU#uiB;^A{_ErXLW;8m4`}L*u#&aO;IhTB#!Gi5l2UL+ z_6>gd78oM0UlcM5oXFn#U>w2?(h?%Zm) zTT0E;41+ZQZ;wLEa%c>`*Q(z?gIccOD9g2Nu)N$nf2-PCG}i3p;XaNLHU?)Lu4Zq9 zkkYK@cyYU@nR?Le^CTw75Dd<}8vN&#-*+~#(T00IYYa!n{c%FqM!S&j0zTYA_>A0> zM(Gk6%fO|nsK9TqoqXiy^(_FqvPDP8_M^4IuaQK>2qFB39wy`^k(nC0y zJr5USgwJWZ&rlZNN`!ECM(b)}HU7R+CQZPvl#-KJ3NMj>>jD(sbBK&HV+B&}SN-2l zgi)H^#`A@GfJm}eyx_#jXvZ`s!!EhG2e(6N&dFRc-?g(GttD{GHevUO97pLSI<}!4 z<@ucR$3NjR>tSdob&wfotSs)J%0>Q)x?(lc z(jfB)JT(E2yA)cyYhID!c9{fb1u&gF$>`e^tXny36Lgpq-&Ho`{29rHkt7i2*(6mzJlon+b${s94^itz31LXs9{8mr5^nCJS zTax>-#HA?kG_dSCf!pLgy1kEWy&S#VSX@3h+`2x07_qogee|kAQAF>cd=7It(Y40Q zS6hvYRX_%EN$%3q_k-HGcVREeQ4!B~ZV(S=9~J%}PTXo-RyJC{dI^XaK%}bRQnu!M z6&PXtwKWd#y>774J7f$qF1PcMqo^do*6UZ`^FVdT0OV;Psx8BAANF^qsck4mA7o$M z2>K_wGRCm;Z78**+{Y!GpI@)Eyp!|$PBgBn!FDosG3<3GJtWaE1xxG<^ylJA$-obS zGzJ!W{x#Qc;254v-T^+&wV&u1O-gDf#)WfrNI`kx~`E4albJPvAu!TOG zw7}3CtZ+n9-OwG@tu|D|h?k{J$%{3vvtim018Y62?z7_J%F34}LnzQYfg&SiM;7TN z_6mB|u%bhbhT@Xia%q{qwx4VfD{m-oTt?))H0bV3|uL zTN&)8&es=}Lb^d_S5dc>o$*202g_anx7*6Q!@rtYpV9AU`Zo{dr}}idMIDK6kaj^= za1I1VP}K^VXfY|hPFKQCBOM5Y@q6C_6H3f_&y7g)6p|eTr{4@T}fOE zEZ9+bUo>ld&L_E&-rim76V;HyhL-jto;mIND7$dQIW5EPm4svKz~uL_Pc{}3R1n+J z@8Lc&7mjXQ(N%+s@G7$tv;oKc^cr6MVD1OecKagAXoyuVf~cENk=J~DYc_j@gjeR} z5_kCuheQs3Xvr8aV=}*c>?1cdnP!ah5-{}jL|v8ncbJpSxI}HUEn(sw&r?*V?w?nG zrubLK`M+sJyDzkMKboT2p5Nzn?Js-!Q0abV=$K_MIDA8Quz_Tx{qnS2 zQNVKz_c3b0sms+4YSO@0b2la;M!8HE!~>0%)rO59qBtzmi9Q`uSJRdoE4%V6Me2q- zvjIry-y=0Ioz}`x#JT0deG#A7r!QWdePV6+wG-tG>2K)o%1|$JN?Q%z5@_(Pqdy>M za-_vRt5ow)2r{G=jKBCW_-mA{J7U-!ppdrqLF|z=&mhr3s(}S@6 zYiRwqW$}NjaFPwEI6T!5^sS8`+xIVF>gvO0Z2W$Z7;QsU(JgtP-p*QxBmHdRFBA}z z3wxa7q9+)VSENZEK)%#iZ#n7a5KRDKpuP3QKbby23NVQLW=!TLdp=b{>88u1OHG`` z2~Xr+d>_cQtLztvRUa0aclnZCeDIw*1y0y3N%7~$QP#jC;wm$n%3*?)+){loy*??sQMNm>JSf@>$Dlb7k3 z#-EOdED$GSb&FbHq0Hg-{E8bNU7_yl-R35d8L&G9)#?m>>jw(cJK~6sfK>~eOQ2$A z53!@7qN-tkg0!ris537wa$YWs;i#0fDwU(OaHiw&mvnV>bTTv7{f?HNU{>nPKl()e zq}&D^7M}?E4bj*(U;Zy+B@g?q?~NBpk>DT#XVBn6#drlf-?la_jgbV^0Ny>^?oZjd z3ID!YW{OJ2m2JuI*~N{GbN*yP$j)a%P$)mP@Z?Cvt7Gor8)&^=&HJ)e*{{ zVUd!CTW9HSo9D4&$H};gQ9`_h? z9Qm%1xir=Nkn-Dk{+|H7^5`i$4}m_(%Wh73*NWJwW=W6U92p;oy#ltuD78Y4_6?=K z4kw3GS&q$T^W*yj%&z`9w;9;y_T{^o>$+=uW02y$rW7b@lwBJiEMYp%E7QxK&Sh2W zg4u`}n&nOax z9#V2hUJ^(@YN9(xtRHHh&Te%!Uy0wHZ{({3twkAZWuEb
      &p@{WtP=SR;Qw`UxU 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 literal 50344 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%0AdJ`u7w!u!<^`wjHupaBNF#PA*P&8THbO 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 From 78c691c209886e8b5532b7bbba293d0f068493e2 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 22 Aug 2018 11:10:45 -0700 Subject: [PATCH 061/201] edit link --- .../windows-defender-atp/run-advanced-query-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 8a6c8b5831..4de26da4ed 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -10,7 +10,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 30/07/2018 +ms.date: 09/03/2018 --- # Advanced hunting API @@ -130,7 +130,7 @@ Content-Type: application/json​ Check [app permissions](exposed-apis-create-app-webapp.md#validate-the-token) or [delegated permissions](exposed-apis-create-app-nativeapp.md#validate-the-token) included in your token. If the 'roles' section in the token does not include the necessary permission, - either you did not add the necessary permission to your app (refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md#create-an-app) or [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md#create-an-app)) - - or you did not authorized your app in the tenant (refer to [Application consent](exposed-apis-create-app-webapp.md#application-consent)) + - or you did not authorize your app in the tenant see, [Application consent](exposed-apis-create-app-webapp.md#application-consent). ## Related topic From 06b836a9505d3b0d223bdbfeb546940fd5ab0e20 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 22 Aug 2018 14:35:10 -0700 Subject: [PATCH 062/201] add application consent section --- .../exposed-apis-create-app-nativeapp.md | 6 +++--- .../exposed-apis-create-app-webapp.md | 10 +++++----- .../windows-defender-atp/run-advanced-query-api.md | 14 +++++++++----- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 2f96cc142c..f3d72bd653 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -81,8 +81,8 @@ If you are not familiar with user permissions on WDATP, please refer to [Manage For instance, - - In order to [run advanced queries](run-advanced-query-api.md), check 'Run advanced queries' permission - - In order to [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), check 'Isolate machine' permission + - In order to [run advanced queries](run-advanced-query-api.md), check 'Run advanced queries' permission + - In order to [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), check 'Isolate machine' permission To determine which permission you need, please look at the **Permissions** section in the API you are interested to call. @@ -110,7 +110,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ### Using C# ->The below code was tested with nuget Microsoft.IdentityModel.Clients.ActiveDirectory 3.19.8 +The code was below tested with nuget Microsoft.IdentityModel.Clients.ActiveDirectory 3.19.8 - Create a new Console Application - Install Nuget [Microsoft.IdentityModel.Clients.ActiveDirectory](https://www.nuget.org/packages/Microsoft.IdentityModel.Clients.ActiveDirectory/) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index b993edea97..20e0d808b8 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -114,13 +114,12 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of multi tenant](images/webapp-edit-multitenant.png) -**Note**: +## Application consent +You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. - You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. +You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. - You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. - - Consent link is of the form: +Consent link is of the form: ``` https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ @@ -217,6 +216,7 @@ Sanity check to make sure you got a correct token: // Do something useful with the response ``` + ## Related topics - [Windows Defender ATP APIs](exposed-apis-intro.md) - [Supported Windows Defender ATP APIs](exposed-apis-list.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 6f722c1194..b53851bf20 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -125,13 +125,17 @@ Content-Type: application/json​ ## T​roubl​eshooting: -- (403) Forbidden. +- Error: (403) Forbidden - If you get this error when calling WDATP API, your token probably does not include the necessary permission, + + If you get this error when calling WDATP API, your token probably does not include the necessary permission. + Check [app permissions](exposed-apis-create-app-webapp.md#validate-the-token) or [delegated permissions](exposed-apis-create-app-nativeapp.md#validate-the-token) included in your token. - If the 'roles' section in the token does not include the necessary permission, - - either you did not add the necessary permission to your app (refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md#create-an-app) or [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md#create-an-app)) - - or you did not authorize your app in the tenant see, [Application consent](exposed-apis-create-app-webapp.md#application-consent). + + If the 'roles' section in the token does not include the necessary permission: + + - The necessary permission to your app might not have been granted. For more information, see [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md#create-an-app) or [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md#create-an-app) or, + - The app was not authorized in the tenant, see [Application consent](exposed-apis-create-app-webapp.md#application-consent). ## Related topic From 8d45fba6d44d9cfe313c22464ff99000323bed5d Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 23 Aug 2018 14:34:33 +0300 Subject: [PATCH 063/201] Add tutorial to run Power BI with user token --- .../windows-defender-atp/TOC.md | 2 +- .../exposed-apis-create-app-nativeapp.md | 2 +- .../exposed-apis-create-app-webapp.md | 2 +- ...=> power-bi-set-credentials-anonymous.png} | Bin ...bi-set-credentials-organizational-cont.png | Bin 0 -> 14831 bytes ...ower-bi-set-credentials-organizational.png | Bin 0 -> 14222 bytes ...ows-defender-advanced-threat-protection.md | 2 +- ...vanced-query-sample-power-bi-app-token.md} | 9 +- ...vanced-query-sample-power-bi-user-token.md | 112 ++++++++++++++++++ 9 files changed, 122 insertions(+), 7 deletions(-) rename windows/security/threat-protection/windows-defender-atp/images/{power-bi-set-credentials.png => power-bi-set-credentials-anonymous.png} (100%) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-organizational-cont.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-organizational.png rename windows/security/threat-protection/windows-defender-atp/{run-advanced-query-sample-power-bi.md => run-advanced-query-sample-power-bi-app-token.md} (91%) create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 5fca7a6375..3aabd75f2e 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -157,7 +157,7 @@ ##### [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.md) +##### [Create custom Power BI reports](run-advanced-query-sample-power-bi-app-token.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index f3d72bd653..06c9891fa8 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -124,7 +124,7 @@ The code was below tested with nuget Microsoft.IdentityModel.Clients.ActiveDire ``` const string authority = "https://login.windows.net"; - const string wdatpResourceId = "https://api.securitycenter.windows.com/"; + const string wdatpResourceId = "https://api.securitycenter.windows.com"; string tenantId = "00000000-0000-0000-0000-000000000000"; // Paste your own tenant ID here string appId = "11111111-1111-1111-1111-111111111111"; // Paste your own app ID here diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 20e0d808b8..8d0dee467f 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -152,7 +152,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co string appSecret = "22222222-2222-2222-2222-222222222222"; // Paste your own app secret here for a test, and then store it in a safe place! const string authority = "https://login.windows.net"; - const string wdatpResourceId = "https://api.securitycenter.windows.com/"; + const string wdatpResourceId = "https://api.securitycenter.windows.com"; AuthenticationContext auth = new AuthenticationContext($"{authority}/{tenantId}/"); ClientCredential clientCredential = new ClientCredential(appId, appSecret); diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-anonymous.png similarity index 100% rename from windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials.png rename to windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-anonymous.png diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-organizational-cont.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-organizational-cont.png new file mode 100644 index 0000000000000000000000000000000000000000..049d3ed6ee5bd85a6eaa994bb4281f6ae65af0b6 GIT binary patch literal 14831 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 Xc|rCwzU=0ny)-d2H>l9N{p5cEHx&?2 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-organizational.png b/windows/security/threat-protection/windows-defender-atp/images/power-bi-set-credentials-organizational.png new file mode 100644 index 0000000000000000000000000000000000000000..054470d70e278ccc4ae39951dc33cdf1128df43e GIT binary patch literal 14222 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md index 05a565f9f6..8c862f8208 100644 --- a/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md @@ -201,7 +201,7 @@ In general, if you know of a specific threat name, CVE, or KB, you can identify ## Related topic -- [**Beta** Create custom Power BI reports](run-advanced-query-sample-power-bi.md) +- [**Beta** Create custom Power BI reports](run-advanced-query-sample-power-bi-app-token.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md similarity index 91% rename from windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md rename to windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md index d3abe10318..390baca350 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md @@ -19,7 +19,9 @@ Run advanced queries and show results in Microsoft Power BI. Please read about [ In this section we share Power BI query sample to run a query using application token. ->**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). +If you want to use user token instead please refer to [this](run-advanced-query-sample-power-bi-user-token.md) tutorial. + +>**Prerequisite**: You first need to [create an app](exposed-apis-create-app-webapp). ## Run a query @@ -33,7 +35,7 @@ In this section we share Power BI query sample to run a query using application ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) -- Copy the below and paste it in the editor, after you update the values of _TenantId, _AppId, _AppSecret, _Query +- Copy the below and paste it in the editor, after you update the values of TenantId, AppId, AppSecret, Query ``` let @@ -108,7 +110,7 @@ In this section we share Power BI query sample to run a query using application - Select **Anonymous** and click **Connect** - ![Image of set credentials](images/power-bi-set-credentials.png) + ![Image of set credentials](images/power-bi-set-credentials-anonymous.png) - Repeat the previous step for the second URL @@ -125,6 +127,7 @@ In this section we share Power BI query sample to run a query using application ![Image of query results](images/power-bi-query-results.png) ## Related topic +- [Create custom Power BI reports with user authentication](run-advanced-query-sample-power-bi-user-token.md) - [Windows Defender ATP APIs](exposed-apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md new file mode 100644 index 0000000000..d4ceebb3fa --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -0,0 +1,112 @@ +--- +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Create custom reports using Power BI + +Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. + +In this section we share Power BI query sample to run a query using user token. + +If you want to use application token instead please refer to [this](run-advanced-query-sample-power-bi-app-token.md) tutorial. + +>**Prerequisite**: You first need to [create an app](exposed-apis-create-app-nativeapp). + +## Run a query + +- Open Microsoft Power BI + +- Click **Get Data** > **Blank Query** + + ![Image of create blank query](images/power-bi-create-blank-query.png) + +- Click **Advanced Editor** + + ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) + +- Copy the below and paste it in the editor, after you update the values of Query + + ``` + let + + Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", + + AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query", + + Response = Json.Document(Web.Contents( + AdvancedHuntingUrl, + [ + Query=[#"queryText"=Query] + ] + )), + + TypeMap = #table( + { "Type", "PowerBiType" }, + { + { "Double", Double.Type }, + { "Int64", Int64.Type }, + { "Int32", Int32.Type }, + { "Int16", Int16.Type }, + { "UInt64", Number.Type }, + { "UInt32", Number.Type }, + { "UInt16", Number.Type }, + { "Byte", Byte.Type }, + { "Single", Single.Type }, + { "Decimal", Decimal.Type }, + { "TimeSpan", Duration.Type }, + { "DateTime", DateTimeZone.Type }, + { "String", Text.Type }, + { "Boolean", Logical.Type }, + { "SByte", Logical.Type }, + { "Guid", Text.Type } + }), + + Schema = Table.FromRecords(Response[Schema]), + TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}), + Results = Response[Results], + Rows = Table.FromRecords(Results, Schema[Name]), + Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}})) + + in Table + + ``` + +- Click **Done** + + ![Image of create advanced query](images/power-bi-create-advanced-query.png) + +- Click **Edit Credentials** + + ![Image of edit credentials](images/power-bi-edit-credentials.png) + +- Select **Organizational account** > **Sign in** + + ![Image of set credentials](images/power-bi-set-credentials-organizational.png) + +- Enter your credentials and wait to be signed in + +- Click **Connect** + + ![Image of set credentials](images/power-bi-set-credentials-organizational-cont.png) + +- View the results of your query + + ![Image of query results](images/power-bi-query-results.png) + +## Related topic +- [Create custom Power BI reports with app authentication](run-advanced-query-sample-power-bi-app-token.md) +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) From 9c9d0cf1fddd5f0235d51333d78d207440b39248 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 23 Aug 2018 14:52:55 +0300 Subject: [PATCH 064/201] Fix --- .../run-advanced-query-sample-power-bi-app-token.md | 4 ++-- .../run-advanced-query-sample-power-bi-user-token.md | 2 +- .../run-advanced-query-sample-powershell.md | 2 +- .../windows-defender-atp/run-advanced-query-sample-python.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md index 390baca350..6613b39e3c 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md @@ -21,7 +21,7 @@ In this section we share Power BI query sample to run a query using application If you want to use user token instead please refer to [this](run-advanced-query-sample-power-bi-user-token.md) tutorial. ->**Prerequisite**: You first need to [create an app](exposed-apis-create-app-webapp). +>**Prerequisite**: You first need to [create an app](exposed-apis-create-app-webapp.md). ## Run a query @@ -45,7 +45,7 @@ If you want to use user token instead please refer to [this](run-advanced-query- AppSecret = "22222222-2222-2222-2222-222222222222", // Paste your own app secret here Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", // Paste your own query here - ResourceAppIdUrl = "https://securitycenter.onmicrosoft.com/windowsatpservice", + ResourceAppIdUrl = "https://api.securitycenter.windows.com", OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""), Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="), diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md index d4ceebb3fa..c7ab12996f 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -21,7 +21,7 @@ In this section we share Power BI query sample to run a query using user token. If you want to use application token instead please refer to [this](run-advanced-query-sample-power-bi-app-token.md) tutorial. ->**Prerequisite**: You first need to [create an app](exposed-apis-create-app-nativeapp). +>**Prerequisite**: You first need to [create an app](exposed-apis-create-app-nativeapp.md). ## Run a query diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md index 22c4ca1362..0bb63ec221 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md @@ -40,7 +40,7 @@ $tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID he $appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here $appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here -$resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' +$resourceAppIdUri = 'https://api.securitycenter.windows.com' $oAuthUri = "https://login.windows.net/$TenantId/oauth2/token" $body = [Ordered] @{ resource = "$resourceAppIdUri" diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md index 913731e59d..0f07bf3b7d 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md @@ -37,7 +37,7 @@ appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret h url = "https://login.windows.net/%s/oauth2/token" % (tenantId) -resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' +resourceAppIdUri = 'https://api.securitycenter.windows.com' body = { 'resource' : resourceAppIdUri, From 375c98f0eb6fd7c9b79bf5a0c41d2ef257a98a12 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Thu, 23 Aug 2018 14:55:51 +0300 Subject: [PATCH 065/201] Fix --- .../run-advanced-query-sample-power-bi-app-token.md | 6 +++--- .../run-advanced-query-sample-power-bi-user-token.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md index 6613b39e3c..39bde0a8c5 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 30/07/2018 --- -# Create custom reports using Power BI +# Create custom reports using Power BI (app authentication) Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. -In this section we share Power BI query sample to run a query using application token. +In this section we share Power BI query sample to run a query using **application token**. -If you want to use user token instead please refer to [this](run-advanced-query-sample-power-bi-user-token.md) tutorial. +If you want to use **user token** instead please refer to [this](run-advanced-query-sample-power-bi-user-token.md) tutorial. >**Prerequisite**: You first need to [create an app](exposed-apis-create-app-webapp.md). diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md index c7ab12996f..aa6da165e7 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 30/07/2018 --- -# Create custom reports using Power BI +# Create custom reports using Power BI (user authentication) Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. -In this section we share Power BI query sample to run a query using user token. +In this section we share Power BI query sample to run a query using **user token**. -If you want to use application token instead please refer to [this](run-advanced-query-sample-power-bi-app-token.md) tutorial. +If you want to use **application token** instead please refer to [this](run-advanced-query-sample-power-bi-app-token.md) tutorial. >**Prerequisite**: You first need to [create an app](exposed-apis-create-app-nativeapp.md). From c9dc41dc35c3c4ed7809e6060a99af8f4d8af3ca Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Sat, 25 Aug 2018 16:46:20 -0700 Subject: [PATCH 066/201] content edits --- .../exposed-apis-create-app-nativeapp.md | 11 +++++------ .../exposed-apis-create-app-webapp.md | 15 ++++++--------- .../windows-defender-atp/exposed-apis-intro.md | 17 +++++++---------- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 06c9891fa8..7cb9fa31b2 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -10,22 +10,21 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 30/07/2018 +ms.date: 09/03/2018 --- # Use Windows Defender ATP APIs **Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) + +[!include[Prerelease information](prerelease.md)] + + This pages describes how to create an application to get programmatical access to Windows Defender ATP on behalf of a user. If you need programmatical access Windows Defender ATP without a user, please refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 8d0dee467f..fd70a944f0 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -1,5 +1,5 @@ --- -title: Use Windows Defender Advanced Threat Protection APIs +title: Create an app to access Windows Defender ATP without a user description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query search.product: eADQiWindows 10XVcnh @@ -10,29 +10,26 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 30/07/2018 +ms.date: 09/03/2018 --- # Create an app to access Windows Defender ATP without a user **Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) +[!include[Prerelease information](prerelease.md)] + This pages describes how to create an application to get programmatical access to Windows Defender ATP without a user. If you need programmatical access Windows Defender ATP on behalf of a user, please refer to [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) -If you are not sure which access you need, you'd better read the [Introduction page](exposed-apis-intro.md) +If you are not sure which access you need, see [Use Windows Defender ATP APIs](exposed-apis-intro.md). -Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). +Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will help you automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). In general, you’ll need to take the following steps to use the APIs: - Create an app diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md index ccf0c67cdb..9afd0591c4 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md @@ -10,22 +10,19 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 30/07/2018 +ms.date: 09/03/2018 --- # Use Windows Defender ATP APIs **Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education - Windows Defender Advanced Threat Protection (Windows Defender ATP) >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) +[!include[Prerelease information](prerelease.md)] + Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). In general, you’ll need to take the following steps to use the APIs: @@ -34,18 +31,18 @@ In general, you’ll need to take the following steps to use the APIs: - Use the token to access Windows Defender ATP API -As a developer, you decide which permissions for Windows Defender ATP your app requests. When a user signs in to your app he (or, in some cases, an administrator) is given a chance to consent to these permissions. If the user consents, your app is given access to the resources and APIs that it has requested. For apps that don't take a signed-in user, permissions can be pre-consented to by an administrator when the app is installed or during sign-up. +As a developer, you decide which permissions for Windows Defender ATP your app requests. When a user signs in to your app they (or, in some cases, an administrator) are given a chance to give consent to these permissions. If the user provides consent, your app is given access to the resources and APIs that it has requested. For apps that don't take a signed-in user, permissions can be pre-approved to by an administrator when the app is installed or during sign-up. -##Delegated permissions, Application permissions, and effective permissions +# #Delegated permissions, application permissions, and effective permissions Windows Defender ATP has two types of permissions: delegated permissions and application permissions. -- Delegated permissions are used by apps that have a signed-in user present. For these apps either the user or an administrator consents to the permissions that the app requests and the app is delegated permission to act as the signed-in user when making calls to Windows Defender ATP. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require administrator consent. +- Delegated permissions are used by apps that have a signed-in user present. For these apps either the user or an administrator provides consent to the permissions that the app requests and the app is delegated permission to act as the signed-in user when making calls to Windows Defender ATP. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require administrator consent. - Application permissions are used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Application permissions can only be consented by an administrator. Effective permissions are the permissions that your app will have when making requests to Windows Defender ATP. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to Windows Defender ATP. -- For delegated permissions, the effective permissions of your app will be the least privileged intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Your app can never have more privileges than the signed-in user. Within organizations, the privileges of the signed-in user may be determined by policy or by membership in one or more administrator roles. For more information about administrator roles, see [Assigning administrator roles in Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-assign-admin-roles). +- For delegated permissions, the effective permissions of your app will be the least privileged intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Your app can never have more privileges than the signed-in user. Within organizations, the privileges of the signed-in user may be determined by policy or by membership in one or more administrator roles. For more information about administrator roles, see [Assigning administrator roles in Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-assign-admin-roles). For example, assume your app has been granted the Machine.CollectForensics delegated permission. This permission nominally grants your app permission to collect investigation package from a machine. If the signed-in user has 'Alerts Investigation' permission, your app will be able to collect investigation package from a machine, if the machine belongs to a group the user is exposed to. However, if the signed-in user doesn't have 'Alerts Investigation' permission, your app won't be able to collect investigation package from any machine. From 6f6c7b9576691186d8f328d0bf637678ece8a564 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Sat, 25 Aug 2018 16:47:00 -0700 Subject: [PATCH 067/201] update --- .../windows-defender-atp/exposed-apis-create-app-webapp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index fd70a944f0..dc17193063 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -197,7 +197,7 @@ Sanity check to make sure you got a correct token: ## Use the token to access Windows Defender ATP API -- Choose the API you want to use - [Supported Windows Defender ATP APIs](exposed-apis-list.md) +- Choose the API you want to use, for more information, see [Supported Windows Defender ATP APIs](exposed-apis-list.md) - Set the Authorization header in the Http request you send to "Bearer {token}" (Bearer is the Authorization scheme) - The Expiration time of the token is 1 hour (you can send more then one request with the same token) From 1b2b3977c72158eb47833706eec5bf0ea5d89e0b Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Thu, 30 Aug 2018 16:48:32 -0700 Subject: [PATCH 068/201] add missing file --- .../run-advanced-query-sample-power-bi.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md new file mode 100644 index 0000000000..d3abe10318 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md @@ -0,0 +1,131 @@ +--- +title: Advanced Hunting API +description: Use this API to run advanced queries +keywords: apis, supported apis, advanced hunting, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 30/07/2018 +--- + +# Create custom reports using Power BI + +Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. + +In this section we share Power BI query sample to run a query using application token. + +>**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). + +## Run a query + +- Open Microsoft Power BI + +- Click **Get Data** > **Blank Query** + + ![Image of create blank query](images/power-bi-create-blank-query.png) + +- Click **Advanced Editor** + + ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) + +- Copy the below and paste it in the editor, after you update the values of _TenantId, _AppId, _AppSecret, _Query + + ``` + let + + TenantId = "00000000-0000-0000-0000-000000000000", // Paste your own tenant ID here + AppId = "11111111-1111-1111-1111-111111111111", // Paste your own app ID here + AppSecret = "22222222-2222-2222-2222-222222222222", // Paste your own app secret here + Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", // Paste your own query here + + ResourceAppIdUrl = "https://securitycenter.onmicrosoft.com/windowsatpservice", + OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""), + + Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="), + ClientId = Text.Combine({"client_id", AppId}, "="), + ClientSecret = Text.Combine({"client_secret", Uri.EscapeDataString(AppSecret)}, "="), + GrantType = Text.Combine({"grant_type", "client_credentials"}, "="), + + Body = Text.Combine({Resource, ClientId, ClientSecret, GrantType}, "&"), + + AuthResponse= Json.Document(Web.Contents(OAuthUrl, [Content=Text.ToBinary(Body)])), + AccessToken= AuthResponse[access_token], + Bearer = Text.Combine({"Bearer", AccessToken}, " "), + + AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query", + + Response = Json.Document(Web.Contents( + AdvancedHuntingUrl, + [ + Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer], + Content=Json.FromValue(Query) + ] + )), + + TypeMap = #table( + { "Type", "PowerBiType" }, + { + { "Double", Double.Type }, + { "Int64", Int64.Type }, + { "Int32", Int32.Type }, + { "Int16", Int16.Type }, + { "UInt64", Number.Type }, + { "UInt32", Number.Type }, + { "UInt16", Number.Type }, + { "Byte", Byte.Type }, + { "Single", Single.Type }, + { "Decimal", Decimal.Type }, + { "TimeSpan", Duration.Type }, + { "DateTime", DateTimeZone.Type }, + { "String", Text.Type }, + { "Boolean", Logical.Type }, + { "SByte", Logical.Type }, + { "Guid", Text.Type } + }), + + Schema = Table.FromRecords(Response[Schema]), + TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}), + Results = Response[Results], + Rows = Table.FromRecords(Results, Schema[Name]), + Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}})) + + in Table + + ``` + +- Click **Done** + + ![Image of create advanced query](images/power-bi-create-advanced-query.png) + +- Click **Edit Credentials** + + ![Image of edit credentials](images/power-bi-edit-credentials.png) + +- Select **Anonymous** and click **Connect** + + ![Image of set credentials](images/power-bi-set-credentials.png) + +- Repeat the previous step for the second URL + +- Click **Continue** + + ![Image of edit data privacy](images/power-bi-edit-data-privacy.png) + +- Select the privacy level you want and click **Save** + + ![Image of set data privacy](images/power-bi-set-data-privacy.png) + +- View the results of your query + + ![Image of query results](images/power-bi-query-results.png) + +## Related topic +- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Advanced Hunting API](run-advanced-query-api.md) +- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) +- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) From fb976635379a627105d28ef763d1af7e8a8493c8 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 2 Sep 2018 09:15:49 +0300 Subject: [PATCH 069/201] WDATP API - Fixes --- .../windows-defender-atp/TOC.md | 2 +- .../exposed-apis-full-sample-powershell.md | 25 ++-- .../run-advanced-query-sample-power-bi.md | 131 ------------------ 3 files changed, 10 insertions(+), 148 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 37387715ac..bd3158924c 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -158,7 +158,7 @@ ###### [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.md) +###### [Create custom Power BI reports](run-advanced-query-sample-power-bi-app-token.md) ##### Multiple APIs ###### [PowerShell](exposed-apis-full-sample-powershell.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md index cc35edb442..3983803de5 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md @@ -20,8 +20,7 @@ Full scenario using multiple APIs from Windows Defender ATP. In this section we share PowerShell samples to - Retrieve a token - Use token to retrieve the latest alerts in Windows Defender ATP - - Run a query to retrieve command line of the process related to the alert, if the alert has medium priority and is still in progress - - Remediate the machine related to the alert if teh command line + - For each alert, if the alert has medium or high priority and is still in progress, check how many times the machine has connected to suspicious URL. >**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). @@ -42,22 +41,17 @@ Set-ExecutionPolicy -ExecutionPolicy Bypass > - $tenantId: ID of the tenant on behalf of which you want to run the query (i.e., the query will be run on the data of this tenant) > - $appId: ID of your AAD app (the app must have 'Run advanced queries' permission to WDATP) > - $appSecret: Secret of your AAD app - - -$tenantId = 'b3c1b5fc-828c-45fa-a1e1-10d74f6d6e9c' -$appId = 'c71cd133-0e50-4bd4-a1a8-ec14152af1c4' -$appSecret = '8zFkg61mDxH7DuMGFJHZd6CRr9J5HNMuJGIV6p0shMY=' - +> - $suspiciousUrl: The URL ``` $tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here $appId = '11111111-1111-1111-1111-111111111111' # Paste your own app ID here $appSecret = '22222222-2222-2222-2222-222222222222' # Paste your own app secret here +$suspiciousUrl = 'www.suspiciousUrl.com' # Paste your own URL here $resourceAppIdUri = 'https://securitycenter.onmicrosoft.com/windowsatpservice' -$oAuthUri = "https://login.windows-ppe.net/$TenantId/oauth2/token" -# TODO!!!!!!!!! $oAuthUri = "https://login.windows.net/$TenantId/oauth2/token" +$oAuthUri = "https://login.windows.net/$TenantId/oauth2/token" $authBody = [Ordered] @{ resource = "$resourceAppIdUri" client_id = "$appId" @@ -69,8 +63,7 @@ $aadToken = $authResponse.access_token #Get latest alert -$alertUrl = "https://wdatpapi-eus-stg.cloudapp.net/api/alerts?`$top=10" -# TODO!!!!!!!!! $alertUrl = "https://api.securitycenter.windows.com/api/alerts?`$top=10" +$alertUrl = "https://api.securitycenter.windows.com/api/alerts?`$top=10" $headers = @{ 'Content-Type' = 'application/json' Accept = 'application/json' @@ -83,7 +76,7 @@ $machinesToInvestigate = New-Object System.Collections.ArrayList Foreach($alert in $alerts) { - echo $alert.id $alert.machineId $alert.severity $alert.status + #echo $alert.id $alert.machineId $alert.severity $alert.status $isSevereAlert = $alert.severity -in 'Medium', 'High' $isOpenAlert = $alert.status -in 'InProgress', 'New' @@ -100,15 +93,15 @@ $commaSeparatedMachines = '"{0}"' -f ($machinesToInvestigate -join '","') $query = "NetworkCommunicationEvents | where MachineId in ($commaSeparatedMachines) -| where RemoteUrl == `"www.bing.com`" +| where RemoteUrl == `"$suspiciousUrl`" | summarize ConnectionsCount = count() by MachineId" -$queryUrl = "https://wdatpapi-eus-stg.cloudapp.net/advancedqueries/query" -# TODO!!!!!!!!! $queryUrl = "https://api.securitycenter.windows.com/advancedqueries/query" +$queryUrl = "https://api.securitycenter.windows.com/advancedqueries/query" $queryBody = ConvertTo-Json -InputObject $query $queryResponse = Invoke-WebRequest -Method Post -Uri $queryUrl -Headers $headers -Body $queryBody -ErrorAction Stop $response = ($queryResponse | ConvertFrom-Json).Results +$response ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md deleted file mode 100644 index d3abe10318..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi.md +++ /dev/null @@ -1,131 +0,0 @@ ---- -title: Advanced Hunting API -description: Use this API to run advanced queries -keywords: apis, supported apis, advanced hunting, query -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 30/07/2018 ---- - -# Create custom reports using Power BI - -Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. - -In this section we share Power BI query sample to run a query using application token. - ->**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). - -## Run a query - -- Open Microsoft Power BI - -- Click **Get Data** > **Blank Query** - - ![Image of create blank query](images/power-bi-create-blank-query.png) - -- Click **Advanced Editor** - - ![Image of open advanced editor](images/power-bi-open-advanced-editor.png) - -- Copy the below and paste it in the editor, after you update the values of _TenantId, _AppId, _AppSecret, _Query - - ``` - let - - TenantId = "00000000-0000-0000-0000-000000000000", // Paste your own tenant ID here - AppId = "11111111-1111-1111-1111-111111111111", // Paste your own app ID here - AppSecret = "22222222-2222-2222-2222-222222222222", // Paste your own app secret here - Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", // Paste your own query here - - ResourceAppIdUrl = "https://securitycenter.onmicrosoft.com/windowsatpservice", - OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""), - - Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="), - ClientId = Text.Combine({"client_id", AppId}, "="), - ClientSecret = Text.Combine({"client_secret", Uri.EscapeDataString(AppSecret)}, "="), - GrantType = Text.Combine({"grant_type", "client_credentials"}, "="), - - Body = Text.Combine({Resource, ClientId, ClientSecret, GrantType}, "&"), - - AuthResponse= Json.Document(Web.Contents(OAuthUrl, [Content=Text.ToBinary(Body)])), - AccessToken= AuthResponse[access_token], - Bearer = Text.Combine({"Bearer", AccessToken}, " "), - - AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query", - - Response = Json.Document(Web.Contents( - AdvancedHuntingUrl, - [ - Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer], - Content=Json.FromValue(Query) - ] - )), - - TypeMap = #table( - { "Type", "PowerBiType" }, - { - { "Double", Double.Type }, - { "Int64", Int64.Type }, - { "Int32", Int32.Type }, - { "Int16", Int16.Type }, - { "UInt64", Number.Type }, - { "UInt32", Number.Type }, - { "UInt16", Number.Type }, - { "Byte", Byte.Type }, - { "Single", Single.Type }, - { "Decimal", Decimal.Type }, - { "TimeSpan", Duration.Type }, - { "DateTime", DateTimeZone.Type }, - { "String", Text.Type }, - { "Boolean", Logical.Type }, - { "SByte", Logical.Type }, - { "Guid", Text.Type } - }), - - Schema = Table.FromRecords(Response[Schema]), - TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}), - Results = Response[Results], - Rows = Table.FromRecords(Results, Schema[Name]), - Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}})) - - in Table - - ``` - -- Click **Done** - - ![Image of create advanced query](images/power-bi-create-advanced-query.png) - -- Click **Edit Credentials** - - ![Image of edit credentials](images/power-bi-edit-credentials.png) - -- Select **Anonymous** and click **Connect** - - ![Image of set credentials](images/power-bi-set-credentials.png) - -- Repeat the previous step for the second URL - -- Click **Continue** - - ![Image of edit data privacy](images/power-bi-edit-data-privacy.png) - -- Select the privacy level you want and click **Save** - - ![Image of set data privacy](images/power-bi-set-data-privacy.png) - -- View the results of your query - - ![Image of query results](images/power-bi-query-results.png) - -## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) -- [Advanced Hunting API](run-advanced-query-api.md) -- [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) -- [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) From d0d57aae1474beeebcc4876b9dd08834b1777080 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 17 Sep 2018 16:13:50 +0300 Subject: [PATCH 070/201] Advanced Hunting - Fix code samples after WDATP service change --- .../exposed-apis-full-sample-powershell.md | 2 +- .../windows-defender-atp/run-advanced-query-api.md | 4 ++-- .../run-advanced-query-sample-power-bi-app-token.md | 2 +- .../run-advanced-query-sample-powershell.md | 2 +- .../windows-defender-atp/run-advanced-query-sample-python.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md index 3983803de5..01f1b37243 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md @@ -98,7 +98,7 @@ $query = "NetworkCommunicationEvents $queryUrl = "https://api.securitycenter.windows.com/advancedqueries/query" -$queryBody = ConvertTo-Json -InputObject $query +$queryBody = ConvertTo-Json -InputObject @{ 'Query' = $query } $queryResponse = Invoke-WebRequest -Method Post -Uri $queryUrl -Headers $headers -Body $queryBody -ErrorAction Stop $response = ($queryResponse | ConvertFrom-Json).Results $response diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index b53851bf20..c6dde9776c 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -77,11 +77,11 @@ Here is an example of the request. POST https://api.securitycenter.windows.com/advancedqueries/query Content-type: application/json { - "ProcessCreationEvents + "Query":"ProcessCreationEvents | where InitiatingProcessFileName =~ \"powershell.exe\" | where ProcessCommandLine contains \"appdata\" | project EventTime, FileName, InitiatingProcessFileName -| limit 2"​ +| limit 2" } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md index 39bde0a8c5..c20268f3b5 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md @@ -65,7 +65,7 @@ If you want to use **user token** instead please refer to [this](run-advanced-qu AdvancedHuntingUrl, [ Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer], - Content=Json.FromValue(Query) + Content=Json.FromValue([#"Query"=Query]) ] )), diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md index 0bb63ec221..982fec1b38 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md @@ -71,7 +71,7 @@ $headers = @{ Accept = 'application/json' Authorization = "Bearer $aadToken" } -$body = ConvertTo-Json -InputObject $query +$body = ConvertTo-Json -InputObject @{ 'Query' = $query } $webResponse = Invoke-WebRequest -Method Post -Uri $url -Headers $headers -Body $body -ErrorAction Stop $response = $webResponse | ConvertFrom-Json $results = $response.Results diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md index 0f07bf3b7d..d0c7fc7712 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md @@ -74,7 +74,7 @@ headers = { 'Authorization' : "Bearer " + aadToken } -data = json.dumps(query).encode("utf-8") +data = json.dumps({ 'Query' : query }).encode("utf-8") req = urllib.request.Request(url, data, headers) response = urllib.request.urlopen(req) From 558667a073c30f8a0c1b094a2796ca46409a9d0e Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 21 Sep 2018 14:29:22 -0700 Subject: [PATCH 071/201] warning --- windows/security/threat-protection/TOC.md | 2 +- .../improverequestperformance-new.md | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index efc971485b..ed1bced79b 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -51,7 +51,7 @@ #####Machines list ###### [View and organize the Machines list](windows-defender-atp/machines-view-overview-windows-defender-advanced-threat-protection.md) -###### [Manage machine group and tags](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#manage-machine-group-and-tags) +###### [Manage machine group and tags](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md) ###### [Alerts related to this machine](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#alerts-related-to-this-machine) ###### [Machine timeline](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#machine-timeline) ####### [Search for specific events](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#search-for-specific-events) diff --git a/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md b/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md index 169b2ffb46..afb2f9bbdd 100644 --- a/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md +++ b/windows/security/threat-protection/windows-defender-atp/improverequestperformance-new.md @@ -1,7 +1,21 @@ --- -ms.date: 08/28/2017 -author: zavidor +title: +description: +keywords: +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 04/24/2018 --- + +# Improve request performance + + >[!NOTE] >For better performance, you can use server closer to your geo location: > - api-us.securitycenter.windows.com From 56c2a8c16074ffcf9e947b1d78b5153decd6d335 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 21 Sep 2018 17:01:04 -0700 Subject: [PATCH 072/201] add beta apis --- windows/security/threat-protection/TOC.md | 160 +++++++++++++++-- .../windows-defender-atp/TOC.md | 168 +++++++++++++++++- 2 files changed, 308 insertions(+), 20 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index d300cff5df..70ad8183e2 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -78,11 +78,12 @@ #### [Management and APIs](windows-defender-atp/management-apis.md) ##### [Understand threat intelligence concepts](windows-defender-atp/threat-indicator-concepts-windows-defender-advanced-threat-protection.md) -##### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) -######Actor + +##### [TO BE DEPRECATED - Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) +######Actor - TO BE DEPRECATED ####### [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) ####### [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -######Alerts +######Alerts - TO BE DEPRECATED ####### [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) ####### [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) ####### [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) @@ -90,13 +91,13 @@ ####### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) ####### [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) ####### [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -#######Domain +#######Domain - TO BE DEPRECATED ######## [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) ######## [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) ######## [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) ######## [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -######File +######File - TO BE DEPRECATED ####### [Block file API](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) ####### [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) ####### [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) @@ -105,12 +106,12 @@ ####### [Get FileActions collection API](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) ####### [Unblock file API](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) -######IP +######IP - TO BE DEPRECATED ####### [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) ####### [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) ####### [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) ####### [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) -######Machines +######Machines - TO BE DEPRECATED ####### [Collect investigation package API](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) ####### [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) ####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) @@ -131,14 +132,14 @@ ####### [Run antivirus scan API](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) ####### [Stop and quarantine file API](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) -######User +######User - TO BE DEPRECATED ####### [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) ####### [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) ####### [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) ####### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) -##### [Managed service provider provider support](windows-defender-atp/mssp-support-windows-defender-advanced-threat-protection.md) +##### [Managed security service provider support](windows-defender-atp/mssp-support-windows-defender-advanced-threat-protection.md) #### [Microsoft threat protection](windows-defender-atp/threat-protection-integration.md) ##### [Protect users, data, and devices with conditional access](windows-defender-atp/conditional-access-windows-defender-advanced-threat-protection.md) @@ -277,9 +278,146 @@ ###### [Troubleshoot onboarding issues](windows-defender-atp/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) ####### [Troubleshoot subscription and portal access issues](windows-defender-atp/troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -##### API for custom alerts +##### [**Beta!** Windows Defender ATP APIs](windows-defender-atp/exposed-apis-intro.md) +###### Create your app +####### [Get access on behalf of a user](windows-defender-atp/exposed-apis-create-app-nativeapp.md) +####### [Get access without a user](windows-defender-atp/exposed-apis-create-app-webapp.md) +###### [Supported Windows Defender ATP APIs](windows-defender-atp/exposed-apis-list.md) +####### [Advanced Hunting](windows-defender-atp/run-advanced-query-api.md) + +####### [Alert](windows-defender-atp/alerts-windows-defender-advanced-threat-protection-new.md) +######## [List alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md) +######## [Create alert](windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md) +######## [Update Alert](windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md) +######## [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) +######## [Get alert related domains information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md) +######## [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) +######## [Get alert related IPs information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) +######## [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) +######## [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) + +####### Domain +######## [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md) +######## [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md) +######## [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md) +######## [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md) + +####### [File](windows-defender-atp/files-windows-defender-advanced-threat-protection-new.md) +######## [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md) +######## [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md) +######## [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md) +######## [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md) + +####### IP +######## [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md) +######## [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md) +######## [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md) +######## [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md) + +####### [Machine](windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md) +######## [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md) +######## [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md) +######## [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) +######## [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) + +####### [Machine Action](windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md) +######## [List MachineActions](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) +######## [Get MachineAction](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md) +######## [Collect investigation package](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md) +######## [Get investigation package SAS URI](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md) +######## [Isolate machine](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md) +######## [Release machine from isolation](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md) +######## [Restrict app execution](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md) +######## [Remove app restriction](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md) +######## [Run antivirus scan](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md) +######## [Offboard machine](windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md) + +####### [User](windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md) +######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) +######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) + +###### How to use APIs - Samples +####### Advanced Hunting API +######## [Schedule advanced Hunting using Microsoft Flow](windows-defender-atp/run-advanced-query-sample-ms-flow.md) +######## [Advanced Hunting using PowerShell](windows-defender-atp/run-advanced-query-sample-powershell.md) +######## [Advanced Hunting using Python](windows-defender-atp/run-advanced-query-sample-python.md) +######## [Create custom Power BI reports](windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md) +####### Multiple APIs +######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) + +##### [Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +###### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) +#######Actor +######## [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) +######## [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +#######Alerts +######## [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) +######## [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######## [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +#######Domain +######## [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) +######## [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) + +#######File +######## [Block file](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +######## [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) +######## [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) +######## [Get FileActions collection](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) +######## [Unblock file](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) + +#######IP +######## [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) +######## [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) +#######Machines +######## [Collect investigation package](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) +######## [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +######## [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineAction object](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineActions collection](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) +######## [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +######## [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get MachineAction object](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get MachineActions collection](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######## [Get package SAS URI](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) +######## [Isolate machine](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) +######## [Release machine from isolation](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) +######## [Remove app restriction](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Request sample](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) +######## [Restrict app execution](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Run antivirus scan](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) +######## [Stop and quarantine file](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) + +#######User +######## [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +######## [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) +######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) + + + + + + + + + + + +##### TO BE DEPRECATED - API for custom alerts ###### [Enable the custom threat intelligence application](windows-defender-atp/enable-custom-ti-windows-defender-advanced-threat-protection.md) -###### [Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +###### [TO BE DEPRECATED Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ####### [Use the threat intelligence API to create custom alerts](windows-defender-atp/use-custom-ti-windows-defender-advanced-threat-protection.md) ####### [Create custom threat intelligence alerts](windows-defender-atp/custom-ti-api-windows-defender-advanced-threat-protection.md) ####### [PowerShell code examples](windows-defender-atp/powershell-example-code-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index ab294c45ed..f3b08f98b0 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -78,10 +78,10 @@ ### [Management and APIs](management-apis.md) #### [Understand threat intelligence concepts](threat-indicator-concepts-windows-defender-advanced-threat-protection.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) -#####Actor +#####Actor - TO BE DEPRECATED ###### [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) ###### [Get actor related alerts](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -#####Alerts +#####Alerts - TO BE DEPRECATED ###### [Get alerts](get-alerts-windows-defender-advanced-threat-protection.md) ###### [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) ###### [Get alert related actor information](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) @@ -89,13 +89,13 @@ ###### [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) ###### [Get alert related IP information](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) ###### [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -######Domain +######Domain - TO BE DEPRECATED ####### [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) ####### [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection.md) ####### [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection.md) ####### [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -#####File +#####File - TO BE DEPRECATED ###### [Block file API](block-file-windows-defender-advanced-threat-protection.md) ###### [Get file information](get-file-information-windows-defender-advanced-threat-protection.md) ###### [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection.md) @@ -104,12 +104,12 @@ ###### [Get FileActions collection API](get-fileactions-collection-windows-defender-advanced-threat-protection.md) ###### [Unblock file API](unblock-file-windows-defender-advanced-threat-protection.md) -#####IP +#####IP - TO BE DEPRECATED ###### [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) ###### [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection.md) ###### [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection.md) ###### [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection.md) -#####Machines +#####Machines - TO BE DEPRECATED ###### [Collect investigation package API](collect-investigation-package-windows-defender-advanced-threat-protection.md) ###### [Find machine information by IP](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) ###### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) @@ -130,14 +130,14 @@ ###### [Run antivirus scan API](run-av-scan-windows-defender-advanced-threat-protection.md) ###### [Stop and quarantine file API](stop-quarantine-file-windows-defender-advanced-threat-protection.md) -#####User +#####User - TO BE DEPRECATED ###### [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) ###### [Get user information](get-user-information-windows-defender-advanced-threat-protection.md) ###### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection.md) ###### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection.md) -#### [Managed service provider provider support](mssp-support-windows-defender-advanced-threat-protection.md) +#### [Managed security service provider support](mssp-support-windows-defender-advanced-threat-protection.md) ### [Microsoft threat protection](threat-protection-integration.md) @@ -274,7 +274,157 @@ ##### [Troubleshoot onboarding issues](troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) ###### [Troubleshoot subscription and portal access issues](troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -#### API for custom alerts + +#### [**Beta!** Windows Defender ATP APIs](exposed-apis-intro.md) +##### Create your app +###### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) +###### [Get access without a user](exposed-apis-create-app-webapp.md) +##### [Supported Windows Defender ATP APIs](exposed-apis-list.md) +###### [Advanced Hunting](run-advanced-query-api.md) + +###### [Alert](alerts-windows-defender-advanced-threat-protection-new.md) +####### [List alerts](get-alerts-windows-defender-advanced-threat-protection-new.md) +####### [Create alert](create-alert-by-reference-windows-defender-advanced-threat-protection-new.md) +####### [Update Alert](update-alert-windows-defender-advanced-threat-protection-new.md) +####### [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md) +####### [Get alert related domains information](get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md) +####### [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md) +####### [Get alert related IPs information](get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md) +####### [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md) +####### [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md) + +###### Domain +####### [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md) +####### [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection-new.md) +####### [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection-new.md) +####### [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md) + +###### [File](files-windows-defender-advanced-threat-protection-new.md) +####### [Get file information](get-file-information-windows-defender-advanced-threat-protection-new.md) +####### [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection-new.md) +####### [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection-new.md) +####### [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection-new.md) + +###### IP +####### [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md) +####### [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection-new.md) +####### [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection-new.md) +####### [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection-new.md) + +###### [Machine](machine-windows-defender-advanced-threat-protection-new.md) +####### [Get machines](get-machines-windows-defender-advanced-threat-protection-new.md) +####### [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection-new.md) +####### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) +####### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) + +###### [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) +####### [List MachineActions](get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) +####### [Get MachineAction](get-machineaction-object-windows-defender-advanced-threat-protection-new.md) +####### [Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new.md) +####### [Get investigation package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection-new.md) +####### [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection-new.md) +####### [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection-new.md) +####### [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection-new.md) +####### [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md) +####### [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection-new.md) +####### [Offboard machine](offboard-machine-api-windows-defender-advanced-threat-protection-new.md) + +###### [User](user-windows-defender-advanced-threat-protection-new.md) +####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) +####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) + +##### 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 +####### [PowerShell](exposed-apis-full-sample-powershell.md) + +#### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) +##### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) +######Actor +####### [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) +####### [Get actor related alerts](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +######Alerts +####### [Get alerts](get-alerts-windows-defender-advanced-threat-protection.md) +####### [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +####### [Get alert related actor information](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related domain information](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related IP information](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +######Domain +####### [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection.md) +####### [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) + +######File +####### [Block file](block-file-windows-defender-advanced-threat-protection.md) +####### [Get file information](get-file-information-windows-defender-advanced-threat-protection.md) +####### [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection.md) +####### [Get FileActions collection](get-fileactions-collection-windows-defender-advanced-threat-protection.md) +####### [Unblock file](unblock-file-windows-defender-advanced-threat-protection.md) + +######IP +####### [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection.md) +####### [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection.md) +######Machines +####### [Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection.md) +####### [Find machine information by IP](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +####### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) +####### [Get FileMachineAction object](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +####### [Get FileMachineActions collection](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +####### [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection.md) +####### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +####### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get MachineAction object](get-machineaction-object-windows-defender-advanced-threat-protection.md) +####### [Get MachineActions collection](get-machineactions-collection-windows-defender-advanced-threat-protection.md) +####### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) +####### [Get package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection.md) +####### [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection.md) +####### [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection.md) +####### [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +####### [Request sample](request-sample-windows-defender-advanced-threat-protection.md) +####### [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection.md) +####### [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection.md) +####### [Stop and quarantine file](stop-quarantine-file-windows-defender-advanced-threat-protection.md) + +######User +####### [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +####### [Get user information](get-user-information-windows-defender-advanced-threat-protection.md) +####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection.md) + + + + + + + + + + + + + + + + + + + + + + + +#### TO BE DEPRECATED - API for custom alerts ##### [Enable the custom threat intelligence application](enable-custom-ti-windows-defender-advanced-threat-protection.md) ##### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Use the threat intelligence API to create custom alerts](use-custom-ti-windows-defender-advanced-threat-protection.md) From e0a623d24f47d750e4d4922ef911be56cb4e6de0 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 24 Sep 2018 14:43:47 -0700 Subject: [PATCH 073/201] update images --- .../exposed-apis-create-app-nativeapp.md | 23 ++++++++++-------- .../exposed-apis-intro.md | 14 ++++++----- .../images/nativeapp-add-permission.png | Bin 50358 -> 48607 bytes .../images/nativeapp-get-appid.png | Bin 20758 -> 18968 bytes .../images/nativeapp-select-permissions.png | Bin 52601 -> 50864 bytes .../images/webapp-add-permission-2.png | Bin 14912 -> 16185 bytes 6 files changed, 21 insertions(+), 16 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 7cb9fa31b2..3c5d8c3321 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -25,11 +25,11 @@ ms.date: 09/03/2018 [!include[Prerelease information](prerelease.md)] -This pages describes how to create an application to get programmatical access to Windows Defender ATP on behalf of a user. +These pages describe how to create an application to get programmatical access to Windows Defender ATP on behalf of a user. -If you need programmatical access Windows Defender ATP without a user, please refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md) +If you need programmatical access Windows Defender ATP without a user, refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md). -If you are not sure which access you need, you'd better read the [Introduction page](exposed-apis-intro.md) +If you are not sure which access you need, read the [Introduction page](exposed-apis-intro.md). Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). @@ -40,10 +40,12 @@ In general, you’ll need to take the following steps to use the APIs: This page explains how to create an app, get an access token to Windows Defender ATP and validate the token includes the required permission. -**Note**: When accessing WDATP API on behalf of a user, you will need the correct app permission and user permission. -If you are not familiar with user permissions on WDATP, please refer to [Manage portal access using role-based access control](rbac-windows-defender-advanced-threat-protection.md) +>[!NOTE] +> When accessing Windows Defender ATP API on behalf of a user, you will need the correct app permission and user permission. +> If you are not familiar with user permissions on Windows Defender ATP, see [Manage portal access using role-based access control](rbac-windows-defender-advanced-threat-protection.md). -**Rule of thumb for user permissions:** If you have the permission to perform an action in the portal, you have the permission to perform the action in the API. +>[!TIP] +> If you have the permission to perform an action in the portal, you have the permission to perform the action in the API. ## Create an app @@ -74,16 +76,17 @@ If you are not familiar with user permissions on WDATP, please refer to [Manage 6. Click **Select permissions** > check **Read alerts** & **Collect forensics** > **Select**. - **Important note**: You need to select the relevant permissions. 'Read alerts' and 'Collect forensics' are only an example! + >[!IMPORTANT] + >You need to select the relevant permissions. 'Read alerts' and 'Collect forensics' are only an example. ![Image of select permissions](images/nativeapp-select-permissions.png) For instance, - - In order to [run advanced queries](run-advanced-query-api.md), check 'Run advanced queries' permission - - In order to [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), check 'Isolate machine' permission + - To [run advanced queries](run-advanced-query-api.md), select 'Run advanced queries' permission + - To [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), select 'Isolate machine' permission - To determine which permission you need, please look at the **Permissions** section in the API you are interested to call. + To determine which permission you need, look at the **Permissions** section in the API you are interested to call. 7. Click **Done** diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md index 9afd0591c4..0108565f75 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md @@ -33,20 +33,22 @@ In general, you’ll need to take the following steps to use the APIs: As a developer, you decide which permissions for Windows Defender ATP your app requests. When a user signs in to your app they (or, in some cases, an administrator) are given a chance to give consent to these permissions. If the user provides consent, your app is given access to the resources and APIs that it has requested. For apps that don't take a signed-in user, permissions can be pre-approved to by an administrator when the app is installed or during sign-up. -# #Delegated permissions, application permissions, and effective permissions +## Delegated permissions, application permissions, and effective permissions Windows Defender ATP has two types of permissions: delegated permissions and application permissions. -- Delegated permissions are used by apps that have a signed-in user present. For these apps either the user or an administrator provides consent to the permissions that the app requests and the app is delegated permission to act as the signed-in user when making calls to Windows Defender ATP. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require administrator consent. -- Application permissions are used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Application permissions can only be consented by an administrator. +- **Delegated permissions**
      + Used by apps that have a signed-in user present. For these apps either the user or an administrator provides consent to the permissions that the app requests and the app is delegated permission to act as the signed-in user when making calls to Windows Defender ATP. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require administrator consent. +- **Application permissions**
      + Used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Application permissions can only be consented by an administrator. -Effective permissions are the permissions that your app will have when making requests to Windows Defender ATP. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to Windows Defender ATP. +Effective permissions are permissions that your app will have when making requests to Windows Defender ATP. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to Windows Defender ATP. - For delegated permissions, the effective permissions of your app will be the least privileged intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Your app can never have more privileges than the signed-in user. Within organizations, the privileges of the signed-in user may be determined by policy or by membership in one or more administrator roles. For more information about administrator roles, see [Assigning administrator roles in Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-assign-admin-roles). - For example, assume your app has been granted the Machine.CollectForensics delegated permission. This permission nominally grants your app permission to collect investigation package from a machine. If the signed-in user has 'Alerts Investigation' permission, your app will be able to collect investigation package from a machine, if the machine belongs to a group the user is exposed to. However, if the signed-in user doesn't have 'Alerts Investigation' permission, your app won't be able to collect investigation package from any machine. + For example, assume your app has been granted the `Machine.CollectForensics` delegated permission. This permission nominally grants your app permission to collect investigation package from a machine. If the signed-in user has 'Alerts Investigation' permission, your app will be able to collect investigation package from a machine, if the machine belongs to a group the user is exposed to. However, if the signed-in user doesn't have 'Alerts Investigation' permission, your app won't be able to collect investigation package from any machine. -- For application permissions, the effective permissions of your app will be the full level of privileges implied by the permission. For example, an app that has the Machine.CollectForensics application permission can collect investigation package from any machine in the organization. +- For application permissions, the effective permissions of your app will be the full level of privileges implied by the permission. For example, an app that has the `Machine.CollectForensics` application permission can collect investigation package from any machine in the organization. ## Related topics diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permission.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-add-permission.png index 32860c3359b2d6a7f2db37b29401e4d13509d578..1f7f423e4923aed64827713292e890ff4a9e3062 100644 GIT binary patch literal 48607 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 V9|tYLc!5B4uIXLPzjFV{{{RvG)NTL( literal 50358 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 z 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 LzbbiY`0@V&$Z~~~ diff --git a/windows/security/threat-protection/windows-defender-atp/images/nativeapp-get-appid.png b/windows/security/threat-protection/windows-defender-atp/images/nativeapp-get-appid.png index dd7551d5a54ea47e66cead651a40d50027fac3e3..859e4fa8a3aea509cedf708c8fb0d1abafc5d6f5 100644 GIT binary patch literal 18968 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 Mr>mdKI;Vst0Fyi;V*mgE literal 20758 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 HfAT*7-xPsz literal 52601 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
      &p@{WtP=SR;Qw`UxU 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 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-2.png index 9c00076cfdddd8010bba326ed4ae2d93888851bf..8123965c847f2c318eefc2f652f69d25541faf83 100644 GIT binary patch literal 16185 zcmc(`1z1*H*DksU=?-ZS5Kur$1f)yA0#O8{5$Ti$=|)OkMNmLW1*E0BL0?+BK_sLR z>DpuY{@*$K?DKzn|NA=UT<5v)64o=lKXM-a?j z1i`?;!+|SzM$)gsfA|h6kDL&Mqy_zl5ywNq02gtcZ{EFu`yHQ_nnrvmR51R}r5oDL zaxTsm_Krw)ey0jtB65aHil$B`j+PG2miBfCB|a-VTqi)UE7&`DI9i%pI3u~Fo#Jqn ztnDL#CIkACyO-ptv}*wGZxcQ`|v6aIO)rIU$`F*J2V${R{z z;4&V1S17Vasj!iD5v3`v^M!n`+?g#nN3lHTbOb;Wy$Zg;K=7)z~N3^6ZkM#^liw~ z|68}tvmz6T!$i~a5v#nbrNzru5tA;i;tF(3%4z*pMLK!fd1d+~=b942!d}TzsaIYi zdnFr?b$n{%6q0a>u`;~Iu%~(Zg_C3VLDI`{i4-rV@2_6J9wJ~vKg+LJkwW9_ta6XlRf#Im?JlnFdNqh7;BuVO7Squ*=w4TPd@R|AE^DuivBQB+h^SXemhowB0h01GrQ`n}YbT(y3%y_nW# zv2GzTx#c-F$F!8ETmE=uC=b3_9WCA(HBXt`^2%vxQDl_%qE%N{ckNhl7GK)&oGtLS zwI0fCe0$AW{2`CJ{aay6in^n9iJ+jMkuE|KlDhetsn2Fz^s|BwwY9@qT3Sfr!=FEI zGEea~+Y?(OwcDv_Tcl-6&wo^Ir=NMcuHjbuZr8%EtWH2&LSk<@;(dL+44-~g(3dYN z)gG;_t@pAunx@0Z+4lpK+-lR)*pZHq3yUxB;8e<)6-KG zH8tfMH_jP&{^SrA72UgO%goFy<}f3hVpGi@=4~+NL_{7dM#HC9v1X{{JiKBVgJbdG zet1odBo#IFb)sTX--&}3O0}@J8()5WeQ7K}`yw%s(9LbnZtafkWYxp08=3vayQ`y3 zHCb7g7_U3F%(j=U#Y;H;2)p;-@nbduLP92=)kz<^m8vn8n8b3my}GtGC0^}9gqWCk zq|BB<`rrp8ZIn`HiVVx$yLY`cwQOy#G&MEZT|aZ(+upVFshOTAtvz`9>eVakWYy4i z=4V9XWwr`tW*?h(rk0;tGs*vg<;UN)FOA+6_cUNfSF6m1?(yTtjHg$0%W^wbHlm07 znF)J`XtF1(-Av}%q8!}Z%JIF5&3lyY-=~;*wjni}p(-OIL&PAG`(WF?_3-=amoKpb z8~rk2=3fs-fkEUxD!!+oF)(|oc;kj#!7yRz6Em~Ned#xvYDlH`kw=dnH67C!dXdYH zN9@7!2mO>e8tr-U@@3#?vAIcGBptdW8r;-V9*az!34&N)pelFn1dZC1=?**fNO3We zmg+=7-`uoCCv}%sR<_z0>>GxMY1ow_8yM_s{5#_L_bl&j)NGR=VqOp2s*gOL!6URw zEMgtb3<`}f2CPa8rIlkch#5p=^EBti?dw|u&JmI^Fj#AiuQ8V+Gb<|*;Jx_U7!$4) zHd#I#)`s@Lm}VOMvA%r$iqX3ppl4tZ4Gsk1PIxv&3FS(|7pAN*1OWFCC#o&(@lxNJI2gky2J7rW*RIJU+0oQV* zuLhHq+-jlR{PnBpFOJ(mKR2Oh?0SP%|$s4kn*;-ATaoZz{=yA1|9qz;a<4 zblr{l`1sn;rL(Hl3=a>7r63O>VIn}FuQ*5~<8_MC(o)x9mTOj22;OX(RJO)*j@z$C z7+F%+<~E}kL?5q?6phq)T?yslkSsep+e@9ajo1!V9S1itpdQ2gRh*@M`yd@Lz@bVe$SQdpB<=rUJtV94bM; z7}HrixvQdcWJH@+uY#=DtZR87yJ=}^W_2~P{$$M_490z}blBnWw`G#FH+@0vE3Y>Y6YcypBTp7C5TBo?g;DXXS1C^I&=l3ue_%8>?N{J~OmE z%>;7};u|UOJ+ayNbw|4Cr`=3;?iqA{pS!MjXezvnBjNs&JDt$qYr~%EJ6In z6YD-x2Jl6CMg|j3-?&sX(l9xxzjR;1F{eFGJK5t;kh-m=R{yVfOEl}?>e@C{`)uvw z;{3cZ1eP#ZhqfpNLB}5|HsfW)Nbk3A0kGnP#^o6Yq6{)Vl67aN&#He`yKS^Z@Yli4 zr3n7B8@*=<-nTy!NE+mXWmT$^_R^GiZKLief3wfd)m5a-W;6g62yBg@9?eqKK9!yr4}-d0e5ddRdv zy2F3{`t`7g2n9Jg|H+!p&O1pGZr!srQ)FahMo!(GtE)DNYWI=$z3oq*xQ*ZJ#-!~{ z`?4TGN2f3(`vWn|u{PHFv(qCqf=$xk+wWCSH;a>0XDnWWko0!GBYtn`uzF=@;PRC# zc{{3gNeYT59V1017^%1IFNTMO;Z#kZth-5_J(&6fDfTFEEdHPra@th*HY`lh$d41f zK;e(^7X4cV`~Uj}L99sX@JhA0t*Yu|F*Doe;jys~t)xui*hqqit&W=p#2n!ZA2Kt` z&sngg>waf2sd_{+-3dPF#@HnHe+5GSLQ22)X_v0xvUB|Rl9Go`5bf@ zx*mDbrG{tSrXo1!n`G)YyLLDIT4JwN9SPCvhOb?f1v!-w6SCF{SPo2n1H`J`jI_Oz zb*G0b%#Zm0ptK!cbGoF2L?&8nuJT!Lee6k$xbuR}sK|1&(PvNqqKTEEhC*U2X_wdDXx%mdQ^f_7uAsXDJ z)pj>;;!{vikkQZ#^OU~nGJ9fb+St`aOifJ})}vn|59t0=`OE>1r`KaU`_1~HcXALVie zF%f5RCIC69eHJfbV=(}0{P^+YA_s@uhx_>YKX;SAmy`$_Pp(OP-rCyA%FU$`pBh>( z+c|?q0I(D*>Xb5ya==+I{r&y3va$+C%^V$th;Xo8U(pSr=F!B9AMe2(tLgxpRJ?-C z#l=O~|LM~wq$Jp6#Yd+gr_Z9$YLFYiu53nMYI-`R&>NznqN0&fYpu-a^3YIR*c;Y2 zhfo|}Cv~EnBxoftxbcB``aIacPC`S2?5nuAMhjtdyGlz-6L@n+fIccKJKH}rG_-5S z$ai5A!?Hd|>7WebK)nu72V zznzs~leMu@?axobC%pn2k(XbCB53&G`RuH$7@?#r=L4z?3X}oG0K7$zk#c($SYPN( zk=>;Dj~_n}gr1)M#hW(}IPhkPm5huoaP#m;ToYEv>~HMv-;TEDXG=f*Zha!2lsm<* z$Cr14@hJ1bX4siLcFfz+xp8wp&U9w>_zu>WUjgo6y}5(K!oqSVK>!2B0W-6?wN+Gk zT4LFss=>_~t1`2;MjX+~#*2$UY{vTvi}#{q9vKS|N6=fulSv?j2#bym(aZ@3Q@iy+ zUS1yaHNTG45WWMm8MJL>oE ze=l4>(M{5IO71uUQ&UsMIyptGCez#0LIhKamTROH-}IuGxK5eosA3bCHCqijpUb4EOgHMFy((a|cf3LXow@$OE zgM)zTJ4t*R8XCyM5Cl*VAxztsc}K6)gGKEccfm5dNvra_$Vj4uJDif64Oq}is;Y5O zw_Fa2ueOWji;Ih)xw*WEt)aZ6>nbhMFg?xk^XJc|U$^7=N*{HLPmPKDo}HdF^~NVw zR#g!s?<5W@C^{EBCmluN7JIh#=5D|EsE_^go|`1iA+Ff<9n}(3bR9ov=ES~y$xbv3 z`C8D+my`omE}g6#wGl84z2s7p=X@#07Y~Ldw}fdwUB`6$H7~jNR9;@*i(4Ny zfBz2p`Xm72R~uXX;c`xbw6{1ibFw#0({>|1F3$Mpw-3-N0dVy~ck;?+=Xs_sd;W_T zvB5w;x5>l}Bknyd*|HvM9 zOj|2ZCRaC@?q#5Zy!Ba>CmQXm%84E6y*f50ULH<*r0V7ywDxU~JRWcNm2Iso_SPps z^Lt`}6HZytxAdFMZn#^m(`O-9KOENag+dfPtZvhpu&BV1#mrQ1HkL5@DXwE}-8+UU zR_W37)x}|YK*jBY4|%Fuab1?t&fa}r3BteKh7MHEliWeux`*n-Sc1WmS%c?wK=qMct+QM(?M z<%@_aIQ<}_@U5OQwpf3@xXF+=w zGOv=v{R2#{`(DHKkZeCg^-b-h`sYTrLH!`nE5cx+pKL$w(Glvf05$yXA+;_ z)R~*^>w~`3R>eb3Ma!6M8JV*)>ub=>&xFUHjn~EWCr<2zz6^z%&@&z{6Y_ey=^Ms> z<3hp1t_%J^hhoat;IJj;ett~n&G!!2Y6NGCK_A$t7@8AOmhINuu+e__V)a$gj7uAfa9O=*nNys0Vdpvk9_h6f=$ul{b zgG8dYNAipS?Z3u5{`T-176DDVpbnQ(+JhNIwADV0{d;cOh*{;>?ZFo+?`h{(LT3p` zs~boWQ;r+73;9b$bBeZ{ABKeL-&OPEdi(XdZS^kM6#2J z%%?@m0ljx|#;U%MhDc*0S=sq5S`uaW+kpXG#+x&&O~=tC8ydLh)Z{w`&4{$z@f7%# zqJNd@DuFQwKMIX?+2k?SnF*xqvk{z&v7S0_Z@jk_!A3Jm%m$4Dlpwy(Q8x}f(z@}$3PG!UyH}pK} z7`rJh4;>#+!el59HP$i>nG&~bobDMuO)0(#W@&OpV>`LAYm%DnMqEJ#6*Xa5LD}i| zC)(zzc@YvEW;ku!ft#ZrWoGQpikW4{wM}yxaJjz2(>J>d&dwo00+T*tx9cC_oHcBr z{)I;pLDnW)P0SFzhP(H8u`Fix=R7e>{ZpnPZI4r47&~>F;`HKbWNe0)x&tq6H-+UM z6A?ueE5PifsbPNKzmFVi$?K2yhBy1adLa$CESbiSwH3?lLzh%J>dP4^o7sb8uMFt} zau+V#%B%^uKvsrj=I=U}i|-H8AP()bZy-Rd+W{mVh$8XXIj73lKcU+!I%0c~jqP(I ziLkn8C0FxR2rr|?ew@oVL_GlVuyC=2)oGH&J{r3N>Zg|#!+Dz(0qbw{SgZ#Vh28fG zvDO+gb?*nAsaagp-W&g5QI-(gk$qN6a#rj^{dW(ocxfG_4l&8<=;)PFrjcUGtDLy_ zzKLfEUgInADS|V>j|79G73t z^&lxQ)No+5&)1o@-Z97*l{eJ5a4cgoB-xp8jTCoxHE3^1P@c)qPOUlG-cbOajP=Yl zeP08kXC5t}o?uG!l0??ZAn{QyFfMg1Cvws|31P*Vw|l`Ty$Ge~%PfThyYl1#u@a1D zAc8iPDS?bWBt2j*D?it7bRwwmOQ?E6L2&D13`FH3MdHfh6Yq%Wv*Gsrj_5nb8=`M2 zH1xwe^(6}D5*Zo4@SM*#CmzQA^*s0|O?O;cc3+TL1fBV^~B$OuH1U7vE4H4xlgCv>3qiyyyjeR zJ085E4X;4`lJrBr4N^0CDGvgYAJlVN;T;Y|pE0|-&U+Qx)0|eU5kfnq8LY-jGA6PQ zGVnibvC4Y~ALvAqz6si5eVNM7y)@7pS;JC1Bjp)6l872mmfG(QR>tPZ`H>1!<(NEQ z=);#ILBfTPN_X&x1LMm{-`}U9qIuU~QUBE8wTf*%iv*V(UO8XBkX}C2lTI+2O1?hG zQ1>`x`GepUeUYKjt`su*XmW!Lu-}A2TO=!|HYk)OnFQJV zwd?QeN1%1(e3IBl^4GXyKJt^T4?|#RNQq0C@kaO(O3+cF!4C+|GNX3?9bJo9D5rP=JDN9?Dl(s#Kg_{UE!MD4STnWV_2Oov1OPe zwD&d2F>+HekL0yGVNPCVDm6d*O^Ysmf*=nGML5;;>UeMiZon*W>|+Qxy6uN&Ax0&` z-~l}hLl<1Ti)m-)qm+HOE-utpwQ$bRP&3-++{`ab^vzi>Y%;-qP7vK}pF}YjM}3KB za85cL8v@nl(b?h1M@oZ)g3?jVqpcyX5_)4P(QU?Aj!1vBy0EM!7SxOZ8-B(~+w6Up zII@piK_QK{6%sWy-r{;bBMxp^TxyNQ{TTu#jxPiz>3Q?!UML?$HMbPvp)N_o!*d~4 zWp;io@b=(C2dzsEl~b1@^M>Y4*_Rs05)$dRa?DKxO&rP0PHZS1FG@y)8ge zChQd7BX3^F%f=qF3^Ej%}IG&!bHHRzx{G@U0v(rwsCvD)*{KMP2VF= zb7|&4uVfPbi<09%y)Uq(uQ$WsCRNim8?u`)wRz1D*}GjFNMWU<>2mXa59wdCeDQmp z-t4tCnom#0XB8bVVX?!?#mz|3{cXc0pk(VrM6`RHCDD@&555 z?$n|IBX!C`G2<(CWhf?t=*5gFitEoY!if~@u2%W*mBmH`@uox zPm8JuWOYT|7Ul%yxppHPjrzByYMnB>&PHVzsl_W`(lqe4G{MOt49>1O>*RHbz69*fCy z-3`dOgA=aErdQwhL_Xtd(ARVS<;&`Ymgx|b4X;zQi zVd1iII;$(#9Q%s{@uM+(gr{H`K6#vV`9W;v*H+(L{ZLb$sm8-nYqD!D+|n@0ET_Hh zWHDV=oc3SBB=H3m_x#Up9?-5kR&L_Vogy5}Nn`=XbM1nv*)?lh`J(j3m#*BHD8|>X znuJ*IG~y2lC%L#Kg|p5T_(4Z0bb-vwiSkzrOQ<++=Ry@MqFL8FEJWTxTFZwdMo}3H znV5IHLqLd*QcvG>b9V=0vq!bOx|%VHlahdtK)^Lu#;?qn3?ciZ+1&5cV%sjju(CYE z{W7iU6Mc?me#84MId^9(D%Bs0&5w)lh9$Ioy6t?n2hAi8N9JfVHRRdij0UpQEy}cQ zmP_g^D+YhPY-$Qh9CyNSHqGve0Ut0E~Csr7KTpZ@m?LptK#|`P$PJX*v=G zMPV`&)MY7up(cRkZc-^wmwzGYH0BqAL&@yDT0|1hGAD|oT>P0#`a0&05_`0DsrwJ} zJ_{S+v|sY)+Ahas)!g%MQ=*)hU#DG>Ara3zAETB?5*&&Nw*(>5&!!|h--(hYN~`+I z&l(pe!rULQt!bxzKP3SFz-uq89mz~l8rx-JV!jO#-Cz|$M~p*!$Lun<0(efiB0;#~b6l<< zbXt;^U#a5Z%K;I^8AaM;Z{SNTT?fI|wQc+C7v_0>PwJO#xU+6NQ*Ga;FUqsUvN?ad z$T)1ps&y%q2v0HGfHb(N*^Ji_%=hUn4n9q-xxQ?5`8|=Jd8RP)Y+jDo-LIjB`R0oF zTYHXJ6#)}7-UUhO2s9dfDy$y)QGg&!`=}NG$rpMQ+M#8T<(G5E%*hKzHB$U+m}vqN zcGL$+|0)9vyO61qN;of(Ax2{*mXqc8xwxut-W|4co<7XJtrs$~r{aD@)+akBG;&({ zi3d{s(LZ|{8%5y%vSPjnhHE#!)JY1lc8{X&8=CC@cWi#B0~tB-g&Xaq-ujs2>IDR( zq#L^~LcsYGUznYp#oJ&1>`*CeCWbiBXFjFRoGk9Y)pxQFg?uceK{PA$J5o-eLDX)_3`h1HIzw*QYC@_7q_{$r>vrarxZzx!Nrv+o&W03p70QA z5W2kQq0E;G#Y$1TiNZI-0|P-1GF4}R+HF!Gl?n=F_QVUsC0)EuS21E8C4g*6& z>8Ys*v~Nh23!Isq^~YuLB9oSume;O(I)`(*72^w~toJcF9DoDTpFOPqDT~!G(-;U7 z;s4?VnV5tGVLt;s{U#JRXPSZuE8w2z&!5k1Y>r>fj)6)KN@&>>-KoJ*ND3J;NT!scl~to)}ub713E1Ap-c@WVR~-<&I1Sf z<7$#LIWd8eejTb?Wfj4M>(^lIG6f#TCDFsRK~Bcl7}s={YjXG57< zpkEy_F`=jN@F7~Gh61)~iZrpgxw+)8FYG|6E5kc}ZEs^Bl$>{Djg486nbV^UnyT92 ze0|`FFn}L@{{8#o#OS@Q6>PK;et77)e{_@qyc5v=S)V>NvByXTJbz9A{Gg6@eW}9w z&!3l_2NV<(m<*(SPbC8a18u7|*2 zeH0E_0F8*iLV#mH%b!pbq~;S95%~^mrgo(x#}7x3(3LwkZ#Mq^*`KDtU9D#b#q;|Q z9t3w-59d=`xm;vt$Kuh)Tmx3uU{Zhm`V}Ogr>Pm@=Z8ohZ#HKY6ezp6l#_D;{3$0#T|)yK>Z;W) z(e&2{V2+_G-1dT10n{52@a&+_P<9?3LUbbW@#SEFc+W=^p1yrcf9IX#qY*nx%j~Xs zSR%yM*Z>3%M|y^aq_Ajkqh6IWKA1WlDQSC=Nqdl}aF676h;$r`Z_5(d2N(xlB~{N;JOaKm(*7$Dk*_KP}0{=?kd~f-Y#-lR9zh}Ck1A| z!s|fD%gal=^a_-)BblXivY0GZ{HANV8ARI59!S~n8 zm&U^Mv48y)U^`w0yb`OlG_z6$xvXyHhLEHKvbVF4Yr+4>f)2D|yWR#SF z@84fclJuYu6clVab#`SLzna+9rRLP|iI>b++W5@_PtJ&q{ zv3b8gh&%|NN zHLB^aKByPNGF{^4mRC^;>zW6zAsDuX*1#83S4+Th>FDU#jT)D^cHO>xTU}pYYNlO1 z238sw30Klh-QL@y=?-I$yG2e#1qvwKQXS$qcg(K-Xn!Kq2)qg~T@bLqQbSTwSp3RV zKlNF(=-Sr?gZcqfCRm9gwgLCEgMeVw(V+)wRsF#Otm09d{xxtnlum6nT1Uj1zaTKyO*u=zW#gp@!Rdf3+-~sr+Sdr7w;b&`%Wsl#?8GMXVGlwT9 zC&45okWa+uIy!z9$OCtL^X3i8&!H*>2pm*YRI-`;6KoHbl!7PF4eewEr2&(_6va+^T*VHs~nuftri}wO! zjPhS1HX}&!Xe5w_3VE8%PlQ;Z%V4w115Y{ApQ+Vv$d;FteFuy{@lF`sZ&OoKC8SAz zgL`f^lgbz^b|;TiI&nd)gAJ9#**32~Z(>OvpHFtAq@-fw<8hN! z&CB(plme3_+}LDfSmxSe+$y>yO!J;i*LedyDEH{mo344ez_E24g%Bd}MhfvY*up5e zRH+uq-FB8AGD^DN8xbWXjgiRTFlbW!Et5THWl^dFKOi22DQU710j`pj7fl(!wVW0@ zF%VX<`1p9j>1)6)LX=j9eBp`Eo6VomrTw3CYhsXJaSG7M3(3sPyvy~=%*Dk8 zA_-`h+MZMMfCHksE$HaD*R2Nz2I~(0BZ2w&LFUfg=DgRWq@*+fAFk~OhlD(CeNO$Q zySr@Vt?t@rF)lEOPK({G-&-RDZAJt@nNrqYuKo|1xn6j6`g9*l*4bJ3?~V=(1YJQ5 z?%b7!kC}Qc=ucK?3o|T0+?R!?cImc~PTGg+> z#aQHOEg>;U|7y^xbdvH@hNYU+&Z|jr04d9xx80*(LkOl>wv;J2IcscebloZ4c=F7{ zV>CIfxyk^(s;1|l2yb3H{Z3O~I8I|l*azZCS#|Z;-Za-u zF1KzGfCiLNy5Lc}Y`J0G`}f#j`L2dlIUpvOBGL|R{tvcQfR< z%KJx6oOz6mjkW8%D({vbF3efhPPTeI^#C2NtBa*DeWG{G8?c*Ae7{kfHjvrTC57Y3 z%B;&8*84Dl5<`b7u#1Xjcu~XV29DiHb6#bzavgC@ERvZl!7Fpc8kAiU7<$ zy`q8^RIDN<=6MS2fOR0iTz0mP=Qkt)X$=TTOqGFG@TfzUZ zxGoi5uvLOnbZy}i5;lXTK-{JC!~M&e1qM+dUNU9?*#$CI)fO8Y8x|GS3cCcxvD2N+ zoPxUNKl?MA+uL!0-v@aLO^CYo@Z846bT1<+>ao2r!bF*PCMn-z3=Tz1^1|?i9 zW|l-Tsy=);2dY7N_ubvyHh!NiLR1VJ!;|5^etfX~56_}fkKc>h`O~L@eq~p0fPO?k zvR~gA?4pTumJCw2+5*F*{O^Z5D_~Sj*~_3_aGx>;i)UM=JW0p06-j*h^Bc#kqmR$2 zt?xr31SC04&CSoMgwZDSMu#{2>O6NobrtyQS2~^pXjZuJGrOSU0vm2Llf<8@BKhQfHKLzuG>|l|8yx3j00k}lZ|jWzR)qd9?bUzQ zz(oSWIA{`P9hH=D0A1Pg*-utc155(^m8@e99!G?uP(Bc!ltdJFi{rSoU@#V1|A8HE zCC1*t4t(p@t;_;@k;GV#GDj(~A5Yg!B_z;-Y_+AmeS9qteEj31m<_-T-x8l%0ctk}oKsOzL8VXz1?}HH+^+VBv9CV?2sc{?8Vga7-lf|u0)_=C zOhhYYMjxJ*me!XiLK+$x4WQlnqXW4B$}JcxD8Eqo_kSq9@=Hn|FoJ#+6oZKEi_uOBzT&hd7b;8+2qd?eG7B^y6vj6oht`{!Ik)gH_`n(cxFrh@Um!*PEKo74XZ zl0!h@1md~xdF4~`uz|a-j`-hA6p@1i21WuGu3RBTg<&AN0&M=%6>`#wswy@C0W#0p z)7LxPR0N=#0ihT+>?lnlphn^0ee@X{DRh{X2btAKSBkg`w<8F(d`>*kTo%o)0MRPNpl*5jj@G6JO=HZCqe4VMuq5&Ec0moLkq8#)Ni;&`;u zYijhgGY9Luk6yfZ;RiDG2IwRpMu^amp~{+>aY8r@1vUPKt5+!jfb{-!Ml+UMA3l$N zyq2XCV+{ZfRDI3k_wzI*B$Yt2+XQlYj7q&|P=L)1WIq7)C+<+5F4t-?pxdRsjG`xB zDYSXdAOBSIl?P4K56A0}zKGaQMJ_E_7_+>;|8s34Nl|gqkI8~y5{zo;1gTTHBnK5Y4=>SbZiiMnx{w%|p2?)T9WRf^9 zJ1&4{%>+`ka;9cIEiGI?AcdsCGCS{S11buDL{{f!r<~M^u!z&9r;rc`+DueprSSj#>{n|BZ zSfMgH69Xs;z*eLH4Hi1zT;k=$M((^3ItMuw=;oWwV6wp?{0qkTmGS+6EC$5gHdhr<31)%qPn{~Dbh^PW$kL$Jb@uMP-u!I|B7DFy$S5DxQjT`9nJ@# z9pxO^A6ix7to=Tgr;g=rXm2_$FnEMO>ux-(#^9P>;n}Ddj{$8h2G%| z{3G59*5JMY>NH6EBz9UG|DQpVIh%i=NpSb#M5R-a*MTGW5L8W}bhG-}d~xZ21DcG- zuxMs$fW)i>f9O9HVtkz&o$kf}b|8l#Y@ZM}7!~In6YrXyHXMlO<)FX^3kj@rS|pfz zbLD(Q*IMGMR~Ks<0nFUc*JlC+WYDjyxbNvPdc4bXBuya{De-=# z3SD*Ml#;47uTyk~O!A%fl|DZTX67lB!y}KylA=gGXi|elihJDA|4}~vFAJ`Nn6F1M zkrOjYZb*=mPj-2J|NS>?y#pM7{{DY^vfqwq)43!9DznK7CLB-^2*fXR&WW?BB8K6}f zkP-{}bI|YqRL+O|h7)}QF(8(7Id@`cZEdI}tEi~oLh`?QWxb+`qQ2utOBq*NbPXx8S${6d-L(07^-A6|Q>t{X zzhAu4@n3y#w^pAM6&}K!aKl*w{|!1p2x#9*Cxvh z0CduNUX+F7hQC{^Ht6i^?0~aSuXm{YDek3A)QasJPL|4&y!4#9=UL;h6JCB<$#;9) zD3Okf-McLTmX0dPxM}HS=W@;rqEh=Pc%MIP&=;Y-rjj){&F8`M)pSltrfWoY ze1RB9+TQK0)t=C~2o}D%HxEr|CGp(XZj#pg3Stxwq@y$(X8&b)J2vSle*E3xB1>N; zR2LQA#){4scV%xR&6G^&5}DTVu3^pQt`qw#8y&V`Oxl-GS_H`wF$moDRz(oepBKKo z58U#Klz8`SfC(}B4B~$t2W@ltjCrM$HA3)A36!U-o+_fa+O2QZC=f4K@ic?Fbum%! zWUU|1<8F*)hg!zRQ+gzI-jfF==<#A~2YUI%@bCS(_)=QQFZk+n`ZL^?d#@I;i5wl5 zGo&CHIgNyExypLYqlbmE?G{oJ6*}eF8}_{Fe2t(zcHNn5_-pIDFPE+4*W${MW5zHhVgPJy{RV0RHhHW*(|W-jb^@O#Q8qxTW{gyp|%^xHwc;|EUkK?UcjR=$D3GC zh@1KG0~>%cfSu-!j+}zqpgsqZM-SQ{7vgSh?a#$1u*HHVmjD0-q{&2ms2vYv9NPMo z0j3HlFBb(;>Ylnf1{5jaAQ})FV%M*;0ye|Izmp>$YMakw#Zeaa}<7^J=6W5{U!p6-_VBYiY25_XHWrkeESm+JjM^ z<2e6k(pYxJ5l9QSc7_d2dQ;_Ke^Z2`X-|acASVDO1kRKOvMPkk_~SBH%)f|)8__HU zij?HyLx8njs9dbA5&iQZL(mcdG}sz=pmse;)OqP1TphU^11k7aU${N!3=0zz$hF>+ z8x#;B`=r7%6EC1yCq;mP-Cl!*sv{utIA?nm@;a1`LmVuSfBk+dSGcfD_`#%^RwU`SL~q{|z(g{W<^u literal 14912 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 JU~buk|1a+D^>qLM From 05e34b0e442c875e23c6e9fbe75401a523054057 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 24 Sep 2018 14:47:22 -0700 Subject: [PATCH 074/201] update exposed apis content --- .../windows-defender-atp/exposed-apis-create-app-nativeapp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 3c5d8c3321..c1525aaa7b 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -74,7 +74,7 @@ This page explains how to create an app, get an access token to Windows Defender ![Image of API access and API selection](images/webapp-add-permission-2.png) -6. Click **Select permissions** > check **Read alerts** & **Collect forensics** > **Select**. +6. Click **Select permissions** > check **Read alerts** and **Collect forensics** > **Select**. >[!IMPORTANT] >You need to select the relevant permissions. 'Read alerts' and 'Collect forensics' are only an example. From 8e14ee5802e218bc17ba59a72ffba8271d1e8d29 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 24 Sep 2018 14:56:09 -0700 Subject: [PATCH 075/201] update images --- .../exposed-apis-create-app-webapp.md | 4 ++-- .../images/webapp-add-permission-end.png | Bin 5808 -> 9075 bytes .../images/webapp-add-permission.png | Bin 35593 -> 47878 bytes .../images/webapp-create-key.png | Bin 28850 -> 33958 bytes .../images/webapp-edit-multitenant.png | Bin 32504 -> 42058 bytes .../images/webapp-get-appid.png | Bin 10830 -> 15013 bytes .../images/webapp-grant-permissions.png | Bin 10183 -> 11871 bytes .../images/webapp-select-permission.png | Bin 30641 -> 44931 bytes 8 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index dc17193063..e0b16ad6af 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -73,8 +73,8 @@ This page explains how to create an app, get an access token to Windows Defender For instance, - - In order to [run advanced queries](run-advanced-query-api.md), check 'Run advanced queries' permission - - In order to [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), check 'Isolate machine' permission + - To [run advanced queries](run-advanced-query-api.md), select 'Run advanced queries' permission + - To [isolate a machine](isolate-machine-windows-defender-advanced-threat-protection-new.md), select 'Isolate machine' permission To determine which permission you need, please look at the **Permissions** section in the API you are interested to call. diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-add-permission-end.png index e0fb6d5cb88c90840f24e03495d072c284bf828a..40f15eb65ac4fe333f93272777a8ae970154f21a 100644 GIT binary patch literal 9075 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 literal 5808 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 LR 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 M)M~5Xr`;$14OO9>r~m)} literal 35593 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 diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-create-key.png index 31e916edc59f75aed3a99e03b15eee1a5af2e692..4ddb1fae83bf0d1389762b427f0c797f59859f02 100644 GIT binary patch literal 33958 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 abXWD$Hwe6WkB|+8V%7}(=@C7n|4 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

      cM!S7#9O+{zIt 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: You first need to [create an app](exposed-apis-intro.md). +## Before you begin +You first need to [create an app](exposed-apis-intro.md). ## Use case -If you need to schedule an advanced query and use the results for follow up actions and processing, you can use [Microsoft Flow](https://flow.microsoft.com/) (or Logic Apps) for it! +If you need to schedule an advanced query and use the results for follow up actions and processing, you can use [Microsoft Flow](https://flow.microsoft.com/) (or Logic Apps) for it. ## Define a flow to run query and parse results -You will find below a very basic flow example: +Use the following basic flow as an example. -1. Define the trigger – Recurrence by time +1. Define the trigger – Recurrence by time. -2. Add an action – Select HTTP +2. Add an action: Select HTTP. ![Image of MsFlow choose an action](images/ms-flow-choose-action.png) @@ -59,9 +60,9 @@ You will find below a very basic flow example: ## Expand the flow to use the query results -The below section shows how to use the parsed results to insert them in SQL database. +The following section shows how to use the parsed results to insert them in SQL database. -This is an example only, you could perform on your results any other action supported by Microsoft Flow. +This is an example only, you can use other actions supported by Microsoft Flow. - Add an 'Apply to each' action - Select the Results json (which was an output of the last parse action) @@ -76,7 +77,7 @@ The output in the SQL DB is getting updates and can be used for correlation with ## Full flow definition -You can find below the full definition +You can see the full defintion in the following image: ![Image of E2E flow](images/ms-flow-e2e.png) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md index aa6da165e7..4c57316ddc 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -14,6 +14,11 @@ ms.date: 30/07/2018 --- # Create custom reports using Power BI (user authentication) +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + Run advanced queries and show results in Microsoft Power BI. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. @@ -21,7 +26,8 @@ In this section we share Power BI query sample to run a query using **user token If you want to use **application token** instead please refer to [this](run-advanced-query-sample-power-bi-app-token.md) tutorial. ->**Prerequisite**: You first need to [create an app](exposed-apis-create-app-nativeapp.md). +## Before you begin +You first need to [create an app](exposed-apis-create-app-nativeapp.md). ## Run a query diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md index 982fec1b38..ca0f03811b 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md @@ -10,18 +10,24 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 30/07/2018 +ms.date: 09/24/2018 --- # Advanced Hunting using PowerShell +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) -Run advanced queries using PowerShell. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. +[!include[Prerelease information](prerelease.md)] + + +Run advanced queries using PowerShell, see [Advanced Hunting API](run-advanced-query-api.md). In this section we share PowerShell samples to retrieve a token and use it to run a query. ->**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). +## Before you begin +You first need to [create an app](exposed-apis-intro.md). -## Preparation Instructions +## Preparation instructions - Open a PowerShell window. - If your policy does not allow you to run the PowerShell commands, you can run the below command: @@ -29,11 +35,11 @@ In this section we share PowerShell samples to retrieve a token and use it to ru Set-ExecutionPolicy -ExecutionPolicy Bypass ``` ->For more details, refer to [PowerShell documentation](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy) +>For more details, see [PowerShell documentation](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy) ## Get token -- Run the below +- Run the following: ``` $tenantId = '00000000-0000-0000-0000-000000000000' # Paste your own tenant ID here @@ -60,7 +66,7 @@ where ## Run query -Run the below +Run the following query: ``` $query = 'RegistryEvents | limit 10' # Paste your own query here diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md index d0c7fc7712..afd8a8d4d4 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md @@ -14,8 +14,12 @@ ms.date: 30/07/2018 --- # Advanced Hunting using Python +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) -Run advanced queries using Python. Please read about [Advanced Hunting API](run-advanced-query-api.md) before. +[!include[Prerelease information](prerelease.md)] + +Run advanced queries using Python, see [Advanced Hunting API](run-advanced-query-api.md). In this section we share Python samples to retrieve a token and use it to run a query. @@ -23,7 +27,7 @@ In this section we share Python samples to retrieve a token and use it to run a ## Get token -- Run the below +- Run the following: ``` @@ -62,7 +66,7 @@ where ## Run query -Run the below + Run the following query: ``` query = 'RegistryEvents | limit 10' # Paste your own query here diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index d9adb2e60f..70364ee219 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Run antivirus scan API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prerelease information](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Initiate Windows Defender Antivirus scan on a machine. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index aafaac2b2f..df656faa25 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,11 @@ ms.date: 12/08/2017 --- # Release machine from isolation API +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - Undo isolation of a machine. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index 6d624f7855..8552f37c2a 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -14,11 +14,11 @@ ms.date: 12/08/2017 --- # Remove app restriction API - **Applies to:** - - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Prereleaseinformation](prerelease.md)] + Enable execution of any application on the machine. diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 40f47a0edc..81c8f8d9ac 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,12 @@ ms.date: 12/08/2017 --- # Update alert - -[!include[Prereleaseinformation](prerelease.md)] - **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prereleaseinformation](prerelease.md)] Update the properties of an alert entity. ## Permissions From 55c7324602b1d525f128772d76f893f9f844cfd4 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 25 Sep 2018 15:26:02 -0700 Subject: [PATCH 077/201] move deprecation title --- windows/security/threat-protection/TOC.md | 4 ++-- .../security/threat-protection/windows-defender-atp/TOC.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 70ad8183e2..b727c322cc 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -345,7 +345,7 @@ ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -##### [Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +##### [TO BE DEPRECATED - Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) #######Actor ######## [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) @@ -415,7 +415,7 @@ -##### TO BE DEPRECATED - API for custom alerts +##### API for custom alerts ###### [Enable the custom threat intelligence application](windows-defender-atp/enable-custom-ti-windows-defender-advanced-threat-protection.md) ###### [TO BE DEPRECATED Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ####### [Use the threat intelligence API to create custom alerts](windows-defender-atp/use-custom-ti-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index f3b08f98b0..a129e5f404 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -342,7 +342,7 @@ ###### Multiple APIs ####### [PowerShell](exposed-apis-full-sample-powershell.md) -#### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) +#### [TO BE DEPRECATED - Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) ##### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) ######Actor ####### [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) From 3787d7680f0f8ef884463a5c66f425692d033327 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 10:31:45 +0300 Subject: [PATCH 078/201] update --- ...tion-windows-defender-advanced-threat-protection-new.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md index 51ce0684a8..83e1d345ae 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -37,11 +37,12 @@ Method|Return Type |Description Property | Type | Description :---|:---|:--- id | Guid | Identity of the [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entity. -type | String | Type of the action. +type | Enum | Type of the action. requestor | String | Identity of the person that executed the action. requestorComment | String | Comment that was written when issuing the action. -status | String | Current status of the command. Possible values are: "InProgress", "Succeeded", "Failed" and "Cancelled". -error | String | Error code providing more insight as to what have caused the command to fail. +status | Enum | Current status of the command. Possible values are: "InProgress", "Succeeded", "Failed", "TimeOut" and "Cancelled". machineId | String | Id of the machine on which the action was executed. creationDateTimeUtc | DateTimeOffset | The date and time when the action was created. lastUpdateTimeUtc | DateTimeOffset | The last date and time when the action status was updated. +relatedFileInfo | Class | Contains 2 Properties. 1) string 'fileIdentifier' 2) Enum 'fileIdentifierType' with the possible values: "Sha1" ,"Sha256" and "Md5". + From 530b3b4cbadcdf5c2a9e491e0bb3e4f1261ce938 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 10:48:40 +0300 Subject: [PATCH 079/201] s --- ...defender-advanced-threat-protection-new.md | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index 0e8e2ed4a8..e11cd96856 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,8 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) - Gets collection of actions done on machines. Get MachineAction collection API supports [OData V4 queries](https://www.odata.org/documentation/odata-version-2-0/uri-conventions/#FilterSystemQueryOption). + Gets collection of actions done on machines. + Get MachineAction collection API supports [OData V4 queries](https://www.odata.org/documentation/). ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -35,7 +36,7 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ## HTTP request ``` -GET /api/machineactions +GET https://api.securitycenter.windows.com/api/machineactions ``` ## Request headers @@ -81,10 +82,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "test", "status": "Succeeded", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:43:57.2011911Z", - "lastUpdateTimeUtc": "2017-12-04T12:45:25.4049122Z" + "creationDateTimeUtc": "2018-12-04T12:43:57.2011911Z", + "lastUpdateTimeUtc": "2018-12-04T12:45:25.4049122Z", + "relatedFileInfo": null }, { "id": "2e9da30d-27f6-4208-81f2-9cd3d67893ba", @@ -92,21 +93,24 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "Check machine for viruses due to alert 3212", "status": "Succeeded", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", - "lastUpdateTimeUtc": "2017-12-04T12:18:57.5511934Z" + "creationDateTimeUtc": "2018-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2018-12-04T12:18:57.5511934Z", + "relatedFileInfo": null }, { "id": "44cffc15-0e3d-4cbf-96aa-bf76f9b27f5e", - "type": "UnrestrictCodeExecution", + "type": "StopAndQuarantineFile", "requestor": "Analyst@contoso.com", "requestorComment": "test", "status": "Succeeded", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:15:40.6052029Z", - "lastUpdateTimeUtc": "2017-12-04T12:16:14.2899973Z" + "creationDateTimeUtc": "2018-12-04T12:15:40.6052029Z", + "lastUpdateTimeUtc": "2018-12-04T12:16:14.2899973Z", + "relatedFileInfo": { + "fileIdentifier": "a0c659857ccbe457fdaf5fe21d54efdcbf6f6508", + "fileIdentifierType": "Sha1" + } } ] } @@ -140,10 +144,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "test", "status": "Succeeded", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:43:57.2011911Z", - "lastUpdateTimeUtc": "2017-12-04T12:45:25.4049122Z" + "creationDateTimeUtc": "2018-12-04T12:43:57.2011911Z", + "lastUpdateTimeUtc": "2018-12-04T12:45:25.4049122Z", + "relatedFileInfo": null }, { "id": "2e9da30d-27f6-4208-81f2-9cd3d67893ba", @@ -151,10 +155,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "Check machine for viruses due to alert 3212", "status": "Succeeded", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", - "lastUpdateTimeUtc": "2017-12-04T12:18:57.5511934Z" + "creationDateTimeUtc": "2018-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2018-12-04T12:18:57.5511934Z", + "relatedFileInfo": null } ] } From 06053c4635a3e85def8fea17682ff86b646364bf Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 10:57:56 +0300 Subject: [PATCH 080/201] s --- ...ect-windows-defender-advanced-threat-protection-new.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 0abd8e7cfc..bcdbd711ec 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -33,7 +33,7 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ## HTTP request ``` -GET /api/machineactions/{id} +GET https://api.securitycenter.windows.com/api/machineactions/{id} ``` ## Request headers @@ -76,10 +76,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "Check machine for viruses due to alert 3212", "status": "Succeeded", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", - "lastUpdateTimeUtc": "2017-12-04T12:18:57.5511934Z" + "creationDateTimeUtc": "2018-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2018-12-04T12:18:57.5511934Z", + "relatedFileInfo": null } From 706343a83f84ec91187d98d6212dce45d774dbdc Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 10:59:35 +0300 Subject: [PATCH 081/201] s --- ...ineaction-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md index 83e1d345ae..bd5d278c34 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -44,5 +44,5 @@ status | Enum | Current status of the command. Possible values are: "InProgress" machineId | String | Id of the machine on which the action was executed. creationDateTimeUtc | DateTimeOffset | The date and time when the action was created. lastUpdateTimeUtc | DateTimeOffset | The last date and time when the action status was updated. -relatedFileInfo | Class | Contains 2 Properties. 1) string 'fileIdentifier' 2) Enum 'fileIdentifierType' with the possible values: "Sha1" ,"Sha256" and "Md5". +relatedFileInfo | Class | Contains two Properties. 1) string 'fileIdentifier' 2) Enum 'fileIdentifierType' with the possible values: "Sha1" ,"Sha256" and "Md5". From 10668ff09c361c087de9099d52975aa5afe55bdc Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 11:24:37 +0300 Subject: [PATCH 082/201] s --- ...age-windows-defender-advanced-threat-protection-new.md | 8 ++++---- ...uri-windows-defender-advanced-threat-protection-new.md | 2 +- ...ine-windows-defender-advanced-threat-protection-new.md | 6 +++--- ...api-windows-defender-advanced-threat-protection-new.md | 8 ++++---- ...ion-windows-defender-advanced-threat-protection-new.md | 8 ++++---- ...can-windows-defender-advanced-threat-protection-new.md | 8 ++++---- ...ine-windows-defender-advanced-threat-protection-new.md | 8 ++++---- ...ion-windows-defender-advanced-threat-protection-new.md | 8 ++++---- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 7e8d70c5cf..5123a977a5 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -33,7 +33,7 @@ Delegated (work or school account) | Machine.CollectForensics | 'Collect forensi ## HTTP request ``` -POST /api/machines/{id}/collectInvestigationPackage +POST https://api.securitycenter.windows.com/api/machines/{id}/collectInvestigationPackage ``` ## Request headers @@ -84,10 +84,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": " Collect forensics due to alert 1234", "status": "InProgress", - "error": "None", "machineId": "f46b9bb259ed4a7fb9981b73510e3cc7aa81ec1f", - "creationDateTimeUtc": "2017-12-04T12:09:24.1785079Z", - "lastUpdateTimeUtc": "2017-12-04T12:09:24.1785079Z" + "creationDateTimeUtc": "2018-12-04T12:09:24.1785079Z", + "lastUpdateTimeUtc": "2018-12-04T12:09:24.1785079Z", + "relatedFileInfo": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index b7b734a241..b59b11034b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ Delegated (work or school account) | Machine.CollectForensics | 'Collect forensi ## HTTP request ``` -GET /api/machineactions/{machine action id}/getPackageUri +GET https://api.securitycenter.windows.com/api/machineactions/{machine action id}/getPackageUri ``` ## Request headers diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 87e3e1531b..f40b7c7b57 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ## HTTP request ``` -POST /api/machines/{id}/isolate +POST https://api.securitycenter.windows.com/api/machines/{id}/isolate ``` ## Request headers @@ -89,10 +89,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com ", "requestorComment": "Isolate machine due to alert 1234", "status": "InProgress", - "error": "None", "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "creationDateTimeUtc": "2017-12-04T12:12:18.9725659Z", - "lastUpdateTimeUtc": "2017-12-04T12:12:18.9725659Z" + "lastUpdateTimeUtc": "2017-12-04T12:12:18.9725659Z", + "relatedFileInfo": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 050e18c993..9f95e08bc0 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ Delegated (work or school account) | Machine.Offboard | 'Offboard machine' ## HTTP request ``` -POST /api/machines/{id}/offboard +POST https://api.securitycenter.windows.com/api/machines/{id}/offboard ``` ## Request headers @@ -82,10 +82,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "offboard machine by automation", "status": "InProgress", - "error": "None", "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", - "creationDateTimeUtc": "2017-12-04T12:09:24.1785079Z", - "lastUpdateTimeUtc": "2017-12-04T12:09:24.1785079Z" + "creationDateTimeUtc": "2018-12-04T12:09:24.1785079Z", + "lastUpdateTimeUtc": "2018-12-04T12:09:24.1785079Z", + "relatedFileInfo": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 486f9db534..1ba77ea104 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code ## HTTP request ``` -POST /api/machines/{id}/restrictCodeExecution +POST https://api.securitycenter.windows.com/api/machines/{id}/restrictCodeExecution ``` ## Request headers @@ -82,10 +82,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com ", "requestorComment": "Restrict code execution due to alert 1234", "status": "InProgress", - "error": "None", "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", - "creationDateTimeUtc": "2017-12-04T12:15:04.3825985Z", - "lastUpdateTimeUtc": "2017-12-04T12:15:04.3825985Z" + "creationDateTimeUtc": "2018-12-04T12:15:04.3825985Z", + "lastUpdateTimeUtc": "2018-12-04T12:15:04.3825985Z", + "relatedFileInfo": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 70364ee219..d12d5e8480 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ Delegated (work or school account) | Machine.Scan | 'Scan machine' ## HTTP request ``` -POST /api/machines/{id}/runAntiVirusScan +POST https://api.securitycenter.windows.com/api/machines/{id}/runAntiVirusScan ``` ## Request headers @@ -91,10 +91,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "Check machine for viruses due to alert 3212", "status": "InProgress", - "error": "None", "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", - "creationDateTimeUtc": "2017-12-04T12:18:27.1293487Z", - "lastUpdateTimeUtc": "2017-12-04T12:18:27.1293487Z" + "creationDateTimeUtc": "2018-12-04T12:18:27.1293487Z", + "lastUpdateTimeUtc": "2018-12-04T12:18:27.1293487Z", + "relatedFileInfo": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index df656faa25..5aaccd64f1 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ## HTTP request ``` -POST /api/machines/{id}/unisolate +POST https://api.securitycenter.windows.com/api/machines/{id}/unisolate ``` ## Request headers @@ -86,10 +86,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com ", "requestorComment": "Unisolate machine since it was clean and validated ", "status": "InProgress", - "error": "None", "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", - "creationDateTimeUtc": "2017-12-04T12:13:15.0104931Z", - "lastUpdateTimeUtc": "2017-12-04T12:13:15.0104931Z" + "creationDateTimeUtc": "2018-12-04T12:13:15.0104931Z", + "lastUpdateTimeUtc": "2018-12-04T12:13:15.0104931Z", + "relatedFileInfo": null } ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index 8552f37c2a..4deeaa4646 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -33,7 +33,7 @@ Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code ## HTTP request ``` -POST /api/machines/{id}/unrestrictCodeExecution +POST https://api.securitycenter.windows.com/api/machines/{id}/unrestrictCodeExecution ``` ## Request headers @@ -84,10 +84,10 @@ Content-type: application/json "requestor": "Analyst@contoso.com", "requestorComment": "Unrestrict code execution since machine was cleaned and validated ", "status": "InProgress", - "error": "None", "machineId": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", - "creationDateTimeUtc": "2017-12-04T12:15:40.6052029Z", - "lastUpdateTimeUtc": "2017-12-04T12:15:40.6052029Z" + "creationDateTimeUtc": "2018-12-04T12:15:40.6052029Z", + "lastUpdateTimeUtc": "2018-12-04T12:15:40.6052029Z", + "relatedFileInfo": null } ``` From 9d38230f90aea8f72e54da64f250e61e2a47440b Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 11:39:14 +0300 Subject: [PATCH 083/201] s --- ...ineaction-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md index bd5d278c34..8d755ed764 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -37,7 +37,7 @@ Method|Return Type |Description Property | Type | Description :---|:---|:--- id | Guid | Identity of the [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entity. -type | Enum | Type of the action. +type | Enum | Type of the action. Possible values are: "RunAntiVirusScan", "Offboarding", "CollectInvestigationPackage", "Isolate", "Unisolate", "StopAndQuarantineFile", "RestrictCodeExecution" and "UnrestrictCodeExecution" requestor | String | Identity of the person that executed the action. requestorComment | String | Comment that was written when issuing the action. status | Enum | Current status of the command. Possible values are: "InProgress", "Succeeded", "Failed", "TimeOut" and "Cancelled". From 7eec07b404368e6cb8c28e81c171147701551898 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 11:51:51 +0300 Subject: [PATCH 084/201] s --- .../images/ms-flow-define-action.png | Bin 27647 -> 40584 bytes .../images/ms-flow-e2e.png | Bin 44839 -> 42989 bytes .../run-advanced-query-sample-ms-flow.md | 5 +++-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-define-action.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-define-action.png index f3d0b2ba6858315ad147a9ecf8ec9c4b9616f0b4..51588e0bdcca35b07e425c7ce2710daf272bf015 100644 GIT binary patch literal 40584 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 hxq3uQh_a_v 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 ND9dZeRmi*y{y$gQ9pnH2 diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-e2e.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-e2e.png index 6017a74d89b3decbacb49d04eab9ca54502464d0..f33aa046827406672d00d27691b6d0473915e43f 100644 GIT binary patch literal 42989 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 LI%*{stwR0-Y_=Q0 literal 44839 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 `c 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 diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md index c15d2c10b3..e0ae5f9b2d 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md @@ -26,7 +26,8 @@ You first need to [create an app](exposed-apis-intro.md). ## Use case -If you need to schedule an advanced query and use the results for follow up actions and processing, you can use [Microsoft Flow](https://flow.microsoft.com/) (or Logic Apps) for it. +A common scenario is scheduling an advanced query and using the results for follow up actions and processing. +In this section we share sample for this purpose using [Microsoft Flow](https://flow.microsoft.com/) (or [Logic Apps](https://azure.microsoft.com/en-us/services/logic-apps/)). ## Define a flow to run query and parse results @@ -77,7 +78,7 @@ The output in the SQL DB is getting updates and can be used for correlation with ## Full flow definition -You can see the full defintion in the following image: +You can find below the full definition ![Image of E2E flow](images/ms-flow-e2e.png) From f94e6e5fe962354334f5c2fd5de7e9935fdd88dc Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 11:59:10 +0300 Subject: [PATCH 085/201] s --- ...ineaction-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md index 8d755ed764..6c225819b2 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md @@ -37,7 +37,7 @@ Method|Return Type |Description Property | Type | Description :---|:---|:--- id | Guid | Identity of the [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entity. -type | Enum | Type of the action. Possible values are: "RunAntiVirusScan", "Offboarding", "CollectInvestigationPackage", "Isolate", "Unisolate", "StopAndQuarantineFile", "RestrictCodeExecution" and "UnrestrictCodeExecution" +type | Enum | Type of the action. Possible values are: "RunAntiVirusScan", "Offboard", "CollectInvestigationPackage", "Isolate", "Unisolate", "StopAndQuarantineFile", "RestrictCodeExecution" and "UnrestrictCodeExecution" requestor | String | Identity of the person that executed the action. requestorComment | String | Comment that was written when issuing the action. status | Enum | Current status of the command. Possible values are: "InProgress", "Succeeded", "Failed", "TimeOut" and "Cancelled". From a19416f915f3df6af3058e4f0cb936ecaa55cf39 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 13:56:59 +0300 Subject: [PATCH 086/201] s --- ...package-windows-defender-advanced-threat-protection-new.md | 3 +++ ...machine-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...ine-api-windows-defender-advanced-threat-protection-new.md | 3 +++ ...ecution-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...av-scan-windows-defender-advanced-threat-protection-new.md | 4 ++++ 5 files changed, 18 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 5123a977a5..0070c9376a 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,9 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' +>[!IMPORTANT] +> This response action is available for machines on Windows 10, version 1703 or later. + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/collectInvestigationPackage diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index f40b7c7b57..604f6fe959 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,10 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' +>[!IMPORTANT] +>- Full isolation is available for machines on Windows 10, version 1703. +>- Selective isolation is available for machines on Windows 10, version 1709 or later. + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/isolate diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 9f95e08bc0..b40d39cbc3 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,9 @@ Permission type | Permission | Permission display name Application | Machine.Offboard | 'Offboard machine' Delegated (work or school account) | Machine.Offboard | 'Offboard machine' +>[!IMPORTANT] +> This response action is available for machines on Windows 10, version 1703 or later. + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/offboard diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 1ba77ea104..962dad7581 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,10 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' +>[!IMPORTANT] +> - This action is available for machines on Windows 10, version 1709 or later. +> - This action needs to meet the Windows Defender Application Control code integrity policy formats and signing requirements. For more information, see [Code integrity policy formats and signing](https://docs.microsoft.com/en-us/windows/device-security/device-guard/requirements-and-deployment-planning-guidelines-for-device-guard#code-integrity-policy-formats-and-signing). + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/restrictCodeExecution diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index d12d5e8480..85c37a2cc6 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,10 @@ Permission type | Permission | Permission display name Application | Machine.Scan | 'Scan machine' Delegated (work or school account) | Machine.Scan | 'Scan machine' +>[!IMPORTANT] +>- This action is available for machines on Windows 10, version 1709 or later. +>- A Windows Defender Antivirus (Windows Defender AV) scan can run alongside other antivirus solutions, whether Windows Defender AV is the active antivirus solution or not. Windows Defender AV can be in Passive mode. For more information, see [Windows Defender Antivirus compatibility](../windows-defender-antivirus/windows-defender-antivirus-compatibility.md). + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/runAntiVirusScan From f35962ddceee6987bd165b7d817376bba8c1977c Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 14:14:04 +0300 Subject: [PATCH 087/201] s --- ...ws-defender-advanced-threat-protection-new.md | 9 ++++----- ...ws-defender-advanced-threat-protection-new.md | 16 ++++++++-------- ...ws-defender-advanced-threat-protection-new.md | 4 ++-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index 7a7fbac1dd..4683167dfb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,12 @@ ms.date: 12/08/2017 --- # Get machine by ID API -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - [!include[Prereleaseinformation](prerelease.md)] +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) Retrieves a machine entity by ID. ## Permissions @@ -78,13 +77,13 @@ Content-type: application/json "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "computerDnsName": "mymachine1.contoso.com", "firstSeen": "2018-08-02T14:55:03.7791856Z", + "lastSeen": "2018-08-02T14:55:03.7791856Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "172.17.230.209", "lastExternalIpAddress": "167.220.196.71", "agentVersion": "10.5830.18209.1001", - "groupName": null, "osBuild": 18209, "healthStatus": "Active", "isAadJoined": true, diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 2eccd27c17..d114cf97cb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -14,16 +14,16 @@ ms.date: 12/08/2017 --- # List machines API + +[!include[Prereleaseinformation](prerelease.md)] + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - -[!include[Prereleaseinformation](prerelease.md)] - - - Retrieves a collection of machines that have communicated with WDATP cloud on the last 30 days. +Get Machines collection API supports [OData V4 queries](https://www.odata.org/documentation/). +The OData's Filter query is supported on: "Id", "ComputerDnsName", "LastSeen", "LastIpAddress", "HealthStatus", "OsPlatform", "RiskScore" and "RbacGroupId" ## Permissions @@ -36,7 +36,7 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ## HTTP request ``` -GET /api/machines +GET https://api.securitycenter.windows.com/api/machines ``` ## Request headers @@ -80,13 +80,13 @@ Content-type: application/json "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "computerDnsName": "mymachine1.contoso.com", "firstSeen": "2018-08-02T14:55:03.7791856Z", + "lastSeen": "2018-08-02T14:55:03.7791856Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "172.17.230.209", "lastExternalIpAddress": "167.220.196.71", "agentVersion": "10.5830.18209.1001", - "groupName": null, "osBuild": 18209, "healthStatus": "Active", "isAadJoined": true, @@ -99,13 +99,13 @@ Content-type: application/json "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", "computerDnsName": "mymachine2.contoso.com", "firstSeen": "2018-07-09T13:22:45.1250071Z", + "lastSeen": "2018-07-09T13:22:45.1250071Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "192.168.12.225", "lastExternalIpAddress": "79.183.65.82", "agentVersion": "10.5820.17724.1000", - "groupName": "WDATPClientTeam", "osBuild": 17724, "healthStatus": "Inactive", "isAadJoined": true, diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md index 093e47ba79..1384b99ca0 100644 --- a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -30,14 +30,14 @@ Property | Type | Description id | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) identity. computerDnsName | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) fully qualified name. firstSeen | DateTimeOffset | First date and time where the [machine](machine-windows-defender-advanced-threat-protection-new.md) was observed by WDATP. +lastSeen | DateTimeOffset | Last date and time where the [machine](machine-windows-defender-advanced-threat-protection-new.md) was observed by WDATP. osPlatform | String | OS platform. osVersion | String | OS Version. lastIpAddress | Ip | Last IP on local NIC on the [machine](machine-windows-defender-advanced-threat-protection-new.md). lastExternalIpAddress | Ip | Last IP through which the [machine](machine-windows-defender-advanced-threat-protection-new.md) accessed the internet. agentVersion | String | Version of WDATP agent. -groupName | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) group name (when defined). osBuild | Int | OS build number. -healthStatus | String | [machine](machine-windows-defender-advanced-threat-protection-new.md) health status. +healthStatus | Enum | [machine](machine-windows-defender-advanced-threat-protection-new.md) health status. Possible values are: "Active", "Inactive", "ImpairedCommunication", "NoSensorData" and "NoSensorDataImpairedCommunication" isAadJoined | Boolean | Is [machine](machine-windows-defender-advanced-threat-protection-new.md) AAD joined. machineTags | String collection | Set of [machine](machine-windows-defender-advanced-threat-protection-new.md) tags. rbacGroupId | Int | Group ID. From 52a867befd2b6052df51be7a8f64c2213b8a8c5f Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 14:49:48 +0300 Subject: [PATCH 088/201] s --- windows/security/threat-protection/TOC.md | 1 + .../windows-defender-atp/TOC.md | 1 + ...defender-advanced-threat-protection-new.md | 106 ++++++++++++++++++ ...defender-advanced-threat-protection-new.md | 7 +- ...defender-advanced-threat-protection-new.md | 5 +- 5 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index b727c322cc..204c70c03a 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -319,6 +319,7 @@ ######## [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md) ######## [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) ######## [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) +######## [Add or Remove machine tags](windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) ####### [Machine Action](windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md) ######## [List MachineActions](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index a129e5f404..82189e4b5a 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -316,6 +316,7 @@ ####### [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection-new.md) ####### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) ####### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) +####### [Add or Remove machine tags](add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) ###### [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) ####### [List MachineActions](get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..7a889cde8b --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,106 @@ +--- +title: Add or Remove Machine Tags API +description: Use this API to Add or Remove machine tags. +keywords: apis, graph api, supported apis, tags, machine tags +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Add or Remove Machine Tags API + +[!include[Prerelease information](prerelease.md)] + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) +Adds or remove tag to a specific machine. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' + + +## HTTP request +``` +POST https://api.securitycenter.windows.com/api/machines/{id}/tags +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +Value | String | The tag name. **Required**. +Action | Enum | Add or Remove. Allowed values are: 'Add' or 'Remove'. **Required**. + + +## Response +If successful, this method returns 200 - Ok response code and the updated Machine in the response body. + + +## Example + +**Request** + +Here is an example of a request that adds machine tag. + +[!include[Improve request performance](improverequestperformance-new.md)] + +``` +POST https://api.securitycenter.windows.com/api/machines/863fed4b174465c703c6e412965a31b5e1884cc4/tags +Content-type: application/json +{ + "Value" : "Test Tag", + "Action": "Add" +} + +``` +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 200 Ok +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines/$entity", + "id": "863fed4b174465c703c6e412965a31b5e1884cc4", + "computerDnsName": "mymachine2.contoso.com", + "firstSeen": "2018-07-31T14:20:55.8223496Z", + "lastSeen": "2018-09-27T08:44:05.6228836Z", + "osPlatform": "Windows10", + "osVersion": null, + "lastIpAddress": "10.248.240.38", + "lastExternalIpAddress": "167.220.2.166", + "agentVersion": "10.3720.16299.98", + "osBuild": 16299, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [ + "Test Tag" + ], + "rbacGroupId": 75, + "riskScore": "Medium", + "aadDeviceId": null +} + +``` + +To remove machine tag, send the same request with the Action 'Remove' instead of 'Add' in the request body. \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 55a04d003b..61cb0e8c02 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -14,15 +14,12 @@ ms.date: 12/08/2017 --- # Get machine log on users API -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - [!include[Prereleaseinformation](prerelease.md)] +**Applies to:** - +- Windows Defender Advanced Threat Protection (Windows Defender ATP) Retrieves a collection of logged on users. ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 780354b0dd..16fef6228a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -14,13 +14,12 @@ ms.date: 12/08/2017 --- # Get machine related alerts API -**Applies to:** -- Windows Defender Advanced Threat Protection (Windows Defender ATP) [!include[Prereleaseinformation](prerelease.md)] +**Applies to:** - +- Windows Defender Advanced Threat Protection (Windows Defender ATP) Retrieves a collection of alerts related to a given machine ID. ## Permissions From 2fdc625a9e8a8e1b26fb7279516fcfe88b20b24b Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 14:52:26 +0300 Subject: [PATCH 089/201] s --- .../machine-windows-defender-advanced-threat-protection-new.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md index 1384b99ca0..dee80dc601 100644 --- a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -20,9 +20,10 @@ ms.date: 12/08/2017 Method|Return Type |Description :---|:---|:--- [List machines](get-machines-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) collection | List set of [machine](machine-windows-defender-advanced-threat-protection-new.md) entities in the org. -[Get machine](get-machine-by-id-windows-defender-advanced-threat-protection.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | Get a [machine](machine-windows-defender-advanced-threat-protection-new.md) by its identity. +[Get machine](get-machine-by-id-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | Get a [machine](machine-windows-defender-advanced-threat-protection-new.md) by its identity. [Get logged on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) collection | Get the set of [User](user-windows-defender-advanced-threat-protection-new.md) that logged on to the [machine](machine-windows-defender-advanced-threat-protection-new.md). [Get related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | Get the set of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities that were raised on the [machine](machine-windows-defender-advanced-threat-protection-new.md). +[Add or Remove machine tags](add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | Add or Remove tag to a specific machine. # Properties Property | Type | Description From 9a421f5900c3063a6b122b47dbeb49a34ddeaa77 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 15:01:01 +0300 Subject: [PATCH 090/201] s --- ...hine-tags-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md index 7a889cde8b..ce6b1f362e 100644 --- a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md @@ -103,4 +103,4 @@ Content-type: application/json ``` -To remove machine tag, send the same request with the Action 'Remove' instead of 'Add' in the request body. \ No newline at end of file +To remove machine tag, set the Action to 'Remove' instead of 'Add' in the request body. \ No newline at end of file From bfac67f33e21e365f987b799a860d3c978ad8fb4 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 15:29:51 +0300 Subject: [PATCH 091/201] s --- windows/security/threat-protection/TOC.md | 1 + .../windows-defender-atp/TOC.md | 1 + ...defender-advanced-threat-protection-new.md | 6 +- ...defender-advanced-threat-protection-new.md | 100 ++++++++++++++++++ 4 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 204c70c03a..c0557b023b 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -320,6 +320,7 @@ ######## [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) ######## [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) ######## [Add or Remove machine tags](windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) +######## [Find machines by IP](windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md) ####### [Machine Action](windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md) ######## [List MachineActions](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 82189e4b5a..512fee13c9 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -317,6 +317,7 @@ ####### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) ####### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) ####### [Add or Remove machine tags](add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) +####### [Find machines by IP](find-machines-by-ip-windows-defender-advanced-threat-protection-new.md) ###### [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) ####### [List MachineActions](get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md index ce6b1f362e..65ac87525b 100644 --- a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md @@ -19,7 +19,7 @@ ms.date: 12/08/2017 **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Adds or remove tag to a specific machine. +- Adds or remove tag to a specific machine. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -80,9 +80,9 @@ Here is an example of the response. HTTP/1.1 200 Ok Content-type: application/json { - "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines/$entity", + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machine/$entity", "id": "863fed4b174465c703c6e412965a31b5e1884cc4", - "computerDnsName": "mymachine2.contoso.com", + "computerDnsName": "mymachine55.contoso.com", "firstSeen": "2018-07-31T14:20:55.8223496Z", "lastSeen": "2018-09-27T08:44:05.6228836Z", "osPlatform": "Windows10", diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..c2a99efc69 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,100 @@ +--- +title: Find machines by IP API +description: Find machines seen with IP in the time range of 15 minutes prior and after a given timestamp +keywords: apis, graph api, supported apis, get, machine, IP, find, find machine, by ip, ip +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Find machines by IP + +[!include[Prereleaseinformation](prerelease.md)] + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) +- Find machines seen with IP in the time range of 15 minutes prior and after a given timestamp +- The given timestamp must be in the past 30 days. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Machine.Read.All | 'Read all machine profiles' +Application | Machine.ReadWrite.All | 'Read and write all machine information' +Delegated (work or school account) | Machine.Read | 'Read machine information' +Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' + +## HTTP request +``` +GET /api/machines/findbyip(ip='{IP}',timestamp={TimeStamp}) +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machines were found - 200 OK with list of the machines in the response body. +If no machine found - 404 Not Found. +If the timestamp is not in the past 30 days - 400 Bad Request. + + +## Example + +**Request** + +Here is an example of the request. + +[!include[Improve request performance](improverequestperformance-new.md)] + +``` +GET https://api.securitycenter.windows.com/api/machines/findbyip(ip='10.248.240.38',timestamp=2018-09-22T08:44:05Z) +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "863fed4b174465c703c6e412965a31b5e1884cc4", + "computerDnsName": "mymachine33.contoso.com", + "firstSeen": "2018-07-31T14:20:55.8223496Z", + "lastSeen": null, + "osPlatform": "Windows10", + "osVersion": null, + "lastIpAddress": "10.248.240.38", + "lastExternalIpAddress": "167.220.2.166", + "agentVersion": "10.3720.16299.98", + "osBuild": 16299, + "healthStatus": "Active", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 75, + "riskScore": "Medium", + "aadDeviceId": null + } + ] +} +``` From 045e2a90d8abfe133b1b82f605ab88211cf9102f Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 16:03:12 +0300 Subject: [PATCH 092/201] s --- ...ne-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...achines-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...achines-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...achines-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...achines-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...machine-windows-defender-advanced-threat-protection-new.md | 1 + 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 279fbf2f70..2b6aadf542 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -76,13 +76,13 @@ Content-type: application/json "id": "ff0c3800ed8d66738a514971cd6867166809369f", "computerDnsName": "amazingmachine.contoso.com", "firstSeen": "2017-12-10T07:47:34.4269783Z", + "lasttSeen": "2017-12-10T07:47:34.4269783Z", "osPlatform": "Windows10", "osVersion": "10.0.0.0", "systemProductName": null, "lastIpAddress": "172.17.0.0", "lastExternalIpAddress": "167.220.0.0", "agentVersion": "10.5830.17732.1001", - "groupName": "ContosoGroup", "osBuild": 17732, "healthStatus": "Active", "isAadJoined": true, diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index 053470d9a6..a039d49807 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -78,13 +78,13 @@ Content-type: application/json "id": "02ea9a24e8bd39c247ed7ca0edae879c321684e5", "computerDnsName": "testMachine1", "firstSeen": "2018-07-30T20:12:00.3708661Z", + "lastSeen": "2018-07-30T20:12:00.3708661Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "10.209.67.177", "lastExternalIpAddress": "167.220.1.210", "agentVersion": "10.5830.18208.1000", - "groupName": null, "osBuild": 18208, "healthStatus": "Inactive", "isAadJoined": false, @@ -97,13 +97,13 @@ Content-type: application/json "id": "02efb9a9b85f07749a018fbf3f962b4700b3b949", "computerDnsName": "testMachine2", "firstSeen": "2018-07-30T19:50:47.3618349Z", + "lastSeen": "2018-07-30T19:50:47.3618349Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "10.209.70.231", "lastExternalIpAddress": "167.220.0.28", "agentVersion": "10.5830.18208.1000", - "groupName": null, "osBuild": 18208, "healthStatus": "Inactive", "isAadJoined": false, diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index 1a96bc4743..e977dc59f9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -79,13 +79,13 @@ Content-type: application/json "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "computerDnsName": "mymachine1.contoso.com", "firstSeen": "2018-08-02T14:55:03.7791856Z", + "lasttSeen": "2018-07-09T13:22:45.1250071Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "172.17.230.209", "lastExternalIpAddress": "167.220.196.71", "agentVersion": "10.5830.18209.1001", - "groupName": null, "osBuild": 18209, "healthStatus": "Active", "isAadJoined": true, @@ -98,13 +98,13 @@ Content-type: application/json "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", "computerDnsName": "mymachine2.contoso.com", "firstSeen": "2018-07-09T13:22:45.1250071Z", + "lasttSeen": "2018-07-09T13:22:45.1250071Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "192.168.12.225", "lastExternalIpAddress": "79.183.65.82", "agentVersion": "10.5820.17724.1000", - "groupName": "WDATPClientTeam", "osBuild": 17724, "healthStatus": "Inactive", "isAadJoined": true, diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index ecdab586f3..c2e1dcab6e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -79,13 +79,13 @@ Content-type: application/json "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "computerDnsName": "mymachine1.contoso.com", "firstSeen": "2018-08-02T14:55:03.7791856Z", + "lastSeen": "2018-08-02T14:55:03.7791856Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "172.17.230.209", "lastExternalIpAddress": "167.220.196.71", "agentVersion": "10.5830.18209.1001", - "groupName": null, "osBuild": 18209, "healthStatus": "Active", "isAadJoined": true, @@ -98,13 +98,13 @@ Content-type: application/json "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", "computerDnsName": "mymachine2.contoso.com", "firstSeen": "2018-07-09T13:22:45.1250071Z", + "lastSeen": "2018-07-09T13:22:45.1250071Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "192.168.12.225", "lastExternalIpAddress": "79.183.65.82", "agentVersion": "10.5820.17724.1000", - "groupName": "WDATPClientTeam", "osBuild": 17724, "healthStatus": "Inactive", "isAadJoined": true, diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 203642ef2e..676602504f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -77,13 +77,13 @@ Content-type: application/json "id": "1e5bc9d7e413ddd7902c2932e418702b84d0cc07", "computerDnsName": "mymachine1.contoso.com", "firstSeen": "2018-08-02T14:55:03.7791856Z", + "lastSeen": "2018-08-02T14:55:03.7791856Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "172.17.230.209", "lastExternalIpAddress": "167.220.196.71", "agentVersion": "10.5830.18209.1001", - "groupName": null, "osBuild": 18209, "healthStatus": "Active", "isAadJoined": true, @@ -96,13 +96,13 @@ Content-type: application/json "id": "7292e4b8cb74ff1cc3d8a495eb29dc8858b732f7", "computerDnsName": "mymachine2.contoso.com", "firstSeen": "2018-07-09T13:22:45.1250071Z", + "lastSeen": "2018-07-09T13:22:45.1250071Z", "osPlatform": "Windows10", "osVersion": null, "systemProductName": null, "lastIpAddress": "192.168.12.225", "lastExternalIpAddress": "79.183.65.82", "agentVersion": "10.5820.17724.1000", - "groupName": "WDATPClientTeam", "osBuild": 17724, "healthStatus": "Inactive", "isAadJoined": true, diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md index dee80dc601..020621ef49 100644 --- a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -24,6 +24,7 @@ Method|Return Type |Description [Get logged on users](get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md) | [user](user-windows-defender-advanced-threat-protection-new.md) collection | Get the set of [User](user-windows-defender-advanced-threat-protection-new.md) that logged on to the [machine](machine-windows-defender-advanced-threat-protection-new.md). [Get related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md) | [alert](alerts-windows-defender-advanced-threat-protection-new.md) collection | Get the set of [alert](alerts-windows-defender-advanced-threat-protection-new.md) entities that were raised on the [machine](machine-windows-defender-advanced-threat-protection-new.md). [Add or Remove machine tags](add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) | Add or Remove tag to a specific machine. +[Find machines by IP](find-machines-by-ip-windows-defender-advanced-threat-protection-new.md) | [machine](machine-windows-defender-advanced-threat-protection-new.md) collection | Find machines seen with IP. # Properties Property | Type | Description From 3bf9ebbab5c61cae00c9ec529f14e64694cfd16c Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 16:13:52 +0300 Subject: [PATCH 093/201] s --- ...by-ip-windows-defender-advanced-threat-protection-new.md | 6 +++--- ...-info-windows-defender-advanced-threat-protection-new.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md index c2a99efc69..422958d5cb 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -1,6 +1,6 @@ --- -title: Find machines by IP API -description: Find machines seen with IP in the time range of 15 minutes prior and after a given timestamp +title: Find machines by internal IP API +description: Find machines seen with internal IP in the time range of 15 minutes prior and after a given timestamp keywords: apis, graph api, supported apis, get, machine, IP, find, find machine, by ip, ip search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Find machines by IP +# Find machines by internal IP API [!include[Prereleaseinformation](prerelease.md)] diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 2b6aadf542..20d5a2ffac 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -76,7 +76,7 @@ Content-type: application/json "id": "ff0c3800ed8d66738a514971cd6867166809369f", "computerDnsName": "amazingmachine.contoso.com", "firstSeen": "2017-12-10T07:47:34.4269783Z", - "lasttSeen": "2017-12-10T07:47:34.4269783Z", + "lastSeen": "2017-12-10T07:47:34.4269783Z", "osPlatform": "Windows10", "osVersion": "10.0.0.0", "systemProductName": null, From 90d4bdca18ff0008636d1e12f3b9a1203628a74f Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 27 Sep 2018 16:15:10 +0300 Subject: [PATCH 094/201] s --- ...s-by-ip-windows-defender-advanced-threat-protection-new.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md index 422958d5cb..15d829c27a 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -1,6 +1,6 @@ --- title: Find machines by internal IP API -description: Find machines seen with internal IP in the time range of 15 minutes prior and after a given timestamp +description: Find machines seen with the requested internal IP in the time range of 15 minutes prior and after a given timestamp keywords: apis, graph api, supported apis, get, machine, IP, find, find machine, by ip, ip search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -20,7 +20,7 @@ ms.date: 12/08/2017 **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) -- Find machines seen with IP in the time range of 15 minutes prior and after a given timestamp +- Find machines seen with the requested internal IP in the time range of 15 minutes prior and after a given timestamp - The given timestamp must be in the past 30 days. ## Permissions From 3f4f0477033754c46be7286f15db8a4d784a20a9 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 2 Oct 2018 14:42:46 -0700 Subject: [PATCH 095/201] remove deprecated label --- windows/security/threat-protection/windows-defender-atp/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 512fee13c9..ff0b92b2f8 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -426,7 +426,7 @@ -#### TO BE DEPRECATED - API for custom alerts +#### API for custom alerts ##### [Enable the custom threat intelligence application](enable-custom-ti-windows-defender-advanced-threat-protection.md) ##### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Use the threat intelligence API to create custom alerts](use-custom-ti-windows-defender-advanced-threat-protection.md) From 504c7bf68b17b9234de03a4e4e3de33872bcc861 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Tue, 2 Oct 2018 21:56:39 +0000 Subject: [PATCH 096/201] Merged PR 11779: Fixed what's new merge issue - live publish --- .../auditing/audit-ipsec-driver.md | 4 ++-- .../auditing/audit-ipsec-extended-mode.md | 16 +++++++-------- .../auditing/audit-ipsec-main-mode.md | 20 +++++++++---------- .../auditing/audit-ipsec-quick-mode.md | 8 ++++---- .../whats-new-windows-10-version-1809.md | 3 --- 5 files changed, 24 insertions(+), 27 deletions(-) diff --git a/windows/security/threat-protection/auditing/audit-ipsec-driver.md b/windows/security/threat-protection/auditing/audit-ipsec-driver.md index 4b1c430188..1fb88b5fd4 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-driver.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-driver.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Driver @@ -56,7 +56,7 @@ This subcategory is outside the scope of this document. ## 5478(S): IPsec Services has started successfully. -## 5479(): IPsec Services has been shut down successfully. The shutdown of IPsec Services can put the computer at greater risk of network attack or expose the computer to potential security risks. +## 5479(S): IPsec Services has been shut down successfully. The shutdown of IPsec Services can put the computer at greater risk of network attack or expose the computer to potential security risks. ## 5480(F): IPsec Services failed to get the complete list of network interfaces on the computer. This poses a potential security risk because some of the network interfaces may not get the protection provided by the applied IPsec filters. Use the IP Security Monitor snap-in to diagnose the problem. diff --git a/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md b/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md index 9edf8ad528..e9388ef13f 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-extended-mode.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Extended Mode @@ -28,17 +28,17 @@ Audit IPsec Extended Mode subcategory is out of scope of this document, because | Member Server | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Extended Mode troubleshooting, or for tracing or monitoring IPsec Extended Mode operations. | | Workstation | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Extended Mode troubleshooting, or for tracing or monitoring IPsec Extended Mode operations. | -## 4978: During Extended Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. +## 4978(S): During Extended Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. -## 4979: IPsec Main Mode and Extended Mode security associations were established. +## 4979(S): IPsec Main Mode and Extended Mode security associations were established. -## 4980: IPsec Main Mode and Extended Mode security associations were established. +## 4980(S): IPsec Main Mode and Extended Mode security associations were established. -## 4981: IPsec Main Mode and Extended Mode security associations were established. +## 4981(S): IPsec Main Mode and Extended Mode security associations were established. -## 4982: IPsec Main Mode and Extended Mode security associations were established. +## 4982(S): IPsec Main Mode and Extended Mode security associations were established. -## 4983: An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. +## 4983(S): An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. -## 4984: An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. +## 4984(S): An IPsec Extended Mode negotiation failed. The corresponding Main Mode security association has been deleted. diff --git a/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md b/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md index d0764daf4b..1a34ba32f3 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-main-mode.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Main Mode @@ -28,21 +28,21 @@ Audit IPsec Main Mode subcategory is out of scope of this document, because this | Member Server | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Main Mode troubleshooting, or for tracing or monitoring IPsec Main Mode operations. | | Workstation | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Main Mode troubleshooting, or for tracing or monitoring IPsec Main Mode operations. | -## 4646: Security ID: %1 +## 4646(S): Security ID: %1 -## 4650: An IPsec Main Mode security association was established. Extended Mode was not enabled. Certificate authentication was not used. +## 4650(S): An IPsec Main Mode security association was established. Extended Mode was not enabled. Certificate authentication was not used. -## 4651: An IPsec Main Mode security association was established. Extended Mode was not enabled. A certificate was used for authentication. +## 4651(S): An IPsec Main Mode security association was established. Extended Mode was not enabled. A certificate was used for authentication. -## 4652: An IPsec Main Mode negotiation failed. +## 4652(F): An IPsec Main Mode negotiation failed. -## 4653: An IPsec Main Mode negotiation failed. +## 4653(F): An IPsec Main Mode negotiation failed. -## 4655: An IPsec Main Mode security association ended. +## 4655(S): An IPsec Main Mode security association ended. -## 4976: During Main Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. +## 4976(S): During Main Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. -## 5049: An IPsec Security Association was deleted. +## 5049(S): An IPsec Security Association was deleted. -## 5453: An IPsec negotiation with a remote computer failed because the IKE and AuthIP IPsec Keying Modules (IKEEXT) service is not started. +## 5453(S): An IPsec negotiation with a remote computer failed because the IKE and AuthIP IPsec Keying Modules (IKEEXT) service is not started. diff --git a/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md b/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md index 7adfcddd8c..40aabcd719 100644 --- a/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md +++ b/windows/security/threat-protection/auditing/audit-ipsec-quick-mode.md @@ -8,7 +8,7 @@ ms.mktglfcycl: deploy ms.sitesec: library ms.localizationpriority: none author: Mir0sh -ms.date: 04/19/2017 +ms.date: 10/02/2018 --- # Audit IPsec Quick Mode @@ -28,9 +28,9 @@ Audit IPsec Quick Mode subcategory is out of scope of this document, because thi | Member Server | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Quick Mode troubleshooting, or for tracing or monitoring IPsec Quick Mode operations. | | Workstation | IF | IF | IF | IF | IF - This subcategory is mainly used for IPsec Quick Mode troubleshooting, or for tracing or monitoring IPsec Quick Mode operations. | -## 4977: During Quick Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. +## 4977(S): During Quick Mode negotiation, IPsec received an invalid negotiation packet. If this problem persists, it could indicate a network issue or an attempt to modify or replay this negotiation. -## 5451: An IPsec Quick Mode security association was established. +## 5451(S): An IPsec Quick Mode security association was established. -## 5452: An IPsec Quick Mode security association ended. +## 5452(S): An IPsec Quick Mode security association ended. diff --git a/windows/whats-new/whats-new-windows-10-version-1809.md b/windows/whats-new/whats-new-windows-10-version-1809.md index 50352d8816..62ee95e835 100644 --- a/windows/whats-new/whats-new-windows-10-version-1809.md +++ b/windows/whats-new/whats-new-windows-10-version-1809.md @@ -189,8 +189,6 @@ Windows Defender Credential Guard has always been an optional feature, but Windo A network connection is now required to set up a new device. As a result, we removed the “skip for now” option in the network setup page in Out Of Box Experience (OOBE). -<<<<<<< HEAD -======= ### Windows Defender ATP [Windows Defender ATP](https://docs.microsoft.com/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection) has been enhanced with many new capabilities. For more information, see the following topics: @@ -220,7 +218,6 @@ Windows Defender ATP now adds support for Windows Server 2019. You'll be able to - [Onboard previous versions of Windows](https://docs.microsoft.com/windows/security/threat-protection/onboard-downlevel-windows-defender-advanced-threat-protection)
      Onboard supported versions of Windows machines so that they can send sensor data to the Windows Defender ATP sensor ->>>>>>> 951a08abdd8a55231838c35a12890ed68af95f88 ## Faster sign-in to a Windows 10 shared pc Do you have shared devices deployed in your work place? **Fast sign-in** enables users to sign in to a shared Windows 10 PC in a flash! From 20a4c1d66002f08b5a4306a3449d6301becd93aa Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 12:09:47 +0300 Subject: [PATCH 097/201] Suggested fix for isolation --- ...-windows-defender-advanced-threat-protection-new.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 604f6fe959..aa65623516 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,9 @@ ms.date: 12/08/2017 Isolates a machine from accessing external network. +>[!Note] +> This page focus on activating machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -29,6 +32,13 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' +>[!Note] +> When obtaining a token using user credentials: +>- The user need to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user have access to this machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + + + >[!IMPORTANT] >- Full isolation is available for machines on Windows 10, version 1703. >- Selective isolation is available for machines on Windows 10, version 1709 or later. From d180a05566a97594490a9ce35ca9ddfa74dc7ea0 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 12:51:59 +0300 Subject: [PATCH 098/201] small fix --- ...hine-windows-defender-advanced-threat-protection-new.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index aa65623516..4123a2d5c8 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -35,14 +35,9 @@ Delegated (work or school account) | Machine.Isolate | 'Isolate machine' >[!Note] > When obtaining a token using user credentials: >- The user need to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user have access to this machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- The user need to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ->[!IMPORTANT] ->- Full isolation is available for machines on Windows 10, version 1703. ->- Selective isolation is available for machines on Windows 10, version 1709 or later. - ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/isolate From 1ed3b286d6751c7232bf578b7ecba1101f6da9eb Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 13:25:48 +0300 Subject: [PATCH 099/201] Add machine actions link to all machine actions API --- ...ge-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...ne-windows-defender-advanced-threat-protection-new.md | 9 ++++----- .../windows-defender-atp/machineactionsnote.md | 5 +++++ ...pi-windows-defender-advanced-threat-protection-new.md | 2 ++ ...alerts-windows-defender-advanced-threat-protection.md | 4 ++-- ...on-windows-defender-advanced-threat-protection-new.md | 2 ++ ...an-windows-defender-advanced-threat-protection-new.md | 2 ++ ...on-windows-defender-advanced-threat-protection-new.md | 4 ++-- 8 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/machineactionsnote.md diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 0070c9376a..adb088ebb4 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -19,10 +19,10 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - Collect investigation package from a machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 4123a2d5c8..33e7130f36 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -21,8 +21,7 @@ ms.date: 12/08/2017 Isolates a machine from accessing external network. ->[!Note] -> This page focus on activating machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. +[!include[Machine actions note](machineactionsnote.md)] ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -34,8 +33,8 @@ Delegated (work or school account) | Machine.Isolate | 'Isolate machine' >[!Note] > When obtaining a token using user credentials: ->- The user need to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user need to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request @@ -60,7 +59,7 @@ IsolationType | String | Type of the isolation. Allowed values are: 'Full' or 'S **IsolationType** controls the type of isolation to perform and can be one of the following: - Full – Full isolation -- Selective – Restrict only limited set of applications from accessing the network +- Selective – Restrict only limited set of applications from accessing the network (see [Isolate machines from the network](respond-machine-alerts-windows-defender-advanced-threat-protection.md#isolate-machines-from-the-network) for more details) ## Response diff --git a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md new file mode 100644 index 0000000000..ecc1cebee3 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md @@ -0,0 +1,5 @@ +--- +ms.date: 08/28/2017 +--- +>[!Note] +> This page focuses on performing a machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index b40d39cbc3..c766797e14 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Offboard machine from WDATP. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md index 064fb37360..132ae5943b 100644 --- a/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md @@ -181,7 +181,7 @@ Depending on the severity of the attack and the sensitivity of the machine, you This machine isolation feature disconnects the compromised machine from the network while retaining connectivity to the Windows Defender ATP service, which continues to monitor the machine. -On Windows 10, version 1709 or later, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity. +On Windows 10, version 1709 or later, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity (a.k.a 'Selective Isolation'). >[!NOTE] >You’ll be able to reconnect the machine back to the network at any time. @@ -197,7 +197,7 @@ On Windows 10, version 1709 or later, you'll have additional control over the ne ![Image of isolate machine](images/atp-actions-isolate-machine.png) -3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated. +3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated (a.k.a. 'Selective Isolation'). ![Image of isolation confirmation](images/atp-confirm-isolate.png) diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 962dad7581..2f72e196ee 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Restrict execution of all applications on the machine except a predefined set (see [Response machine alerts](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information) +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 85c37a2cc6..10db12f264 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Initiate Windows Defender Antivirus scan on a machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index 4deeaa4646..b449ad9983 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -19,10 +19,10 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - Enable execution of any application on the machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) From 4bc3a56d7c03de2ba56f48a191815eb59482f8c2 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 15:13:10 +0300 Subject: [PATCH 100/201] Add data about roles to all documentation pages --- ...age-windows-defender-advanced-threat-protection-new.md | 6 ++++-- ...nce-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...-ip-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...nfo-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...nfo-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...nfo-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...nfo-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...rts-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...rts-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...nes-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...ics-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...ion-windows-defender-advanced-threat-protection-new.md | 8 +++++--- ...rts-windows-defender-advanced-threat-protection-new.md | 8 +++++--- ...nes-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...ics-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...rts-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...nes-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...ics-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...-id-windows-defender-advanced-threat-protection-new.md | 6 ++++++ ...ers-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...rts-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...ect-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...ion-windows-defender-advanced-threat-protection-new.md | 4 ++++ ...nes-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...uri-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...api-windows-defender-advanced-threat-protection-new.md | 6 ++++-- ...ion-windows-defender-advanced-threat-protection-new.md | 7 ++++--- .../windows-defender-atp/run-advanced-query-api.md | 5 +++++ ...can-windows-defender-advanced-threat-protection-new.md | 7 ++++--- ...ine-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...ion-windows-defender-advanced-threat-protection-new.md | 5 +++++ ...ert-windows-defender-advanced-threat-protection-new.md | 5 +++++ 32 files changed, 152 insertions(+), 16 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index adb088ebb4..7783e25c09 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -31,8 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' ->[!IMPORTANT] -> This response action is available for machines on Windows 10, version 1703 or later. +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index e5e7d337a8..bdf5be889f 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Permission type | Permission | Permission display name Application | Alerts.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST /api/CreateAlertByReference diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md index 15d829c27a..61c158ed1b 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -33,6 +33,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines,that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/machines/findbyip(ip='{IP}',timestamp={TimeStamp}) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index 6e7721ecde..6ed27e2648 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | URL.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/domains diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 7fe0e0b9d5..951363752e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read file profiles' Delegated (work or school account) | File.Read.All | 'Read file profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/files diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 20d5a2ffac..2aaf342cae 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/machine diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index abdd6ee9d9..8e6501fcf1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | User.Read.All | 'Read user profiles' Delegated (work or school account) | User.Read.All | 'Read user profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/user diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index a05d4dba9b..520380e0fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index b8b7730bad..fc469816ef 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -36,6 +36,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/domains/{domain}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index a039d49807..e1d21e0582 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -35,6 +35,11 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ``` GET /api/domains/{domain}/machines ``` +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Only machines that the user can access, based on machine group settings will be listed (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## Request headers diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 1625a17a50..7bfd097dd2 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,10 @@ Permission type | Permission | Permission display name Application | URL.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/domains/{domain}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index c817a1c653..63aabdd191 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -21,9 +21,6 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - - Retrieves a file by identifier Sha1, Sha256, or MD5. ## Permissions @@ -34,6 +31,11 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read all file profiles' Delegated (work or school account) | File.Read.All | 'Read all file profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + + ## HTTP request ``` GET /api/files/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 3c3605bebb..284cb68225 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -22,9 +22,6 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - - Retrieves a collection of alerts related to a given file hash. ## Permissions @@ -37,6 +34,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/files/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index e977dc59f9..ca74749c35 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/files/{id}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index e8a8ede6fd..a53c06b80a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,10 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read file profiles' Delegated (work or school account) | File.Read.All | 'Read file profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/files/{id}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 4d83cb3d73..92ca8d53d4 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index c2e1dcab6e..f68e1e12b1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index 990bd3f852..cdeaa1e441 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,10 @@ Permission type | Permission | Permission display name Application | Ip.Read.All | 'Read IP address profiles' Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index 4683167dfb..ed3fde05b1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,12 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + + ## HTTP request ``` GET /api/machines/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 61cb0e8c02..5dad09904f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | User.Read.All | 'Read user profiles' Delegated (work or school account) | User.Read.All | 'Read user profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include users only if the machine is visible to the user, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/machines/{id}/logonusers diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 16fef6228a..0a8170f0fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/machines/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index bcdbd711ec..17e20f0b73 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,10 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index e11cd96856..d057cb5c85 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,10 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index d114cf97cb..8f2008c14a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines,that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index b59b11034b..bf4cb3c934 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions/{machine action id}/getPackageUri diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index c766797e14..13b8574222 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -31,8 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.Offboard | 'Offboard machine' Delegated (work or school account) | Machine.Offboard | 'Offboard machine' ->[!IMPORTANT] -> This response action is available for machines on Windows 10, version 1703 or later. +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to 'Global Admin' AD role +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 2f72e196ee..90321fb7ff 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -31,9 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' ->[!IMPORTANT] -> - This action is available for machines on Windows 10, version 1709 or later. -> - This action needs to meet the Windows Defender Application Control code integrity policy formats and signing requirements. For more information, see [Code integrity policy formats and signing](https://docs.microsoft.com/en-us/windows/device-security/device-guard/requirements-and-deployment-planning-guidelines-for-device-guard#code-integrity-policy-formats-and-signing). +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 7e312d08e8..86899b1396 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -39,6 +39,11 @@ Permission type | Permission | Permission display name Application | AdvancedQuery.Read.All | 'Run advanced queries' Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to 'Global Admin' AD role +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST /advancedqueries/query diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 10db12f264..f8a0432c1d 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -31,9 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.Scan | 'Scan machine' Delegated (work or school account) | Machine.Scan | 'Scan machine' ->[!IMPORTANT] ->- This action is available for machines on Windows 10, version 1709 or later. ->- A Windows Defender Antivirus (Windows Defender AV) scan can run alongside other antivirus solutions, whether Windows Defender AV is the active antivirus solution or not. Windows Defender AV can be in Passive mode. For more information, see [Windows Defender Antivirus compatibility](../windows-defender-antivirus/windows-defender-antivirus-compatibility.md). +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 5aaccd64f1..205ee3432c 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/unisolate diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index b449ad9983..fd0479fd8a 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,11 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/unrestrictCodeExecution diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 81c8f8d9ac..762ae2251a 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | Alerts.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` PATCH /api/alerts/{id} From 504faf5b34dec29bdbb54fab4538051f4693c209 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:00:20 +0300 Subject: [PATCH 101/201] self review 1 --- ...rence-windows-defender-advanced-threat-protection-new.md | 6 ------ ...lerts-windows-defender-advanced-threat-protection-new.md | 2 +- .../windows-defender-atp/machineactionsnote.md | 1 + 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index bdf5be889f..94288d30d6 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -30,12 +30,6 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Alerts.ReadWrite.All | 'Read and write all alerts' -Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' - ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 520380e0fd..205805378d 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -36,7 +36,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) >- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request diff --git a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md index ecc1cebee3..fcbd68ecec 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md +++ b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md @@ -1,5 +1,6 @@ --- ms.date: 08/28/2017 +author: zavidor --- >[!Note] > This page focuses on performing a machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. From b7b38cf0c294b96f431a90ee0c8aa76ca86dd2b5 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:13:42 +0300 Subject: [PATCH 102/201] Revert "self review 1" This reverts commit 504faf5b34dec29bdbb54fab4538051f4693c209. --- ...rence-windows-defender-advanced-threat-protection-new.md | 6 ++++++ ...lerts-windows-defender-advanced-threat-protection-new.md | 2 +- .../windows-defender-atp/machineactionsnote.md | 1 - 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 94288d30d6..bdf5be889f 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,12 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Alerts.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' + +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 205805378d..520380e0fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -36,7 +36,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) >- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request diff --git a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md index fcbd68ecec..ecc1cebee3 100644 --- a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md +++ b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md @@ -1,6 +1,5 @@ --- ms.date: 08/28/2017 -author: zavidor --- >[!Note] > This page focuses on performing a machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. From 432eaf711ac8e67c5f6c43c1c34f3fa4b9e0c46f Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:13:47 +0300 Subject: [PATCH 103/201] Revert "Add data about roles to all documentation pages" This reverts commit 4bc3a56d7c03de2ba56f48a191815eb59482f8c2. --- ...age-windows-defender-advanced-threat-protection-new.md | 6 ++---- ...nce-windows-defender-advanced-threat-protection-new.md | 5 ----- ...-ip-windows-defender-advanced-threat-protection-new.md | 5 ----- ...nfo-windows-defender-advanced-threat-protection-new.md | 5 ----- ...nfo-windows-defender-advanced-threat-protection-new.md | 5 ----- ...nfo-windows-defender-advanced-threat-protection-new.md | 5 ----- ...nfo-windows-defender-advanced-threat-protection-new.md | 5 ----- ...rts-windows-defender-advanced-threat-protection-new.md | 5 ----- ...rts-windows-defender-advanced-threat-protection-new.md | 5 ----- ...nes-windows-defender-advanced-threat-protection-new.md | 5 ----- ...ics-windows-defender-advanced-threat-protection-new.md | 4 ---- ...ion-windows-defender-advanced-threat-protection-new.md | 8 +++----- ...rts-windows-defender-advanced-threat-protection-new.md | 8 +++----- ...nes-windows-defender-advanced-threat-protection-new.md | 5 ----- ...ics-windows-defender-advanced-threat-protection-new.md | 4 ---- ...rts-windows-defender-advanced-threat-protection-new.md | 5 ----- ...nes-windows-defender-advanced-threat-protection-new.md | 5 ----- ...ics-windows-defender-advanced-threat-protection-new.md | 4 ---- ...-id-windows-defender-advanced-threat-protection-new.md | 6 ------ ...ers-windows-defender-advanced-threat-protection-new.md | 5 ----- ...rts-windows-defender-advanced-threat-protection-new.md | 5 ----- ...ect-windows-defender-advanced-threat-protection-new.md | 4 ---- ...ion-windows-defender-advanced-threat-protection-new.md | 4 ---- ...nes-windows-defender-advanced-threat-protection-new.md | 5 ----- ...uri-windows-defender-advanced-threat-protection-new.md | 5 ----- ...api-windows-defender-advanced-threat-protection-new.md | 6 ++---- ...ion-windows-defender-advanced-threat-protection-new.md | 7 +++---- .../windows-defender-atp/run-advanced-query-api.md | 5 ----- ...can-windows-defender-advanced-threat-protection-new.md | 7 +++---- ...ine-windows-defender-advanced-threat-protection-new.md | 5 ----- ...ion-windows-defender-advanced-threat-protection-new.md | 5 ----- ...ert-windows-defender-advanced-threat-protection-new.md | 5 ----- 32 files changed, 16 insertions(+), 152 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 7783e25c09..adb088ebb4 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -31,10 +31,8 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>[!IMPORTANT] +> This response action is available for machines on Windows 10, version 1703 or later. ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index bdf5be889f..e5e7d337a8 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -32,11 +32,6 @@ Permission type | Permission | Permission display name Application | Alerts.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` POST /api/CreateAlertByReference diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md index 61c158ed1b..15d829c27a 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -33,11 +33,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only machines,that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/machines/findbyip(ip='{IP}',timestamp={TimeStamp}) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index 6ed27e2648..6e7721ecde 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -29,11 +29,6 @@ Permission type | Permission | Permission display name Application | URL.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/alerts/{id}/domains diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 951363752e..7fe0e0b9d5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -29,11 +29,6 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read file profiles' Delegated (work or school account) | File.Read.All | 'Read file profiles' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/alerts/{id}/files diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 2aaf342cae..20d5a2ffac 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -31,11 +31,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/alerts/{id}/machine diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index 8e6501fcf1..abdd6ee9d9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -30,11 +30,6 @@ Permission type | Permission | Permission display name Application | User.Read.All | 'Read user profiles' Delegated (work or school account) | User.Read.All | 'Read user profiles' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/alerts/{id}/user diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 520380e0fd..a05d4dba9b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -34,11 +34,6 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index fc469816ef..b8b7730bad 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -36,11 +36,6 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/domains/{domain}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index e1d21e0582..a039d49807 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -35,11 +35,6 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ``` GET /api/domains/{domain}/machines ``` ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Only machines that the user can access, based on machine group settings will be listed (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## Request headers diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 7bfd097dd2..1625a17a50 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -30,10 +30,6 @@ Permission type | Permission | Permission display name Application | URL.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/domains/{domain}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index 63aabdd191..c817a1c653 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,9 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] + + + Retrieves a file by identifier Sha1, Sha256, or MD5. ## Permissions @@ -31,11 +34,6 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read all file profiles' Delegated (work or school account) | File.Read.All | 'Read all file profiles' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) - - ## HTTP request ``` GET /api/files/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 284cb68225..3c3605bebb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -22,6 +22,9 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] + + + Retrieves a collection of alerts related to a given file hash. ## Permissions @@ -34,11 +37,6 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/files/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index ca74749c35..e977dc59f9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,11 +32,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/files/{id}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index a53c06b80a..e8a8ede6fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -34,10 +34,6 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read file profiles' Delegated (work or school account) | File.Read.All | 'Read file profiles' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/files/{id}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 92ca8d53d4..4d83cb3d73 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,11 +32,6 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/ips/{ip}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index f68e1e12b1..c2e1dcab6e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,11 +32,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/ips/{ip}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index cdeaa1e441..990bd3f852 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -32,10 +32,6 @@ Permission type | Permission | Permission display name Application | Ip.Read.All | 'Read IP address profiles' Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/ips/{ip}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index ed3fde05b1..4683167dfb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -32,12 +32,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - - ## HTTP request ``` GET /api/machines/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 5dad09904f..61cb0e8c02 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -30,11 +30,6 @@ Permission type | Permission | Permission display name Application | User.Read.All | 'Read user profiles' Delegated (work or school account) | User.Read.All | 'Read user profiles' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include users only if the machine is visible to the user, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/machines/{id}/logonusers diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 0a8170f0fd..16fef6228a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,11 +32,6 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET /api/machines/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 17e20f0b73..bcdbd711ec 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -31,10 +31,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index d057cb5c85..e11cd96856 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -34,10 +34,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 8f2008c14a..d114cf97cb 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -34,11 +34,6 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only machines,that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index bf4cb3c934..b59b11034b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -29,11 +29,6 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions/{machine action id}/getPackageUri diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 13b8574222..c766797e14 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -31,10 +31,8 @@ Permission type | Permission | Permission display name Application | Machine.Offboard | 'Offboard machine' Delegated (work or school account) | Machine.Offboard | 'Offboard machine' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to 'Global Admin' AD role ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>[!IMPORTANT] +> This response action is available for machines on Windows 10, version 1703 or later. ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 90321fb7ff..2f72e196ee 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -31,10 +31,9 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>[!IMPORTANT] +> - This action is available for machines on Windows 10, version 1709 or later. +> - This action needs to meet the Windows Defender Application Control code integrity policy formats and signing requirements. For more information, see [Code integrity policy formats and signing](https://docs.microsoft.com/en-us/windows/device-security/device-guard/requirements-and-deployment-planning-guidelines-for-device-guard#code-integrity-policy-formats-and-signing). ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 86899b1396..7e312d08e8 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -39,11 +39,6 @@ Permission type | Permission | Permission display name Application | AdvancedQuery.Read.All | 'Run advanced queries' Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to 'Global Admin' AD role ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` POST /advancedqueries/query diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index f8a0432c1d..10db12f264 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -31,10 +31,9 @@ Permission type | Permission | Permission display name Application | Machine.Scan | 'Scan machine' Delegated (work or school account) | Machine.Scan | 'Scan machine' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>[!IMPORTANT] +>- This action is available for machines on Windows 10, version 1709 or later. +>- A Windows Defender Antivirus (Windows Defender AV) scan can run alongside other antivirus solutions, whether Windows Defender AV is the active antivirus solution or not. Windows Defender AV can be in Passive mode. For more information, see [Windows Defender Antivirus compatibility](../windows-defender-antivirus/windows-defender-antivirus-compatibility.md). ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 205ee3432c..5aaccd64f1 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -29,11 +29,6 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/unisolate diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index fd0479fd8a..b449ad9983 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -31,11 +31,6 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/unrestrictCodeExecution diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 762ae2251a..81c8f8d9ac 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -30,11 +30,6 @@ Permission type | Permission | Permission display name Application | Alerts.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - ## HTTP request ``` PATCH /api/alerts/{id} From 94d76a391c354eff889cdae1201667dd57e6d95e Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:13:54 +0300 Subject: [PATCH 104/201] Revert "Add machine actions link to all machine actions API" This reverts commit 1ed3b286d6751c7232bf578b7ecba1101f6da9eb. --- ...ge-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...ne-windows-defender-advanced-threat-protection-new.md | 9 +++++---- .../windows-defender-atp/machineactionsnote.md | 5 ----- ...pi-windows-defender-advanced-threat-protection-new.md | 2 -- ...alerts-windows-defender-advanced-threat-protection.md | 4 ++-- ...on-windows-defender-advanced-threat-protection-new.md | 2 -- ...an-windows-defender-advanced-threat-protection-new.md | 2 -- ...on-windows-defender-advanced-threat-protection-new.md | 4 ++-- 8 files changed, 11 insertions(+), 21 deletions(-) delete mode 100644 windows/security/threat-protection/windows-defender-atp/machineactionsnote.md diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index adb088ebb4..0070c9376a 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -19,9 +19,9 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] -Collect investigation package from a machine. -[!include[Machine actions note](machineactionsnote.md)] + +Collect investigation package from a machine. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 33e7130f36..4123a2d5c8 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -21,7 +21,8 @@ ms.date: 12/08/2017 Isolates a machine from accessing external network. -[!include[Machine actions note](machineactionsnote.md)] +>[!Note] +> This page focus on activating machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -33,8 +34,8 @@ Delegated (work or school account) | Machine.Isolate | 'Isolate machine' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- The user need to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user need to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request @@ -59,7 +60,7 @@ IsolationType | String | Type of the isolation. Allowed values are: 'Full' or 'S **IsolationType** controls the type of isolation to perform and can be one of the following: - Full – Full isolation -- Selective – Restrict only limited set of applications from accessing the network (see [Isolate machines from the network](respond-machine-alerts-windows-defender-advanced-threat-protection.md#isolate-machines-from-the-network) for more details) +- Selective – Restrict only limited set of applications from accessing the network ## Response diff --git a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md deleted file mode 100644 index ecc1cebee3..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -ms.date: 08/28/2017 ---- ->[!Note] -> This page focuses on performing a machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index c766797e14..b40d39cbc3 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -21,8 +21,6 @@ ms.date: 12/08/2017 Offboard machine from WDATP. -[!include[Machine actions note](machineactionsnote.md)] - ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md index 132ae5943b..064fb37360 100644 --- a/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md @@ -181,7 +181,7 @@ Depending on the severity of the attack and the sensitivity of the machine, you This machine isolation feature disconnects the compromised machine from the network while retaining connectivity to the Windows Defender ATP service, which continues to monitor the machine. -On Windows 10, version 1709 or later, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity (a.k.a 'Selective Isolation'). +On Windows 10, version 1709 or later, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity. >[!NOTE] >You’ll be able to reconnect the machine back to the network at any time. @@ -197,7 +197,7 @@ On Windows 10, version 1709 or later, you'll have additional control over the ne ![Image of isolate machine](images/atp-actions-isolate-machine.png) -3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated (a.k.a. 'Selective Isolation'). +3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated. ![Image of isolation confirmation](images/atp-confirm-isolate.png) diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 2f72e196ee..962dad7581 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -21,8 +21,6 @@ ms.date: 12/08/2017 Restrict execution of all applications on the machine except a predefined set (see [Response machine alerts](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information) -[!include[Machine actions note](machineactionsnote.md)] - ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 10db12f264..85c37a2cc6 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -21,8 +21,6 @@ ms.date: 12/08/2017 Initiate Windows Defender Antivirus scan on a machine. -[!include[Machine actions note](machineactionsnote.md)] - ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index b449ad9983..4deeaa4646 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -19,9 +19,9 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] -Enable execution of any application on the machine. -[!include[Machine actions note](machineactionsnote.md)] + +Enable execution of any application on the machine. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) From 6bbb70af367a0e4e7117d27905a6b7108cc3da18 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:13:59 +0300 Subject: [PATCH 105/201] Revert "small fix" This reverts commit d180a05566a97594490a9ce35ca9ddfa74dc7ea0. --- ...hine-windows-defender-advanced-threat-protection-new.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 4123a2d5c8..aa65623516 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -35,9 +35,14 @@ Delegated (work or school account) | Machine.Isolate | 'Isolate machine' >[!Note] > When obtaining a token using user credentials: >- The user need to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user need to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- The user have access to this machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + +>[!IMPORTANT] +>- Full isolation is available for machines on Windows 10, version 1703. +>- Selective isolation is available for machines on Windows 10, version 1709 or later. + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/isolate From 01e839ad12a37f4ebf84011822cb4f9052a4ea78 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:14:05 +0300 Subject: [PATCH 106/201] Revert "Suggested fix for isolation" This reverts commit 20a4c1d66002f08b5a4306a3449d6301becd93aa. --- ...-windows-defender-advanced-threat-protection-new.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index aa65623516..604f6fe959 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -21,9 +21,6 @@ ms.date: 12/08/2017 Isolates a machine from accessing external network. ->[!Note] -> This page focus on activating machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. - ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -32,13 +29,6 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ->[!Note] -> When obtaining a token using user credentials: ->- The user need to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user have access to this machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - - - >[!IMPORTANT] >- Full isolation is available for machines on Windows 10, version 1703. >- Selective isolation is available for machines on Windows 10, version 1709 or later. From c456731193fa5ad666d17f613b1cb6eac45c9a8a Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 16:17:11 +0300 Subject: [PATCH 107/201] add roles info to docs --- ...indows-defender-advanced-threat-protection-new.md | 10 ++++++---- ...indows-defender-advanced-threat-protection-new.md | 1 - ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 4 ++++ ...indows-defender-advanced-threat-protection-new.md | 8 +++++--- ...indows-defender-advanced-threat-protection-new.md | 8 +++++--- ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 4 ++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 4 ++++ ...indows-defender-advanced-threat-protection-new.md | 6 ++++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 4 ++++ ...indows-defender-advanced-threat-protection-new.md | 4 ++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 12 ++++++++---- .../windows-defender-atp/machineactionsnote.md | 6 ++++++ ...indows-defender-advanced-threat-protection-new.md | 8 ++++++-- ...ts-windows-defender-advanced-threat-protection.md | 4 ++-- ...indows-defender-advanced-threat-protection-new.md | 9 ++++++--- .../windows-defender-atp/run-advanced-query-api.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 9 ++++++--- ...indows-defender-advanced-threat-protection-new.md | 5 +++++ ...indows-defender-advanced-threat-protection-new.md | 9 +++++++-- ...indows-defender-advanced-threat-protection-new.md | 5 +++++ 35 files changed, 173 insertions(+), 27 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/machineactionsnote.md diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 0070c9376a..7783e25c09 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -19,10 +19,10 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - Collect investigation package from a machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -31,8 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' ->[!IMPORTANT] -> This response action is available for machines on Windows 10, version 1703 or later. +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index e5e7d337a8..94288d30d6 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -30,7 +30,6 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Alerts.ReadWrite.All | 'Read and write all alerts' -Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md index 15d829c27a..61c158ed1b 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -33,6 +33,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines,that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/machines/findbyip(ip='{IP}',timestamp={TimeStamp}) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index 6e7721ecde..6ed27e2648 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | URL.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/domains diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 7fe0e0b9d5..951363752e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read file profiles' Delegated (work or school account) | File.Read.All | 'Read file profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/files diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 20d5a2ffac..2aaf342cae 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/machine diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index abdd6ee9d9..8e6501fcf1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | User.Read.All | 'Read user profiles' Delegated (work or school account) | User.Read.All | 'Read user profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/user diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index a05d4dba9b..205805378d 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index b8b7730bad..fc469816ef 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -36,6 +36,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/domains/{domain}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index a039d49807..e1d21e0582 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -35,6 +35,11 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ``` GET /api/domains/{domain}/machines ``` +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Only machines that the user can access, based on machine group settings will be listed (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## Request headers diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 1625a17a50..7bfd097dd2 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,10 @@ Permission type | Permission | Permission display name Application | URL.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/domains/{domain}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index c817a1c653..63aabdd191 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -21,9 +21,6 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - - Retrieves a file by identifier Sha1, Sha256, or MD5. ## Permissions @@ -34,6 +31,11 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read all file profiles' Delegated (work or school account) | File.Read.All | 'Read all file profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + + ## HTTP request ``` GET /api/files/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 3c3605bebb..284cb68225 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -22,9 +22,6 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - - Retrieves a collection of alerts related to a given file hash. ## Permissions @@ -37,6 +34,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/files/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index e977dc59f9..ca74749c35 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/files/{id}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index e8a8ede6fd..a53c06b80a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,10 @@ Permission type | Permission | Permission display name Application | File.Read.All | 'Read file profiles' Delegated (work or school account) | File.Read.All | 'Read file profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/files/{id}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 4d83cb3d73..92ca8d53d4 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index c2e1dcab6e..f68e1e12b1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index 990bd3f852..cdeaa1e441 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,10 @@ Permission type | Permission | Permission display name Application | Ip.Read.All | 'Read IP address profiles' Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip}/stats diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index 4683167dfb..ed3fde05b1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,12 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + + ## HTTP request ``` GET /api/machines/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 61cb0e8c02..5dad09904f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | User.Read.All | 'Read user profiles' Delegated (work or school account) | User.Read.All | 'Read user profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include users only if the machine is visible to the user, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/machines/{id}/logonusers diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 16fef6228a..0a8170f0fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -32,6 +32,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/machines/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index bcdbd711ec..17e20f0b73 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,10 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index e11cd96856..d057cb5c85 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,10 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index d114cf97cb..8f2008c14a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -34,6 +34,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines,that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machines diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index b59b11034b..bf4cb3c934 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | Machine.CollectForensics | 'Collect forensics' Delegated (work or school account) | Machine.CollectForensics | 'Collect forensics' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts Investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET https://api.securitycenter.windows.com/api/machineactions/{machine action id}/getPackageUri diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 604f6fe959..33e7130f36 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Isolates a machine from accessing external network. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -29,9 +31,11 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' ->[!IMPORTANT] ->- Full isolation is available for machines on Windows 10, version 1703. ->- Selective isolation is available for machines on Windows 10, version 1709 or later. +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` @@ -55,7 +59,7 @@ IsolationType | String | Type of the isolation. Allowed values are: 'Full' or 'S **IsolationType** controls the type of isolation to perform and can be one of the following: - Full – Full isolation -- Selective – Restrict only limited set of applications from accessing the network +- Selective – Restrict only limited set of applications from accessing the network (see [Isolate machines from the network](respond-machine-alerts-windows-defender-advanced-threat-protection.md#isolate-machines-from-the-network) for more details) ## Response diff --git a/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md new file mode 100644 index 0000000000..fcbd68ecec --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/machineactionsnote.md @@ -0,0 +1,6 @@ +--- +ms.date: 08/28/2017 +author: zavidor +--- +>[!Note] +> This page focuses on performing a machine action via API. See [take response actions on a machine](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information about response actions functionality via WDATP. diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index b40d39cbc3..13b8574222 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Offboard machine from WDATP. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -29,8 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.Offboard | 'Offboard machine' Delegated (work or school account) | Machine.Offboard | 'Offboard machine' ->[!IMPORTANT] -> This response action is available for machines on Windows 10, version 1703 or later. +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to 'Global Admin' AD role +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md index 064fb37360..132ae5943b 100644 --- a/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md @@ -181,7 +181,7 @@ Depending on the severity of the attack and the sensitivity of the machine, you This machine isolation feature disconnects the compromised machine from the network while retaining connectivity to the Windows Defender ATP service, which continues to monitor the machine. -On Windows 10, version 1709 or later, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity. +On Windows 10, version 1709 or later, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity (a.k.a 'Selective Isolation'). >[!NOTE] >You’ll be able to reconnect the machine back to the network at any time. @@ -197,7 +197,7 @@ On Windows 10, version 1709 or later, you'll have additional control over the ne ![Image of isolate machine](images/atp-actions-isolate-machine.png) -3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated. +3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated (a.k.a. 'Selective Isolation'). ![Image of isolation confirmation](images/atp-confirm-isolate.png) diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 962dad7581..90321fb7ff 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Restrict execution of all applications on the machine except a predefined set (see [Response machine alerts](respond-machine-alerts-windows-defender-advanced-threat-protection.md) for more information) +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -29,9 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' ->[!IMPORTANT] -> - This action is available for machines on Windows 10, version 1709 or later. -> - This action needs to meet the Windows Defender Application Control code integrity policy formats and signing requirements. For more information, see [Code integrity policy formats and signing](https://docs.microsoft.com/en-us/windows/device-security/device-guard/requirements-and-deployment-planning-guidelines-for-device-guard#code-integrity-policy-formats-and-signing). +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 7e312d08e8..86899b1396 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -39,6 +39,11 @@ Permission type | Permission | Permission display name Application | AdvancedQuery.Read.All | 'Run advanced queries' Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to 'Global Admin' AD role +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST /advancedqueries/query diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index 85c37a2cc6..f8a0432c1d 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Initiate Windows Defender Antivirus scan on a machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -29,9 +31,10 @@ Permission type | Permission | Permission display name Application | Machine.Scan | 'Scan machine' Delegated (work or school account) | Machine.Scan | 'Scan machine' ->[!IMPORTANT] ->- This action is available for machines on Windows 10, version 1709 or later. ->- A Windows Defender Antivirus (Windows Defender AV) scan can run alongside other antivirus solutions, whether Windows Defender AV is the active antivirus solution or not. Windows Defender AV can be in Passive mode. For more information, see [Windows Defender Antivirus compatibility](../windows-defender-antivirus/windows-defender-antivirus-compatibility.md). +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 5aaccd64f1..205ee3432c 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,11 @@ Permission type | Permission | Permission display name Application | Machine.Isolate | 'Isolate machine' Delegated (work or school account) | Machine.Isolate | 'Isolate machine' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/unisolate diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index 4deeaa4646..fd0479fd8a 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -19,10 +19,10 @@ ms.date: 12/08/2017 [!include[Prereleaseinformation](prerelease.md)] - - Enable execution of any application on the machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) @@ -31,6 +31,11 @@ Permission type | Permission | Permission display name Application | Machine.RestrictExecution | 'Restrict code execution' Delegated (work or school account) | Machine.RestrictExecution | 'Restrict code execution' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Active remediation actions' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` POST https://api.securitycenter.windows.com/api/machines/{id}/unrestrictCodeExecution diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 81c8f8d9ac..762ae2251a 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | Alerts.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` PATCH /api/alerts/{id} From 6c54e6e8ccc8d261a7bd7a35cef749ae03b1dc5e Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Thu, 4 Oct 2018 17:53:49 +0300 Subject: [PATCH 108/201] self review 1 --- ...windows-defender-advanced-threat-protection-new.md | 4 ++++ ...windows-defender-advanced-threat-protection-new.md | 5 +++++ ...windows-defender-advanced-threat-protection-new.md | 5 +++++ ...windows-defender-advanced-threat-protection-new.md | 2 +- ...windows-defender-advanced-threat-protection-new.md | 11 +++++------ ...windows-defender-advanced-threat-protection-new.md | 2 +- ...windows-defender-advanced-threat-protection-new.md | 2 +- ...windows-defender-advanced-threat-protection-new.md | 5 +++++ ...windows-defender-advanced-threat-protection-new.md | 5 +++++ ...windows-defender-advanced-threat-protection-new.md | 4 ++++ ...windows-defender-advanced-threat-protection-new.md | 4 ++++ 11 files changed, 40 insertions(+), 9 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md index 65ac87525b..db36c8aa7e 100644 --- a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md @@ -29,6 +29,10 @@ Permission type | Permission | Permission display name Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Manage security setting' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- User needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index dc9498c8f0..2ad984ccf6 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id} diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index 29f7b7ed3e..45eca676f9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,11 @@ Permission type | Permission | Permission display name Application | Ip.Read.All | 'Read IP address profiles' Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/alerts/{id}/ips diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 205805378d..4d4e5e0cb0 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -37,7 +37,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' >[!Note] > When obtaining a token using user credentials: >- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- The response will include only alerts that are associated with machines that the user can access, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index e1d21e0582..6542d0bebd 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -31,16 +31,15 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines that the user can access, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/domains/{domain}/machines ``` ->[!Note] -> When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Only machines that the user can access, based on machine group settings will be listed (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) - - ## Request headers Name | Type | Description diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index ed3fde05b1..335b6efcb7 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -35,7 +35,7 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine >[!Note] > When obtaining a token using user credentials: >- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- User needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 0a8170f0fd..2fd9e07d99 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -35,7 +35,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' >[!Note] > When obtaining a token using user credentials: >- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) ->- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) +>- User needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index 7bbc0c5ccb..bca064ca3f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,11 @@ Application | Alert.ReadWrite.All | 'Read and write all alerts' Delegated (work or school account) | Alert.Read | 'Read alerts' Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only alerts, associated with machines, that the user have access to, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/users/{id}/alerts diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 676602504f..2198203628 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,11 @@ Application | Machine.ReadWrite.All | 'Read and write all machine information' Delegated (work or school account) | Machine.Read | 'Read machine information' Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine information' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- Response will include only machines that the user can access, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/users/{id}/machines diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md index e3fc93951d..22bf9eb5a9 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,10 @@ Permission type | Permission | Permission display name Application | Url.Read.All | 'Read URLs' Delegated (work or school account) | URL.Read.All | 'Read URLs' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/domains/{domain} diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md index 575b792100..b976177106 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -31,6 +31,10 @@ Permission type | Permission | Permission display name Application | Ip.Read.All | 'Read IP address profiles' Delegated (work or school account) | Ip.Read.All | 'Read IP address profiles' +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) + ## HTTP request ``` GET /api/ips/{ip} From df0712bd005c86bcbf4bf8f61295c6762bdea1f6 Mon Sep 17 00:00:00 2001 From: Dani Halfin Date: Thu, 4 Oct 2018 19:58:05 +0000 Subject: [PATCH 109/201] Merged PR 11881: push all the fixes to live --- windows/deployment/TOC.md | 7 + .../update/windows-analytics-azure-portal.md | 2 +- windows/security/threat-protection/TOC.md | 10 +- .../threat-protection/fips-140-validation.md | 7085 +++++++++++++++++ .../mbsa-removal-and-guidance.md | 39 + ...ows-defender-advanced-threat-protection.md | 2 +- .../windows-platform-common-criteria.md | 165 + 7 files changed, 7304 insertions(+), 6 deletions(-) create mode 100644 windows/security/threat-protection/fips-140-validation.md create mode 100644 windows/security/threat-protection/mbsa-removal-and-guidance.md create mode 100644 windows/security/threat-protection/windows-platform-common-criteria.md diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index 6577188cbc..c136d082ac 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -218,6 +218,13 @@ ### [Prepare servicing strategy for Windows 10 updates](update/waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](update/waas-deployment-rings-windows-10-updates.md) ### [Assign devices to servicing channels for Windows 10 updates](update/waas-servicing-channels-windows-10-updates.md) +### [Get started with Windows Update](update/windows-update-overview.md) +#### [How Windows Update works](update/how-windows-update-works.md) +#### [Windows Update log files](update/windows-update-logs.md) +#### [How to troubleshoot Windows Update](update/windows-update-troubleshooting.md) +#### [Common Windows Update errors](update/windows-update-errors.md) +#### [Windows Update error code reference](update/windows-update-error-reference.md) +#### [Other Windows Update resources](update/windows-update-resources.md) ### [Optimize Windows 10 update delivery](update/waas-optimize-windows-10-updates.md) #### [Configure Delivery Optimization for Windows 10 updates](update/waas-delivery-optimization.md) #### [Configure BranchCache for Windows 10 updates](update/waas-branchcache.md) diff --git a/windows/deployment/update/windows-analytics-azure-portal.md b/windows/deployment/update/windows-analytics-azure-portal.md index 0d7862c02a..e06fcfd35f 100644 --- a/windows/deployment/update/windows-analytics-azure-portal.md +++ b/windows/deployment/update/windows-analytics-azure-portal.md @@ -33,7 +33,7 @@ To check the Log Analytics workspaces you can access, select **Log Analytics**. [![Log Analytics workspace page showing accessible workspaces and linked Azure subscriptions](images/azure-portal-LAmain-wkspc-subname-sterile.png)](images/azure-portal-LAmain-wkspc-subname-sterile.png) -If you do not see your workspace in this view, but you are able to access the workspace from the classic portal, that means you do not have access to the workspaces's Azure subscription or resource group. To remedy this, you will need to find someone with admin rights to grant you access, which they can do by selecting the subscription name and selecting **Access control (IAM)** (alternatively they can configure your access at the resource group level). They should either grant you "Log Analytics Reader" access (for read-only access) or "Log Analytics Contributor" access (which enables making changes such as creating deployment plans and changing application readiness states). +If you do not see your workspace in this view, but you are able to access the workspace from the classic portal, that means you do not have access to the workspace's Azure subscription or resource group. To remedy this, you will need to find someone with admin rights to grant you access, which they can do by selecting the subscription name and selecting **Access control (IAM)** (alternatively they can configure your access at the resource group level). They should either grant you "Log Analytics Reader" access (for read-only access) or "Log Analytics Contributor" access (which enables making changes such as creating deployment plans and changing application readiness states). When permissions are configured, you can select the workspace and then select **Workspace summary** to see information similar to what was shown in the OMS overview page. diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 6bc125f9d5..5399e86a43 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -394,6 +394,12 @@ #### [Software developer FAQ](intelligence/developer-faq.md) #### [Software developer resources](intelligence/developer-resources.md) +## Certifications + +### [FIPS 140 Validation](fips-140-validation.md) +### [Windows Platform Common Criteria Certification](windows-platform-common-criteria.md) + + ## More Windows 10 security ### [The Windows Security app](windows-defender-security-center/windows-defender-security-center.md) @@ -961,14 +967,10 @@ ###### [Take ownership of files or other objects](security-policy-settings/take-ownership-of-files-or-other-objects.md) - - ### [Windows security baselines](windows-security-baselines.md) #### [Security Compliance Toolkit](security-compliance-toolkit-10.md) #### [Get support](get-support-for-security-baselines.md) - - ### [Windows 10 Mobile security guide](windows-10-mobile-security-guide.md) ## [Change history for Threat protection](change-history-for-threat-protection.md) diff --git a/windows/security/threat-protection/fips-140-validation.md b/windows/security/threat-protection/fips-140-validation.md new file mode 100644 index 0000000000..cdd262ce1c --- /dev/null +++ b/windows/security/threat-protection/fips-140-validation.md @@ -0,0 +1,7085 @@ +--- +title: FIPS 140 Validation +description: This topic provides information on how Microsoft products and cryptographic modules comply with the U.S. Federal government standard FIPS 140. +ms.prod: w10 +ms.localizationpriority: medium +ms.author: daniha +author: danihalfin +ms.date: 04/03/2018 +--- + + +# FIPS 140 Validation + +On this page + + - [Introduction](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eo) + - [FIPS 140 Overview](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0ebd) + - [Microsoft Product Validation (Information for Procurement Officers and Auditors)](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0ezd) + - [Information for System Integrators](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eve) + - [Information for Software Developers](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eibac) + - [FIPS 140 FAQ](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0eqcac) + - [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0ewfac) + - [Cryptographic Algorithms](https://technet.microsoft.com/en-us/library/cc750357.aspx#id0erobg) + +Updated: March 2018 + +  + +## Introduction + +This document provides information on how Microsoft products and cryptographic modules comply with the U.S. Federal government standard, *Federal Information Processing Standard (FIPS) 140 – Security Requirements for Cryptographic Modules* \[FIPS 140\]. + +### Audience + +This document is primarily focused on providing information for three parties: + +[Procurement Officer](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_product_validation) – Responsible for verifying that Microsoft products (or even third-party applications) are either FIPS 140 validated or utilize a Microsoft FIPS 140 validated cryptographic module. + +[System Integrator](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_system) – Responsible for ensuring that Microsoft Products are configured properly to use only FIPS 140 validated cryptographic modules. + +[Software Developer](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_software) – Responsible for building software products that utilize Microsoft FIPS 140 validated cryptographic modules. + +### Document Map + +This document is broken into seven major sections: + +[FIPS 140 Overview](https://technet.microsoft.com/en-us/library/cc750357.aspx#_fips_140_overview) – Provides an overview of the FIPS 140 standard as well as provides some historical information about the standard. + +[Microsoft Product Validation (Information for Procurement Officers and Auditors)](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_product_validation) – Provides information on how Microsoft products are FIPS 140 validated. + +[Information for System Integrators](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_system) – Describes how to configure and verify that Microsoft Products are being used in a manner consistent with the product’s FIPS 140 Security Policy. + +[Information for Software Developers](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_software) – Identifies how developers can leverage the Microsoft FIPS 140 validated cryptographic modules. + +[FAQ](https://technet.microsoft.com/en-us/library/cc750357.aspx#_fips_140_faq) – Frequently Asked Questions. + +[Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140) – Explains Microsoft cryptographic architecture and identifies specific modules that are FIPS 140 validated. + +[Cryptographic Algorithms](https://technet.microsoft.com/en-us/library/cc750357.aspx#_cryptographic_algorithms) – Lists the cryptographic algorithm, modes, states, key sizes, Windows versions, and corresponding cryptographic algorithm validation certificates. + +## FIPS 140 Overview + +### FIPS 140 Standard + +FIPS 140 is a US government and Canadian government standard that defines a minimum set of the security requirements for products that implement cryptography. This standard is designed for cryptographic modules that are used to secure sensitive but unclassified information. Testing against the FIPS 140 standard is maintained by the Cryptographic Module Validation Program (CMVP), a joint effort between the US National Institute of Standards and Technology (NIST) and the Communications Security Establishment of Canada (CSEC). + +The current standard defines four-levels of increasing security, 1 through 4. Most software products (including all Microsoft products) are tested against the Level 1 security requirements. + +### Applicability of the FIPS standard + +Within the US Federal government, the FIPS 140 standard applies to any security system (whether hardware, firmware, software, or a combination thereof) to be used by agencies for protecting sensitive but unclassified information. Some agencies have expanded its use by requiring that the modules to be procured for secret systems also meet the FIPS 140 requirements. + +The FIPS 140 standard has also been used by different standards bodies, specification groups, nations, and private institutions as a requirement or guideline for those products (e.g. – Digital Cinema Systems Specification). + +### History of 140-1 + +FIPS 140-1 is the original working version of the standard made official on January 11, 1994. The standard remained in effect until FIPS 140-2 became mandatory for new products on May 25, 2002. + +### FIPS 140-2 + +FIPS 140-2 is currently the active version of the standard. + +### Microsoft FIPS Support Policy + +Microsoft actively maintains FIPS 140 validation for its cryptographic modules. + +### FIPS Mode of Operation + +The common term “FIPS mode” is used in this document and Security Policy documents. When a cryptographic module contains both FIPS-approved and non-FIPS approved security methods, it must have a "FIPS mode of operation" to ensure only FIPS-approved security methods may be used. When a module is in "FIPS mode", a non-FIPS approved method cannot be used instead of a FIPS-approved method. + +## Microsoft Product Validation (Information for Procurement Officers and Auditors) + +This section provides information for Procurement Officers and Auditors who are responsible for ensuring that Microsoft products with FIPS 140 validated cryptographic modules are used in their organization. The goal of this section is to provide an overview of the Microsoft developed products and modules and explain how the validated cryptographic modules are used. + +### Microsoft Product Relationship with CNG and CAPI libraries + +Rather than validate individual components and products, Microsoft chooses to validate only the underlying cryptographic modules. Subsequently, many Windows components and Microsoft products are built to rely on the Cryptographic API: Next Generation (CNG) and legacy Cryptographic API (CAPI) FIPS 140 validated cryptographic modules. Windows components and Microsoft products use the documented application programming interfaces (APIs) for each of the modules to access various cryptographic services. + +The following list contains some of the Windows components and Microsoft products that rely on FIPS 140 validated cryptographic modules: + + - Schannel Security Package + - Remote Desktop Protocol (RDP) Client + - Encrypting File System (EFS) + - Some Microsoft .NET Framework Applications (.NET also provides cryptographic algorithm implementations that have not been FIPS 140 validated.) + - BitLocker® Drive Full-volume Encryption + - IPsec Settings of Windows Firewall + +## Information for System Integrators + +This section provides information for System Integrators and Auditors who are responsible for deploying Microsoft products in a manner consistent with the product’s FIPS 140 Security Policy. + +There are two steps to ensure that Microsoft products operate in FIPS mode: + +1. Selecting/Installing FIPS 140 validated cryptographic modules +2. Setting FIPS local/group security policy flag. + +### Step 1 – Selecting/Installing FIPS 140 Validated Cryptographic Modules + +Systems Integrators must ensure that all cryptographic modules installed are, in fact, FIPS 140 validated. This can be accomplished by cross-checking the version number of the installed module with the list of validated binaries. The list of validated CAPI binaries is identified in the [CAPI Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_capi_validated_cryptographic) section below and the list of validated CNG binaries is identified in the [CNG Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_cng_validated_cryptographic) section below. There are similar sections for all other validated cryptographic modules. + +The version number of the installed binary is found by right-clicking the module file and clicking on the Version or Details tab. Cryptographic modules are stored in the "windows\\system32" or "windows\\system32\\drivers" directory. + +### Step 2 – Setting FIPS Local/Group Security Policy Flag + +The Windows operating system provides a group (or local) security policy setting, “System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing”, which is used by many Microsoft products to determine whether to operate in a FIPS-approved mode. When this policy is set, the validated cryptographic modules in Windows will also operate in a FIPS-approved mode. + +**Note** – There is no enforcement of the FIPS policy by the operating system or the validated cryptographic modules. Instead, each individual application must check this flag and enforce the Security Policy of the validated cryptographic modules. + +#### Instructions on Setting the FIPS Local/Group Security Policy Flag + +While there are alternative methods for setting the FIPS local/group security policy flag, the following method is included as a guide to users with Administrative privileges. This description is for the Local Security Policy, but the Group Security Policy may be set in a similar manner. + +1. Open the 'Run' menu by pressing the combination 'Windows Key + R'. +2. Type 'secpol.msc' and press 'Enter' or click the 'Ok' button. +3. In the Local Security Policy management console window that opens, use the left tab to navigate to the Local Policies -\> Security Options. +4. Scroll down the right pane and double-click 'System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing'. +5. In the properties window, select the 'Enabled' option and click the 'Apply' button. + +#### Microsoft Components and Products That Utilize FIPS Local/Group Security Policy + +The following list details some of the Microsoft components that use the cryptographic functionality implemented by either CNG or legacy CAPI. When the FIPS Local/Group Security Policy is set, the following components will enforce the validated module Security Policy. + + - Schannel Security Package + - Remote Desktop Protocol (RDP) Client + - Encrypting File System (EFS) + - Some Microsoft .NET Framework Applications (.NET also provides cryptographic algorithm implementations that have not been FIPS 140 validated.) + - BitLocker® Drive Full-volume Encryption + - IPsec Settings of Windows Firewall + +#### Effects of Setting FIPS Local/Group Security Policy Flag + +When setting the FIPS local/group security policy flag, the behavior of several Microsoft components and products are affected. The most noticeable difference will be that the components enforcing this setting will only use those algorithms approved or allowed in FIPS mode. The specific changes to the products listed above are: + + - Schannel Security Package forced to negotiate sessions using TLS. The following supported Cipher Suites are disabled: + + - - TLS\_RSA\_WITH\_RC4\_128\_SHA + - TLS\_RSA\_WITH\_RC4\_128\_MD5 + - SSL\_CK\_RC4\_128\_WITH\_MD5 + - SSL\_CK\_DES\_192\_EDE3\_CBC\_WITH\_MD5 + - TLS\_RSA\_WITH\_NULL\_MD5 + - TLS\_RSA\_WITH\_NULL\_SHA + + - The set of cryptographic algorithms that a Remote Desktop Protocol (RDP) server will use is scoped to: + + - - CALG\_RSA\_KEYX - RSA public key exchange algorithm + - CALG\_3DES - Triple DES encryption algorithm + - CALG\_AES\_128 - 128 bit AES + - CALG\_AES\_256 - 256 bit AES + - CALG\_SHA1 - SHA hashing algorithm + - CALG\_SHA\_256 - 256 bit SHA hashing algorithm + - CALG\_SHA\_384 - 384 bit SHA hashing algorithm + - CALG\_SHA\_512 - 512 bit SHA hashing algorithm + + - Any Microsoft .NET Framework applications, such as Microsoft ASP.NET or Windows Communication Foundation (WCF), only allow algorithm implementations that are validated to FIPS 140, meaning only classes that end in "CryptoServiceProvider" or "Cng" can be used. Any attempt to create an instance of other cryptographic algorithm classes or create instances that use non-allowed algorithms will cause an InvalidOperationException exception. + + - Verification of ClickOnce applications fails unless the client computer has .NET Framework 2.0 SP1 or later service pack installed or .NET Framework 3.5 or later installed. + + - On Windows Vista and Windows Server 2008 and later, BitLocker Drive Encryption switches from AES-128 using the elephant diffuser to using the approved AES-256 encryption. Recovery passwords are not created or backed up. Instead, backup a recovery key on a local drive or on a network share. To use the recovery key, put the key on a USB device and plug the device into the computer. + +Please be aware that selection of FIPS mode can limit product functionality (See ). + +## Information for Software Developers + +This section is targeted at developers who wish to build their own applications using the FIPS 140 validated cryptographic modules. + +Each of the validated cryptographic modules defines a series of rules that must be followed. The security rules for each validated cryptographic module are specified in the Security Policy document. Links to each of the Security Policy documents is provided in the [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140) section below. Generally, the restriction in Microsoft validated cryptographic modules is limiting the use of cryptography to only FIPS Approved cryptographic algorithms, modes, and key sizes. + +### Using Microsoft Cryptographic Modules in a FIPS mode of operation + +No matter whether developing with native languages or using .NET, it is important to first check whether the CNG modules for the target system are FIPS validated. The list of validated CNG binaries is identified in the [CNG Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_cng_validated_cryptographic) section. + +When developing using CNG directly, it is the responsibility of the developer to follow the security rules outlined in the FIPS 140 Security Policy for each module. The security policy for each module is provided on the CMVP website. Links to each of the Security Policy documents is provided in the tables below. It is important to remember that setting the FIPS local/group security policy Flag (discussed above) does not affect the behavior of the modules when used for developing custom applications. + +If you are developing your application using .NET instead of using the native libraries, then setting the FIPS local policy flag will generate an exception when an improper .NET class is used for cryptography (i.e. the cryptographic classes whose names end in "Managed"). The names of these allowed classes end with "Cng", which use the CNG binaries or "CryptoServiceProvider", which use the legacy CAPI binaries. + +### Key Strengths and Validity Periods + +NIST Special Publication 800-131A Revision 1, Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths, dated November 2015, \[[SP 800-131A](http://dx.doi.org/10.6028/nist.sp.800-131ar1)\], offers guidance for moving to stronger cryptographic keys and algorithms. This does not replace NIST SP 800-57, Recommendation for Key Management Part 1: General, \[[SP 800-57](http://csrc.nist.gov/publications/pubssps.html#800-57-part1)\], but gives more specific guidance. One of the most important topics discussed in these publications deals with the key strengths of FIPS Approved algorithms and their validity periods. When developing applications that use FIPS Approved algorithms, it is also extremely important to select appropriate key sizes based on the security lifetimes recommended by NIST. + +## FIPS 140 FAQ + +The following are answers to commonly asked questions for the FIPS 140-2 validation of Microsoft products. + +1. How does FIPS 140 relate to the Common Criteria? + **Answer:** These are two separate security standards with different, but complementary, purposes. FIPS 140 is a standard designed specifically for validating product modules that implement cryptography. On the other hand, Common Criteria is designed to help evaluate security functions in IT products. + In many cases, Common Criteria evaluations will rely on FIPS 140 validations to provide assurance that cryptographic functionality is implemented properly. +2. How does FIPS 140 relate to Suite B? + **Answer:** Suite B is simply a set of cryptographic algorithms defined by the U.S. National Security Agency (NSA) as part of its Cryptographic Modernization Program. The set of Suite B cryptographic algorithms are to be used for both unclassified information and most classified information. + The Suite B cryptographic algorithms are a subset of the FIPS Approved cryptographic algorithms as allowed by the FIPS 140 standard. +3. There are so many modules listed on the NIST website for each release, how are they related and how do I tell which one applies to me? + **Answer:** Microsoft strives to validate all releases of its cryptographic modules. Each module provides a different set of cryptographic algorithms. If you are required to use only FIPS validated cryptographic modules, you simply need to verify that the version being used appears on the validation list. + Please see the [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140)section for a complete list of Microsoft validated modules. +4. My application links against crypt32.dll, cryptsp.dll, advapi32.dll, bcrypt.dll, bcryptprimitives.dll, or ncrypt.dll. What do I need to do to assure I’m using FIPS 140 validated cryptographic modules? + **Answer:** crypt32.dll, cryptsp.dll, advapi32.dll, and ncrypt.dll are intermediary libraries that will offload all cryptographic operations to the FIPS validated cryptographic modules. Bcrypt.dll itself is a validated cryptographic module for Windows Vista and Windows Server 2008. For Windows 7 and Windows Server 2008 R2 and later, bcryptprimitives.dll is the validated module, but bcrypt.dll remains as one of the libraries to link against. + You must first verify that the underlying CNG cryptographic module is validated. Once verified, you'll need to confirm that you're using the module correctly in FIPS mode (See [Information for Software Developers](https://technet.microsoft.com/en-us/library/cc750357.aspx#_information_for_software) section for details). +5. What does "When operated in FIPS mode" mean on certificates? + **Answer:** This caveat identifies that a required configuration and security rules must be followed in order to use the cryptographic module in a manner consistent with its FIPS 140 Security Policy. The security rules are defined in the Security Policy for the module and usually revolve around using only FIPS Approved cryptographic algorithms and key sizes. Please see the Security Policy for the specific security rules for each cryptographic module (See [Microsoft FIPS 140 Validated Cryptographic Modules](https://technet.microsoft.com/en-us/library/cc750357.aspx#_microsoft_fips_140) section for links to each policy). +6. Which FIPS validated module is called when Windows 7 or Windows 8 is configured to use the FIPS setting in the wireless configuration? + **Answer:** CNG is used. This setting tells the wireless driver to call FIPS 140-2 validated cryptographic modules instead of using the driver’s own cryptography, if any. +7. Is BitLocker to Go FIPS 140-2 validated? + **Answer:** There are two separate parts for BitLocker to Go. One part is simply a native feature of BitLocker and as such, it uses FIPS 140-2 validated cryptographic modules. The other part is the BitLocker to Go Reader application for down-level support of older operating systems such as Windows XP and Windows Vista. The Reader application does not use FIPS 140-2 validated cryptographic modules. +8. Are applications FIPS 140-2 validated? + **Answer:** Microsoft only has low-level cryptographic modules in Windows FIPS 140-2 validated, not high-level applications. A better question is whether a certain application calls a FIPS 140-2 validated cryptographic module in the underlying Windows OS. That question needs to be directed to the company/product group that created the application of interest. +9. How can Systems Center Operations Manager 2012 be configured to use FIPS 140-2 validated cryptographic modules? + **Answer:** See [http://technet.microsoft.com/en-us/library/hh914094.aspx](https://technet.microsoft.com/en-us/library/hh914094.aspx) + +## Microsoft FIPS 140 Validated Cryptographic Modules + +### Modules By Operating System + +The following tables identify the Cryptographic Modules for an operating system. + +#### Windows + +##### Windows 10 Creators Update (Version 1703) + +Validated Editions: Home, Pro, Enterprise, Education, S, Surface Hub, Mobile + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.15063#3095

      FIPS Approved algorithms: AES (Cert. #4624); CKG (vendor affirmed); CVL (Certs. #1278 and #1281); DRBG (Cert. #1555); DSA (Cert. #1223); ECDSA (Cert. #1133); HMAC (Cert. #3061); KAS (Cert. #127); KBKDF (Cert. #140); KTS (AES Cert. #4626; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2521 and #2522); SHS (Cert. #3790); Triple-DES (Cert. #2459)
      +
      +Other algorithms: HMAC-MD5; MD5; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #1133); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #2521); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #1281); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #1278)

      Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.15063#3094

      #3094

      +

      FIPS Approved algorithms: AES (Certs. #4624 and #4626); CKG (vendor affirmed); CVL (Certs. #1278 and #1281); DRBG (Cert. #1555); DSA (Cert. #1223); ECDSA (Cert. #1133); HMAC (Cert. #3061); KAS (Cert. #127); KBKDF (Cert. #140); KTS (AES Cert. #4626; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2521 and #2523); SHS (Cert. #3790); Triple-DES (Cert. #2459)
      +
      +Other algorithms: HMAC-MD5; MD5; NDRNG; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert.#1133); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert.#2521); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert.#1281)

      Boot Manager10.0.15063#3089

      FIPS Approved algorithms: AES (Certs. #4624 and #4625); CKG (vendor affirmed); HMAC (Cert. #3061); PBKDF (vendor affirmed); RSA (Cert. #2523); SHS (Cert. #3790)

      +

      Other algorithms: PBKDF (vendor affirmed); VMK KDF (vendor affirmed)

      Windows OS Loader10.0.15063#3090

      FIPS Approved algorithms: AES (Certs. #4624 and #4625); RSA (Cert. #2523); SHS (Cert. #3790)

      +

      Other algorithms: NDRNG

      Windows Resume[1]10.0.15063#3091FIPS Approved algorithms: AES (Certs. #4624 and #4625); RSA (Cert. #2523); SHS (Cert. #3790)
      BitLocker® Dump Filter[2]10.0.15063#3092FIPS Approved algorithms: AES (Certs. #4624 and #4625); RSA (Cert. #2522); SHS (Cert. #3790)
      Code Integrity (ci.dll)10.0.15063#3093

      FIPS Approved algorithms: AES (Cert. #4624); RSA (Certs. #2522 and #2523); SHS (Cert. #3790)

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v1.5 - RSASP1 Signature Primitive (Cert. #1282)

      Secure Kernel Code Integrity (skci.dll)[3]10.0.15063#3096

      FIPS Approved algorithms: AES (Cert. #4624); RSA (Certs. #2522 and #2523); SHS (Cert. #3790)

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v1.5 - RSASP1 Signature Primitive (Cert. #1282)

      + + +\[1\] Applies only to Home, Pro, Enterprise, Education and S + +\[2\] Applies only to Pro, Enterprise, Education, S, Mobile and Surface Hub + +\[3\] Applies only to Pro, Enterprise Education and S + +##### Windows 10 Anniversary Update (Version 1607) + +Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.14393#2937

      FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
      +
      +Other algorithms: HMAC-MD5; MD5; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #922); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #887); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #886)

      Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.14393#2936

      FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
      +
      +Other algorithms: HMAC-MD5; MD5; NDRNG; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #922); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #887)

      Boot Manager10.0.14393#2931

      FIPS Approved algorithms: AES (Certs. #4061 and #4064); HMAC (Cert. #2651); PBKDF (vendor affirmed); RSA (Cert. #2193); SHS (Cert. #3347)

      +

      Other algorithms: MD5; PBKDF (non-compliant); VMK KDF

      BitLocker® Windows OS Loader (winload)10.0.14393#2932FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
      +
      +Other algorithms: NDRNG; MD5
      BitLocker® Windows Resume (winresume)[1]10.0.14393#2933FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (dumpfve.sys)[2]10.0.14393#2934FIPS Approved algorithms: AES (Certs. #4061 and #4064)
      Code Integrity (ci.dll)10.0.14393#2935

      FIPS Approved algorithms: RSA (Cert. #2193); SHS (Cert. #3347)
      +
      +Other algorithms: AES (non-compliant); MD5

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888)

      Secure Kernel Code Integrity (skci.dll)[3]10.0.14393#2938

      FIPS Approved algorithms: RSA (Certs. #2193); SHS (Certs. #3347)
      +
      +Other algorithms: MD5

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #888)

      + + +\[1\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[2\] Applies only to Pro, Enterprise, Enterprise LTSB and Mobile + +\[3\] Applies only to Pro, Enterprise and Enterprise LTSB + +##### Windows 10 November 2015 Update (Version 1511) + +Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile, Surface Hub + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.10586#2606

      FIPS Approved algorithms: AES (Certs. #3629); DRBG (Certs. #955); DSA (Certs. #1024); ECDSA (Certs. #760); HMAC (Certs. #2381); KAS (Certs. #72; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #72); KTS (AES Certs. #3653; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1887, #1888 and #1889); SHS (Certs. #3047); Triple-DES (Certs. #2024)
      +
      +Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #666); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #663); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #664)

      Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.10586#2605

      FIPS Approved algorithms: AES (Certs. #3629); DRBG (Certs. #955); DSA (Certs.  #1024); ECDSA (Certs. #760); HMAC (Certs. #2381); KAS (Certs. #72; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #72); KTS (AES Certs. #3653; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1887, #1888 and #1889); SHS (Certs. #3047); Triple-DES (Certs. #2024)
      +
      +Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #666); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #663)

      Boot Manager[4]10.0.10586#2700FIPS Approved algorithms: AES (Certs. #3653); HMAC (Cert. #2381); PBKDF (vendor affirmed); RSA (Cert. #1871); SHS (Certs. #3047 and #3048)
      +
      +Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
      BitLocker® Windows OS Loader (winload)[5]10.0.10586#2701FIPS Approved algorithms: AES (Certs. #3629 and #3653); RSA (Cert. #1871); SHS (Cert. #3048)
      +
      +Other algorithms: MD5; NDRNG
      BitLocker® Windows Resume (winresume)[6]10.0.10586#2702FIPS Approved algorithms: AES (Certs. #3653); RSA (Cert. #1871); SHS (Cert. #3048)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (dumpfve.sys)[7]10.0.10586#2703FIPS Approved algorithms: AES (Certs. #3653)
      Code Integrity (ci.dll)10.0.10586#2604

      FIPS Approved algorithms: RSA (Certs. #1871); SHS (Certs. #3048)
      +
      +Other algorithms: AES (non-compliant); MD5

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665)

      Secure Kernel Code Integrity (skci.dll)[8]10.0.10586#2607

      FIPS Approved algorithms: RSA (Certs. #1871); SHS (Certs. #3048)
      +
      +Other algorithms: MD5

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #665)

      + + +\[4\] Applies only to Home, Pro, Enterprise, Mobile and Surface Hub + +\[5\] Applies only to Home, Pro, Enterprise, Mobile and Surface Hub + +\[6\] Applies only to Home, Pro and Enterprise + +\[7\] Applies only to Pro, Enterprise, Mobile and Surface Hub + +\[8\] Applies only to Enterprise and Enterprise LTSB + +##### Windows 10 (Version 1507) + +Validated Editions: Home, Pro, Enterprise, Enterprise LTSB, Mobile, and Surface Hub + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.10240#2606

      FIPS Approved algorithms: AES (Certs. #3497); DRBG (Certs. #868); DSA (Certs. #983); ECDSA (Certs. #706); HMAC (Certs. #2233); KAS (Certs. #64; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #66); KTS (AES Certs. #3507; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1783, #1798, and #1802); SHS (Certs. #2886); Triple-DES (Certs. #1969)
      +
      +Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #576); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #575)

      Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.10240#2605

      FIPS Approved algorithms: AES (Certs. #3497); DRBG (Certs. #868); DSA (Certs. #983); ECDSA (Certs. #706); HMAC (Certs. #2233); KAS (Certs. #64; key agreement; key establishment methodology provides between 112 and 256 bits of encryption strength); KBKDF (Certs. #66); KTS (AES Certs. #3507; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #1783, #1798, and #1802); SHS (Certs. #2886); Triple-DES (Certs. #1969)
      +
      +Other algorithms: DES; HMAC-MD5; Legacy CAPI KDF; MD2; MD4; MD5; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572); FIPS186-4 RSA; RSADP - RSADP Primitive (Cert. #576)

      Boot Manager[9]10.0.10240#2600FIPS Approved algorithms: AES (Cert. #3497); HMAC (Cert. #2233); KTS (AES Cert. #3498); PBKDF (vendor affirmed); RSA (Cert. #1784); SHS (Certs. #2871 and #2886)
      +
      +Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
      BitLocker® Windows OS Loader (winload)[10]10.0.10240#2601FIPS Approved algorithms: AES (Certs. #3497 and #3498); RSA (Cert. #1784); SHS (Cert. #2871)
      +
      +Other algorithms: MD5; NDRNG
      BitLocker® Windows Resume (winresume)[11]10.0.10240#2602FIPS Approved algorithms: AES (Certs. #3497 and #3498); RSA (Cert. #1784); SHS (Cert. #2871)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (dumpfve.sys)[12]10.0.10240#2603FIPS Approved algorithms: AES (Certs. #3497 and #3498)
      Code Integrity (ci.dll)10.0.10240#2604

      FIPS Approved algorithms: RSA (Certs. #1784); SHS (Certs. #2871)
      +
      +Other algorithms: AES (non-compliant); MD5

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572)

      Secure Kernel Code Integrity (skci.dll)[13]10.0.10240#2607

      FIPS Approved algorithms: RSA (Certs. #1784); SHS (Certs. #2871)
      +
      +Other algorithms: MD5

      +

      Validated Component Implementations: FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #572)

      + + +\[9\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[10\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[11\] Applies only to Home, Pro, Enterprise and Enterprise LTSB + +\[12\] Applies only to Pro, Enterprise and Enterprise LTSB + +\[13\] Applies only to Enterprise and Enterprise LTSB + +##### Windows 8.1 + +Validated Editions: RT, Pro, Enterprise, Phone, Embedded + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)6.3.9600 6.3.9600.17031#2357

      FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); DSA (Cert. #855); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. #2373); Triple-DES (Cert. #1692)
      +
      +Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)#2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #288); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #289); SP800-135 - Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS (Cert. #323)

      Kernel Mode Cryptographic Primitives Library (cng.sys)6.3.9600 6.3.9600.17042#2356

      FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. # 2373); Triple-DES (Cert. #1692)
      +
      +Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)

      +

      Validated Component Implementations: FIPS186-4 ECDSA - Signature Generation of hash sized messages (Cert. #288); FIPS186-4 RSA; PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #289)

      Boot Manager6.3.9600 6.3.9600.17031#2351FIPS Approved algorithms: AES (Cert. #2832); HMAC (Cert. #1773); PBKDF (vendor affirmed); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
      +
      +Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
      BitLocker® Windows OS Loader (winload)6.3.9600 6.3.9600.17031#2352FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Cert. #2396)
      +
      +Other algorithms: MD5; NDRNG
      BitLocker® Windows Resume (winresume)[14]6.3.9600 6.3.9600.17031#2353FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (dumpfve.sys)6.3.9600 6.3.9600.17031#2354FIPS Approved algorithms: AES (Cert. #2832)
      +
      +Other algorithms: N/A
      Code Integrity (ci.dll)6.3.9600 6.3.9600.17031#2355#2355

      FIPS Approved algorithms: RSA (Cert. #1494); SHS (Cert. # 2373)
      +
      +Other algorithms: MD5

      +

      Validated Component Implementations: PKCS#1 v2.1 - RSASP1 Signature Primitive (Cert. #289)

      + + +\[14\] Applies only to Pro, Enterprise, and Embedded 8. + +##### Windows 8 + +Validated Editions: RT, Home, Pro, Enterprise, Phone + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (BCRYPTPRIMITIVES.DLL)6.2.9200#1892FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258); DSA (Cert. #687); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
      +
      +Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#258); DSA (Cert. ); ECDSA (Cert. ); HMAC (Cert. ); KAS (Cert. ); KBKDF (Cert. ); PBKDF (vendor affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
      +
      +
      Kernel Mode Cryptographic Primitives Library (cng.sys)6.2.9200#1891FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258 and #259); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RNG (Cert. #1110); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
      +
      +Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#258 and ); ECDSA (Cert. ); HMAC (Cert. ); KAS (Cert. ); KBKDF (Cert. ); PBKDF (vendor affirmed); RNG (Cert. ); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
      +
      +Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)
      Boot Manager6.2.9200#1895FIPS Approved algorithms: AES (Certs. #2196 and #2198); HMAC (Cert. #1347); RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: MD5
      BitLocker® Windows OS Loader (WINLOAD)6.2.9200#1896FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: AES (Cert. #2197; non-compliant); MD5; Non-Approved RNG
      BitLocker® Windows Resume (WINRESUME)[15]6.2.9200#1898FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (DUMPFVE.SYS)6.2.9200#1899FIPS Approved algorithms: AES (Certs. #2196 and #2198)
      +
      +Other algorithms: N/A
      Code Integrity (CI.DLL)6.2.9200#1897FIPS Approved algorithms: RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: MD5
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH.DLL)6.2.9200#1893FIPS Approved algorithms: DSA (Cert. #686); SHS (Cert. #1902); Triple-DES (Cert. #1386); Triple-DES MAC (Triple-DES Cert. #1386, vendor affirmed)
      +
      +Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4; Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)#1902); Triple-DES (Cert. ); Triple-DES MAC (Triple-DES Cert. , vendor affirmed)
      +
      +Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4; Triple-DES (Cert. , key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      Enhanced Cryptographic Provider (RSAENH.DLL)6.2.9200#1894FIPS Approved algorithms: AES (Cert. #2196); HMAC (Cert. #1346); RSA (Cert. #1132); SHS (Cert. #1902); Triple-DES (Cert. #1386)
      +
      +Other algorithms: AES (Cert. #2196, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      + + +\[15\] Applies only to Home and Pro + +**Windows 7** + +Validated Editions: Windows 7, Windows 7 SP1 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (BCRYPTPRIMITIVES.DLL)

      6.1.7600.16385

      +

      6.1.7601.17514

      1329FIPS Approved algorithms: AES (Certs. #1168 and #1178); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #24); DSA (Cert. #386); ECDSA (Cert. #141); HMAC (Cert. #677); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides 80 to 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #560); SHS (Cert. #1081); Triple-DES (Cert. #846)
      +
      +Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4#559 and ); SHS (Cert. ); Triple-DES (Cert. )
      +
      +Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4
      Kernel Mode Cryptographic Primitives Library (cng.sys)

      6.1.7600.16385

      +

      6.1.7600.16915

      +

      6.1.7600.21092

      +

      6.1.7601.17514

      +

      6.1.7601.17725

      +

      6.1.7601.17919

      +

      6.1.7601.21861

      +

      6.1.7601.22076

      1328FIPS Approved algorithms: AES (Certs. #1168 and #1178); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #24); ECDSA (Cert. #141); HMAC (Cert. #677); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides 80 to 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #560); SHS (Cert. #1081); Triple-DES (Cert. #846)
      +
      +Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4
      Boot Manager

      6.1.7600.16385

      +

      6.1.7601.17514

      1319FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); RSA (Cert. #557); SHS (Cert. #1081)
      +
      +Other algorithms: MD5#1168 and ); HMAC (Cert. ); RSA (Cert. ); SHS (Cert. )
      +
      +Other algorithms: MD5
      Winload OS Loader (winload.exe)

      6.1.7600.16385

      +

      6.1.7600.16757

      +

      6.1.7600.20897

      +

      6.1.7600.20916

      +

      6.1.7601.17514

      +

      6.1.7601.17556

      +

      6.1.7601.21655

      +

      6.1.7601.21675

      1326FIPS Approved algorithms: AES (Certs. #1168 and #1177); RSA (Cert. #557); SHS (Cert. #1081)
      +
      +Other algorithms: MD5
      BitLocker™ Drive Encryption

      6.1.7600.16385

      +

      6.1.7600.16429

      +

      6.1.7600.16757

      +

      6.1.7600.20536

      +

      6.1.7600.20873

      +

      6.1.7600.20897

      +

      6.1.7600.20916

      +

      6.1.7601.17514

      +

      6.1.7601.17556

      +

      6.1.7601.21634

      +

      6.1.7601.21655

      +

      6.1.7601.21675

      1332FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); SHS (Cert. #1081)
      +
      +Other algorithms: Elephant Diffuser
      Code Integrity (CI.DLL)

      6.1.7600.16385

      +

      6.1.7600.17122

      +

      6.1.7600.21320

      +

      6.1.7601.17514

      +

      6.1.7601.17950

      +

      6.1.7601.22108

      1327FIPS Approved algorithms: RSA (Cert. #557); SHS (Cert. #1081)
      +
      +Other algorithms: MD5
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH.DLL)6.1.7600.16385
      +(no change in SP1)
      1331FIPS Approved algorithms: DSA (Cert. #385); RNG (Cert. #649); SHS (Cert. #1081); Triple-DES (Cert. #846); Triple-DES MAC (Triple-DES Cert. #846, vendor affirmed)
      +
      +Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4
      Enhanced Cryptographic Provider (RSAENH.DLL)6.1.7600.16385
      +(no change in SP1)
      1330FIPS Approved algorithms: AES (Cert. #1168); DRBG (Cert. #23); HMAC (Cert. #673); SHS (Cert. #1081); RSA (Certs. #557 and #559); Triple-DES (Cert. #846)
      +
      +Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 256-bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      + + +##### Windows Vista SP1 + +Validated Editions: Ultimate Edition + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Boot Manager (bootmgr)6.0.6001.18000 and 6.0.6002.18005978FIPS Approved algorithms: AES (Certs. #739 and #760); HMAC (Cert. #415); RSA (Cert. #354); SHS (Cert. #753)
      Winload OS Loader (winload.exe)6.0.6001.18000, 6.0.6001.18027, 6.0.6001.18606, 6.0.6001.22125, 6.0.6001.22861, 6.0.6002.18005, 6.0.6002.18411 and 6.0.6002.22596979FIPS Approved algorithms: AES (Certs. #739 and #760); RSA (Cert. #354); SHS (Cert. #753)
      +
      +Other algorithms: MD5
      Code Integrity (ci.dll)6.0.6001.18000, 6.0.6001.18023, 6.0.6001.22120, and 6.0.6002.18005980FIPS Approved algorithms: RSA (Cert. #354); SHS (Cert. #753)
      +
      +Other algorithms: MD5
      Kernel Mode Security Support Provider Interface (ksecdd.sys)6.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742, and 6.0.6002.228696.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742, and 6.0.6002.228691000

      FIPS Approved algorithms: AES (Certs. #739 and #756); ECDSA (Cert. #82); HMAC (Cert. #412); RNG (Cert. #435 and SP 800-90 AES-CTR, vendor-affirmed); RSA (Certs. #353 and #357); SHS (Cert. #753); Triple-DES (Cert. #656)#739 and ); ECDSA (Cert. ); HMAC (Cert. ); RNG (Cert.  and SP 800-90 AES-CTR, vendor-affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )

      +

      Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)

      Cryptographic Primitives Library (bcrypt.dll)6.0.6001.22202, 6.0.6002.18005, and 6.0.6002.228726.0.6001.22202, 6.0.6002.18005, and 6.0.6002.228721001

      FIPS Approved algorithms: AES (Certs. #739 and #756); DSA (Cert. #283); ECDSA (Cert. #82); HMAC (Cert. #412); RNG (Cert. #435 and SP 800-90, vendor affirmed); RSA (Certs. #353 and #357); SHS (Cert. #753); Triple-DES (Cert. #656)

      +

      Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant provides less than 112 bits of encryption strength)

      Enhanced Cryptographic Provider (RSAENH)6.0.6001.22202 and 6.0.6002.180056.0.6001.22202 and 6.0.6002.180051002

      FIPS Approved algorithms: AES (Cert. #739); HMAC (Cert. #407); RNG (SP 800-90, vendor affirmed); RSA (Certs. #353 and #354); SHS (Cert. #753); Triple-DES (Cert. #656)

      +

      Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)

      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.0.6001.18000 and 6.0.6002.180056.0.6001.18000 and 6.0.6002.180051003

      FIPS Approved algorithms: DSA (Cert. #281); RNG (Cert. #435); SHS (Cert. #753); Triple-DES (Cert. #656); Triple-DES MAC (Triple-DES Cert. #656, vendor affirmed)

      +

      Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC2 MAC; RC4

      + + +##### Windows Vista + +Validated Editions: Ultimate Edition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Enhanced Cryptographic Provider (RSAENH)6.0.6000.16386893FIPS Approved algorithms: AES (Cert. #553); HMAC (Cert. #297); RNG (Cert. #321); RSA (Certs. #255 and #258); SHS (Cert. #618); Triple-DES (Cert. #549)
      +
      +Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.0.6000.16386894FIPS Approved algorithms: DSA (Cert. #226); RNG (Cert. #321); SHS (Cert. #618); Triple-DES (Cert. #549); Triple-DES MAC (Triple-DES Cert. #549, vendor affirmed)
      +
      +Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC2 MAC; RC4
      BitLocker™ Drive Encryption6.0.6000.16386947FIPS Approved algorithms: AES (Cert. #715); HMAC (Cert. #386); SHS (Cert. #737)
      +
      +Other algorithms: Elephant Diffuser
      Kernel Mode Security Support Provider Interface (ksecdd.sys)6.0.6000.16386, 6.0.6000.16870 and 6.0.6000.21067891FIPS Approved algorithms: AES (Cert. #553); ECDSA (Cert. #60); HMAC (Cert. #298); RNG (Cert. #321); RSA (Certs. #257 and #258); SHS (Cert. #618); Triple-DES (Cert. #549)
      +
      +Other algorithms: DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides 128 to 256 bits of encryption strength); MD2; MD4; MD5; RC2; RC4; HMAC MD5
      + + +##### Windows XP SP3 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Kernel Mode Cryptographic Module (FIPS.SYS)5.1.2600.5512997

      FIPS Approved algorithms: HMAC (Cert. #429); RNG (Cert. #449); SHS (Cert. #785); Triple-DES (Cert. #677); Triple-DES MAC (Triple-DES Cert. #677, vendor affirmed)

      +

      Other algorithms: DES; MD5; HMAC MD5

      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.1.2600.5507990

      FIPS Approved algorithms: DSA (Cert. #292); RNG (Cert. #448); SHS (Cert. #784); Triple-DES (Cert. #676); Triple-DES MAC (Triple-DES Cert. #676, vendor affirmed)

      +

      Other algorithms: DES; DES40; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits); MD5; RC2; RC4

      Enhanced Cryptographic Provider (RSAENH)5.1.2600.5507989

      FIPS Approved algorithms: AES (Cert. #781); HMAC (Cert. #428); RNG (Cert. #447); RSA (Cert. #371); SHS (Cert. #783); Triple-DES (Cert. #675); Triple-DES MAC (Triple-DES Cert. #675, vendor affirmed)

      +

      Other algorithms: DES; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits)

      + + +##### Windows XP SP2 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      DSS/Diffie-Hellman Enhanced Cryptographic Provider5.1.2600.2133240

      FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Cert. #29)

      +

      Other algorithms: DES (Cert. #66); RC2; RC4; MD5; DES40; Diffie-Hellman (key agreement)

      Microsoft Enhanced Cryptographic Provider5.1.2600.2161238

      FIPS Approved algorithms: Triple-DES (Cert. #81); AES (Cert. #33); SHA-1 (Cert. #83); RSA (PKCS#1, vendor affirmed); HMAC-SHA-1 (Cert. #83, vendor affirmed)

      +

      Other algorithms: DES (Cert. #156); RC2; RC4; MD5

      + + +##### Windows XP SP1 + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Microsoft Enhanced Cryptographic Provider5.1.2600.1029238

      FIPS Approved algorithms: Triple-DES (Cert. #81); AES (Cert. #33); SHA-1 (Cert. #83); RSA (PKCS#1, vendor affirmed); HMAC-SHA-1 (Cert. #83, vendor affirmed)

      +

      Other algorithms: DES (Cert. #156); RC2; RC4; MD5

      + + +##### Windows XP + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Kernel Mode Cryptographic Module5.1.2600.0241

      FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Cert. #35); HMAC-SHA-1 (Cert. #35, vendor affirmed)

      +

      Other algorithms: DES (Cert. #89)

      + + +##### Windows 2000 SP3 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Kernel Mode Cryptographic Module (FIPS.SYS)5.0.2195.1569106

      FIPS Approved algorithms: Triple-DES (Cert. #16); SHA-1 (Certs. #35)

      +

      Other algorithms: DES (Certs. #89)

      Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enhanced Cryptographic Provider, and Enhanced Cryptographic Provider

      (Base DSS: 5.0.2195.3665 [SP3])

      +

      (Base: 5.0.2195.3839 [SP3])

      +

      (DSS/DH Enh: 5.0.2195.3665 [SP3])

      +

      (Enh: 5.0.2195.3839 [SP3]

      103

      FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Certs. #28 and #29); RSA (vendor affirmed)

      +

      Other algorithms: DES (Certs. #65, 66, 67 and 68); Diffie-Hellman (key agreement); RC2; RC4; MD2; MD4; MD5

      + + +##### Windows 2000 SP2 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Kernel Mode Cryptographic Module (FIPS.SYS)5.0.2195.1569106

      FIPS Approved algorithms: Triple-DES (Cert. #16); SHA-1 (Certs. #35)

      +

      Other algorithms: DES (Certs. #89)

      Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enhanced Cryptographic Provider, and Enhanced Cryptographic Provider

      (Base DSS:

      +

      5.0.2195.2228 [SP2])

      +

      (Base:

      +

      5.0.2195.2228 [SP2])

      +

      (DSS/DH Enh:

      +

      5.0.2195.2228 [SP2])

      +

      (Enh:

      +

      5.0.2195.2228 [SP2])

      103

      FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Certs. #28 and #29); RSA (vendor affirmed)

      +

      Other algorithms: DES (Certs. #65, 66, 67 and 68); Diffie-Hellman (key agreement); RC2; RC4; MD2; MD4; MD5

      + + +##### Windows 2000 SP1 + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enhanced Cryptographic Provider, and Enhanced Cryptographic Provider

      (Base DSS: 5.0.2150.1391 [SP1])

      +

      (Base: 5.0.2150.1391 [SP1])

      +

      (DSS/DH Enh: 5.0.2150.1391 [SP1])

      +

      (Enh: 5.0.2150.1391 [SP1])

      103

      FIPS Approved algorithms: Triple-DES (Cert. #16); DSA/SHA-1 (Certs. #28 and #29); RSA (vendor affirmed)

      +

      Other algorithms: DES (Certs. #65, 66, 67 and 68); Diffie-Hellman (key agreement); RC2; RC4; MD2; MD4; MD5

      + + +##### Windows 2000 + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enchanced Cryptographic Provider, and Enhanced Cryptographic Provider5.0.2150.176

      FIPS Approved algorithms: Triple-DES (vendor affirmed); DSA/SHA-1 (Certs. #28 and 29); RSA (vendor affirmed)

      +

      Other algorithms: DES (Certs. #65, 66, 67 and 68); RC2; RC4; MD2; MD4; MD5; Diffie-Hellman (key agreement)

      + + +##### Windows 95 and Windows 98 + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Base DSS Cryptographic Provider, Base Cryptographic Provider, DSS/Diffie-Hellman Enchanced Cryptographic Provider, and Enhanced Cryptographic Provider5.0.1877.6 and 5.0.1877.775

      FIPS Approved algorithms: Triple-DES (vendor affirmed); SHA-1 (Certs. #20 and 21); DSA/SHA-1 (Certs. #25 and 26); RSA (vendor- affirmed)

      +

      Other algorithms: DES (Certs. #61, 62, 63 and 64); RC2; RC4; MD2; MD4; MD5; Diffie-Hellman (key agreement)

      + + +##### Windows NT 4.0 + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Base Cryptographic Provider5.0.1877.6 and 5.0.1877.768FIPS Approved algorithms: SHA-1 (Certs. #20 and 21); DSA/SHA- 1 (Certs. #25 and 26); RSA (vendor affirmed)
      +
      +Other algorithms: DES (Certs. #61, 62, 63 and 64); Triple-DES (allowed for US and Canadian Government use); RC2; RC4; MD2; MD4; MD5; Diffie-Hellman (key agreement)
      + + +#### Windows Server + +##### Windows Server 2016 + +Validated Editions: Standard, Datacenter, Storage Server + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)10.0.143932937FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
      +
      +Other algorithms: HMAC-MD5; MD5; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)
      Kernel Mode Cryptographic Primitives Library (cng.sys)10.0.143932936FIPS Approved algorithms: AES (Cert. #4064); DRBG (Cert. #1217); DSA (Cert. #1098); ECDSA (Cert. #911); HMAC (Cert. #2651); KAS (Cert. #92); KBKDF (Cert. #101); KTS (AES Cert. #4062; key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); PBKDF (vendor affirmed); RSA (Certs. #2192, #2193 and #2195); SHS (Cert. #3347); Triple-DES (Cert. #2227)
      +
      +Other algorithms: HMAC-MD5; MD5; NDRNG; DES; Legacy CAPI KDF; MD2; MD4; RC2; RC4; RSA (encrypt/decrypt)
      Boot Manager10.0.143932931

      FIPS Approved algorithms: AES (Certs. #4061 and #4064); HMAC (Cert. #2651); PBKDF (vendor affirmed); RSA (Cert. #2193); SHS (Cert. #3347)

      +

      Other algorithms: MD5; PBKDF (non-compliant); VMK KDF

      BitLocker® Windows OS Loader (winload)10.0.143932932FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
      +
      +Other algorithms: NDRNG; MD5
      BitLocker® Windows Resume (winresume)10.0.143932933FIPS Approved algorithms: AES (Certs. #4061 and #4064); RSA (Cert. #2193); SHS (Cert. #3347)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (dumpfve.sys)10.0.143932934FIPS Approved algorithms: AES (Certs. #4061 and #4064)
      Code Integrity (ci.dll)10.0.143932935FIPS Approved algorithms: RSA (Cert. #2193); SHS (Cert. #3347)
      +
      +Other algorithms: AES (non-compliant); MD5
      Secure Kernel Code Integrity (skci.dll)10.0.143932938FIPS Approved algorithms: RSA (Certs. #2193); SHS (Certs. #3347)
      +
      +Other algorithms: MD5
      + + +##### Windows Server 2012 R2 + +Validated Editions: Server, Storage Server, + +**StorSimple 8000 Series, Azure StorSimple Virtual Array Windows Server 2012 R2** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll)6.3.9600 6.3.9600.170312357FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); DSA (Cert. #855); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. #2373); Triple-DES (Cert. #1692)
      +
      +Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)
      Kernel Mode Cryptographic Primitives Library (cng.sys)6.3.9600 6.3.9600.170422356FIPS Approved algorithms: AES (Cert. #2832); DRBG (Certs. #489); ECDSA (Cert. #505); HMAC (Cert. #1773); KAS (Cert. #47); KBKDF (Cert. #30); PBKDF (vendor affirmed); RSA (Certs. #1487, #1493 and #1519); SHS (Cert. # 2373); Triple-DES (Cert. #1692)
      +
      +Other algorithms: AES (Cert. #2832, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); AES-GCM encryption (non-compliant); DES; HMAC MD5; Legacy CAPI KDF; MD2; MD4; MD5; NDRNG; RC2; RC4; RSA (encrypt/decrypt)
      Boot Manager6.3.9600 6.3.9600.170312351FIPS Approved algorithms: AES (Cert. #2832); HMAC (Cert. #1773); PBKDF (vendor affirmed); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
      +
      +Other algorithms: MD5; KDF (non-compliant); PBKDF (non-compliant)
      BitLocker® Windows OS Loader (winload)6.3.9600 6.3.9600.170312352FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Cert. #2396)
      +
      +Other algorithms: MD5; NDRNG
      BitLocker® Windows Resume (winresume)[16]6.3.9600 6.3.9600.170312353FIPS Approved algorithms: AES (Cert. #2832); RSA (Cert. #1494); SHS (Certs. # 2373 and #2396)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (dumpfve.sys)[17]6.3.9600 6.3.9600.170312354FIPS Approved algorithms: AES (Cert. #2832)
      +
      +Other algorithms: N/A
      Code Integrity (ci.dll)6.3.9600 6.3.9600.170312355FIPS Approved algorithms: RSA (Cert. #1494); SHS (Cert. # 2373)
      +
      +Other algorithms: MD5
      + + +\[16\] Does not apply to **Azure StorSimple Virtual Array Windows Server 2012 R2** + +\[17\] Does not apply to **Azure StorSimple Virtual Array Windows Server 2012 R2** + +**Windows Server 2012** + +Validated Editions: Server, Storage Server + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Cryptographic Primitives Library (BCRYPTPRIMITIVES.DLL)6.2.92001892FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258); DSA (Cert. #687); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
      +
      +Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#687); ECDSA (Cert. ); HMAC (Cert. #); KAS (Cert. ); KBKDF (Cert. ); PBKDF (vendor affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
      +
      +Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)
      Kernel Mode Cryptographic Primitives Library (cng.sys)6.2.92001891FIPS Approved algorithms: AES (Certs. #2197 and #2216); DRBG (Certs. #258 and #259); ECDSA (Cert. #341); HMAC (Cert. #1345); KAS (Cert. #36); KBKDF (Cert. #3); PBKDF (vendor affirmed); RNG (Cert. #1110); RSA (Certs. #1133 and #1134); SHS (Cert. #1903); Triple-DES (Cert. #1387)
      +
      +Other algorithms: AES (Cert. #2197, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)#1110); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
      +
      +Other algorithms: AES (Cert. , key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Legacy CAPI KDF; MD2; MD4; MD5; HMAC MD5; RC2; RC4; RSA (encrypt/decrypt)
      Boot Manager6.2.92001895FIPS Approved algorithms: AES (Certs. #2196 and #2198); HMAC (Cert. #1347); RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: MD5
      BitLocker® Windows OS Loader (WINLOAD)6.2.92001896FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: AES (Cert. #2197; non-compliant); MD5; Non-Approved RNG
      BitLocker® Windows Resume (WINRESUME)6.2.92001898FIPS Approved algorithms: AES (Certs. #2196 and #2198); RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: MD5
      BitLocker® Dump Filter (DUMPFVE.SYS)6.2.92001899FIPS Approved algorithms: AES (Certs. #2196 and #2198)
      +
      +Other algorithms: N/A
      Code Integrity (CI.DLL)6.2.92001897FIPS Approved algorithms: RSA (Cert. #1132); SHS (Cert. #1903)
      +
      +Other algorithms: MD5
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH.DLL)6.2.92001893FIPS Approved algorithms: DSA (Cert. #686); SHS (Cert. #1902); Triple-DES (Cert. #1386); Triple-DES MAC (Triple-DES Cert. #1386, vendor affirmed)
      +
      +Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4; Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      Enhanced Cryptographic Provider (RSAENH.DLL)6.2.92001894FIPS Approved algorithms: AES (Cert. #2196); HMAC (Cert. #1346); RSA (Cert. #1132); SHS (Cert. #1902); Triple-DES (Cert. #1386)
      +
      +Other algorithms: AES (Cert. #2196, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); Triple-DES (Cert. #1386, key wrapping; key establishment methodology provides 112 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      + + +##### Windows Server 2008 R2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Boot Manager (bootmgr)6.1.7600.16385 or 6.1.7601.175146.1.7600.16385 or 6.1.7601.175141321FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); RSA (Cert. #568); SHS (Cert. #1081)
      +
      +Other algorithms: MD5
      Winload OS Loader (winload.exe)6.1.7600.16385, 6.1.7600.16757, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21655 and 6.1.7601.216756.1.7600.16385, 6.1.7600.16757, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21655 and 6.1.7601.216751333FIPS Approved algorithms: AES (Certs. #1168 and #1177); RSA (Cert. #568); SHS (Cert. #1081)
      +
      +Other algorithms: MD5
      Code Integrity (ci.dll)6.1.7600.16385, 6.1.7600.17122, 6.1.7600.21320, 6.1.7601.17514, 6.1.7601.17950 and 6.1.7601.221086.1.7600.16385, 6.1.7600.17122, 6.1.7600.21320, 6.1.7601.17514, 6.1.7601.17950 and 6.1.7601.221081334FIPS Approved algorithms: RSA (Cert. #568); SHS (Cert. #1081)
      +
      +Other algorithms: MD5
      Kernel Mode Cryptographic Primitives Library (cng.sys)6.1.7600.16385, 6.1.7600.16915, 6.1.7600.21092, 6.1.7601.17514, 6.1.7601.17919, 6.1.7601.17725, 6.1.7601.21861 and 6.1.7601.220766.1.7600.16385, 6.1.7600.16915, 6.1.7600.21092, 6.1.7601.17514, 6.1.7601.17919, 6.1.7601.17725, 6.1.7601.21861 and 6.1.7601.220761335FIPS Approved algorithms: AES (Certs. #1168 and #1177); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #27); ECDSA (Cert. #142); HMAC (Cert. #686); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides between 80 and 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #567); SHS (Cert. #1081); Triple-DES (Cert. #846)
      +
      +-Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4
      Cryptographic Primitives Library (bcryptprimitives.dll)66.1.7600.16385 or 6.1.7601.1751466.1.7600.16385 or 6.1.7601.175141336FIPS Approved algorithms: AES (Certs. #1168 and #1177); AES GCM (Cert. #1168, vendor-affirmed); AES GMAC (Cert. #1168, vendor-affirmed); DRBG (Certs. #23 and #27); DSA (Cert. #391); ECDSA (Cert. #142); HMAC (Cert. #686); KAS (SP 800-56A, vendor affirmed, key agreement; key establishment methodology provides between 80 and 256 bits of encryption strength); RNG (Cert. #649); RSA (Certs. #559 and #567); SHS (Cert. #1081); Triple-DES (Cert. #846)
      +
      +Other algorithms: AES (Cert. #1168, key wrapping; key establishment methodology provides between 128 and 256 bits of encryption strength); DES; HMAC MD5; MD2; MD4; MD5; RC2; RC4
      Enhanced Cryptographic Provider (RSAENH)6.1.7600.163851337FIPS Approved algorithms: AES (Cert. #1168); DRBG (Cert. #23); HMAC (Cert. #687); SHS (Cert. #1081); RSA (Certs. #559 and #568); Triple-DES (Cert. #846)
      +
      +Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 256 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.1.7600.163851338FIPS Approved algorithms: DSA (Cert. #390); RNG (Cert. #649); SHS (Cert. #1081); Triple-DES (Cert. #846); Triple-DES MAC (Triple-DES Cert. #846, vendor affirmed)
      +
      +Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman; MD5; RC2; RC2 MAC; RC4
      BitLocker™ Drive Encryption6.1.7600.16385, 6.1.7600.16429, 6.1.7600.16757, 6.1.7600.20536, 6.1.7600.20873, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21634, 6.1.7601.21655 or 6.1.7601.216756.1.7600.16385, 6.1.7600.16429, 6.1.7600.16757, 6.1.7600.20536, 6.1.7600.20873, 6.1.7600.20897, 6.1.7600.20916, 6.1.7601.17514, 6.1.7601.17556, 6.1.7601.21634, 6.1.7601.21655 or 6.1.7601.216751339FIPS Approved algorithms: AES (Certs. #1168 and #1177); HMAC (Cert. #675); SHS (Cert. #1081)
      +
      +Other algorithms: Elephant Diffuser
      + + +##### Windows Server 2008 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Boot Manager (bootmgr)6.0.6001.18000, 6.0.6002.18005 and 6.0.6002.224976.0.6001.18000, 6.0.6002.18005 and 6.0.6002.224971004FIPS Approved algorithms: AES (Certs. #739 and #760); HMAC (Cert. #415); RSA (Cert. #355); SHS (Cert. #753)
      +
      +Other algorithms: N/A
      Winload OS Loader (winload.exe)6.0.6001.18000, 6.0.6001.18606, 6.0.6001.22861, 6.0.6002.18005, 6.0.6002.18411, 6.0.6002.22497 and 6.0.6002.225966.0.6001.18000, 6.0.6001.18606, 6.0.6001.22861, 6.0.6002.18005, 6.0.6002.18411, 6.0.6002.22497 and 6.0.6002.225961005FIPS Approved algorithms: AES (Certs. #739 and #760); RSA (Cert. #355); SHS (Cert. #753)
      +
      +Other algorithms: MD5
      Code Integrity (ci.dll)6.0.6001.18000 and 6.0.6002.180056.0.6001.18000 and 6.0.6002.180051006FIPS Approved algorithms: RSA (Cert. #355); SHS (Cert. #753)
      +
      +Other algorithms: MD5
      Kernel Mode Security Support Provider Interface (ksecdd.sys)6.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742 and 6.0.6002.228696.0.6001.18709, 6.0.6001.18272, 6.0.6001.18796, 6.0.6001.22202, 6.0.6001.22450, 6.0.6001.22987, 6.0.6001.23069, 6.0.6002.18005, 6.0.6002.18051, 6.0.6002.18541, 6.0.6002.18643, 6.0.6002.22152, 6.0.6002.22742 and 6.0.6002.228691007FIPS Approved algorithms: AES (Certs. #739 and #757); ECDSA (Cert. #83); HMAC (Cert. #413); RNG (Cert. #435 and SP800-90 AES-CTR, vendor affirmed); RSA (Certs. #353 and #358); SHS (Cert. #753); Triple-DES (Cert. #656)
      +
      +Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping: key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)#83); HMAC (Cert. ); RNG (Cert.  and SP800-90 AES-CTR, vendor affirmed); RSA (Certs.  and ); SHS (Cert. ); Triple-DES (Cert. )
      +
      +Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; HMAC MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping: key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      Cryptographic Primitives Library (bcrypt.dll)6.0.6001.22202, 6.0.6002.18005 and 6.0.6002.228726.0.6001.22202, 6.0.6002.18005 and 6.0.6002.228721008FIPS Approved algorithms: AES (Certs. #739 and #757); DSA (Cert. #284); ECDSA (Cert. #83); HMAC (Cert. #413); RNG (Cert. #435 and SP800-90, vendor affirmed); RSA (Certs. #353 and #358); SHS (Cert. #753); Triple-DES (Cert. #656)
      +
      +Other algorithms: AES (GCM and GMAC; non-compliant); DES; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); EC Diffie-Hellman (key agreement; key establishment methodology provides between 128 and 256 bits of encryption strength); MD2; MD4; MD5; RC2; RC4; RNG (SP 800-90 Dual-EC; non-compliant); RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant provides less than 112 bits of encryption strength)
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)6.0.6001.18000 and 6.0.6002.180056.0.6001.18000 and 6.0.6002.180051009FIPS Approved algorithms: DSA (Cert. #282); RNG (Cert. #435); SHS (Cert. #753); Triple-DES (Cert. #656); Triple-DES MAC (Triple-DES Cert. #656, vendor affirmed)
      +
      +-Other algorithms: DES; DES MAC; DES40; DES40 MAC; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC2 MAC; RC4
      Enhanced Cryptographic Provider (RSAENH)6.0.6001.22202 and 6.0.6002.180056.0.6001.22202 and 6.0.6002.180051010FIPS Approved algorithms: AES (Cert. #739); HMAC (Cert. #408); RNG (SP 800-90, vendor affirmed); RSA (Certs. #353 and #355); SHS (Cert. #753); Triple-DES (Cert. #656)
      +
      +Other algorithms: DES; MD2; MD4; MD5; RC2; RC4; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength)
      + + +##### Windows Server 2003 SP2 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.2.3790.3959875

      FIPS Approved algorithms: DSA (Cert. #221); RNG (Cert. #314); RSA (Cert. #245); SHS (Cert. #611); Triple-DES (Cert. #543)

      +

      Other algorithms: DES; DES40; Diffie-Hellman (key agreement; key establishment methodology provides between 112 and 150 bits of encryption strength; non-compliant less than 112 bits of encryption strength); MD5; RC2; RC4

      Kernel Mode Cryptographic Module (FIPS.SYS)5.2.3790.3959869

      FIPS Approved algorithms: HMAC (Cert. #287); RNG (Cert. #313); SHS (Cert. #610); Triple-DES (Cert. #542)

      +

      Other algorithms: DES; HMAC-MD5

      Enhanced Cryptographic Provider (RSAENH)5.2.3790.3959868

      FIPS Approved algorithms: AES (Cert. #548); HMAC (Cert. #289); RNG (Cert. #316); RSA (Cert. #245); SHS (Cert. #613); Triple-DES (Cert. #544)

      +

      Other algorithms: DES; RC2; RC4; MD2; MD4; MD5; RSA (key wrapping; key establishment methodology provides between 112 and 256 bits of encryption strength; non-compliant less than 112 bits of encryption strength)

      + + +##### Windows Server 2003 SP1 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Kernel Mode Cryptographic Module (FIPS.SYS)5.2.3790.1830 [SP1]405

      FIPS Approved algorithms: Triple-DES (Certs. #201[1] and #370[1]); SHS (Certs. #177[1] and #371[2])

      +

      Other algorithms: DES (Cert. #230[1]); HMAC-MD5; HMAC-SHA-1 (non-compliant)

      +

      [1] x86
      +[2] SP1 x86, x64, IA64

      Enhanced Cryptographic Provider (RSAENH)5.2.3790.1830 [Service Pack 1])382

      FIPS Approved algorithms: Triple-DES (Cert. #192[1] and #365[2]); AES (Certs. #80[1] and #290[2]); SHS (Cert. #176[1] and #364[2]); HMAC (Cert. #176, vendor affirmed[1] and #99[2]); RSA (PKCS#1, vendor affirmed[1] and #81[2])

      +

      Other algorithms: DES (Cert. #226[1]); SHA-256[1]; SHA-384[1]; SHA-512[1]; RC2; RC4; MD2; MD4; MD5

      +

      [1] x86
      +[2] SP1 x86, x64, IA64

      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.2.3790.1830 [Service Pack 1]381

      FIPS Approved algorithms: Triple-DES (Certs. #199[1] and #381[2]); SHA-1 (Certs. #181[1] and #385[2]); DSA (Certs. #95[1] and #146[2]); RSA (Cert. #81)

      +

      Other algorithms: DES (Cert. #229[1]); Diffie-Hellman (key agreement); RC2; RC4; MD5; DES 40

      +

      [1] x86
      +[2] SP1 x86, x64, IA64

      + + +##### Windows Server 2003 + + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Kernel Mode Cryptographic Module (FIPS.SYS)5.2.3790.0405

      FIPS Approved algorithms: Triple-DES (Certs. #201[1] and #370[1]); SHS (Certs. #177[1] and #371[2])

      +

      Other algorithms: DES (Cert. #230[1]); HMAC-MD5; HMAC-SHA-1 (non-compliant)

      +

      [1] x86
      +[2] SP1 x86, x64, IA64

      Enhanced Cryptographic Provider (RSAENH)5.2.3790.0382

      FIPS Approved algorithms: Triple-DES (Cert. #192[1] and #365[2]); AES (Certs. #80[1] and #290[2]); SHS (Cert. #176[1] and #364[2]); HMAC (Cert. #176, vendor affirmed[1] and #99[2]); RSA (PKCS#1, vendor affirmed[1] and #81[2])

      +

      Other algorithms: DES (Cert. #226[1]); SHA-256[1]; SHA-384[1]; SHA-512[1]; RC2; RC4; MD2; MD4; MD5

      +

      [1] x86
      +[2] SP1 x86, x64, IA64

      Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH)5.2.3790.0381

      FIPS Approved algorithms: Triple-DES (Certs. #199[1] and #381[2]); SHA-1 (Certs. #181[1] and #385[2]); DSA (Certs. #95[1] and #146[2]); RSA (Cert. #81)

      +

      Other algorithms: DES (Cert. #229[1]); Diffie-Hellman (key agreement); RC2; RC4; MD5; DES 40

      +

      [1] x86
      +[2] SP1 x86, x64, IA64

      + + +#### Other Products + +##### Windows Embedded Compact 7 and Windows Embedded Compact 8 + + ++++++ + + + + + + + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Enhanced Cryptographic Provider7.00.2872 [1] and 8.00.6246 [2]2957

      FIPS Approved algorithms: AES (Certs.#4433and#4434); CKG (vendor affirmed); DRBG (Certs.#1432and#1433); HMAC (Certs.#2946and#2945); RSA (Certs.#2414and#2415); SHS (Certs.#3651and#3652); Triple-DES (Certs.#2383and#2384)

      +

      Allowed algorithms: HMAC-MD5; MD5; NDRNG

      Cryptographic Primitives Library (bcrypt.dll)7.00.2872 [1] and 8.00.6246 [2]2956

      FIPS Approved algorithms: AES (Certs.#4430and#4431); CKG (vendor affirmed); CVL (Certs.#1139and#1140); DRBG (Certs.#1429and#1430); DSA (Certs.#1187and#1188); ECDSA (Certs.#1072and#1073); HMAC (Certs.#2942and#2943); KAS (Certs.#114and#115); RSA (Certs.#2411and#2412); SHS (Certs.#3648and#3649); Triple-DES (Certs.#2381and#2382)

      +

      Allowed algorithms: MD5; NDRNG; RSA (key wrapping; key establishment methodology provides between 112 and 150 bits of encryption strength

      + + + +##### Windows CE 6.0 and Windows Embedded Compact 7 + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Enhanced Cryptographic Provider6.00.1937 [1] and 7.00.1687 [2]825

      FIPS Approved algorithms: AES (Certs. #516 [1] and #2024 [2]); HMAC (Certs. #267 [1] and #1227 [2]); RNG (Certs. #292 [1] and #1060 [2]); RSA (Cert. #230 [1] and #1052 [2]); SHS (Certs. #589 [1] and #1774 [2]); Triple-DES (Certs. #526 [1] and #1308 [2])

      +

      Other algorithms: MD5; HMAC-MD5; RC2; RC4; DES

      + + +##### Outlook Cryptographic Provider + + ++++++ + + + + + + + + + + + + + + +
      Cryptographic ModuleVersion (link to Security Policy)FIPS Certificate #Algorithms
      Outlook Cryptographic Provider (EXCHCSP)SR-1A (3821)SR-1A (3821)110

      FIPS Approved algorithms: Triple-DES (Cert. #18); SHA-1 (Certs. #32); RSA (vendor affirmed)

      +

      Other algorithms: DES (Certs. #91); DES MAC; RC2; MD2; MD5

      + +  + +### Cryptographic Algorithms + +The following tables are organized by cryptographic algorithms with their modes, states, and key sizes. For each algorithm implementation (operating system / platform), there is a link to the Cryptographic Algorithm Validation Program (CAVP) issued certificate. + +### Advanced Encryption Standard (AES) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • AES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CFB128:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CTR:
      • +
        • +
        • Counter Source: Internal
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-OFB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +

      Microsoft Surface Hub Virtual TPM Implementations #4904

      +

      Version 10.0.15063.674

        +
      • AES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CFB128:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CTR:
      • +
        • +
        • Counter Source: Internal
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-OFB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #4903

      +

      Version 10.0.16299

        +
      • AES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CCM:
      • +
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
        • Tag Lengths: 32, 48, 64, 80, 96, 112, 128 (bits)
        • +
        • IV Lengths: 56, 64, 72, 80, 88, 96, 104 (bits)
        • +
        • Plain Text Length: 0-32
        • +
        • AAD Length: 0-65536
        • +
      • +
      • AES-CFB128:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CFB8:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CMAC:
      • +
        • +
        • Generation:
        • +
          • +
          • AES-128:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-192:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-256:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
        • +
        • Verification:
        • +
          • +
          • AES-128:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-192:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-256:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
        • +
      • +
      • AES-CTR:
      • +
        • +
        • Counter Source: Internal
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-ECB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-GCM:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
        • Tag Lengths: 96, 104, 112, 120, 128 (bits)
        • +
        • Plain Text Lengths: 0, 8, 1016, 1024 (bits)
        • +
        • AAD Lengths: 0, 8, 1016, 1024 (bits)
        • +
        • 96 bit IV supported
        • +
      • +
      • AES-XTS:
      • +
        • +
        • Key Size: 128:
        • +
          • +
          • Modes: Decrypt, Encrypt
          • +
          • Block Sizes: Full
          • +
        • +
        • Key Size: 256:
        • +
          • +
          • Modes: Decrypt, Encrypt
          • +
          • Block Sizes: Full
          • +
        • +
      • +

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #4902

      +

      Version 10.0.15063.674

        +
      • AES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CCM:
      • +
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
        • Tag Lengths: 32, 48, 64, 80, 96, 112, 128 (bits)
        • +
        • IV Lengths: 56, 64, 72, 80, 88, 96, 104 (bits)
        • +
        • Plain Text Length: 0-32
        • +
        • AAD Length: 0-65536
        • +
      • +
      • AES-CFB128:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CFB8:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CMAC:
      • +
        • +
        • Generation:
        • +
          • +
          • AES-128:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-192:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-256:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
        • +
        • Verification:
        • +
          • +
          • AES-128:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-192:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-256:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
        • +
      • +
      • AES-CTR:
      • +
        • +
        • Counter Source: Internal
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-ECB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-GCM:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
        • Tag Lengths: 96, 104, 112, 120, 128 (bits)
        • +
        • Plain Text Lengths: 0, 8, 1016, 1024 (bits)
        • +
        • AAD Lengths: 0, 8, 1016, 1024 (bits)
        • +
        • 96 bit IV supported
        • +
      • +
      • AES-XTS:
      • +
        • +
        • Key Size: 128:
        • +
          • +
          • Modes: Decrypt, Encrypt
          • +
          • Block Sizes: Full
          • +
        • +
        • Key Size: 256:
        • +
          • +
          • Modes: Decrypt, Encrypt
          • +
          • Block Sizes: Full
          • +
        • +
      • +

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #4901

      +

      Version 10.0.15254

        +
      • AES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CCM:
      • +
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
        • Tag Lengths: 32, 48, 64, 80, 96, 112, 128 (bits)
        • +
        • IV Lengths: 56, 64, 72, 80, 88, 96, 104 (bits)
        • +
        • Plain Text Length: 0-32
        • +
        • AAD Length: 0-65536
        • +
      • +
      • AES-CFB128:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CFB8:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-CMAC:
      • +
        • +
        • Generation:
        • +
          • +
          • AES-128:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-192:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-256:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
        • +
        • Verification:
        • +
          • +
          • AES-128:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-192:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
          • AES-256:
          • +
            • +
            • Block Sizes: Full, Partial
            • +
            • Message Length: 0-65536
            • +
            • Tag Length: 16-16
            • +
          • +
        • +
      • +
      • AES-CTR:
      • +
        • +
        • Counter Source: Internal
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-ECB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
      • +
      • AES-GCM:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • IV Generation: External
        • +
        • Key Lengths: 128, 192, 256 (bits)
        • +
        • Tag Lengths: 96, 104, 112, 120, 128 (bits)
        • +
        • Plain Text Lengths: 0, 8, 1016, 1024 (bits)
        • +
        • AAD Lengths: 0, 8, 1016, 1024 (bits)
        • +
        • 96 bit IV supported
        • +
      • +
      • AES-XTS:
      • +
        • +
        • Key Size: 128:
        • +
          • +
          • Modes: Decrypt, Encrypt
          • +
          • Block Sizes: Full
          • +
        • +
        • Key Size: 256:
        • +
          • +
          • Modes: Decrypt, Encrypt
          • +
          • Block Sizes: Full
          • +
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #4897

      +

      Version 10.0.16299

      AES-KW:

      +
        +
      • Modes: Decrypt, Encrypt
      • +
      • CIPHK transformation direction: Forward
      • +
      • Key Lengths: 128, 192, 256 (bits)
      • +
      • Plain Text Lengths: 128, 192, 256, 320, 2048 (bits)
      • +
      +

      AES Val#4902

      Microsoft Surface Hub Cryptography Next Generation (CNG) Implementations #4900

      +

      Version 10.0.15063.674

      AES-KW:

      +
        +
      • Modes: Decrypt, Encrypt
      • +
      • CIPHK transformation direction: Forward
      • +
      • Key Lengths: 128, 192, 256 (bits)
      • +
      • Plain Text Lengths: 128, 192, 256, 320, 2048 (bits)
      • +
      +

      AES Val#4901

      Windows 10 Mobile (version 1709) Cryptography Next Generation (CNG) Implementations #4899

      +

      Version 10.0.15254

      AES-KW:

      +
        +
      • Modes: Decrypt, Encrypt
      • +
      • CIPHK transformation direction: Forward
      • +
      • Key Lengths: 128, 192, 256 (bits)
      • +
      • Plain Text Lengths: 128, 192, 256, 320, 2048 (bits)
      • +
      +

      AES Val#4897

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #4898

      +

      Version 10.0.16299

      AES-CCM:

      +
        +
      • Key Lengths: 256 (bits)
      • +
      • Tag Lengths: 128 (bits)
      • +
      • IV Lengths: 96 (bits)
      • +
      • Plain Text Length: 0-32
      • +
      • AAD Length: 0-65536
      • +
      +

      AES Val#4902

      Microsoft Surface Hub BitLocker(R) Cryptographic Implementations #4896

      +

      Version 10.0.15063.674

      AES-CCM:

      +
        +
      • Key Lengths: 256 (bits)
      • +
      • Tag Lengths: 128 (bits)
      • +
      • IV Lengths: 96 (bits)
      • +
      • Plain Text Length: 0-32
      • +
      • AAD Length: 0-65536
      • +
      +

      AES Val#4901

      Windows 10 Mobile (version 1709) BitLocker(R) Cryptographic Implementations #4895

      +

      Version 10.0.15254

      AES-CCM:

      +
        +
      • Key Lengths: 256 (bits)
      • +
      • Tag Lengths: 128 (bits)
      • +
      • IV Lengths: 96 (bits)
      • +
      • Plain Text Length: 0-32
      • +
      • AAD Length: 0-65536
      • +
      +

      AES Val#4897

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); BitLocker(R) Cryptographic Implementations #4894

      +

      Version 10.0.16299

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB128 ( e/d; 128 , 192 , 256 );

      +

      OFB ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #4627

      +

      Version 10.0.15063

      KW ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

      +

      AES Val#4624

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile Cryptography Next Generation (CNG) Implementations #4626

      +

      Version 10.0.15063

      CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

      +

      AES Val#4624

      +

       

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile BitLocker(R) Cryptographic Implementations #4625

      +

      Version 10.0.15063

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

      CFB128 ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      +

      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

      +

      CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 )

      +

      GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )

      +

      (KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )

      +

      IV Generated: ( External ) ; PT Lengths Tested: ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested: ( 0 , 1024 , 8 , 1016 ) ; 96BitIV_Supported

      +

      GMAC_Supported

      +

      XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #4624

      +

      Version 10.0.15063

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #4434

      +

      Version 7.00.2872

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #4433

      +

      Version 8.00.6246

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #4431

      +

      Version 7.00.2872

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #4430

      +

      Version 8.00.6246

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB128 ( e/d; 128 , 192 , 256 );

      +

      OFB ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #4074

      +

      Version 10.0.14393

      ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

      +

      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

      +

      CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

      +

      GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
      +(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
      +IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
      +GMAC_Supported

      +

      XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #4064

      +

      Version 10.0.14393

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

       

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #4063
      +Version 10.0.14393

      KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 192 , 256 , 320 , 2048 )

      +

      AES Val#4064

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #4062

      +

      Version 10.0.14393

      CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

      +

      AES Val#4064

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update BitLocker® Cryptographic Implementations #4061

      +

      Version 10.0.14393

      KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

      +

      AES Val#3629

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #3652

      +

      Version 10.0.10586

      CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

      +

      AES Val#3629

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” BitLocker® Cryptographic Implementations #3653

      +

      Version 10.0.10586

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

       

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” RSA32 Algorithm Implementations #3630
      +Version 10.0.10586

      ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

      +

      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

      +

      CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

      +

      GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
      +(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
      +IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
      +GMAC_Supported

      +

      XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” SymCrypt Cryptographic Implementations #3629
      +
      +

      +

      Version 10.0.10586

      KW  ( AE , AD , AES-128 , AES-192 , AES-256 , FWD , 128 , 256 , 192 , 320 , 2048 )

      +

      AES Val#3497

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #3507

      +

      Version 10.0.10240

      CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

      +

      AES Val#3497

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 BitLocker® Cryptographic Implementations #3498

      +

      Version 10.0.10240

      ECB ( e/d; 128 , 192 , 256 ); CBC ( e/d; 128 , 192 , 256 ); CFB8 ( e/d; 128 , 192 , 256 ); CFB128 ( e/d; 128 , 192 , 256 ); CTR ( int only; 128 , 192 , 256 )

      +

      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

      +

      CMAC(Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

      +

      GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
      +(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
      +IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 0 , 0 ) ; 96BitIV_Supported
      +GMAC_Supported

      +

      XTS( (KS: XTS_128( (e/d) (f) ) KS: XTS_256( (e/d) (f) )

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #3497
      +Version 10.0.10240

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

       

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #3476
      +Version 10.0.10240

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

       

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #2853

      +

      Version 6.3.9600

      CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

      +

      AES Val#2832

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 BitLocker� Cryptographic Implementations #2848

      +

      Version 6.3.9600

      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 0 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

      +

      CMAC (Generation/Verification ) (KS: 128; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 192; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 ) (KS: 256; Block Size(s): Full / Partial ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 0 Max: 16 )

      +

      GCM (KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )

      +

      (KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )

      +

      IV Generated:  ( Externally ) ; PT Lengths Tested:  ( 0 , 128 , 1024 , 8 , 1016 ) ; AAD Lengths tested:  ( 0 , 128 , 1024 , 8 , 1016 ) ; IV Lengths Tested:  ( 8 , 1024 ) ; 96BitIV_Supported ;
      +OtherIVLen_Supported
      +GMAC_Supported

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #2832

      +

      Version 6.3.9600

      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
      +AES Val#2197

      +

      CMAC (Generation/Verification ) (KS: 128; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 192; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 ) (KS: 256; Block Size(s): ; Msg Len(s) Min: 0 Max: 2^16 ; Tag Len(s) Min: 16 Max: 16 )
      +AES Val#2197

      +

      GCM(KS: AES_128( e/d ) Tag Length(s): 128 120 112 104 96 ) (KS: AES_192( e/d ) Tag Length(s): 128 120 112 104 96 )
      +(KS: AES_256( e/d ) Tag Length(s): 128 120 112 104 96 )
      +IV Generated: ( Externally ) ; PT Lengths Tested: ( 0 , 128 , 1024 , 8 , 1016 ) ; AAD Lengths tested: ( 0 , 128 , 1024 , 8 , 1016 ) ; IV Lengths Tested: ( 8 , 1024 ) ; 96BitIV_Supported
      +GMAC_Supported

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #2216

      CCM (KS: 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 12 (Tag Length(s): 16 )

      +

      AES Val#2196

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 BitLocker® Cryptographic Implementations #2198

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

      CFB128 ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #2197

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

       

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #2196
      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 – 0 , 2^16 ) (Payload Length Range: 0 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )
      +AES Val#1168

      Windows Server 2008 R2 and SP1 CNG algorithms #1187

      +

      Windows 7 Ultimate and SP1 CNG algorithms #1178

      CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )
      +AES Val#1168
      Windows 7 Ultimate and SP1 and Windows Server 2008 R2 and SP1 BitLocker Algorithm Implementations #1177

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      +

       

      Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168

      GCM

      +

      GMAC

      Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1168 , vendor-affirmed
      CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker Algorithm Implementations #760
      CCM (KS: 128 , 192 , 256 ) (Assoc. Data Len Range: 0 - 0 , 2^16 ) (Payload Length Range: 1 - 32 ( Nonce Length(s): 7 8 9 10 11 12 13 (Tag Length(s): 4 6 8 10 12 14 16 )

      Windows Server 2008 CNG algorithms #757

      +

      Windows Vista Ultimate SP1 CNG algorithms #756

      CBC ( e/d; 128 , 256 );

      +

      CCM (KS: 128 , 256 ) (Assoc. Data Len Range: 0 - 8 ) (Payload Length Range: 4 - 32 ( Nonce Length(s): 7 8 12 13 (Tag Length(s): 4 6 8 14 16 )

      Windows Vista Ultimate BitLocker Drive Encryption #715

      +

      Windows Vista Ultimate BitLocker Drive Encryption #424

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CFB8 ( e/d; 128 , 192 , 256 );

      Windows Vista Ultimate SP1 and Windows Server 2008 Symmetric Algorithm Implementation #739

      +

      Windows Vista Symmetric Algorithm Implementation #553

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      +

      CTR ( int only; 128 , 192 , 256 )

      Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #2023

      ECB ( e/d; 128 , 192 , 256 );

      +

      CBC ( e/d; 128 , 192 , 256 );

      Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #2024

      +

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #818

      +

      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #781

      +

      Windows 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #548

      +

      Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #516

      +

      Windows CE and Windows Mobile 6, 6.1, and 6.5 Enhanced Cryptographic Provider (RSAENH) #507

      +

      Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #290

      +

      Windows CE 5.0 and 5.1 Enhanced Cryptographic Provider (RSAENH) #224

      +

      Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) #80

      +

      Windows XP, SP1, and SP2 Enhanced Cryptographic Provider (RSAENH) #33

      + + +Deterministic Random Bit Generator (DRBG) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • Counter:
      • +
        • +
        • Modes: AES-256
        • +
        • Derivation Function States: Derivation Function not used
        • +
        • Prediction Resistance Modes: Not Enabled
        • +
      • +
      +

      Prerequisite: AES #4904

      Microsoft Surface Hub Virtual TPM Implementations #1734

      +

      Version 10.0.15063.674

        +
      • Counter:
      • +
        • +
        • Modes: AES-256
        • +
        • Derivation Function States: Derivation Function not used
        • +
        • Prediction Resistance Modes: Not Enabled
        • +
      • +
      +

      Prerequisite: AES #4903

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1733

      +

      Version 10.0.16299

        +
      • Counter:
      • +
        • +
        • Modes: AES-256
        • +
        • Derivation Function States: Derivation Function used
        • +
        • Prediction Resistance Modes: Not Enabled
        • +
      • +
      +

      Prerequisite: AES #4902

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1732

      +

      Version 10.0.15063.674

        +
      • Counter:
      • +
        • +
        • Modes: AES-256
        • +
        • Derivation Function States: Derivation Function used
        • +
        • Prediction Resistance Modes: Not Enabled
        • +
      • +
      +

      Prerequisite: AES #4901

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1731

      +

      Version 10.0.15254

        +
      • Counter:
      • +
        • +
        • Modes: AES-256
        • +
        • Derivation Function States: Derivation Function used
        • +
        • Prediction Resistance Modes: Not Enabled
        • +
      • +
      +

      Prerequisite: AES #4897

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1730

      +

      Version 10.0.16299

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4627 ) ]

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1556

      +

      Version 10.0.15063

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#4624 ) ]

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1555

      +

      Version 10.0.15063

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4434 ) ]

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #1433

      +

      Version 7.00.2872

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4433 ) ]

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #1432

      +

      Version 8.00.6246

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4431 ) ]

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1430

      +

      Version 7.00.2872

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4430 ) ]

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1429

      +

      Version 8.00.6246

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#4074 ) ]

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #1222

      +

      Version 10.0.14393

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#4064 ) ]

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #1217

      +

      Version 10.0.14393

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#3629 ) ]

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #955

      +

      Version 10.0.10586

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#3497 ) ]

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #868

      +

      Version 10.0.10240

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#2832 ) ]

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #489

      +

      Version 6.3.9600

      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_Use_df: ( AES-256 ) ( AES Val#2197 ) ]Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #258
      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#2023 ) ]Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #193
      CTR_DRBG: [ Prediction Resistance Tested: Not Enabled; BlockCipher_No_df: ( AES-256 ) ( AES Val#1168 ) ]Windows 7 Ultimate and SP1 and Windows Server 2008 R2 and SP1 RNG Library #23
      DRBG (SP 800–90)Windows Vista Ultimate SP1, vendor-affirmed
      + + +#### Digital Signature Algorithm (DSA) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • DSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • PQGGen:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • PQGVer:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • SigGen:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • SigVer:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • KeyPair:
          • +
            • +
            • L = 2048, N = 256
            • +
            • L = 3072, N = 256
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1732

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1303

      +

      Version 10.0.15063.674

        +
      • DSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • PQGGen:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • PQGVer:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • SigGen:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • SigVer:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • KeyPair:
          • +
            • +
            •  
            • +
            •  
            • +
            • L = 2048, N = 256
            • +
            • L = 3072, N = 256
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DRBG #1731

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1302

      +

      Version 10.0.15254

        +
      • DSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • PQGGen:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • PQGVer:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • SigGen:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • SigVer:
          • +
            • +
            • L = 2048, N = 256 SHA: SHA-256
            • +
            • L = 3072, N = 256 SHA: SHA-256
            • +
          • +
          • KeyPair:
          • +
            • +
            • L = 2048, N = 256
            • +
            • L = 3072, N = 256
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1301

      +

      Version 10.0.16299

      FIPS186-4:

      +

      PQG(gen)PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      KeyPairGen:   [ (2048,256) ; (3072,256) ]

      +

      SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]

      +

      SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      SHS: Val#3790

      +

      DRBG: Val# 1555

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1223

      +

      Version 10.0.15063

      FIPS186-4:
      +PQG(ver)PARMS TESTED:
        [ (1024,160) SHA( 1 ); ]
      +SIG(ver)PARMS TESTED:   [ (1024,160) SHA( 1 ); ]
      +SHS: Val# 3649

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1188

      +

      Version 7.00.2872

      FIPS186-4:
      +PQG(ver)PARMS TESTED:
        [ (1024,160) SHA( 1 ); ]
      +SIG(ver)PARMS TESTED:   [ (1024,160) SHA( 1 ); ]
      +SHS: Val#3648

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1187

      +

      Version 8.00.6246

      FIPS186-4:
      +PQG(gen)
      PARMS TESTED: [
      +(2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
      +PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
      +KeyPairGen:    [ (2048,256) ; (3072,256) ]
      +SIG(gen)PARMS TESTED:   [ (2048,256)
      +SHA( 256 ); (3072,256) SHA( 256 ); ]
      +SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      SHS: Val# 3347
      +DRBG: Val# 1217

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #1098

      +

      Version 10.0.14393

      FIPS186-4:
      +PQG(gen)
      PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ] PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 )]
      +KeyPairGen:    [ (2048,256) ; (3072,256) ] SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
      +SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      SHS: Val# 3047
      +DRBG: Val# 955

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #1024

      +

      Version 10.0.10586

      FIPS186-4:
      +PQG(gen)
      PARMS TESTED:   [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
      +PQG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
      +KeyPairGen:    [ (2048,256) ; (3072,256) ]
      +SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ] SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      SHS: Val# 2886
      +DRBG: Val# 868

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #983

      +

      Version 10.0.10240

      FIPS186-4:
      +PQG(gen)
      PARMS TESTED:   [
      +(2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
      +PQG(ver)PARMS TESTED:   [ (2048,256)
      +SHA( 256 ); (3072,256) SHA( 256 ) ]
      +KeyPairGen:    [ (2048,256) ; (3072,256) ]
      +SIG(gen)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
      +SIG(ver)PARMS TESTED:   [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]

      +

      SHS: Val# 2373
      +DRBG: Val# 489

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #855

      +

      Version 6.3.9600

      FIPS186-2:
      +PQG(ver) MOD(1024);
      +SIG(ver) MOD(1024);
      +SHS: #1903
      +DRBG: #258

      +

      FIPS186-4:
      +PQG(gen)PARMS TESTED
      : [ (2048,256)SHA( 256 ); (3072,256) SHA( 256 ) ]
      +PQG(ver)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
      +SIG(gen)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ); ]
      +SIG(ver)PARMS TESTED: [ (2048,256) SHA( 256 ); (3072,256) SHA( 256 ) ]
      +SHS: #1903
      +DRBG: #258
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#687.

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #687
      FIPS186-2:
      +PQG(ver)
      MOD(1024);
      +SIG(ver) MOD(1024);
      +SHS: #1902
      +DRBG: #258
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#686.
      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 DSS and Diffie-Hellman Enhanced Cryptographic Provider (DSSENH) #686
      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 1773
      +DRBG: Val# 193
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#645.
      Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #645
      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 1081
      +DRBG: Val# 23
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#391. See Historical DSA List Val#386.

      Windows Server 2008 R2 and SP1 CNG algorithms #391

      +

      Windows 7 Ultimate and SP1 CNG algorithms #386

      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 1081
      +RNG: Val# 649
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#390. See Historical DSA List Val#385.

      Windows Server 2008 R2 and SP1 Enhanced DSS (DSSENH) #390

      +

      Windows 7 Ultimate and SP1 Enhanced DSS (DSSENH) #385

      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 753
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#284. See Historical DSA List Val#283.

      Windows Server 2008 CNG algorithms #284

      +

      Windows Vista Ultimate SP1 CNG algorithms #283

      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 753
      +RNG: Val# 435
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#282. See Historical DSA List Val#281.

      Windows Server 2008 Enhanced DSS (DSSENH) #282

      +

      Windows Vista Ultimate SP1 Enhanced DSS (DSSENH) #281

      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 618
      +RNG: Val# 321
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#227. See Historical DSA List Val#226.

      Windows Vista CNG algorithms #227

      +

      Windows Vista Enhanced DSS (DSSENH) #226

      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 784
      +RNG: Val# 448
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#292.
      Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #292
      FIPS186-2:
      +SIG(ver)
      MOD(1024);
      +SHS: Val# 783
      +RNG: Val# 447
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical DSA List Val#291.
      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #291
      FIPS186-2:
      +PQG(gen)
      MOD(1024);
      +PQG(ver) MOD(1024);
      +KEYGEN(Y) MOD(1024);
      +SIG(gen) MOD(1024);
      +SIG(ver) MOD(1024);
      +SHS: Val# 611
      +RNG: Val# 314
      Windows 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #221
      FIPS186-2:
      +PQG(gen)
      MOD(1024);
      +PQG(ver) MOD(1024);
      +KEYGEN(Y) MOD(1024);
      +SIG(gen) MOD(1024);
      +SIG(ver) MOD(1024);
      +SHS: Val# 385
      Windows Server 2003 SP1 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #146
      FIPS186-2:
      +PQG(ver)
      MOD(1024);
      +KEYGEN(Y) MOD(1024);
      +SIG(gen) MOD(1024);
      +SIG(ver) MOD(1024);
      +SHS: Val# 181
      +
      +
      Windows Server 2003 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #95
      FIPS186-2:
      +PQG(gen)
      MOD(1024);
      +PQG(ver) MOD(1024);
      +KEYGEN(Y) MOD(1024);
      +SIG(gen) MOD(1024);
      +SHS: SHA-1 (BYTE)
      +SIG(ver) MOD(1024);
      +SHS: SHA-1 (BYTE)

      Windows 2000 DSSENH.DLL #29

      +

      Windows 2000 DSSBASE.DLL #28

      +

      Windows NT 4 SP6 DSSENH.DLL #26

      +

      Windows NT 4 SP6 DSSBASE.DLL #25

      FIPS186-2: PRIME;
      +FIPS186-2:

      +

      KEYGEN(Y):
      +SHS: SHA-1 (BYTE)

      +

      SIG(gen):
      +SIG(ver)
      MOD(1024);
      +SHS: SHA-1 (BYTE)

      Windows NT 4.0 SP4 Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider #17
      + + +#### Elliptic Curve Digital Signature Algorithm (ECDSA) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #2373, DRBG #489

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1263

      +

      Version 6.3.9600

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384
            • +
            • Generation Methods: Testing Candidates
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1734

      Microsoft Surface Hub Virtual TPM Implementations #1253

      +

      Version 10.0.15063.674

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384
            • +
            • Generation Methods: Testing Candidates
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1733

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1252

      +

      Version 10.0.16299

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1732

      Microsoft Surface Hub MsBignum Cryptographic Implementations #1251

      +

      Version 10.0.15063.674

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1732

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1250

      +

      Version 10.0.15063.674

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DRBG #1731

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1249

      +

      Version 10.0.15254

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DRBG #1731

      Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1248

      +

      Version 10.0.15254

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1247

      +

      Version 10.0.16299

        +
      • ECDSA:
      • +
        • +
        • 186-4:
        • +
          • +
          • Key Pair Generation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
            • Generation Methods: Extra Random Bits
            • +
          • +
          • Public Key Validation:
          • +
            • +
            • Curves: P-256, P-384, P-521
            • +
          • +
          • Signature Generation:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
          • Signature Verification:
          • +
            • +
            • P-256 SHA: SHA-256
            • +
            • P-384 SHA: SHA-384
            • +
            • P-521 SHA: SHA-512
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1246

      +

      Version 10.0.16299

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 TestingCandidates )
      +SHS: Val#3790
      +DRBG: Val# 1555

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1136

      +

      Version 10.0.15063

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +PKV: CURVES( P-256 P-384 P-521 )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
      +SHS: Val#3790
      +DRBG: Val# 1555

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1135

      +

      Version 10.0.15063

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +PKV: CURVES( P-256 P-384 P-521 )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
      +SHS: Val#3790
      +DRBG: Val# 1555

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1133

      +

      Version 10.0.15063

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +PKV: CURVES( P-256 P-384 P-521 )
      +SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) )
      +SHS:Val# 3649
      +DRBG:Val# 1430

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1073

      +

      Version 7.00.2872

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +PKV: CURVES( P-256 P-384 P-521 )
      +SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 384) P-521: (SHA-1, 512) )
      +SHS:Val#3648
      +DRBG:Val# 1429

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1072

      +

      Version 8.00.6246

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 TestingCandidates )
      +PKV: CURVES( P-256 P-384 )
      +SigGen: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +SigVer: CURVES( P-256: (SHA-1, 256) P-384: (SHA-1, 256, 384) )

      +

      SHS: Val# 3347
      +DRBG: Val# 1222

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #920

      +

      Version 10.0.14393

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +PKV: CURVES( P-256 P-384 P-521 )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

      +

      SHS: Val# 3347
      +DRBG: Val# 1217

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #911

      +

      Version 10.0.14393

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

      +

      SHS: Val# 3047
      +DRBG: Val# 955

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #760

      +

      Version 10.0.10586

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

      +

      SHS: Val# 2886
      +DRBG: Val# 868

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #706

      +

      Version 10.0.10240

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )

      +

      SHS: Val#2373
      +DRBG: Val# 489

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #505

      +

      Version 6.3.9600

      FIPS186-2:
      +PKG: CURVES
      ( P-256 P-384 P-521 )
      +SHS: #1903
      +DRBG: #258
      +SIG(ver):CURVES( P-256 P-384 P-521 )
      +SHS: #1903
      +DRBG: #258

      +

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
      +SHS: #1903
      +DRBG: #258
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#341.

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #341

      FIPS186-2:
      +PKG: CURVES
      ( P-256 P-384 P-521 )
      +SHS: Val#1773
      +DRBG: Val# 193
      +SIG(ver): CURVES( P-256 P-384 P-521 )
      +SHS: Val#1773
      +DRBG: Val# 193

      +

      FIPS186-4:
      +PKG: CURVES
      ( P-256 P-384 P-521 ExtraRandomBits )
      +SigGen: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512)
      +SigVer: CURVES( P-256: (SHA-256) P-384: (SHA-384) P-521: (SHA-512) )
      +SHS: Val#1773
      +DRBG: Val# 193
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#295.

      Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #295
      FIPS186-2:
      +PKG: CURVES
      ( P-256 P-384 P-521 )
      +SHS: Val#1081
      +DRBG: Val# 23
      +SIG(ver): CURVES( P-256 P-384 P-521 )
      +SHS: Val#1081
      +DRBG: Val# 23
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#142. See Historical ECDSA List Val#141.

      Windows Server 2008 R2 and SP1 CNG algorithms #142

      +

      Windows 7 Ultimate and SP1 CNG algorithms #141

      FIPS186-2:
      +PKG: CURVES
      ( P-256 P-384 P-521 )
      +SHS: Val#753
      +SIG(ver): CURVES( P-256 P-384 P-521 )
      +SHS: Val#753
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#83. See Historical ECDSA List Val#82.

      Windows Server 2008 CNG algorithms #83

      +

      Windows Vista Ultimate SP1 CNG algorithms #82

      FIPS186-2:
      +PKG: CURVES
      ( P-256 P-384 P-521 )
      +SHS: Val#618
      +RNG: Val# 321
      +SIG(ver): CURVES( P-256 P-384 P-521 )
      +SHS: Val#618
      +RNG: Val# 321
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical ECDSA List Val#60.
      Windows Vista CNG algorithms #60
      + + +#### Keyed-Hash Message Authentication Code (HMAC) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • HMAC-SHA-1:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-256:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-384:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      +

      Prerequisite: SHS #4011

      Microsoft Surface Hub Virtual TPM Implementations #3271

      +

      Version 10.0.15063.674

        +
      • HMAC-SHA-1:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-256:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-384:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      +

      Prerequisite: SHS #4009

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #3270

      +

      Version 10.0.16299

        +
      • HMAC-SHA-1:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-256:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-384:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-512:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      +

      Prerequisite: SHS #4011

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #3269

      +

      Version 10.0.15063.674

        +
      • HMAC-SHA-1:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-256:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-384:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-512:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      +

      Prerequisite: SHS #4010

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #3268

      +

      Version 10.0.15254

        +
      • HMAC-SHA-1:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-256:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-384:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      • HMAC-SHA2-512:
      • +
        • +
        • Key Sizes &lt; Block Size
        • +
        • Key Sizes &gt; Block Size
        • +
        • Key Sizes = Block Size
        • +
      • +
      +

      Prerequisite: SHS #4009

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #3267

      +

      Version 10.0.16299

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3790

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #3062

      +

      Version 10.0.15063

      HMAC-SHA1(Key Sizes Ranges Tested: KSBS ) SHS Val#3790

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val#3790

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #3061

      +

      Version 10.0.15063

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3652

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3652

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3652

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3652

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2946

      +

      Version 7.00.2872

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3651

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3651

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3651

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3651

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2945

      +

      Version 8.00.6246

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val# 3649

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val# 3649

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val# 3649

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal# 3649

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2943

      +

      Version 7.00.2872

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#3648

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#3648

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#3648

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#3648

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2942

      +

      Version 8.00.6246

      HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
      +SHS Val# 3347

      +

      HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
      +SHS Val# 3347

      +

      HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
      +SHS Val# 3347

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2661

      +

      Version 10.0.14393

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val# 3347

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val# 3347

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #2651

      +

      Version 10.0.14393

      HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
      +SHS Val# 3047

      +

      HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
      +SHS Val# 3047

      +

      HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
      +SHS Val# 3047

      +

      HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
      +SHS Val# 3047

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” SymCrypt Cryptographic Implementations #2381

      +

      Version 10.0.10586

      HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
      +SHSVal# 2886

      +

      HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
      +SHSVal# 2886

      +

      HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
      + SHSVal# 2886

      +

      HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
      +SHSVal# 2886

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #2233

      +

      Version 10.0.10240

      HMAC-SHA1 (Key Sizes Ranges Tested:  KSBS )
      +SHS Val#2373

      +

      HMAC-SHA256 ( Key Size Ranges Tested:  KSBS )
      +SHS Val#2373

      +

      HMAC-SHA384 ( Key Size Ranges Tested:  KSBS )
      +SHS Val#2373

      +

      HMAC-SHA512 ( Key Size Ranges Tested:  KSBS )
      +SHS Val#2373

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #1773

      +

      Version 6.3.9600

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS Val#2764

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS Val#2764

      Windows CE and Windows Mobile, and Windows Embedded Handheld Enhanced Cryptographic Provider (RSAENH) #2122

      +

      Version 5.2.29344

      HMAC-SHA1 (Key Sizes Ranges Tested: KS#1902

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KS#1902

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 BitLocker® Cryptographic Implementations #1347

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHS#1902

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHS#1902

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHS#1902

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHS#1902

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Enhanced Cryptographic Provider (RSAENH) #1346

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS )

      +

      SHS#1903

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS )

      +

      SHS#1903

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS )

      +

      SHS#1903

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS )

      +

      SHS#1903

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1345

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1773

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

      +

      Tinker HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1773

      Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1364

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1774

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1774

      Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1227

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#1081

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#1081

      Windows Server 2008 R2 and SP1 CNG algorithms #686

      +

      Windows 7 and SP1 CNG algorithms #677

      +

      Windows Server 2008 R2 Enhanced Cryptographic Provider (RSAENH) #687

      +

      Windows 7 Enhanced Cryptographic Provider (RSAENH) #673

      HMAC-SHA1(Key Sizes Ranges Tested: KSVal#1081

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSVal#1081

      Windows 7 and SP1 and Windows Server 2008 R2 and SP1 BitLocker Algorithm Implementations #675

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#816

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#816

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#816

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#816

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #452

      HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#753

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSVal#753

      Windows Vista Ultimate SP1 and Windows Server 2008 BitLocker Algorithm Implementations #415

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#753

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#753

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#753

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS )SHS Val#753

      Windows Server 2008 Enhanced Cryptographic Provider (RSAENH) #408

      +

      Windows Vista Enhanced Cryptographic Provider (RSAENH) #407

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS )SHSVal#618

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#618

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#618

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#618

      Windows Vista Enhanced Cryptographic Provider (RSAENH) #297
      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#785

      Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #429

      +

      Windows XP, vendor-affirmed

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#783

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#783

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#783

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#783

      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #428

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#613

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#613

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#613

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#613

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #289
      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#610Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #287

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#753

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#753

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#753

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#753

      Windows Server 2008 CNG algorithms #413

      +

      Windows Vista Ultimate SP1 CNG algorithms #412

      HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#737

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSVal#737

      Windows Vista Ultimate BitLocker Drive Encryption #386

      HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#618

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#618

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#618

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#618

      Windows Vista CNG algorithms #298

      HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#589

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS )SHSVal#589

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#589

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#589

      Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #267

      HMAC-SHA1 ( Key Sizes Ranges Tested: KSBS ) SHSVal#578

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#578

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#578

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#578

      Windows CE and Windows Mobile 6.0 and Windows Mobil 6.5 Enhanced Cryptographic Provider (RSAENH) #260

      HMAC-SHA1 (Key Sizes Ranges Tested: KSVal#495

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSVal#495

      Windows Vista BitLocker Drive Encryption #199
      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#364

      Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #99

      +

      Windows XP, vendor-affirmed

      HMAC-SHA1 (Key Sizes Ranges Tested: KSBS ) SHSVal#305

      +

      HMAC-SHA256 ( Key Size Ranges Tested: KSBS ) SHSVal#305

      +

      HMAC-SHA384 ( Key Size Ranges Tested: KSBS ) SHSVal#305

      +

      HMAC-SHA512 ( Key Size Ranges Tested: KSBS ) SHSVal#305

      Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #31
      + + +#### Key Agreement Scheme (KAS) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • KAS ECC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Full Public Key Validation, Key Pair Generation, Public Key Regeneration
        • +
        • Schemes:
        • +
          • +
          • Full Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • KDFs: Concatenation
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, ECDSA #1253, DRBG #1734

      Microsoft Surface Hub Virtual TPM Implementations #150

      +

      Version 10.0.15063.674

        +
      • KAS ECC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Full Public Key Validation, Key Pair Generation, Public Key Regeneration
        • +
        • Schemes:
        • +
          • +
          • Full Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • KDFs: Concatenation
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, ECDSA #1252, DRBG #1733

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #149

      +

      Version 10.0.16299

        +
      • KAS ECC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation, Public Key Regeneration
        • +
        • Schemes:
        • +
          • +
          • Ephemeral Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • KDFs: Concatenation
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • One Pass DH:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • Static Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, ECDSA #1250, DRBG #1732

      +
        +
      • KAS FFC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation
        • +
        • Schemes:
        • +
          • +
          • dhEphem:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • dhOneFlow:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • dhStatic:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DSA #1303, DRBG #1732

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #148

      +

      Version 10.0.15063.674

        +
      • KAS ECC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation, Public Key Regeneration
        • +
        • Schemes:
        • +
          • +
          • Ephemeral Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • KDFs: Concatenation
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • One Pass DH:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • Static Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, ECDSA #1249, DRBG #1731

      +
        +
      • KAS FFC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation
        • +
        • Schemes:
        • +
          • +
          • dhEphem:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • dhOneFlow:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • dhStatic:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DSA #1302, DRBG #1731

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #147

      +

      Version 10.0.15254

        +
      • KAS ECC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation, Public Key Regeneration
        • +
        • Schemes:
        • +
          • +
          • Ephemeral Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • KDFs: Concatenation
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • One Pass DH:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • Static Unified:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • EC:
              • +
                • +
                • Curve: P-256
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • ED:
              • +
                • +
                • Curve: P-384
                • +
                • SHA: SHA-384
                • +
                • MAC: HMAC
                • +
              • +
              • EE:
              • +
                • +
                • Curve: P-521
                • +
                • SHA: SHA-512
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, ECDSA #1246, DRBG #1730

      +
        +
      • KAS FFC:
      • +
        • +
        • Functions: Domain Parameter Generation, Domain Parameter Validation, Key Pair Generation, Partial Public Key Validation
        • +
        • Schemes:
        • +
          • +
          • dhEphem:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • dhOneFlow:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
          • dhStatic:
          • +
            • +
            • Key Agreement Roles: Initiator, Responder
            • +
            • Parameter Sets:
            • +
              • +
              • FB:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
              • FC:
              • +
                • +
                • SHA: SHA-256
                • +
                • MAC: HMAC
                • +
              • +
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DSA #1301, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #146

      +

      Version 10.0.16299

      ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration ) SCHEMES [ FullUnified ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ]

      +

      SHS Val#3790
      +DSA Val#1135
      +DRBG Val#1556

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #128

      +

      Version 10.0.15063

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( FB: SHA256 ) ( FC: SHA256 ) ] [ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB: SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
      +SHS Val#3790
      +DSA Val#1223
      +DRBG Val#1555

      +

      ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +
      +SHS Val#3790
      +ECDSA Val#1133
      +DRBG Val#1555

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #127

      +

      Version 10.0.15063

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB: SHA256 ) ( FC: SHA256 ) ] [ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB: SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
      +SHS Val# 3649
      +DSA Val#1188
      +DRBG Val#1430

      +

      ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #115

      +

      Version 7.00.2872

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhHybridOneFlow ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB:SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
      +[ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FB:SHA256 HMAC ) ( FC: SHA256   HMAC ) ]
      +SHS Val#3648
      +DSA Val#1187
      +DRBG Val#1429

      +

      ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256   SHA256   HMAC ) ( ED: P-384   SHA384   HMAC ) ( EE: P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +
      +SHS Val#3648
      +ECDSA Val#1072
      +DRBG Val#1429

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #114

      +

      Version 8.00.6246

      ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Full Validation   Key Regeneration )
      +SCHEMES  [ FullUnified  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; &lt; KDF: CONCAT &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ]

      +

      SHS Val# 3347 ECDSA Val#920 DRBG Val#1222

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #93

      +

      Version 10.0.14393

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation )
      +SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic (No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

      +

      SHS Val# 3347 DSA Val#1098 DRBG Val#1217

      +

      ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

      +

      SHS Val# 3347 DSA Val#1098 ECDSA Val#911 DRBG Val#1217 HMAC Val#2651

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #92

      +

      Version 10.0.14393

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

      +

      SHS Val# 3047 DSA Val#1024 DRBG Val#955

      +

      ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

      +

      SHS Val# 3047 ECDSA Val#760 DRBG Val#955

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub Cryptography Next Generation (CNG) Implementations #72

      +

      Version 10.0.10586

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

      +

      SHS Val# 2886 DSA Val#983 DRBG Val#868

      +

      ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

      +

      SHS Val# 2886 ECDSA Val#706 DRBG Val#868

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #64

      +

      Version 10.0.10240

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation ) SCHEMES  [ dhEphem  ( KARole(s): Initiator / Responder )
      +( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FB:  SHA256 ) ( FC:  SHA256 ) ] [ dhStatic ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( FB:  SHA256 HMAC ) ( FC:  SHA256   HMAC ) ]

      +

      SHS Val#2373 DSA Val#855 DRBG Val#489

      +

      ECC:  (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG   DPV   KPG   Partial Validation   Key Regeneration ) SCHEMES  [ EphemeralUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH  ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]
      +[ StaticUnified ( No_KC  &lt; KARole(s): Initiator / Responder &gt; ) ( EC:  P-256   SHA256   HMAC ) ( ED:  P-384   SHA384   HMAC ) ( EE:  P-521   HMAC (SHA512, HMAC_SHA512) ) ]

      +

      SHS Val#2373 ECDSA Val#505 DRBG Val#489

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #47

      +

      Version 6.3.9600

      FFC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation ) SCHEMES [ dhEphem ( KARole(s): Initiator / Responder )
      +( FA: SHA256 ) ( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhOneFlow ( KARole(s): Initiator / Responder ) ( FA: SHA256 ) ( FB: SHA256 ) ( FC: SHA256 ) ]
      +[ dhStatic ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( FA: SHA256 HMAC ) ( FB: SHA256 HMAC ) ( FC: SHA256 HMAC ) ]
      +SHS #1903 DSA Val#687 DRBG #258

      +

      ECC: (FUNCTIONS INCLUDED IN IMPLEMENTATION: DPG DPV KPG Partial Validation Key Regeneration ) SCHEMES [ EphemeralUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 HMAC ) ( ED: P-384 SHA384 HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ) ]
      +[ OnePassDH( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 ) ( ED: P-384 SHA384 ) ( EE: P-521 (SHA512, HMAC_SHA512) ) ) ]
      +[ StaticUnified ( No_KC &lt; KARole(s): Initiator / Responder&gt; ) ( EC: P-256 SHA256 HMAC ) ( ED: P-384 SHA384 HMAC ) ( EE: P-521 HMAC (SHA512, HMAC_SHA512) ) ]
      +
      +SHS #1903 ECDSA Val#341 DRBG #258

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #36

      KAS (SP 800–56A)

      +

      key agreement

      +

      key establishment methodology provides 80 to 256 bits of encryption strength

      Windows 7 and SP1, vendor-affirmed

      +

      Windows Server 2008 R2 and SP1, vendor-affirmed

      + + +SP 800-108 Key-Based Key Derivation Functions (KBKDF) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • Counter:
      • +
        • +
        • MACs: HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384
        • +
      • +
      +

      MAC prerequisite: HMAC #3271

      +
      +
        +
      • Counter Location: Before Fixed Data
      • +
      • R Length: 32 (bits)
      • +
      • SPs used to generate K: SP 800-56A, SP 800-90A
      • +
      +
      +

      K prerequisite: DRBG #1734, KAS #150

      Microsoft Surface Hub Virtual TPM Implementations #161

      +

      Version 10.0.15063.674

        +
      • Counter:
      • +
        • +
        • MACs: HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384
        • +
      • +
      +

      MAC prerequisite: HMAC #3270

      +
      +
        +
      • Counter Location: Before Fixed Data
      • +
      • R Length: 32 (bits)
      • +
      • SPs used to generate K: SP 800-56A, SP 800-90A
      • +
      +
      +

      K prerequisite: DRBG #1733, KAS #149

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #160

      +

      Version 10.0.16299

        +
      • Counter:
      • +
        • +
        • MACs: CMAC-AES-128, CMAC-AES-192, CMAC-AES-256, HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
        • +
      • +
      +

      MAC prerequisite: AES #4902, HMAC #3269

      +
      +
        +
      • Counter Location: Before Fixed Data
      • +
      • R Length: 32 (bits)
      • +
      • SPs used to generate K: SP 800-56A, SP 800-90A
      • +
      • K prerequisite: KAS #148
      • +
      +

      Microsoft Surface Hub Cryptography Next Generation (CNG) Implementations #159

      +

      Version 10.0.15063.674

        +
      • Counter:
      • +
        • +
        • MACs: CMAC-AES-128, CMAC-AES-192, CMAC-AES-256, HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
        • +
      • +
      +

      MAC prerequisite: AES #4901, HMAC #3268

      +
      +
        +
      • Counter Location: Before Fixed Data
      • +
      • R Length: 32 (bits)
      • +
      • SPs used to generate K: SP 800-56A, SP 800-90A
      • +
      +
      +

      K prerequisite: KAS #147

      Windows 10 Mobile (version 1709) Cryptography Next Generation (CNG) Implementations #158

      +

      Version 10.0.15254

        +
      • Counter:
      • +
        • +
        • MACs: CMAC-AES-128, CMAC-AES-192, CMAC-AES-256, HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512
        • +
      • +
      +

      MAC prerequisite: AES #4897, HMAC #3267

      +
      +
        +
      • Counter Location: Before Fixed Data
      • +
      • R Length: 32 (bits)
      • +
      • SPs used to generate K: SP 800-56A, SP 800-90A
      • +
      +
      +

      K prerequisite: KAS #146

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Cryptography Next Generation (CNG) Implementations #157

      +

      Version 10.0.16299

      CTR_Mode: ( Llength( Min0 Max0 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA384] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )
      +
      +KAS Val#128
      +DRBG Val#1556
      +MAC Val#3062

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #141

      +

      Version 10.0.15063

      CTR_Mode: ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )
      +
      +KAS Val#127
      +AES Val#4624
      +DRBG Val#1555
      +MAC Val#3061

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile Cryptography Next Generation (CNG) Implementations #140

      +

      Version 10.0.15063

      CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA384] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

      +

      KAS Val#93 DRBG Val#1222 MAC Val#2661

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #102

      +

      Version 10.0.14393

      CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

      +

      KAS Val#92 AES Val#4064 DRBG Val#1217 MAC Val#2651

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #101

      +

      Version 10.0.14393

      CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

      +

      KAS Val#72 AES Val#3629 DRBG Val#955 MAC Val#2381

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #72

      +

      Version 10.0.10586

      CTR_Mode:  ( Llength( Min20 Max64 ) MACSupported( [CMACAES128] [CMACAES192] [CMACAES256] [HMACSHA1] [HMACSHA256] [HMACSHA384] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

      +

      KAS Val#64 AES Val#3497 RBG Val#868 MAC Val#2233

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #66

      +

      Version 10.0.10240

      CTR_Mode:  ( Llength( Min0 Max0 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

      +

      DRBG Val#489 MAC Val#1773

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #30

      +

      Version 6.3.9600

      CTR_Mode: ( Llength( Min0 Max4 ) MACSupported( [HMACSHA1] [HMACSHA256] [HMACSHA512] ) LocationCounter( [BeforeFixedData] ) rlength( [32] ) )

      +

      DRBG #258 HMAC Val#1345

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #3
      + + +Random Number Generator (RNG) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #

      FIPS 186-2 General Purpose

      +

      [ (x-Original); (SHA-1) ]

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #1110
      FIPS 186-2
      +[ (x-Original); (SHA-1) ]

      Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1060

      +

      Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #292

      +

      Windows CE and Windows Mobile 6.0 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #286

      +

      Windows CE 5.00 and Window CE 5.01 Enhanced Cryptographic Provider (RSAENH) #66

      FIPS 186-2
      +[ (x-Change Notice); (SHA-1) ]

      +

      FIPS 186-2 General Purpose
      +[ (x-Change Notice); (SHA-1) ]

      Windows 7 and SP1 and Windows Server 2008 R2 and SP1 RNG Library #649

      +

      Windows Vista Ultimate SP1 and Windows Server 2008 RNG Implementation #435

      +

      Windows Vista RNG implementation #321

      FIPS 186-2 General Purpose
      +[ (x-Change Notice); (SHA-1) ]

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #470

      +

      Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #449

      +

      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #447

      +

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #316

      +

      Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #313

      FIPS 186-2
      +[ (x-Change Notice); (SHA-1) ]

      Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #448

      +

      Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #314

      + + +#### RSA + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1734

      Microsoft Surface Hub Virtual TPM Implementations #2677

      +

      Version 10.0.15063.674

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 240 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1733

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #2676

      +

      Version 10.0.16299

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1732

      Microsoft Surface Hub RSA32 Algorithm Implementations #2675

      +

      Version 10.0.15063.674

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); RSA32 Algorithm Implementations #2674

      +

      Version 10.0.16299

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DRBG #1731

      Windows 10 Mobile (version 1709) RSA32 Algorithm Implementations #2673

      +

      Version 10.0.15254

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
          • +
          • Public Key Exponent: Fixed (10001)
          • +
          • Provable Primes with Conditions:
          • +
            • +
            • Mod lengths: 2048, 3072 (bits)
            • +
            • Primality Tests: C.3
            • +
          • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 496 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1732

      Microsoft Surface Hub MsBignum Cryptographic Implementations #2672

      +

      Version 10.0.15063.674

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
          • +
          • Probable Random Primes:
          • +
            • +
            • Mod lengths: 2048, 3072 (bits)
            • +
            • Primality Tests: C.2
            • +
          • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 496 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, DRBG #1732

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #2671

      +

      Version 10.0.15063.674

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
          • +
          • Probable Random Primes:
          • +
            • +
            • Mod lengths: 2048, 3072 (bits)
            • +
            • Primality Tests: C.2
            • +
          • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 496 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DRBG #1731

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #2670

      +

      Version 10.0.15254

      RSA:

      +
        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
          • +
          • Public Key Exponent: Fixed (10001)
          • +
          • Provable Primes with Conditions:
          • +
            • +
            • Mod lengths: 2048, 3072 (bits)
            • +
            • Primality Tests: C.3
            • +
          • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 496 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, DRBG #1731

      Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #2669

      +

      Version 10.0.15254

        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
          • +
          • Public Key Exponent: Fixed (10001)
          • +
          • Provable Primes with Conditions:
          • +
            • +
            • Mod lengths: 2048, 3072 (bits)
            • +
            • Primality Tests: C.3
            • +
          • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 496 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #2668

      +

      Version 10.0.16299

        +
      • 186-4:
      • +
        • +
        • Key Generation:
        • +
          • +
          • Probable Random Primes:
          • +
            • +
            • Mod lengths: 2048, 3072 (bits)
            • +
            • Primality Tests: C.2
            • +
          • +
        • +
        • Signature Generation PKCS1.5:
        • +
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Generation PSS:
        • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
        • Signature Verification PKCS1.5:
        • +
          • +
          • Mod 1024 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 2048 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
          • Mod 3072 SHA: SHA-1, SHA-256, SHA-384, SHA-512
          • +
        • +
        • Signature Verification PSS:
        • +
          • +
          • Mod 1024:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 496 (bits)
            • +
          • +
          • Mod 2048:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
          • Mod 3072:
          • +
            • +
            • SHA-1: Salt Length: 160 (bits)
            • +
            • SHA-256: Salt Length: 256 (bits)
            • +
            • SHA-384: Salt Length: 384 (bits)
            • +
            • SHA-512: Salt Length: 512 (bits)
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2667

      +

      Version 10.0.16299

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(gen) (2048 SHA( 1 , 256 , 384 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 )) (2048 SHA( 1 , 256 , 384 ))
      +[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) ))
      +SHA Val#3790

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #2524

      +

      Version 10.0.15063

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +SHA Val#3790

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile RSA32 Algorithm Implementations #2523

      +

      Version 10.0.15063

      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e ( 10001 ) ;
      +PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )
      +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
      +SHA Val#3790
      +DRBG: Val# 1555

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #2522

      +

      Version 10.0.15063

      FIPS186-4:
      +186-4KEY(gen):
      +PGM(ProbRandom:
      ( 2048 , 3072 ) PPTT:( C.2 )
      +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
      +SHA Val#3790

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #2521

      +

      Version 10.0.15063

      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3652
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096 , SHS: SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3652, SHA-256Val#3652, SHA-384Val#3652, SHA-512Val#3652

      +

      FIPS186-4:
      +ALG[ANSIX9.31]
      Sig(Gen): (2048 SHA( 1 )) (3072 SHA( 1 ))
      +SIG(gen) with SHA-1 affirmed for use with protocols only.
      Sig(Ver): (1024 SHA( 1 )) (2048 SHA( 1 )) (3072 SHA( 1 ))
      +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +SHA Val#3652

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2415

      +

      Version 7.00.2872

      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3651
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 4096 , SHS: SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3651, SHA-256Val#3651, SHA-384Val#3651, SHA-512Val#3651

      +

      FIPS186-4:
      +ALG[ANSIX9.31]
      Sig(Gen): (2048 SHA( 1 )) (3072 SHA( 1 ))
      +SIG(gen) with SHA-1 affirmed for use with protocols only.
      Sig(Ver): (1024 SHA( 1 )) (2048 SHA( 1 )) (3072 SHA( 1 ))
      +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +SHA Val#3651

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2414

      +

      Version 8.00.6246

      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 4096 , SHS: SHA-256Val# 3649 , SHA-384Val# 3649 , SHA-512Val# 3649
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val# 3649 , SHA-256Val# 3649 , SHA-384Val# 3649 , SHA-512Val# 3649

      +

      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e (10001) ;
      +PGM(ProbRandom: ( 2048 , 3072 ) PPTT:( C.2 )
      +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +SHA Val# 3649
      +DRBG: Val# 1430

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2412

      +

      Version 7.00.2872

      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 4096 , SHS: SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#3648, SHA-256Val#3648, SHA-384Val#3648, SHA-512Val#3648

      +

      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e (10001) ;
      +PGM(ProbRandom: ( 2048 , 3072 ) PPTT:( C.2 )
      +ALG[RSASSA-PKCS1_V1_5] SIG(gen) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))
      +SHA Val#3648
      +DRBG: Val# 1429

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2411

      +

      Version 8.00.6246

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(gen) (2048 SHA( 1 , 256 , 384 )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +SIG(Ver) (1024 SHA( 1 , 256 , 384 )) (2048 SHA( 1 , 256 , 384 ))
      +[RSASSA-PSS]: Sig(Gen): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) SIG(gen) with SHA-1 affirmed for use with protocols only.
      +Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) ))

      +

      SHA Val# 3347

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #2206

      +

      Version 10.0.14393

      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e ( 10001 ) ;
      +PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

      +

      SHA Val# 3347 DRBG: Val# 1217

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA Key Generation Implementation #2195

      +

      Version 10.0.14393

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val#3346

      soft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #2194

      +

      Version 10.0.14393

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
      +SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val# 3347 DRBG: Val# 1217

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #2193

      +

      Version 10.0.14393

      FIPS186-4:
      +[RSASSA-PSS]: Sig(Gen):
      (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

      +

      Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

      +

      SHA Val# 3347 DRBG: Val# 1217

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #2192

      +

      Version 10.0.14393

      FIPS186-4:
      +186-4KEY(gen)
      :  FIPS186-4_Fixed_e ( 10001 ) ;
      +PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

      +

      SHA Val# 3047 DRBG: Val# 955

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” RSA Key Generation Implementation #1889

      +

      Version 10.0.10586

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val#3048

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub RSA32 Algorithm Implementations #1871

      +

      Version 10.0.10586

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
      +SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val# 3047

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub MsBignum Cryptographic Implementations #1888

      +

      Version 10.0.10586

      FIPS186-4:
      +[RSASSA-PSS]: Sig(Gen)
      : (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
      +Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

      +

      SHA Val# 3047

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub Cryptography Next Generation (CNG) Implementations #1887

      +

      Version 10.0.10586

      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e ( 10001 ) ;
      +PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

      +

      SHA Val# 2886 DRBG: Val# 868

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA Key Generation Implementation #1798

      +

      Version 10.0.10240

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val#2871

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #1784

      +

      Version 10.0.10240

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val#2871

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #1783

      +

      Version 10.0.10240

      FIPS186-4:
      +[RSASSA-PSS]:
      Sig(Gen): (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
      +Sig(Ver): (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

      +

      SHA Val# 2886

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #1802

      +

      Version 10.0.10240

      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e ;
      +PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )

      +

      SHA Val#2373 DRBG: Val# 489

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 RSA Key Generation Implementation #1487

      +

      Version 6.3.9600

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val#2373

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #1494

      +

      Version 6.3.9600

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5
      ] SIG(gen) (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
      +SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 ))

      +

      SHA Val#2373

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1493

      +

      Version 6.3.9600

      FIPS186-4:
      +[RSASSA-PSS]:
      Sig(Gen): (2048 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))
      + Sig(Ver): (1024 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 62 ) )) (2048 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) )) (3072 SHA( 1 SaltLen( 20 ) , 256 SaltLen( 32 ) , 384 SaltLen( 48 ) , 512 SaltLen( 64 ) ))

      +

      SHA Val#2373

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 Cryptography Next Generation Cryptographic Implementations #1519

      +

      Version 6.3.9600

      FIPS186-4:
      +ALG[RSASSA-PKCS1_V1_5]
      SIG(gen) (2048 SHA( 256 , 384 , 512-256 )) (3072 SHA( 256 , 384 , 512-256 ))
      +SIG(Ver) (1024 SHA( 1 , 256 , 384 , 512-256 )) (2048 SHA( 1 , 256 , 384 , 512-256 )) (3072 SHA( 1 , 256 , 384 , 512-256 ))
      +[RSASSA-PSS]: Sig(Gen): (2048 SHA( 256 , 384 , 512 )) (3072 SHA( 256 , 384 , 512 ))
      +Sig(Ver): (1024 SHA( 1 , 256 , 384 , 512 )) (2048 SHA( 1 , 256 , 384 , 512 )) (3072 SHA( 1 , 256 , 384 , 512 , 512 ))
      +SHA #1903

      +

      Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1134.

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG) Implementations #1134
      FIPS186-4:
      +186-4KEY(gen):
      FIPS186-4_Fixed_e , FIPS186-4_Fixed_e_Value
      +PGM(ProbPrimeCondition): 2048 , 3072 PPTT:( C.3 )
      +SHA #1903 DRBG: #258
      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 RSA Key Generation Implementation #1133
      FIPS186-2:
      +ALG[ANSIX9.31]:
      Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: #258
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256#1902, SHA-384#1902, SHA-512#1902,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1#1902, SHA-256#1902, SHA-#1902, SHA-512#1902,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1132.
      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Enhanced Cryptographic Provider (RSAENH) #1132
      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1774
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1774, SHA-256Val#1774, SHA-384Val#1774, SHA-512Val#1774,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1052.
      Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1052
      FIPS186-2:
      +ALG[ANSIX9.31]:
      Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: Val# 193
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1773, SHA-256Val#1773, SHA-384Val#1773, SHA-512Val#1773,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#1051.
      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1051
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#568.
      Windows Server 2008 R2 and SP1 Enhanced Cryptographic Provider (RSAENH) #568
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
      +ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#567. See Historical RSA List Val#560.

      Windows Server 2008 R2 and SP1 CNG algorithms #567

      +

      Windows 7 and SP1 CNG algorithms #560

      FIPS186-2:
      +ALG[ANSIX9.31]:
      Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 DRBG: Val# 23
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#559.
      Windows 7 and SP1 and Server 2008 R2 and SP1 RSA Key Generation Implementation #559
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#1081, SHA-256Val#1081, SHA-384Val#1081, SHA-512Val#1081,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#557.
      Windows 7 and SP1 Enhanced Cryptographic Provider (RSAENH) #557
      FIPS186-2:
      +ALG[ANSIX9.31]:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#816, SHA-256Val#816, SHA-384Val#816, SHA-512Val#816,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#395.
      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #395
      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#783
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#783, SHA-384Val#783, SHA-512Val#783,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#371.
      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #371
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
      +ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#358. See Historical RSA List Val#357.

      Windows Server 2008 CNG algorithms #358

      +

      Windows Vista SP1 CNG algorithms #357

      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#753, SHA-256Val#753, SHA-384Val#753, SHA-512Val#753,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#355. See Historical RSA List Val#354.

      Windows Server 2008 Enhanced Cryptographic Provider (RSAENH) #355

      +

      Windows Vista SP1 Enhanced Cryptographic Provider (RSAENH) #354

      FIPS186-2:
      +ALG[ANSIX9.31]:
      Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#353.
      Windows Vista SP1 and Windows Server 2008 RSA Key Generation Implementation #353
      FIPS186-2:
      +ALG[ANSIX9.31]:
      Key(gen)(MOD: 2048 , 3072 , 4096 PubKey Values: 65537 RNG: Val# 321
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#258.
      Windows Vista RSA key generation implementation #258
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
      +ALG[RSASSA-PSS]: SIG(gen); 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#257.
      Windows Vista CNG algorithms #257
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:
      SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#618, SHA-256Val#618, SHA-384Val#618, SHA-512Val#618,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#255.
      Windows Vista Enhanced Cryptographic Provider (RSAENH) #255
      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#613
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#613, SHA-256Val#613, SHA-384Val#613, SHA-512Val#613,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#245.
      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #245
      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#589
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#589, SHA-256Val#589, SHA-384Val#589, SHA-512Val#589,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#230.
      Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #230
      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#578
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#578, SHA-256Val#578, SHA-384Val#578, SHA-512Val#578,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#222.
      Windows CE and Windows Mobile 6 and Windows Mobile 6.1 Enhanced Cryptographic Provider (RSAENH) #222
      FIPS186-2:
      +ALG[RSASSA-PKCS1_V1_5]:

      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#364
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#81.
      Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #81
      FIPS186-2:
      +ALG[ANSIX9.31]:

      +SIG(ver); 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#305
      +ALG[RSASSA-PKCS1_V1_5]: SIG(gen) 2048 , 3072 , 4096 , SHS: SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
      +SIG(ver): 1024 , 1536 , 2048 , 3072 , 4096 , SHS: SHA-1Val#305, SHA-256Val#305, SHA-384Val#305, SHA-512Val#305,
      +Some of the previously validated components for this validation have been removed because they are now non-compliant per the SP800-131A transition. See Historical RSA List Val#52.
      Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #52

      FIPS186-2:

      +

      – PKCS#1 v1.5, signature generation and verification

      +

      – Mod sizes: 1024, 1536, 2048, 3072, 4096

      +

      – SHS: SHA–1/256/384/512

      Windows XP, vendor-affirmed

      +

      Windows 2000, vendor-affirmed

      + + +#### Secure Hash Standard (SHS) + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • SHA-1:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-256:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-384:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-512:
      • +
        • +
        • Supports Empty Message
        • +
      • +

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #4011

      +

      Version 10.0.15063.674

        +
      • SHA-1:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-256:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-384:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-512:
      • +
        • +
        • Supports Empty Message
        • +
      • +

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #4010

      +

      Version 10.0.15254

        +
      • SHA-1:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-256:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-384:
      • +
        • +
        • Supports Empty Message
        • +
      • +
      • SHA-512:
      • +
        • +
        • Supports Empty Message
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #4009

      +

      Version 10.0.16299

      SHA-1      (BYTE-only)
      +SHA-256  (BYTE-only)
      +SHA-384  (BYTE-only)
      +SHA-512  (BYTE-only)

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #3790

      +

      Version 10.0.15063

      SHA-1      (BYTE-only)
      +SHA-256  (BYTE-only)
      +SHA-384  (BYTE-only)
      +SHA-512  (BYTE-only)

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #3652

      +

      Version 7.00.2872

      SHA-1      (BYTE-only)
      +SHA-256  (BYTE-only)
      +SHA-384  (BYTE-only)
      +SHA-512  (BYTE-only)

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #3651

      +

      Version 8.00.6246

      SHA-1      (BYTE-only)
      +SHA-256  (BYTE-only)
      +SHA-384  (BYTE-only)
      +SHA-512  (BYTE-only)

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #3649

      +

      Version 7.00.2872

      SHA-1      (BYTE-only)
      +SHA-256  (BYTE-only)
      +SHA-384  (BYTE-only)
      +SHA-512  (BYTE-only)

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #3648

      +

      Version 8.00.6246

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #3347
      +Version 10.0.14393
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update RSA32 Algorithm Implementations #3346
      +Version 10.0.14393
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub RSA32 Algorithm Implementations #3048
      +Version 10.0.10586
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #3047
      +Version 10.0.10586
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #2886
      +Version 10.0.10240
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 RSA32 Algorithm Implementations #2871
      +Version 10.0.10240
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry RSA32 Algorithm Implementations #2396
      +Version 6.3.9600
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #2373
      +Version 6.3.9600

      SHA-1 (BYTE-only)

      +

      SHA-256 (BYTE-only)

      +

      SHA-384 (BYTE-only)

      +

      SHA-512 (BYTE-only)

      +

      Implementation does not support zero-length (null) messages.

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1903

      +

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #1902

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)

      Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1774

      +

      Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1773

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)

      Windows 7and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #1081

      +

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #816

      SHA-1 (BYTE-only)

      Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #785

      +

      Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #784

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)
      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #783
      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)

      Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm Implementation #753

      +

      Windows Vista Symmetric Algorithm Implementation #618

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)

      Windows Vista BitLocker Drive Encryption #737

      +

      Windows Vista Beta 2 BitLocker Drive Encryption #495

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #613

      +

      Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #364

      SHA-1 (BYTE-only)

      Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #611

      +

      Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #610

      +

      Windows Server 2003 SP1 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #385

      +

      Windows Server 2003 SP1 Kernel Mode Cryptographic Module (fips.sys) #371

      +

      Windows Server 2003 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #181

      +

      Windows Server 2003 Kernel Mode Cryptographic Module (fips.sys) #177

      +

      Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) #176

      SHA-1 (BYTE-only)
      +SHA-256 (BYTE-only)
      +SHA-384 (BYTE-only)
      +SHA-512 (BYTE-only)

      Windows CE 6.0 and Windows CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #589

      +

      Windows CE and Windows Mobile 6 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #578

      +

      Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #305

      SHA-1 (BYTE-only)

      Windows XP Microsoft Enhanced Cryptographic Provider #83

      +

      Crypto Driver for Windows 2000 (fips.sys) #35

      +

      Windows 2000 Microsoft Outlook Cryptographic Provider (EXCHCSP.DLL) SR-1A (3821) #32

      +

      Windows 2000 RSAENH.DLL #24

      +

      Windows 2000 RSABASE.DLL #23

      +

      Windows NT 4 SP6 RSAENH.DLL #21

      +

      Windows NT 4 SP6 RSABASE.DLL #20

      + + +#### Triple DES + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Modes / States / Key SizesAlgorithm Implementation and Certificate #
        +
      • TDES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-CFB64:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-CFB8:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-ECB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #2558

      +

      Version 10.0.15063.674

        +
      • TDES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-CFB64:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-CFB8:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-ECB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #2557

      +

      Version 10.0.15254

        +
      • TDES-CBC:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-CFB64:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-CFB8:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +
      • TDES-ECB:
      • +
        • +
        • Modes: Decrypt, Encrypt
        • +
        • Keying Option: 1
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #2556

      +

      Version 10.0.16299

      TECB( KO 1 e/d, ) ; TCBC( KO 1 e/d, ) ; TCFB8( KO 1 e/d, ) ; TCFB64( KO 1 e/d, )

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #2459

      +

      Version 10.0.15063

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, )

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2384

      +

      Version 8.00.6246

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, )

      Windows Embedded Compact Enhanced Cryptographic Provider (RSAENH) #2383

      +

      Version 8.00.6246

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, ) ;

      +

      CTR ( int only )

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2382

      +

      Version 7.00.2872

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, )

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #2381

      +

      Version 8.00.6246

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, ) ;

      +

      TCFB8( KO 1 e/d, ) ;

      +

      TCFB64( KO 1 e/d, )

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update SymCrypt Cryptographic Implementations #2227
      +
      +

      +

      Version 10.0.14393

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, ) ;

      +

      TCFB8( KO 1 e/d, ) ;

      +

      TCFB64( KO 1 e/d, )

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub and Surface Hub SymCrypt Cryptographic Implementations #2024
      +
      +

      +

      Version 10.0.10586

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, ) ;

      +

      TCFB8( KO 1 e/d, ) ;

      +

      TCFB64( KO 1 e/d, )

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 SymCrypt Cryptographic Implementations #1969
      +
      +

      +

      Version 10.0.10240

      TECB( KO 1 e/d, ) ;

      +

      TCBC( KO 1 e/d, ) ;

      +

      TCFB8( KO 1 e/d, ) ;

      +

      TCFB64( KO 1 e/d, )

      Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 SymCrypt Cryptographic Implementations #1692

      +

      Version 6.3.9600

      TECB( e/d; KO 1,2 ) ;

      +

      TCBC( e/d; KO 1,2 ) ;

      +

      TCFB8( e/d; KO 1,2 ) ;

      +

      TCFB64( e/d; KO 1,2 )

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Next Generation Symmetric Cryptographic Algorithms Implementations (SYMCRYPT) #1387

      TECB( e/d; KO 1,2 ) ;

      +

      TCBC( e/d; KO 1,2 ) ;

      +

      TCFB8( e/d; KO 1,2 )

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Symmetric Algorithm Implementations (RSA32) #1386

      TECB( e/d; KO 1,2 ) ;

      +

      TCBC( e/d; KO 1,2 ) ;

      +

      TCFB8( e/d; KO 1,2 )

      Windows 7 and SP1 and Windows Server 2008 R2 and SP1 Symmetric Algorithm Implementation #846

      TECB( e/d; KO 1,2 ) ;

      +

      TCBC( e/d; KO 1,2 ) ;

      +

      TCFB8( e/d; KO 1,2 )

      Windows Vista SP1 and Windows Server 2008 Symmetric Algorithm Implementation #656

      TECB( e/d; KO 1,2 ) ;

      +

      TCBC( e/d; KO 1,2 ) ;

      +

      TCFB8( e/d; KO 1,2 )

      Windows Vista Symmetric Algorithm Implementation #549
      Triple DES MAC

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 #1386, vendor-affirmed

      +

      Windows 7 and SP1 and Windows Server 2008 R2 and SP1 #846, vendor-affirmed

      TECB( e/d; KO 1,2 ) ;

      +

      TCBC( e/d; KO 1,2 )

      Windows Embedded Compact 7 Enhanced Cryptographic Provider (RSAENH) #1308

      +

      Windows Embedded Compact 7 Cryptographic Primitives Library (bcrypt.dll) #1307

      +

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #691

      +

      Windows XP Professional SP3 Kernel Mode Cryptographic Module (fips.sys) #677

      +

      Windows XP Professional SP3 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #676

      +

      Windows XP Professional SP3 Enhanced Cryptographic Provider (RSAENH) #675

      +

      Windows Server 2003 SP2 Enhanced Cryptographic Provider (RSAENH) #544

      +

      Windows Server 2003 SP2 Enhanced DSS and Diffie-Hellman Cryptographic Provider #543

      +

      Windows Server 2003 SP2 Kernel Mode Cryptographic Module (fips.sys) #542

      +

      Windows CE 6.0 and Window CE 6.0 R2 and Windows Mobile Enhanced Cryptographic Provider (RSAENH) #526

      +

      Windows CE and Windows Mobile 6 and Windows Mobile 6.1 and Windows Mobile 6.5 Enhanced Cryptographic Provider (RSAENH) #517

      +

      Windows Server 2003 SP1 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #381

      +

      Windows Server 2003 SP1 Kernel Mode Cryptographic Module (fips.sys) #370

      +

      Windows Server 2003 SP1 Enhanced Cryptographic Provider (RSAENH) #365

      +

      Windows CE 5.00 and Windows CE 5.01 Enhanced Cryptographic Provider (RSAENH) #315

      +

      Windows Server 2003 Kernel Mode Cryptographic Module (fips.sys) #201

      +

      Windows Server 2003 Enhanced DSS and Diffie-Hellman Cryptographic Provider (DSSENH) #199

      +

      Windows Server 2003 Enhanced Cryptographic Provider (RSAENH) #192

      +

      Windows XP Microsoft Enhanced Cryptographic Provider #81

      +

      Windows 2000 Microsoft Outlook Cryptographic Provider (EXCHCSP.DLL) SR-1A (3821) #18

      +

      Crypto Driver for Windows 2000 (fips.sys) #16

      + + +#### SP 800-132 Password Based Key Derivation Function (PBKDF) + + + + + + + + + + + + + + +
      + Modes / States / Key Sizes + + Algorithm Implementation and Certificate # +
      + PBKDF (vendor affirmed) +

       Kernel Mode Cryptographic Primitives Library (cng.sys) Cryptographic Primitives Library (bcryptprimitives.dll and ncryptsslp.dll) in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2937
      (Software Version: 10.0.14393)

      +

      Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2936
      (Software Version: 10.0.14393)

      +

      Code Integrity (ci.dll) in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2935
      (Software Version: 10.0.14393)

      +

      Boot Manager in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2931
      (Software Version: 10.0.14393)

      +
      + PBKDF (vendor affirmed) +

      Kernel Mode Cryptographic Primitives Library (cng.sys) in Microsoft Windows 10, Windows 10 Pro, Windows 10 Enterprise, Windows 10 Enterprise LTSB, Windows 10 Mobile, Windows Server 2016 Standard, Windows Server 2016 Datacenter, Windows Storage Server 2016 #2936
      (Software Version: 10.0.14393)

      +

      Windows 8, Windows RT, Windows Server 2012, Surface Windows RT, Surface Windows 8 Pro, and Windows Phone 8 Cryptography Next Generation (CNG), vendor-affirmed

      +
      + + +#### Component Validation List + + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Publication / Component Validated / DescriptionImplementation and Certificate #
        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

      Prerequisite: DRBG #489

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #1540

      +

      Version 6.3.9600

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Microsoft Surface Hub Virtual TPM Implementations #1519

      +

      Version 10.0.15063.674

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); Virtual TPM Implementations #1518

      +

      Version 10.0.16299

        +
      • RSADP:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
      • +

      Microsoft Surface Hub MsBignum Cryptographic Implementations #1517

      +

      Version 10.0.15063.674

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Microsoft Surface Hub MsBignum Cryptographic Implementations #1516

      +

      Version 10.0.15063.674

        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

       Prerequisite: DRBG #1732

      Microsoft Surface Hub MsBignum Cryptographic Implementations #1515

      +

      Version 10.0.15063.674

        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

      Prerequisite: DRBG #1732

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1514

      +

      Version 10.0.15063.674

        +
      • RSADP:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
      • +

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1513

      +

      Version 10.0.15063.674

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1512

      +

      Version 10.0.15063.674

        +
      • IKEv1:
      • +
        • +
        • Methods: Digital Signature, Pre-shared Key, Public Key Encryption
        • +
        • Pre-shared Key Length: 64-2048
        • +
        • Diffie-Hellman shared secrets:
        • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 2048 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 256 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 384 (bits)
            • +
            • SHA Functions: SHA-384
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, HMAC #3269

      +
        +
      • IKEv2:
      • +
        • +
        • Derived Keying Material length: 192-1792
        • +
        • Diffie-Hellman shared secrets:
        • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 2048 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 256 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 384 (bits)
            • +
            • SHA Functions: SHA-384
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, HMAC #3269

      +
        +
      • TLS:
      • +
        • +
        • Supports TLS 1.0/1.1
        • +
        • Supports TLS 1.2:
        • +
          • +
          • SHA Functions: SHA-256, SHA-384
          • +
        • +
      • +
      +

      Prerequisite: SHS #4011, HMAC #3269

      Microsoft Surface Hub SymCrypt Cryptographic Implementations #1511

      +

      Version 10.0.15063.674

        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

      Prerequisite: DRBG #1731

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1510

      +

      Version 10.0.15254

        +
      • RSADP:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
      • +

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1509

      +

      Version 10.0.15254

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1508

      +

      Version 10.0.15254

        +
      • IKEv1:
      • +
        • +
        • Methods: Digital Signature, Pre-shared Key, Public Key Encryption
        • +
        • Pre-shared Key Length: 64-2048
        • +
        • Diffie-Hellman shared secrets:
        • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 2048 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 256 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 384 (bits)
            • +
            • SHA Functions: SHA-384
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, HMAC #3268

      +
        +
      • IKEv2:
      • +
        • +
        • Derived Keying Material length: 192-1792
        • +
        • Diffie-Hellman shared secrets:
        • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 2048 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 256 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 384 (bits)
            • +
            • SHA Functions: SHA-384
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, HMAC #3268

      +
        +
      • TLS:
      • +
        • +
        • Supports TLS 1.0/1.1
        • +
        • Supports TLS 1.2:
        • +
          • +
          • SHA Functions: SHA-256, SHA-384
          • +
        • +
      • +
      +

      Prerequisite: SHS #4010, HMAC #3268

      Windows 10 Mobile (version 1709) SymCrypt Cryptographic Implementations #1507

      +

      Version 10.0.15254

        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

      Prerequisite: DRBG #1731

      Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1506

      +

      Version 10.0.15254

        +
      • RSADP:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
      • +

      Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1505

      +

      Version 10.0.15254

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Windows 10 Mobile (version 1709) MsBignum Cryptographic Implementations #1504

      +

      Version 10.0.15254

        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

      Prerequisite: DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1503

      +

      Version 10.0.16299

        +
      • RSADP:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1502

      +

      Version 10.0.16299

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); MsBignum Cryptographic Implementations #1501

      +

      Version 10.0.16299

        +
      • ECDSA SigGen:
      • +
        • +
        • P-256 SHA: SHA-256
        • +
        • P-384 SHA: SHA-384
        • +
        • P-521 SHA: SHA-512
        • +
      • +
      +

      Prerequisite: DRBG #1730

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1499

      +

      Version 10.0.16299

        +
      • RSADP:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations #1498

      +

      Version 10.0.16299

      +

       

        +
      • RSASP1:
      • +
        • +
        • Modulus Size: 2048 (bits)
        • +
        • Padding Algorithms: PKCS 1.5
        • +
      • +

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1497

      +

      Version 10.0.16299

        +
      • IKEv1:
      • +
        • +
        • Methods: Digital Signature, Pre-shared Key, Public Key Encryption
        • +
        • Pre-shared Key Length: 64-2048
        • +
        • Diffie-Hellman shared secrets:
        • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 2048 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 256 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 384 (bits)
            • +
            • SHA Functions: SHA-384
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, HMAC #3267

      +
        +
      • IKEv2:
      • +
        • +
        • Derived Keying Material length: 192-1792
        • +
        • Diffie-Hellman shared secrets:
        • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 2048 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 256 (bits)
            • +
            • SHA Functions: SHA-256
            • +
          • +
          • Diffie-Hellman shared secret:
          • +
            • +
            • Length: 384 (bits)
            • +
            • SHA Functions: SHA-384
            • +
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, HMAC #3267

      +
        +
      • TLS:
      • +
        • +
        • Supports TLS 1.0/1.1
        • +
        • Supports TLS 1.2:
        • +
          • +
          • SHA Functions: SHA-256, SHA-384
          • +
        • +
      • +
      +

      Prerequisite: SHS #4009, HMAC #3267

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

      +

      Version 10.0.16299

      FIPS186-4 ECDSA

      +

      Signature Generation of hash sized messages

      +

      ECDSA SigGen Component: CURVES( P-256 P-384 P-521 )

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1284
      +Version 10.0. 15063

      +

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1279
      +Version 10.0. 15063

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #922
      +Version 10.0.14393

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #894
      +Version 10.0.14393icrosoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #666
      +Version 10.0.10586

      +

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 MsBignum Cryptographic Implementations #288
      +Version 6.3.9600

      FIPS186-4 RSA; PKCS#1 v2.1

      +

      RSASP1 Signature Primitive

      +

      RSASP1: (Mod2048: PKCS1.5 PKCSPSS)

      Windows 10 Creators Update (version 1703) Pro, Enterprise, Education Virtual TPM Implementations #1285
      +Version 10.0.15063

      +

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1282
      +Version 10.0.15063

      +

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1280
      +Version 10.0.15063

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #893
      +Version 10.0.14393

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update MsBignum Cryptographic Implementations #888
      +Version 10.0.14393

      +

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” MsBignum Cryptographic Implementations #665
      +Version 10.0.10586

      +

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 MsBignum Cryptographic Implementations #572
      +Version  10.0.10240

      +

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry MsBignum Cryptographic Implementations #289
      +Version 6.3.9600

      FIPS186-4 RSA; RSADP

      +

      RSADP Primitive

      +

      RSADP: (Mod2048)

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile MsBignum Cryptographic Implementations #1283
      +Version 10.0.15063

      +

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1281
      +Version 10.0.15063

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4 and Surface Pro 3 w/ Windows 10 Anniversary Update Virtual TPM Implementations #895
      +Version 10.0.14393

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update Cryptography Next Generation (CNG) Implementations #887
      +Version 10.0.14393

      +

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” Cryptography Next Generation (CNG) Implementations #663
      +Version 10.0.10586

      +

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 Cryptography Next Generation (CNG) Implementations #576
      +Version  10.0.10240

      SP800-135

      +

      Section 4.1.1, IKEv1 Section 4.1.2, IKEv2 Section 4.2, TLS

      Windows 10 Home, Pro, Enterprise, Education, Windows 10 S Fall Creators Update and Windows Server, Windows Server Datacenter (version 1709); SymCrypt Cryptographic Implementations  #1496

      +

      Version 10.0.16299

      +

      Windows 10 Creators Update (version 1703) Home, Pro, Enterprise, Education, Windows 10 S, Windows 10 Mobile SymCrypt Cryptographic Implementations #1278
      +Version 10.0.15063

      +

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1140
      +Version 7.00.2872

      +

      Windows Embedded Compact Cryptographic Primitives Library (bcrypt.dll) #1139
      +Version 8.00.6246

      +

      Microsoft Windows 10 Anniversary Update, Windows Server 2016, Windows Storage Server 2016; Microsoft Surface Book, Surface Pro 4, Surface Pro 3 and Surface 3 w/ Windows 10 Anniversary Update; Microsoft Lumia 950 and Lumia 650 w/ Windows 10 Mobile Anniversary Update BcryptPrimitives and NCryptSSLp #886
      +Version 10.0.14393

      +

      Microsoft Windows 10 November 2015 Update; Microsoft Surface Book, Surface Pro 4, Surface Pro 3, Surface 3, Surface Pro 2, and Surface Pro w/ Windows 10 November 2015 Update; Windows 10 Mobile for Microsoft Lumia 950 and Microsoft Lumia 635; Windows 10 for Microsoft Surface Hub 84” and Surface Hub 55” BCryptPrimitives and NCryptSSLp #664
      +Version 10.0.10586

      +

      Microsoft Windows 10, Microsoft Surface Pro 3 with Windows 10, Microsoft Surface 3 with Windows 10, Microsoft Surface Pro 2 with Windows 10, Microsoft Surface Pro with Windows 10 BCryptPrimitives and NCryptSSLp #575
      +Version  10.0.10240

      +

      Microsoft Windows 8.1, Microsoft Windows Server 2012 R2, Microsoft Windows Storage Server 2012 R2, Microsoft Windows RT 8.1, Microsoft Surface with Windows RT 8.1, Microsoft Surface Pro with Windows 8.1, Microsoft Surface 2, Microsoft Surface Pro 2, Microsoft Surface Pro 3, Microsoft Windows Phone 8.1, Microsoft Windows Embedded 8.1 Industry and Microsoft StorSimple 8100 BCryptPrimitives and NCryptSSLp #323
      +Version 6.3.9600

      + + +## References + +\[[FIPS 140](http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf)\] - FIPS 140-2, Security Requirements for Cryptographic Modules + +\[[FIPS FAQ](http://csrc.nist.gov/groups/stm/cmvp/documents/cmvpfaq.pdf)\] - Cryptographic Module Validation Program (CMVP) FAQ + +\[[SP 800-57](http://csrc.nist.gov/publications/pubssps.html#800-57-part1)\] - Recommendation for Key Management – Part 1: General (Revised) + +\[[SP 800-131A](http://csrc.nist.gov/publications/nistpubs/800-131a/sp800-131a.pdf)\] - Transitions: Recommendation for Transitioning the Use of Cryptographic Algorithms and Key Lengths + +## Additional Microsoft References + +Enabling FIPS mode - + +Cipher Suites in Schannel - [http://msdn.microsoft.com/en-us/library/aa374757(VS.85).aspx](https://msdn.microsoft.com/en-us/library/aa374757\(vs.85\).aspx) + diff --git a/windows/security/threat-protection/mbsa-removal-and-guidance.md b/windows/security/threat-protection/mbsa-removal-and-guidance.md new file mode 100644 index 0000000000..1c121d6b6a --- /dev/null +++ b/windows/security/threat-protection/mbsa-removal-and-guidance.md @@ -0,0 +1,39 @@ +--- +title: Microsoft Baseline Security Analyzer (MBSA) removal and guidance on alternative solutions +description: This article documents the removal of MBSA and alternative solutions +keywords: MBSA, security, removal +ms.prod: w10 +ms.mktglfcycl: deploy +ms.localizationpriority: medium +ms.author: astoica +author: andreiztm +ms.date: 10/04/2018 +--- + +### What is Microsoft Baseline Security Analyzer and its uses? + +Microsoft Baseline Security Analyzer (MBSA) is used to verify patch compliance. MBSA also performed several other security checks for Windows, IIS, and SQL Server. Unfortunately, the logic behind these additional checks had not been actively maintained since Windows XP and Windows Server 2003. Changes in the products since then rendered many of these security checks obsolete and some of their recommendations counterproductive. + +MBSA was largely used in situations where neither Microsoft Update nor a local WSUS/SCCM server was available, or as a compliance tool to ensure that all security updates were deployed to a managed environment. While MBSA version 2.3 support for Windows Server 2012 R2 and Windows 8.1 was added, it has since been deprecated and no longer developed. MBSA 2.3 is not updated to fully support Windows 10 and Windows Server 2016. + +### The Solution +A script can help you with an alternative to MBSA’s patch-compliance checking: + +- [Using WUA to Scan for Updates Offline](https://docs.microsoft.com/previous-versions/windows/desktop/aa387290(v=vs.85)), which includes a sample .vbs script. +For a PowerShell alternative, see [Using WUA to Scan for Updates Offline with PowerShell](https://gallery.technet.microsoft.com/Using-WUA-to-Scan-for-f7e5e0be). + +For example: + +[![VBS script](images/vbs-example.png)](https://docs.microsoft.com/previous-versions/windows/desktop/aa387290(v=vs.85)) +[![PowerShell script](images/powershell-example.png)](https://gallery.technet.microsoft.com/Using-WUA-to-Scan-for-f7e5e0be) + +The preceding scripts leverage the [WSUS offline scan file](https://support.microsoft.com/help/927745/detailed-information-for-developers-who-use-the-windows-update-offline) (wsusscn2.cab) to perform a scan and get the same information on missing updates as MBSA supplied. MBSA also relied on the wsusscn2.cab to determine which updates were missing from a given system without connecting to any online service or server. The wsusscn2.cab file is still available and there are currently no plans to remove or replace it. +The wsusscn2.cab file contains the metadata of only security updates, update rollups and service packs available from Microsoft Update; it does not contain any information on non-security updates, tools or drivers. + +### More Information + +For security compliance and for desktop/server hardening, we recommend the Microsoft Security Baselines and the Security Compliance Toolkit. + +- [Windows security baselines](windows-security-baselines.md) +- [Download Microsoft Security Compliance Toolkit 1.0 ](https://www.microsoft.com/download/details.aspx?id=55319) +- [Microsoft Security Guidance blog](https://blogs.technet.microsoft.com/secguide/) diff --git a/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md index affe0ea030..4320d8ddca 100644 --- a/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/threat-analytics-dashboard-windows-defender-advanced-threat-protection.md @@ -45,7 +45,7 @@ To access Threat analytics, from the navigation pane select **Dashboards** > **T Click a section of each chart to get a list of the machines in the corresponding mitigation status. ## Related topics -- [Threat analtyics](threat-analytics-windows-defender-advanced-threat-protection.md) +- [Threat analytics](threat-analytics.md) - [Overview of Secure Score in Windows Defender Security Center](overview-secure-score-windows-defender-advanced-threat-protection.md) - [Configure the security controls in Secure score](secure-score-dashboard-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-platform-common-criteria.md b/windows/security/threat-protection/windows-platform-common-criteria.md new file mode 100644 index 0000000000..86b6688059 --- /dev/null +++ b/windows/security/threat-protection/windows-platform-common-criteria.md @@ -0,0 +1,165 @@ +--- +title: Windows Platform Common Criteria Certification +description: This topic details how Microsoft supports the Common Criteria certification program. +ms.prod: w10 +ms.localizationpriority: medium +ms.author: daniha +author: danihalfin +ms.date: 04/03/2018 +--- + +# Windows Platform Common Criteria Certification + +Microsoft is committed to optimizing the security of its products and services. As part of that commitment, Microsoft supports the Common Criteria certification program, continues to ensure that products incorporate the features and functions required by relevant Common Criteria protection profiles, and completes Common Criteria certifications of Microsoft Windows products. + +## Common Criteria Security Targets + +### Information for Systems Integrators and Accreditors + +The Security Target describes security functionality and assurance measures used to evaluate Windows. + + - [Microsoft Window 10 (Creators Update)](http://download.microsoft.com/download/e/8/b/e8b8c42a-a0b6-4ba1-9bdc-e704e8289697/windows%2010%20version%201703%20gp%20os%20security%20target%20-%20public%20\(january%2016,%202018\)\(final\)\(clean\).pdf) + - [Microsoft Windows Server 2016, Microsoft Windows Server 2012 R2, and Microsoft Windows 10 Hyper-V](http://download.microsoft.com/download/1/c/3/1c3b5ab0-e064-4350-a31f-48312180d9b5/st_vid10823-st.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows 10 Mobile (Anniversary Update)](http://download.microsoft.com/download/1/5/e/15eee6d3-f2a8-4441-8cb1-ce8c2ab91c24/windows%2010%20anniversary%20update%20mdf%20security%20target%20-%20public%20\(april%203%202017\).docx) + - [Microsoft Windows 10 (Anniversary Update) and Windows Server 2016](http://download.microsoft.com/download/f/8/c/f8c1c2a4-719c-48ae-942f-9fd3ce5b238f/windows%2010%20au%20and%20server%202016%20gp%20os%20security%20target%20-%20public%20\(december%202%202016\)%20\(clean\).docx) + - [Windows 10 (Anniversary Update) and Windows Server 2016 IPsec VPN Client](http://download.microsoft.com/download/b/f/5/bf59e430-e57b-462d-8dca-8ac3c93cfcff/windows%2010%20anniversary%20update%20ipsec%20vpn%20client%20security%20target%20-%20public%20\(december%2029%202016\)%20\(clean\).docx) + - [Microsoft Windows 10 IPsec VPN Client](http://download.microsoft.com/download/3/7/2/372beb03-b1ed-4bb6-9b9b-b8f43afc570d/st_vid10746-st.pdf) + - [Microsoft Windows 10 November 2015 Update with Surface Book](http://download.microsoft.com/download/a/c/2/ac2a6ed8-4d2f-4f48-a9bf-f059d6c9af38/windows%2010%20mdf3%20security%20target%20-%20public%20\(june%2022%202016\)\(final\).docx) + - [Microsoft Windows 10 Mobile with Lumia 950, 950 XL, 550, 635, and Windows 10 with Surface Pro 4](https://www.niap-ccevs.org/st/st_vid10677-st.pdf) + - [Windows 10 and Windows Server 2012 R2](http://www.commoncriteriaportal.org/files/epfiles/st_windows10.pdf) + - [Windows 10](https://www.niap-ccevs.org/st/st_vid10677-st.pdf) + - [Windows 8.1 with Surface 3 and Windows Phone 8.1 with Lumia 635 and Lumia 830](https://www.niap-ccevs.org/st/st_vid10635-st.pdf) + - [Microsoft Surface Pro 3 and Windows 8.1](https://www.niap-ccevs.org/st/st_vid10632-st.pdf) + - [Windows 8.1 and Windows Phone 8.1](https://www.niap-ccevs.org/st/st_vid10592-st.pdf) + - [Windows 8 and Windows Server 2012](https://www.niap-ccevs.org/st/st_vid10520-st.pdf) + - [Windows 8 and Windows RT](https://www.niap-ccevs.org/st/st_vid10620-st.pdf) + - [Windows 8 and Windows Server 2012 BitLocker](http://www.commoncriteriaportal.org/files/epfiles/st_vid10540-st.pdf) + - [Windows 8, Windows RT, and Windows Server 2012 IPsec VPN Client](http://www.commoncriteriaportal.org/files/epfiles/st_vid10529-st.pdf) + - [Windows 7 and Windows Server 2008 R2](http://www.commoncriteriaportal.org/files/epfiles/st_vid10390-st.pdf) + - [Microsoft Windows Server 2008 R2 Hyper-V Role](http://www.microsoft.com/download/en/details.aspx?id=29305) + - [Windows Vista and Windows Server 2008 at EAL4+](http://www.commoncriteriaportal.org/files/epfiles/st_vid10291-st.pdf) + - [Microsoft Windows Server 2008 Hyper-V Role](http://www.commoncriteriaportal.org/files/epfiles/0570b_pdf.pdf) + - [Windows Vista and Windows Server 2008 at EAL1](http://www.commoncriteriaportal.org/files/epfiles/efs-t005_msvista_msserver2008_eal1_st_v1.0.pdf) + - [Windows Server 2003 SP2 including R2, x64, and IA64; Windows XP Professional SP2 and x64 SP2; and Windows XP Embedded SP2](http://www.commoncriteriaportal.org/files/epfiles/st_vid10184-st.pdf) + - [Windows Server 2003 Certificate Server](http://www.commoncriteriaportal.org/files/epfiles/st_vid9507-st.pdf) + - [Windows Rights Management Services (RMS) 1.0 SP2](http://www.commoncriteriaportal.org/files/epfiles/st_vid10224-st.pdf) + +## Common Criteria Deployment and Administration + +### Information for IT Administrators + +These documents describe how to configure Windows to replicate the configuration used during the Common Criteria evaluation. + +**Windows 10, Windows 10 Mobile, Windows Server 2016, Windows Server 2012 R2** + + - [Microsoft Window 10 (Creators Update)](http://download.microsoft.com/download/e/9/7/e97f0c7f-e741-4657-8f79-2c0a7ca928e3/windows%2010%20cu%20gp%20os%20operational%20guidance%20\(jan%208%202017%20-%20public\).pdf) + - [Microsoft Windows Server 2016, Microsoft Windows Server 2012 R2, and Microsoft Windows 10 Hyper-V](http://download.microsoft.com/download/d/c/4/dc40b5c8-49c2-4587-8a04-ab3b81eb6fc4/st_vid10823-agd.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows 10 Mobile (Anniversary Update)](http://download.microsoft.com/download/4/c/1/4c1f4ea4-2d66-4232-a0f5-925b2bc763bc/windows%2010%20au%20operational%20guidance%20\(16%20mar%202017\)\(clean\).docx) + - [Microsoft Windows 10 (Anniversary Update) and Windows Server 2016](http://download.microsoft.com/download/b/5/2/b52e9081-05c6-4895-91a3-732bfa0eb4da/windows%2010%20au%20and%20server%202016%20gp%20os%20operational%20guidance%20\(final\).docx) + - [Windows 10 (Anniversary Update) and Windows Server 2016 IPsec VPN Client Operational Guidance](http://download.microsoft.com/download/2/c/c/2cc8f929-233e-4a40-b673-57b449680984/windows%2010%20au%20and%20server%202016%20ipsec%20vpn%20client%20operational%20guidance%20\(21%20dec%202016\)%20\(public\).docx) + - [Microsoft Windows 10 IPsec VPN Client](http://download.microsoft.com/download/3/3/f/33fa01dd-b380-46e1-833f-fd85854b4022/st_vid10746-agd.pdf) + - [Microsoft Windows 10 November 2015 Update with Surface Book Administrative Guide](http://download.microsoft.com/download/3/2/c/32c6fa02-b194-478f-a0f6-0215b47d0f40/windows%2010%20mdf3%20mobile%20device%20pp%20operational%20guidance%20\(may%2027,%202016\)\(public\).docx) + - [Microsoft Windows 10 Mobile and Windows 10 Administrative Guide](http://download.microsoft.com/download/2/d/c/2dce3435-9328-48e2-9813-c2559a8d39fa/microsoft%20windows%2010%20and%20windows%2010%20mobile%20guidance.pdf) + - [Windows 10 and Windows Server 2012 R2 Administrative Guide](http://download.microsoft.com/download/0/f/d/0fd33c9a-98ac-499e-882f-274f80f3d4f0/microsoft%20windows%2010%20and%20server%202012%20r2%20gp%20os%20guidance.pdf) + - [Windows 10 Common Criteria Operational Guidance](http://download.microsoft.com/download/d/6/f/d6fb4cec-f0f2-4d00-ab2e-63bde3713f44/windows%2010%20mobile%20device%20operational%20guidance.pdf) + +**Windows 8.1 and Windows Phone 8.1** + + - [Microsoft Surface Pro 3 Common Criteria Mobile Operational Guidance](http://download.microsoft.com/download/b/e/3/be365594-daa5-4af3-a6b5-9533d61eae32/surface%20pro%203%20mobile%20operational%20guidance.docx) + - [Windows 8.1 and Windows Phone 8.1 CC Supplemental Admin Guide](http://download.microsoft.com/download/b/0/e/b0e30225-5017-4241-ac0a-6c40bc8e6714/mobile%20operational%20guidance.docx) + +**Windows 8, Windows RT, and Windows Server 2012** + + - [Windows 8 and Windows Server 2012](http://download.microsoft.com/download/6/0/b/60b27ded-705a-4751-8e9f-642e635c3cf3/microsoft%20windows%208%20windows%20server%202012%20common%20criteria%20supplemental%20admin%20guidance.docx) + - [Windows 8 and Windows RT](http://download.microsoft.com/download/8/6/e/86e8c001-8556-4949-90cf-f5beac918026/microsoft%20windows%208%20microsoft%20windows%20rt%20common%20criteria%20supplemental%20admin.docx) + - [Windows 8 and Windows Server 2012 BitLocker](http://download.microsoft.com/download/0/8/4/08468080-540b-4326-91bf-f2a33b7e1764/administrative%20guidance%20for%20software%20full%20disk%20encryption%20clients.pdf) + - [Windows 8, Windows RT, and Windows Server 2012 IPsec VPN Client](http://download.microsoft.com/download/a/9/f/a9fd7e2d-023b-4925-a62f-58a7f1a6bd47/microsoft%20windows%208%20windows%20server%202012%20supplemental%20admin%20guidance%20ipsec%20vpn%20client.docx) + +**Windows 7 and Windows Server 2008 R2** + + - [Windows 7 and Windows Server 2008 R2 Supplemental CC Guide](https://www.microsoft.com/downloads/en/details.aspx?familyid=ee05b6d0-9939-4765-9217-63083bb94a00) + - [Windows Server 2008 R2 Hyper-V Common Criteria Configuration Guide](http://www.microsoft.com/download/en/details.aspx?id=29308) + +**Windows Vista and Windows Server 2008** + + - [Windows Vista and Windows Server 2008 Supplemental CC Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=06166288-24c4-4c42-9daa-2b2473ddf567) + - [Windows Server 2008 Hyper-V Role Common Criteria Administrator Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=cb19538d-9e13-4ab6-af38-8f48abfdad08) + +**Windows Server 2003 SP2 including R2, x64, and Itanium** + + - [Windows Server 2003 SP2 R2 Common Criteria Administrator Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=39598841-e693-4891-9234-cfd1550f3949) + - [Windows Server 2003 SP2 R2 Common Criteria Configuration Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=4f7b6a93-0307-480f-a5af-a20268cbd7cc) + +**Windows Server 2003 SP1(x86), x64, and IA64** + + - [Windows Server 2003 with x64 Hardware Administrator's Guide](http://www.microsoft.com/downloads/details.aspx?familyid=8a26829f-c177-4b79-913a-4135fb7b96ef) + - [Windows Server 2003 with x64 Hardware Configuration Guide](http://www.microsoft.com/downloads/details.aspx?familyid=3f9ecd0a-74dd-4d23-a4e5-d7b63fed70e8) + +**Windows Server 2003 SP1** + + - [Windows Server 2003 Administrator's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=75736009-59e9-4a71-879e-cf581817b8cc) + - [Windows Server 2003 Configuration Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=a0ad1856-beb7-4285-b47c-381e8a210c38) + +**Windows XP Professional SP2 (x86) and x64 Edition** + + - [Windows XP Common Criteria Administrator Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=9a7f0b16-72ce-4675-aec8-58785c4e37ee) + - [Windows XP Common Criteria Configuration Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=165da57d-f066-4ddf-9462-cbecfcd68694) + - [Windows XP Common Criteria User Guide 3.0](http://www.microsoft.com/downloads/details.aspx?familyid=7c1a4761-9b9e-429c-84eb-cd7b034c5779) + - [Windows XP Professional with x64 Hardware Administrator's Guide](http://www.microsoft.com/downloads/details.aspx?familyid=346f041e-d641-4af7-bdea-c5a3246d0431) + - [Windows XP Professional with x64 Hardware Configuration Guide](http://www.microsoft.com/downloads/details.aspx?familyid=a7075319-cc3d-4420-a00b-8c9a7068ad54) + - [Windows XP Professional with x64 Hardware User’s Guide](http://www.microsoft.com/downloads/details.aspx?familyid=26c49cf5-6159-4197-97ce-bf1fdfc54569) + +**Windows XP Professional SP2, and XP Embedded SP2** + + - [Windows XP Professional Administrator's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=9bcac470-a0b3-4d34-a561-fa8308c0ff60) + - [Windows XP Professional Configuration Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=9f04915e-571a-422d-8ffa-5797051e81de) + - [Windows XP Professional User's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=d39d0028-7093-495c-80da-2b5b29a54bd8) + +**Windows Server 2003 Certificate Server** + + - [Windows Server 2003 Certificate Server Administrator's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=445093d8-45e2-4cf6-884c-8802c1e6cb2d) + - [Windows Server 2003 Certificate Server Configuration Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=46abc8b5-11be-4e3d-85c2-63226c3688d2) + - [Windows Server 2003 Certificate Server User's Guide](http://www.microsoft.com/downloads/en/details.aspx?familyid=74f66d84-2654-48d0-b9b5-b383d383425e) + +## Common Criteria Evaluation Technical Reports and Certification / Validation Reports + +### Information for Systems Integrators and Accreditors + +An Evaluation Technical Report (ETR) is a report submitted to the Common Criteria certification authority for how Windows complies with the claims made in the Security Target. A Certification / Validation Report provides the results of the evaluation by the validation team. + + - [Microsoft Window 10 (Creators Update)](http://download.microsoft.com/download/3/2/c/32cdf627-dd23-4266-90ff-2f9685fd15c0/2017-49%20inf-2218%20cr.pdf) + - [Microsoft Windows Server 2016, Microsoft Windows Server 2012 R2, and Microsoft Windows 10 Hyper-V](http://download.microsoft.com/download/a/3/3/a336f881-4ac9-4c79-8202-95289f86bb7a/st_vid10823-vr.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows 10 Mobile (Anniversary Update)](http://download.microsoft.com/download/f/2/f/f2f7176e-34f4-4ab0-993c-6606d207bb3c/st_vid10752-vr.pdf) + - [Microsoft Windows 10 (Anniversary Update) and Windows Server 2016](http://download.microsoft.com/download/5/4/8/548cc06e-c671-4502-bebf-20d38e49b731/2016-36-inf-1779.pdf) + - [Windows 10 (Anniversary Update) and Windows Server 2016 IPsec VPN Client](http://download.microsoft.com/download/2/0/a/20a8e686-3cd9-43c4-a22a-54b552a9788a/st_vid10753-vr.pdf) + - [Microsoft Windows 10 IPsec VPN Client](http://download.microsoft.com/download/9/b/6/9b633763-6078-48aa-b9ba-960da2172a11/st_vid10746-vr.pdf) + - [Microsoft Windows 10 November 2015 Update with Surface Book](http://download.microsoft.com/download/d/c/b/dcb7097d-1b9f-4786-bb07-3c169fefb579/st_vid10715-vr.pdf) + - [Microsoft Windows 10 Mobile with Lumia 950, 950 XL, 550, 635, and Windows 10 with Surface Pro 4](https://www.niap-ccevs.org/st/st_vid10694-vr.pdf) + - [Windows 10 and Windows Server 2012 R2](https://www.commoncriteriaportal.org/files/epfiles/cr_windows10.pdf) + - [Windows 10](https://www.niap-ccevs.org/st/st_vid10677-vr.pdf) + - [Windows 8.1 with Surface 3 and Windows Phone 8.1 with Lumia 635 and Lumia 830](https://www.niap-ccevs.org/st/st_vid10635-vr.pdf) + - [Microsoft Surface Pro 3 and Windows 8.1](https://www.niap-ccevs.org/st/st_vid10632-vr.pdf) + - [Windows 8.1 and Windows Phone 8.1](https://www.niap-ccevs.org/st/st_vid10592-vr.pdf) + - [Windows 8 and Windows Server 2012](https://www.niap-ccevs.org/st/st_vid10520-vr.pdf) + - [Windows 8 and Windows RT](https://www.niap-ccevs.org/st/st_vid10620-vr.pdf) + - [Windows 8 and Windows Server 2012 BitLocker](http://www.commoncriteriaportal.org/files/epfiles/st_vid10540-vr.pdf) + - [Windows 8, Windows RT, and Windows Server 2012 IPsec VPN Client](http://www.commoncriteriaportal.org/files/epfiles/st_vid10529-vr.pdf) + - [Windows 7 and Windows Server 2008 R2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid10390-vr.pdf) + - [Windows Vista and Windows Server 2008 Validation Report at EAL4+](http://www.commoncriteriaportal.org/files/epfiles/st_vid10291-vr.pdf) + - [Windows Server 2008 Hyper-V Role Certification Report](http://www.commoncriteriaportal.org/files/epfiles/0570a_pdf.pdf) + - [Windows Vista and Windows Server 2008 Certification Report at EAL1](http://www.commoncriteriaportal.org/files/epfiles/efs-t005_msvista_msserver2008_eal1_cr_v1.0.pdf) + - [Windows XP / Windows Server 2003 with x64 Hardware ETR](http://www.microsoft.com/downloads/details.aspx?familyid=6e8d98f9-25b9-4c85-9bd9-24d91ea3c9ef) + - [Windows XP / Windows Server 2003 with x64 Hardware ETR, Part II](http://www.microsoft.com/downloads/details.aspx?familyid=0c35e7d8-9c56-4686-b902-d5ffb9915658) + - [Windows Server 2003 SP2 including R2, Standard, Enterprise, Datacenter, x64, and Itanium Editions Validation Report](http://www.commoncriteriaportal.org/files/epfiles/20080303_st_vid10184-vr.pdf) + - [Windows XP Professional SP2 and x64 SP2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/20080303_st_vid10184-vr.pdf) + - [Windows XP Embedded SP2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/20080303_st_vid10184-vr.pdf) + - [Windows XP and Windows Server 2003 ETR](http://www.microsoft.com/downloads/details.aspx?familyid=63cf2a1e-f578-4bb5-9245-d411f0f64265) + - [Windows XP and Windows Server 2003 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid9506-vr.pdf) + - [Windows Server 2003 Certificate Server ETR](http://www.microsoft.com/downloads/details.aspx?familyid=a594e77f-dcbb-4787-9d68-e4689e60a314) + - [Windows Server 2003 Certificate Server Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid9507-vr.pdf) + - [Microsoft Windows Rights Management Services (RMS) 1.0 SP2 Validation Report](http://www.commoncriteriaportal.org/files/epfiles/st_vid10224-vr.pdf) + +## Other Common Criteria Related Documents + + - [Identifying Windows XP and Windows Server 2003 Common Criteria Certified Requirements for the NIST Special Publication 800-53](http://download.microsoft.com/download/a/9/6/a96d1dfc-2bd4-408d-8d93-e0ede7529691/xpws03_ccto800-53.doc) + From c5dfea4a7990991d9ad11bbc484641bd12d60e35 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Sun, 7 Oct 2018 11:34:28 +0300 Subject: [PATCH 110/201] dalaufer's comment --- ...-machines-windows-defender-advanced-threat-protection-new.md | 1 + .../windows-defender-atp/run-advanced-query-api.md | 2 +- ...e-machine-windows-defender-advanced-threat-protection-new.md | 2 ++ ...ate-alert-windows-defender-advanced-threat-protection-new.md | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index 6542d0bebd..f1fd36c675 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -40,6 +40,7 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine ``` GET /api/domains/{domain}/machines ``` + ## Request headers Name | Type | Description diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 86899b1396..775c140d57 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -41,7 +41,7 @@ Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' >[!Note] > When obtaining a token using user credentials: ->- The user needs to 'Global Admin' AD role +>- The user needs to have 'Global Admin' AD role >- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 205ee3432c..237350b465 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -21,6 +21,8 @@ ms.date: 12/08/2017 Undo isolation of a machine. +[!include[Machine actions note](machineactionsnote.md)] + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 762ae2251a..7d7bc5537c 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -32,7 +32,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have at least the following role permission: 'View Data' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have at least the following role permission: 'Alerts investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) >- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request From bd20e7864cdacead08670d14f6bd29b3fbc3ed23 Mon Sep 17 00:00:00 2001 From: Zvi Avidor Date: Mon, 8 Oct 2018 14:03:52 +0300 Subject: [PATCH 111/201] add documentation for createalert support with delegated creds --- ...rence-windows-defender-advanced-threat-protection-new.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 94288d30d6..46747a3c0d 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -30,6 +30,12 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- Application | Alerts.ReadWrite.All | 'Read and write all alerts' +Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' + +>[!Note] +> When obtaining a token using user credentials: +>- The user needs to have at least the following role permission: 'Alerts investigation' (See [Create and manage roles](user-roles-windows-defender-advanced-threat-protection.md) for more information) +>- The user needs to have access to the machine associated with the alert, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request ``` From f88875a724eba8b387a33e178a88d4449a2e2fa3 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 16 Oct 2018 14:19:37 -0700 Subject: [PATCH 112/201] update toc --- windows/security/threat-protection/TOC.md | 178 ++++++----------- .../windows-defender-atp/TOC.md | 179 ++++++------------ 2 files changed, 119 insertions(+), 238 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index ad7b2466c4..8712899bda 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -85,66 +85,7 @@ #### [Management and APIs](windows-defender-atp/management-apis.md) ##### [Understand threat intelligence concepts](windows-defender-atp/threat-indicator-concepts-windows-defender-advanced-threat-protection.md) -##### [TO BE DEPRECATED - Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) -######Actor - TO BE DEPRECATED -####### [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) -####### [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -######Alerts - TO BE DEPRECATED -####### [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) -####### [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -####### [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -#######Domain - TO BE DEPRECATED -######## [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) -######## [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -######File - TO BE DEPRECATED -####### [Block file API](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) -####### [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) -####### [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) -####### [Get FileActions collection API](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) -####### [Unblock file API](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) - -######IP - TO BE DEPRECATED -####### [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) -####### [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) -######Machines - TO BE DEPRECATED -####### [Collect investigation package API](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) -####### [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -####### [Get FileMachineAction object API](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -####### [Get FileMachineActions collection API](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -####### [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) -####### [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -####### [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get MachineAction object API](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) -####### [Get MachineActions collection API](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) -####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -####### [Get package SAS URI API](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) -####### [Isolate machine API](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) -####### [Release machine from isolation API](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) -####### [Remove app restriction API](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -####### [Request sample API](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) -####### [Restrict app execution API](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) -####### [Run antivirus scan API](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) -####### [Stop and quarantine file API](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -######User - TO BE DEPRECATED -####### [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -####### [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) -####### [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) - - ##### [Managed security service provider support](windows-defender-atp/mssp-support-windows-defender-advanced-threat-protection.md) #### [Microsoft threat protection](windows-defender-atp/threat-protection-integration.md) @@ -284,7 +225,7 @@ ###### [Troubleshoot onboarding issues](windows-defender-atp/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) ####### [Troubleshoot subscription and portal access issues](windows-defender-atp/troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -##### [**Beta!** Windows Defender ATP APIs](windows-defender-atp/exposed-apis-intro.md) +##### [Windows Defender ATP APIs](windows-defender-atp/exposed-apis-intro.md) ###### Create your app ####### [Get access on behalf of a user](windows-defender-atp/exposed-apis-create-app-nativeapp.md) ####### [Get access without a user](windows-defender-atp/exposed-apis-create-app-webapp.md) @@ -343,7 +284,6 @@ ####### [User](windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md) ######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) - ###### How to use APIs - Samples ####### Advanced Hunting API ######## [Schedule advanced Hunting using Microsoft Flow](windows-defender-atp/run-advanced-query-sample-ms-flow.md) @@ -353,65 +293,65 @@ ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -##### [TO BE DEPRECATED - Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) -###### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) -#######Actor -######## [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) -######## [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -#######Alerts -######## [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) -######## [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -######## [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -#######Domain -######## [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) -######## [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) +###### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +####### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) +########Actor +######### [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) +######### [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +########Alerts +######### [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) +######### [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######### [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######### [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +######### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +######### [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######### [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +########Domain +######### [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######### [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) +######### [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) + +########File +######### [Block file](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +######### [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) +######### [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) +######### [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) +######### [Get FileActions collection](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) +######### [Unblock file](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) -#######File -######## [Block file](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) -######## [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) -######## [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) -######## [Get FileActions collection](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) -######## [Unblock file](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) - -#######IP -######## [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) -######## [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) -#######Machines -######## [Collect investigation package](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) -######## [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -######## [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -######## [Get FileMachineAction object](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -######## [Get FileMachineActions collection](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -######## [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) -######## [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -######## [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get MachineAction object](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) -######## [Get MachineActions collection](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) -######## [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -######## [Get package SAS URI](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) -######## [Isolate machine](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) -######## [Release machine from isolation](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) -######## [Remove app restriction](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -######## [Request sample](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) -######## [Restrict app execution](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) -######## [Run antivirus scan](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) -######## [Stop and quarantine file](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -#######User -######## [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -######## [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) -######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) +########IP +######### [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) +######### [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) +######### [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) +########Machines +######### [Collect investigation package](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) +######### [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +######### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######### [Get FileMachineAction object](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +######### [Get FileMachineActions collection](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +######### [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) +######### [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +######### [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get MachineAction object](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) +######### [Get MachineActions collection](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) +######### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######### [Get package SAS URI](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) +######### [Isolate machine](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) +######### [Release machine from isolation](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) +######### [Remove app restriction](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +######### [Request sample](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) +######### [Restrict app execution](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) +######### [Run antivirus scan](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) +######### [Stop and quarantine file](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) + +########User +######### [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +######### [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) +######### [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index f1178724e0..c5917b622d 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -84,66 +84,7 @@ ### [Management and APIs](management-apis.md) #### [Understand threat intelligence concepts](threat-indicator-concepts-windows-defender-advanced-threat-protection.md) -#### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) -#####Actor - TO BE DEPRECATED -###### [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) -###### [Get actor related alerts](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -#####Alerts - TO BE DEPRECATED -###### [Get alerts](get-alerts-windows-defender-advanced-threat-protection.md) -###### [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -###### [Get alert related actor information](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -###### [Get alert related domain information](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -###### [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -###### [Get alert related IP information](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -###### [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -######Domain - TO BE DEPRECATED -####### [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection.md) -####### [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -#####File - TO BE DEPRECATED -###### [Block file API](block-file-windows-defender-advanced-threat-protection.md) -###### [Get file information](get-file-information-windows-defender-advanced-threat-protection.md) -###### [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection.md) -###### [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection.md) -###### [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection.md) -###### [Get FileActions collection API](get-fileactions-collection-windows-defender-advanced-threat-protection.md) -###### [Unblock file API](unblock-file-windows-defender-advanced-threat-protection.md) - -#####IP - TO BE DEPRECATED -###### [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -###### [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection.md) -###### [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection.md) -###### [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection.md) -#####Machines - TO BE DEPRECATED -###### [Collect investigation package API](collect-investigation-package-windows-defender-advanced-threat-protection.md) -###### [Find machine information by IP](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -###### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) -###### [Get FileMachineAction object API](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -###### [Get FileMachineActions collection API](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -###### [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection.md) -###### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -###### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -###### [Get MachineAction object API](get-machineaction-object-windows-defender-advanced-threat-protection.md) -###### [Get MachineActions collection API](get-machineactions-collection-windows-defender-advanced-threat-protection.md) -###### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) -###### [Get package SAS URI API](get-package-sas-uri-windows-defender-advanced-threat-protection.md) -###### [Isolate machine API](isolate-machine-windows-defender-advanced-threat-protection.md) -###### [Release machine from isolation API](unisolate-machine-windows-defender-advanced-threat-protection.md) -###### [Remove app restriction API](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -###### [Request sample API](request-sample-windows-defender-advanced-threat-protection.md) -###### [Restrict app execution API](restrict-code-execution-windows-defender-advanced-threat-protection.md) -###### [Run antivirus scan API](run-av-scan-windows-defender-advanced-threat-protection.md) -###### [Stop and quarantine file API](stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -#####User - TO BE DEPRECATED -###### [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -###### [Get user information](get-user-information-windows-defender-advanced-threat-protection.md) -###### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection.md) -###### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection.md) - - #### [Managed security service provider support](mssp-support-windows-defender-advanced-threat-protection.md) @@ -282,7 +223,7 @@ ###### [Troubleshoot subscription and portal access issues](troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -#### [**Beta!** Windows Defender ATP APIs](exposed-apis-intro.md) +#### [Windows Defender ATP APIs](exposed-apis-intro.md) ##### Create your app ###### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) ###### [Get access without a user](exposed-apis-create-app-webapp.md) @@ -351,65 +292,65 @@ ###### Multiple APIs ####### [PowerShell](exposed-apis-full-sample-powershell.md) -#### [TO BE DEPRECATED - Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) -##### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) -######Actor -####### [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) -####### [Get actor related alerts](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -######Alerts -####### [Get alerts](get-alerts-windows-defender-advanced-threat-protection.md) -####### [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -####### [Get alert related actor information](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related domain information](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related IP information](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -######Domain -####### [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection.md) -####### [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) - -######File -####### [Block file](block-file-windows-defender-advanced-threat-protection.md) -####### [Get file information](get-file-information-windows-defender-advanced-threat-protection.md) -####### [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection.md) -####### [Get FileActions collection](get-fileactions-collection-windows-defender-advanced-threat-protection.md) -####### [Unblock file](unblock-file-windows-defender-advanced-threat-protection.md) - -######IP -####### [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection.md) -####### [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection.md) -######Machines -####### [Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection.md) -####### [Find machine information by IP](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -####### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) -####### [Get FileMachineAction object](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -####### [Get FileMachineActions collection](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -####### [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection.md) -####### [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -####### [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get MachineAction object](get-machineaction-object-windows-defender-advanced-threat-protection.md) -####### [Get MachineActions collection](get-machineactions-collection-windows-defender-advanced-threat-protection.md) -####### [Get machines](get-machines-windows-defender-advanced-threat-protection.md) -####### [Get package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection.md) -####### [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection.md) -####### [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection.md) -####### [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -####### [Request sample](request-sample-windows-defender-advanced-threat-protection.md) -####### [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection.md) -####### [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection.md) -####### [Stop and quarantine file](stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -######User -####### [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -####### [Get user information](get-user-information-windows-defender-advanced-threat-protection.md) -####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection.md) +##### [Use the Windows Defender ATP exposed APIs (deprecated)](exposed-apis-windows-defender-advanced-threat-protection.md) +###### [Supported Windows Defender ATP APIs (deprecated)](supported-apis-windows-defender-advanced-threat-protection.md) +#######Actor +######## [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) +######## [Get actor related alerts](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +#######Alerts +######## [Get alerts](get-alerts-windows-defender-advanced-threat-protection.md) +######## [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######## [Get alert related actor information](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related domain information](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related IP information](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +#######Domain +######## [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection.md) +######## [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) + +#######File +######## [Block file](block-file-windows-defender-advanced-threat-protection.md) +######## [Get file information](get-file-information-windows-defender-advanced-threat-protection.md) +######## [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection.md) +######## [Get FileActions collection](get-fileactions-collection-windows-defender-advanced-threat-protection.md) +######## [Unblock file](unblock-file-windows-defender-advanced-threat-protection.md) + +#######IP +######## [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection.md) +######## [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection.md) +#######Machines +######## [Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection.md) +######## [Find machine information by IP](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +######## [Get machines](get-machines-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineAction object](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineActions collection](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection.md) +######## [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +######## [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get MachineAction object](get-machineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get MachineActions collection](get-machineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machines](get-machines-windows-defender-advanced-threat-protection.md) +######## [Get package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection.md) +######## [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection.md) +######## [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection.md) +######## [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Request sample](request-sample-windows-defender-advanced-threat-protection.md) +######## [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection.md) +######## [Stop and quarantine file](stop-quarantine-file-windows-defender-advanced-threat-protection.md) + +#######User +######## [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +######## [Get user information](get-user-information-windows-defender-advanced-threat-protection.md) +######## [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection.md) From d3ac1fe65330bed0ba504f62d1364eb96bfccdff Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 16 Oct 2018 15:03:33 -0700 Subject: [PATCH 113/201] add get kb info --- windows/security/threat-protection/TOC.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 8712899bda..68f0cc9af8 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -354,7 +354,11 @@ ######### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) - +######Windows updates (KB) info +####### [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) +######Common Vulnerabilities and Exposures (CVE) to KB map +####### [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) + From 67dcba0f43830af5a9c5718d9129a19b1ace1494 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 16 Oct 2018 15:09:40 -0700 Subject: [PATCH 114/201] update custom alerts --- windows/security/threat-protection/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 68f0cc9af8..9b9bb99e11 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -369,7 +369,7 @@ ##### API for custom alerts ###### [Enable the custom threat intelligence application](windows-defender-atp/enable-custom-ti-windows-defender-advanced-threat-protection.md) -###### [TO BE DEPRECATED Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +###### [Use the Windows Defender ATP exposed APIs](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ####### [Use the threat intelligence API to create custom alerts](windows-defender-atp/use-custom-ti-windows-defender-advanced-threat-protection.md) ####### [Create custom threat intelligence alerts](windows-defender-atp/custom-ti-api-windows-defender-advanced-threat-protection.md) ####### [PowerShell code examples](windows-defender-atp/powershell-example-code-windows-defender-advanced-threat-protection.md) From c374eb81e30e1bdfe5d6902befdc19b762612500 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 16 Oct 2018 15:12:03 -0700 Subject: [PATCH 115/201] update toc --- .../security/threat-protection/windows-defender-atp/TOC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index c5917b622d..bb86581bf3 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -88,7 +88,7 @@ #### [Managed security service provider support](mssp-support-windows-defender-advanced-threat-protection.md) -### [Microsoft threat protection](threat-protection-integration.md) +### [Microsoft Threat Protection](threat-protection-integration.md) #### [Protect users, data, and devices with conditional access](conditional-access-windows-defender-advanced-threat-protection.md) #### [Microsoft Cloud App Security integration overview](microsoft-cloud-app-security-integration.md) @@ -405,7 +405,7 @@ #### [Configure managed security service provider (MSSP) support](configure-mssp-support-windows-defender-advanced-threat-protection.md) -### Configure Microsoft threat protection integration +### Configure Microsoft Threat Protection integration #### [Configure conditional access](configure-conditional-access-windows-defender-advanced-threat-protection.md) #### [Configure Microsoft Cloud App Security integration](microsoft-cloud-app-security-config.md) From 48343183b79b223c3e185261e3c1e6e3f16a0f6f Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 16 Oct 2018 15:20:30 -0700 Subject: [PATCH 116/201] revert --- windows/security/threat-protection/TOC.md | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 9b9bb99e11..e317707977 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -80,7 +80,74 @@ ###### [Advanced hunting query language best practices](windows-defender-atp/advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) ##### [Custom detections](windows-defender-atp/overview-custom-detections.md) ###### [Create custom detections rules](windows-defender-atp/custom-detection-rules.md) +##### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) +######Actor +####### [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) +####### [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +######Alerts +####### [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) +####### [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +####### [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +######Domain +####### [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) +####### [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) +######File +####### [Block file API](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +####### [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) +####### [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) +####### [Get FileActions collection API](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) +####### [Unblock file API](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) + +######IP +####### [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) +####### [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) +######Machines +####### [Collect investigation package API](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) +####### [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +####### [Get FileMachineAction object API](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +####### [Get FileMachineActions collection API](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +####### [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) +####### [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +####### [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get MachineAction object API](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) +####### [Get MachineActions collection API](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) +####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +####### [Get package SAS URI API](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) +####### [Isolate machine API](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) +####### [Release machine from isolation API](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) +####### [Remove app restriction API](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +####### [Request sample API](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) +####### [Restrict app execution API](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) +####### [Run antivirus scan API](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) +####### [Stop and quarantine file API](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) +######Machines Security States +####### [Get MachineSecurityStates collection](windows-defender-atp/get-machinesecuritystates-collection-windows-defender-advanced-threat-protection.md) +######Machine Groups +####### [Get MachineGroups collection](windows-defender-atp/get-machinegroups-collection-windows-defender-advanced-threat-protection.md) + +######User +####### [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +####### [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) +####### [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) + +######Windows updates (KB) info +####### [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) +######Common Vulnerabilities and Exposures (CVE) to KB map +####### [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) + #### [Management and APIs](windows-defender-atp/management-apis.md) ##### [Understand threat intelligence concepts](windows-defender-atp/threat-indicator-concepts-windows-defender-advanced-threat-protection.md) From bad8b5baeac7db3df465d0015be24ccd1371fe52 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 16 Oct 2018 16:36:47 -0700 Subject: [PATCH 117/201] add in missing files --- .../windows-defender-atp/incidents-queue.md | 35 +++++++++ ...ows-defender-advanced-threat-protection.md | 78 +++++++++++++++++++ ...ows-defender-advanced-threat-protection.md | 61 +++++++++++++++ .../view-incidents-queue.md | 74 ++++++++++++++++++ 4 files changed, 248 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/incidents-queue.md create mode 100644 windows/security/threat-protection/windows-defender-atp/investigate-incidents-windows-defender-advanced-threat-protection.md create mode 100644 windows/security/threat-protection/windows-defender-atp/manage-incidents-windows-defender-advanced-threat-protection.md create mode 100644 windows/security/threat-protection/windows-defender-atp/view-incidents-queue.md diff --git a/windows/security/threat-protection/windows-defender-atp/incidents-queue.md b/windows/security/threat-protection/windows-defender-atp/incidents-queue.md new file mode 100644 index 0000000000..783f74ac70 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/incidents-queue.md @@ -0,0 +1,35 @@ +--- +title: Incidents queue in Windows Defender ATP +description: +keywords: incidents, aggregate, investigations, queue, ttp +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 10/08/2018 +--- + +# Incidents queue in Windows Defender ATP +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + +When a cybersecurity threat is emerging, or a potential attacker is deploying its tactics, techniques/tools, and procedures (TTPs) on the network, Windows Defender ATP will quickly trigger alerts and launch matching automatic investigations. + +Windows Defender ATP applies correlation analytics and aggregates all related alerts and investigations into an incident. Doing so helps narrate a broader story of an attack, thus providing you with the right visuals (upgraded incident graph) and data representations to understand and deal with complex cross-entity threats to your organization's network. + + +## In this section + +Topic | Description +:---|:--- +[View and organize the Incidents queue](view-incidents-queue.md)| See the list of incidents and learn how to apply filters to limit the list and get a more focused view. +[Manage incidents](manage-incidents-windows-defender-advanced-threat-protection.md) | Learn how to manage incidents by assigning it, updating its status, or setting its classification and other actions. +[Investigate incidents](investigate-incidents-windows-defender-advanced-threat-protection.md)| See associated alerts, manage the incident, see alert metadata, and visualizations to help you investigate an incident. + + diff --git a/windows/security/threat-protection/windows-defender-atp/investigate-incidents-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/investigate-incidents-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..596bd63508 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/investigate-incidents-windows-defender-advanced-threat-protection.md @@ -0,0 +1,78 @@ +--- +title: Investigate incidents in Windows Defender ATP +description: See associated alerts, manage the incident, and see alert metadata to help you investigate an incident +keywords: investigate, incident, alerts, metadata, risk, detection source, affected machines, patterns, correlation +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 10/08/2018 +--- + +# Investigate incidents in Windows Defender ATP + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + +Investigate incidents that affect your network, understand what they mean, and collate evidence to resolve them. + +## Analyze incident details +Click an incident to see the **Incident pane**. Select **Open incident page** to see the incident details and related information (alerts, machines, investigations, evidence, graph). + +![Image of incident details](images/atp-incident-details.png) + +### Alerts +You can investigate the alerts and see how they were linked together in an incident. +Alerts are grouped into incidents based on the following reasons: +- Automated investigation - The automated investigation triggered the linked alert while investigating the original alert +- File characteristics - The files associated with the alert have similar characteristics +- Manual association - A user manually linked the alerts +- Proximate time - The alerts were triggered on the same machine within a certain timeframe +- Same file - The files associated with the alert are exactly the same + +![Image of alerts tab in incident page showing the Linked by tool tip](images/atp-incidents-alerts-tooltip.png) + +![Image of alerts tab with incident details page showing the reasons the alerts were linked together in that incident](images/atp-incidents-alerts-reason.png) + +You can also manage an alert and see alert metadata along with other information. For more information, see [Investigate alerts](investigate-alerts-windows-defender-advanced-threat-protection.md). + +### Machines +You can also investigate the machines that are part of, or related to, a given incident. For more information, see [Investigate machines](investigate-machines-windows-defender-advanced-threat-protection.md). + +![Image of machines tab in incident details page](images/atp-incident-machine-tab.png) + +### Investigations +Select **Investigations** to see all the automatic investigations launched by the system in response to the incident alerts. + +![Image of investigations tab in incident details page](images/atp-incident-investigations-tab.png) + +## Going through the evidence +Windows Defender Advanced Threat Protection automatically investigates all the incidents' supported events and suspicious entities in the alerts, providing you with auto-response and information about the important files, processes, services, and more. This helps quickly detect and block potential threats in the incident. +Each of the analyzed entities will be marked as infected, remediated, or suspicious. + +![Image of evidence tab in incident details page](images/atp-incident-evidence-tab.png) + +## Visualizing associated cybersecurity threats +Windows Defender Advanced Threat Protection aggregates the threat information into an incident so you can see the patterns and correlations coming in from various data points. You can view such correlation through the incident graph. + +### Incident graph +The **Graph** tells the story of the cybersecurity attack. For example, it shows you what was the entry point, which indicator of compromise or activity was observed on which machine. etc. + +![Image of the incident graph](images/atp-incident-graph-tab.png) + +You can click the circles on the incident graph to view the details of the malicious files, associated file detections, how many instances has there been worldwide, whether it’s been observed in your organization, if so, how many instances. + +![Image of indcident details](images/atp-incident-graph-details.png) + +## Related topics +- [Incidents queue](incidents-queue.md) +- [View and organize the Incidents queue](view-incidents-queue.md) +- [Manage incidents](manage-incidents-windows-defender-advanced-threat-protection.md) + + diff --git a/windows/security/threat-protection/windows-defender-atp/manage-incidents-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/manage-incidents-windows-defender-advanced-threat-protection.md new file mode 100644 index 0000000000..2df623ec62 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/manage-incidents-windows-defender-advanced-threat-protection.md @@ -0,0 +1,61 @@ +--- +title: Manage Windows Defender ATP incidents +description: Manage incidents by assigning it, updating its status, or setting its classification. +keywords: incidents, manage, assign, status, classification, true alert, false alert +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 010/08/2018 +--- + +# Manage Windows Defender ATP incidents + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + + +Managing incidents is an important part of every cybersecurity operation. You can manage incidents by selecting an incident from the **Incidents queue** or the **Incidents management pane**. You can assign incidents to yourself, change the status, classify, rename, or comment on them to keep track of their progress. + +![Image of the incidents management pane](images/atp-incidents-mgt-pane.png) + +Selecting an incident from the **Incidents queue** brings up the **Incident management pane** where you can open the incident page for details. + +![Image of incident detail page](images/atp-incident-details-page.png) + + +## Assign incidents +If an incident has not been assigned yet, you can select **Assign to me** to assign the incident to yourself. Doing so assumes ownership of not just the incident, but also all the alerts associated with it. + +## Change the incident status +You can categorize incidents (as **Active**, or **Resolved**) by changing their status as your investigation progresses. This helps you organize and manage how your team can respond to incidents. + +For example, your SoC analyst can review the urgent **Active** incidents for the day, and decide to assign them to himself for investigation. + +Alternatively, your SoC analyst might set the incident as **Resolved** if the incident has been remediated. + +## Classify the incident +You can choose not to set a classification, or decide to specify whether an incident is true or false. Doing so helps the team see patterns and learn from them. + +## Rename incident +By default, incidents are assigned with numbers. You can rename the incident if your organization uses a naming convention for easier cybersecurity threat identification. + +![Image of incident renaming](images/atp-rename-incident.png) + +## Add comments and view the history of an incident +You can add comments and view historical events about an incident to see previous changes made to it. + +Whenever a change or comment is made to an alert, it is recorded in the Comments and history section. + +Added comments instantly appear on the pane. + +## Related topics +- [Incidents queue](incidents-queue.md) +- [View and organize the Incidents queue](view-incidents-queue.md) +- [Investigate incidents](investigate-incidents-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/view-incidents-queue.md b/windows/security/threat-protection/windows-defender-atp/view-incidents-queue.md new file mode 100644 index 0000000000..823c7f396e --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/view-incidents-queue.md @@ -0,0 +1,74 @@ +--- +title: View and organize the Incidents queue +description: See the list of incidents and learn how to apply filters to limit the list and get a more focused view. +keywords: view, organize, incidents, aggregate, investigations, queue, ttp +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 10/08/2018 +--- + +# View and organize the Windows Defender Advanced Threat Protection Incidents queue +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + +The **Incidents queue** shows a collection of incidents that were flagged from machines in your network. It helps you sort through incidents to prioritize and create an informed cybersecurity response decision. + +By default, the queue displays incidents seen in the last 30 days, with the most recent incident showing at the top of the list, helping you see the most recent incidents first. + +There are several options you can choose from to customize the Incidents queue view. + +On the top navigation you can: +- Customize columns to add or remove columns +- Modify the number of items to view per page +- Select the items to show per page +- Batch-select the incidents to assign +- Navigate between pages +- Apply filters + +![Image of incidents queue](images/atp-incident-queue.png) + +## Sort and filter the incidents queue +You can apply the following filters to limit the list of incidents and get a more focused view. + +Incident severity | Description +:---|:--- +High
      (Red) | Threats often associated with advanced persistent threats (APT). These incidents indicate a high risk due to the severity of damage they can inflict on machines. +Medium
      (Orange) | Threats rarely observed in the organization, such as anomalous registry change, execution of suspicious files, and observed behaviors typical of attack stages. +Low
      (Yellow) | Threats associated with prevalent malware and hack-tools that do not necessarily indicate an advanced threat targeting the organization. +Informational
      (Grey) | Informational incidents are those that might not be considered harmful to the network but might be good to keep track of. + +### Category +Incidents are categorized based on the description of the stage by which the cybersecurity kill chain is in. This view helps the threat analyst to determine priority, urgency, and corresponding response strategy to deploy based on context. + +### Alerts +Indicates the number of alerts associated with or part of the incidents. + + +### Machines +You can limit to show only the machines at risk which are associated with incidents. + +### Users +You can limit to show only the users of the machines at risk which are associated with incidents. + +### Assigned to +You can choose to show between unassigned incidents or those which are assigned to you. + +### Status +You can choose to limit the list of incidents shown based on their status to see which ones are active or resolved + +### Classification +Use this filter to choose between focusing on incidents flagged as true or false incidents. + +## Related topics +- [Incidents queue](incidents-queue.md) +- [Manage incidents](manage-incidents-windows-defender-advanced-threat-protection.md) +- [Investigate incidents](investigate-incidents-windows-defender-advanced-threat-protection.md) + From 57fc8104581652b70724e795a5d0eff23a953bb3 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 17 Oct 2018 22:29:48 +0000 Subject: [PATCH 118/201] Updated TOC.md --- windows/security/threat-protection/TOC.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 81e46aca83..2c640449e9 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -17,6 +17,10 @@ #### [Endpoint detection and response](windows-defender-atp/overview-endpoint-detection-response.md) ##### [Security operations dashboard](windows-defender-atp/security-operations-dashboard-windows-defender-advanced-threat-protection.md) +##### [Incidents queue](windows-defender-atp/incidents-queue.md) +###### [View and organize the Incidents queue](windows-defender-atp/view-incidents-queue.md) +###### [Manage incidents](windows-defender-atp/manage-incidents-windows-defender-advanced-threat-protection.md) +###### [Investigate incidents](windows-defender-atp/investigate-incidents-windows-defender-advanced-threat-protection.md) From 317f1ad478e8eee20df160f75b9838e75455589a Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 17 Oct 2018 17:32:17 -0700 Subject: [PATCH 119/201] update toc and add deprecation notes --- windows/security/threat-protection/TOC.md | 114 +++++++++--------- .../{exposed-apis-intro.md => apis-intro.md} | 6 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 4 +- .../windows-defender-atp/deprecate.md | 7 ++ ...ows-defender-advanced-threat-protection.md | 7 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 5 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 1 + ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 3 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 7 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 8 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- ...ows-defender-advanced-threat-protection.md | 4 +- .../windows-defender-atp/use-apis.md | 26 ++++ 50 files changed, 193 insertions(+), 140 deletions(-) rename windows/security/threat-protection/windows-defender-atp/{exposed-apis-intro.md => apis-intro.md} (94%) create mode 100644 windows/security/threat-protection/windows-defender-atp/deprecate.md create mode 100644 windows/security/threat-protection/windows-defender-atp/use-apis.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 2c640449e9..5c6903520e 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -152,6 +152,8 @@ #### [Management and APIs](windows-defender-atp/management-apis.md) ##### [Understand threat intelligence concepts](windows-defender-atp/threat-indicator-concepts-windows-defender-advanced-threat-protection.md) +##### [Windows Defender ATP APIs](windows-defender-atp/apis-intro.md) + ##### [Managed security service provider support](windows-defender-atp/mssp-support-windows-defender-advanced-threat-protection.md) @@ -292,7 +294,7 @@ ###### [Troubleshoot onboarding issues](windows-defender-atp/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) ####### [Troubleshoot subscription and portal access issues](windows-defender-atp/troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -##### [Windows Defender ATP APIs](windows-defender-atp/exposed-apis-intro.md) +##### [Windows Defender ATP APIs](windows-defender-atp/use-apis.md) ###### Create your app ####### [Get access on behalf of a user](windows-defender-atp/exposed-apis-create-app-nativeapp.md) ####### [Get access without a user](windows-defender-atp/exposed-apis-create-app-webapp.md) @@ -360,65 +362,65 @@ ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -###### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) -####### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) -########Actor -######### [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) -######### [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -########Alerts -######### [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) -######### [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -######### [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +###### [Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +####### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) +########Actor (deprecated) +######### [Get actor information (deprecated)](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) +######### [Get actor related alerts (deprecated)](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +########Alerts (deprecated) +######### [Get alerts (deprecated)](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) +######### [Get alert information by ID (deprecated)](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######### [Get alert related actor information (deprecated)](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######### [Get alert related domain information (deprecated)](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) ######### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -########Domain -######### [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######### [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) -######### [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) +######### [Get alert related IP information (deprecated)](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######### [Get alert related machine information (deprecated)](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +########Domain (deprecated) +######### [Get domain related alerts (deprecated)](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get domain related machines (deprecated)](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######### [Get domain statistics (deprecated)](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) +######### [Is domain seen in organization (deprecated)](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -########File -######### [Block file](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) -######### [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) -######### [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) -######### [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) -######### [Get FileActions collection](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) -######### [Unblock file](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) +########File(deprecated) +######### [Block file (deprecated)](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +######### [Get file information (deprecated)](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) +######### [Get file related alerts (deprecated)](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get file related machines (deprecated)](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) +######### [Get file statistics (deprecated)](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) +######### [Get FileActions collection (deprecated)](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) +######### [Unblock file (deprecated)](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) -########IP -######### [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) -######### [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) -######### [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) -########Machines -######### [Collect investigation package](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) -######### [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -######### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -######### [Get FileMachineAction object](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -######### [Get FileMachineActions collection](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -######### [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) -######### [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -######### [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get MachineAction object](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) -######### [Get MachineActions collection](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) -######### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -######### [Get package SAS URI](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) -######### [Isolate machine](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) -######### [Release machine from isolation](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) -######### [Remove app restriction](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -######### [Request sample](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) -######### [Restrict app execution](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) -######### [Run antivirus scan](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) -######### [Stop and quarantine file](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) +########IP (deprecated) +######### [Get IP related alerts (deprecated)](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get IP related machines (deprecated)](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) +######### [Get IP statistics (deprecated)](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) +######### [Is IP seen in organization (deprecated)](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) +########Machines (deprecated) +######### [Collect investigation package (deprecated)](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) +######### [Find machine information by IP (deprecated)](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +######### [Get machines (deprecated)](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######### [Get FileMachineAction object (deprecated)](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +######### [Get FileMachineActions collection (deprecated)](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +######### [Get machine by ID (deprecated)](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) +######### [Get machine log on users (deprecated)](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +######### [Get machine related alerts (deprecated)](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get MachineAction object (deprecated)](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) +######### [Get MachineActions collection (deprecated)](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) +######### [Get machines (deprecated)](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######### [Get package SAS URI (deprecated)](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) +######### [Isolate machine (deprecated)](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) +######### [Release machine from isolation (deprecated)](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) +######### [Remove app restriction (deprecated)](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +######### [Request sample (deprecated)](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) +######### [Restrict app execution (deprecated)](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) +######### [Run antivirus scan (deprecated)](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) +######### [Stop and quarantine file (deprecated)](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) -########User -######### [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -######### [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) -######### [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) +########User (deprecated) +######### [Get alert related user information (deprecated)](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +######### [Get user information (deprecated)](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) +######### [Get user related alerts (deprecated)](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) +######### [Get user related machines (deprecated)](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) ######Windows updates (KB) info diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md b/windows/security/threat-protection/windows-defender-atp/apis-intro.md similarity index 94% rename from windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md rename to windows/security/threat-protection/windows-defender-atp/apis-intro.md index 0108565f75..304eed3564 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-intro.md +++ b/windows/security/threat-protection/windows-defender-atp/apis-intro.md @@ -1,6 +1,6 @@ --- -title: Use Windows Defender Advanced Threat Protection APIs -description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. +title: Windows Defender Advanced Threat Protection API overview +description: Learn how you can use APIs to automate workflows and innovate based on Windows Defender ATP capabilities keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file, advanced hunting, query search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 09/03/2018 --- -# Use Windows Defender ATP APIs +# Windows Defender ATP API overview **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) diff --git a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md index 933ac113b2..a891b4a9c3 100644 --- a/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Block file API +# Block file API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecatedinformation](deprecate.md)] Prevent a file from being executed in the organization using Windows Defender Antivirus. diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md index 1d19deb5cb..dfbfeaec6a 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Collect investigation package API +# Collect investigation package API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Collect investigation package from a machine. diff --git a/windows/security/threat-protection/windows-defender-atp/deprecate.md b/windows/security/threat-protection/windows-defender-atp/deprecate.md new file mode 100644 index 0000000000..fe73a4d416 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/deprecate.md @@ -0,0 +1,7 @@ +--- +ms.date: 10/17/2018 +--- +>[!WARNING] + + +> This page documents a feature that will soon be deprecated. For the updated and supported version, see [Use the Windows Defender ATP APIs](use-apis.md). \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md index 860ff1eee2..0f1e5cd627 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md @@ -13,16 +13,13 @@ ms.localizationpriority: medium ms.date: 10/23/2017 --- -# Use the Windows Defender ATP exposed APIs +# Use the Windows Defender ATP exposed APIs (deprecated) **Applies to:** - - - Windows Defender Advanced Threat Protection (Windows Defender ATP) - ->Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-exposedapis-abovefoldlink) +[!include[Deprecated information](deprecate.md)] Windows Defender ATP exposes much of the available data and actions using a set of programmatic APIs that are part of the Microsoft Intelligence Security Graph. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). diff --git a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md index 94cb8338ce..8598b0c94c 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 07/25/2018 --- -# Find machine information by internal IP API +# Find machine information by internal IP API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Find a machine entity around a specific timestamp by internal IP. diff --git a/windows/security/threat-protection/windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md index 11933fc1f8..09b0a252c5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md @@ -14,12 +14,13 @@ ms.date: 12/08/2017 --- -# Get actor information API +# Get actor information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecatedinformation](deprecate.md)] Retrieves an actor information report. diff --git a/windows/security/threat-protection/windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md index 7d607f80b0..2970e635c3 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get actor related alerts API +# Get actor related alerts API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves all alerts related to a given actor. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md index 7bd281c1c2..57ab1ced2c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert information by ID API +# Get alert information by ID API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves an alert by its ID. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md index feb7c72977..6947d62190 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert related actor information API +# Get alert related actor information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecatedinformation](deprecate.md)] Retrieves the actor information related to the specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md index 1dc2400622..9877e14edf 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md @@ -13,13 +13,16 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert related domain information API +# Get alert related domain information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecatedinformation](deprecate.md)] + + Retrieves all domains related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md index 692038dece..e6e39a20ad 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert related files information API +# Get alert related files information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves all files related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md index 13d6fa451e..55b5fbfb01 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert related IP information API +# Get alert related IP information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves all IPs related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md index c65563b583..cbf74f8d93 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert related machine information API +# Get alert related machine information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves all machines related to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md index 0ca328f129..687a2e5b8d 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alert related user information API +# Get alert related user information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves the user associated to a specific alert. diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md index 91370e6ab4..45aab8f699 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md @@ -19,6 +19,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves top recent alerts. diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md index edf69b8cc2..6018ccf4c1 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md @@ -13,13 +13,15 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get domain related alerts API +# Get domain related alerts API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] + Retrieves a collection of alerts related to a given domain address. diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md index 42274f276d..11b50e0847 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get domain related machines API +# Get domain related machines API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves a collection of machines related to a given domain address. diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md index a8d16cda6c..8186d2a9c7 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get domain statistics API +# Get domain statistics API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecatedinformation](deprecate.md)] Retrieves the prevalence for the given domain. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md index 3a8aecdcdc..c3173ccd69 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get file information API +# Get file information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a file by identifier Sha1, Sha256, or MD5. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md index 3bc108f4c5..1a1d1f8e98 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get file related alerts API +# Get file related alerts API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of alerts related to a given file hash. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md index 46a55266b9..a88a44c8fc 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get file related machines API +# Get file related machines API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of machines related to a given file hash. diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md index 379a272b7f..4c7b62fc97 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get file statistics API +# Get file statistics API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Retrieves the prevalence for the given file. diff --git a/windows/security/threat-protection/windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md index 58ec0179eb..7bfa6eedd6 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get FileActions collection API +# Get FileActions collection API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Gets collection of actions done on files. Get FileActions collection API supports OData V4 queries. diff --git a/windows/security/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md index e30ca834b1..cf42bd089d 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get FileMachineAction object API +# Get FileMachineAction object API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Gets file and machine actions. diff --git a/windows/security/threat-protection/windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md index 4f981ccd54..05445a5892 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get FileMachineActions collection API +# Get FileMachineActions collection API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Get collection of file and machine actions. Get FileMachineActions collection API supports OData V4 queries. diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md index b1ad30ecd5..7c415a2e28 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get IP related alerts API +# Get IP related alerts API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of alerts related to a given IP address. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md index cdb7691d99..bf925ff4c9 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get machine by ID API +# Get machine by ID API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a machine entity by ID. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md index f73f0600fd..b292daf44b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get machine log on users API +# Get machine log on users API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of logged on users. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md index 2cbf47c5da..b808e8b8fa 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get machine related alerts API +# Get machine related alerts API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of alerts related to a given machine ID. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md index 21214216c0..7372742b21 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get MachineAction object API +# Get MachineAction object API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Get actions done on a machine. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md index 4f8250057a..4fcf7888d5 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get MachineActions collection API +# Get MachineActions collection API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Gets collection of actions done on machines. Get MachineAction collection API supports OData V4 queries. diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md index 15f5915642..f68499ed5e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md @@ -13,12 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get machines API +# Get machines API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecated information](deprecate.md)] Retrieves a collection of recently seen machines. diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md index b000396208..d8e26ffdac 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get package SAS URI API +# Get package SAS URI API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Get a URI that allows downloading of an investigation package. diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md index 44a41412fe..94075eb308 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get user information API +# Get user information API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieve a User entity by key (user name or domain\user). diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md index 12c741d3fe..8b7e5eda35 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get user related alerts API +# Get user related alerts API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of alerts related to a given user ID. diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md index 80a2b92234..19a799b453 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get user related machines API +# Get user related machines API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Retrieves a collection of machines related to a given user ID. diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md index 3bda2052aa..916e302306 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md @@ -13,9 +13,14 @@ ms.localizationpriority: medium ms.date: 04/24/2018 --- -# Is domain seen in org +# Is domain seen in org (deprecated) Answers whether a domain was seen in the organization. +[!include[Deprecatedinformation](deprecate.md)] + + + + ## Permissions User needs read permissions. diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md index 0e5cdd372b..95bf3682bd 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Is IP seen in org +# Is IP seen in org (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Answers whether an IP was seen in the organization. diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md index 8a1af5560e..3a37f4c80f 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Isolate machine API +# Isolate machine API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Isolates a machine from accessing external network. diff --git a/windows/security/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md index 5e12dabe3d..093ff11454 100644 --- a/windows/security/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Request sample API +# Request sample API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Request sample of a file from a specific machine. File will be collected from the machine and uploaded to a secure storage. diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md index 985a82d123..c824b807e9 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md @@ -13,12 +13,12 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Restrict app execution API +# Restrict app execution API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Restrict execution of set of predefined applications. diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md index 9132144898..6b199045d5 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md @@ -13,12 +13,12 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Run antivirus scan API +# Run antivirus scan API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Initiate Windows Defender Antivirus scan on the machine. diff --git a/windows/security/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md index 2e4f1e0fd1..57a1075f9c 100644 --- a/windows/security/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md @@ -13,12 +13,12 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Stop and quarantine file API +# Stop and quarantine file API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecated information](deprecate.md)] Stop execution of a file on a machine and ensure it’s not executed again on that machine. diff --git a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md index bc16fe2624..dfe1d46e2d 100644 --- a/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md @@ -13,15 +13,14 @@ ms.localizationpriority: medium ms.date: 09/03/2018 --- -# Supported Windows Defender ATP query APIs +# Supported Windows Defender ATP query APIs (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) +[!include[Deprecatedinformation](deprecate.md)] ->Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-supportedapis-abovefoldlink) - Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. ## In this section @@ -37,5 +36,4 @@ User | Run API calls such as get alert related user information, user informatio KbInfo | Run API call that gets list of Windows KB's information CveKbMap | Run API call that gets mapping of CVE's to corresponding KB's MachineSecurityStates | Run API call that gets list of machines with their security properties and versions -MachineGroups | Run API call that gets list of machine group definitions - +MachineGroups | Run API call that gets list of machine group definitions \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md index 7ea3ec1258..affe46ec82 100644 --- a/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Unblock file API +# Unblock file API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Allow a file to be executed in the organization, using Windows Defender Antivirus. diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md index c0ef9d02f6..e7d66a1166 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Release machine from isolation API +# Release machine from isolation API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Undo isolation of a machine. diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md index 4c8788c337..ad5ef448fd 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md @@ -13,13 +13,13 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Remove app restriction API +# Remove app restriction API (deprecated) **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) - +[!include[Deprecatedinformation](deprecate.md)] Unrestrict execution of set of predefined applications. diff --git a/windows/security/threat-protection/windows-defender-atp/use-apis.md b/windows/security/threat-protection/windows-defender-atp/use-apis.md new file mode 100644 index 0000000000..29347f933e --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/use-apis.md @@ -0,0 +1,26 @@ +--- +title: Use the Windows Defender Advanced Threat Protection APIs +description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. +keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 10/23/2017 +--- + +# Use the Windows Defender ATP APIs + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +## In this section +Topic | Description +:---|:--- +Create your app | Learn how to create an application to get programmatical access to Windows Defender ATP on behalf of a user or without a user. +Supported Windows Defender ATP APIs | Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. +How to use APIs - Samples | Learn how to use Advanced hunting APIs and multiple APIs such as PowerShell. From 0a834c1bc20657781726043ab63f4ea3eecbb15b Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 17 Oct 2018 17:39:59 -0700 Subject: [PATCH 120/201] update atp toc --- .../windows-defender-atp/TOC.md | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index bb86581bf3..77d493783a 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -294,63 +294,63 @@ ##### [Use the Windows Defender ATP exposed APIs (deprecated)](exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs (deprecated)](supported-apis-windows-defender-advanced-threat-protection.md) -#######Actor -######## [Get actor information](get-actor-information-windows-defender-advanced-threat-protection.md) -######## [Get actor related alerts](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -#######Alerts -######## [Get alerts](get-alerts-windows-defender-advanced-threat-protection.md) -######## [Get alert information by ID](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -######## [Get alert related actor information](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related domain information](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related IP information](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related machine information](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -#######Domain -######## [Get domain related alerts](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get domain related machines](get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get domain statistics](get-domain-statistics-windows-defender-advanced-threat-protection.md) -######## [Is domain seen in organization](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) +#######Actor (deprecated) +######## [Get actor information (deprecated)](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) +######## [Get actor related alerts (deprecated)](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +#######Alerts (deprecated) +######## [Get alerts (deprecated)](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) +######## [Get alert information by ID (deprecated)](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######## [Get alert related actor information (deprecated)](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related domain information (deprecated)](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related IP information (deprecated)](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related machine information (deprecated)](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +#######Domain (deprecated) +######## [Get domain related alerts (deprecated)](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get domain related machines (deprecated)](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get domain statistics (deprecated)](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) +######## [Is domain seen in organization (deprecated)](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -#######File -######## [Block file](block-file-windows-defender-advanced-threat-protection.md) -######## [Get file information](get-file-information-windows-defender-advanced-threat-protection.md) -######## [Get file related alerts](get-file-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get file related machines](get-file-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get file statistics](get-file-statistics-windows-defender-advanced-threat-protection.md) -######## [Get FileActions collection](get-fileactions-collection-windows-defender-advanced-threat-protection.md) -######## [Unblock file](unblock-file-windows-defender-advanced-threat-protection.md) +#######File(deprecated) +######## [Block file (deprecated)](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +######## [Get file information (deprecated)](get-file-information-windows-defender-advanced-threat-protection.md) +######## [Get file related alerts (deprecated)](get-file-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get file related machines (deprecated)](get-file-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get file statistics (deprecated)](get-file-statistics-windows-defender-advanced-threat-protection.md) +######## [Get FileActions collection (deprecated)](get-fileactions-collection-windows-defender-advanced-threat-protection.md) +######## [Unblock file (deprecated)](unblock-file-windows-defender-advanced-threat-protection.md) + +#######IP (deprecated) +######## [Get IP related alerts (deprecated)](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get IP related machines (deprecated)](get-ip-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get IP statistics (deprecated)](get-ip-statistics-windows-defender-advanced-threat-protection.md) +######## [Is IP seen in organization (deprecated)](is-ip-seen-org-windows-defender-advanced-threat-protection.md) +#######Machines (deprecated) +######## [Collect investigation package (deprecated)](collect-investigation-package-windows-defender-advanced-threat-protection.md) +######## [Find machine information by IP (deprecated)](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +######## [Get machines (deprecated)](get-machines-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineAction object (deprecated)](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineActions collection (deprecated)](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machine by ID (deprecated)](get-machine-by-id-windows-defender-advanced-threat-protection.md) +######## [Get machine log on users (deprecated)](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +######## [Get machine related alerts (deprecated)](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get MachineAction object (deprecated)](get-machineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get MachineActions collection (deprecated)](get-machineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machines (deprecated)](get-machines-windows-defender-advanced-threat-protection.md) +######## [Get package SAS URI (deprecated)](get-package-sas-uri-windows-defender-advanced-threat-protection.md) +######## [Isolate machine (deprecated)](isolate-machine-windows-defender-advanced-threat-protection.md) +######## [Release machine from isolation (deprecated)](unisolate-machine-windows-defender-advanced-threat-protection.md) +######## [Remove app restriction (deprecated)](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Request sample (deprecated)](request-sample-windows-defender-advanced-threat-protection.md) +######## [Restrict app execution (deprecated)](restrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Run antivirus scan (deprecated)](run-av-scan-windows-defender-advanced-threat-protection.md) +######## [Stop and quarantine file (deprecated)](stop-quarantine-file-windows-defender-advanced-threat-protection.md) -#######IP -######## [Get IP related alerts](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get IP related machines](get-ip-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get IP statistics](get-ip-statistics-windows-defender-advanced-threat-protection.md) -######## [Is IP seen in organization](is-ip-seen-org-windows-defender-advanced-threat-protection.md) -#######Machines -######## [Collect investigation package](collect-investigation-package-windows-defender-advanced-threat-protection.md) -######## [Find machine information by IP](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -######## [Get machines](get-machines-windows-defender-advanced-threat-protection.md) -######## [Get FileMachineAction object](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -######## [Get FileMachineActions collection](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -######## [Get machine by ID](get-machine-by-id-windows-defender-advanced-threat-protection.md) -######## [Get machine log on users](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -######## [Get machine related alerts](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get MachineAction object](get-machineaction-object-windows-defender-advanced-threat-protection.md) -######## [Get MachineActions collection](get-machineactions-collection-windows-defender-advanced-threat-protection.md) -######## [Get machines](get-machines-windows-defender-advanced-threat-protection.md) -######## [Get package SAS URI](get-package-sas-uri-windows-defender-advanced-threat-protection.md) -######## [Isolate machine](isolate-machine-windows-defender-advanced-threat-protection.md) -######## [Release machine from isolation](unisolate-machine-windows-defender-advanced-threat-protection.md) -######## [Remove app restriction](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -######## [Request sample](request-sample-windows-defender-advanced-threat-protection.md) -######## [Restrict app execution](restrict-code-execution-windows-defender-advanced-threat-protection.md) -######## [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection.md) -######## [Stop and quarantine file](stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -#######User -######## [Get alert related user information](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -######## [Get user information](get-user-information-windows-defender-advanced-threat-protection.md) -######## [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection.md) +#######User (deprecated) +######## [Get alert related user information (deprecated)](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +######## [Get user information (deprecated)](get-user-information-windows-defender-advanced-threat-protection.md) +######## [Get user related alerts (deprecated)](get-user-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get user related machines (deprecated)](get-user-related-machines-windows-defender-advanced-threat-protection.md) From eba15dc3a310f4bed66038366aba9b0691139341 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 19 Oct 2018 14:48:30 -0700 Subject: [PATCH 121/201] fix links --- windows/security/threat-protection/TOC.md | 2 +- .../windows-defender-atp/TOC.md | 30 +++++++++---------- ...defender-advanced-threat-protection-new.md | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 5c6903520e..5ee476d097 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -190,7 +190,7 @@ ### [Configure and manage capabilities](windows-defender-atp/onboard.md) #### [Configure attack surface reduction](windows-defender-atp/configure-attack-surface-reduction.md) ##### [Hardware-based isolation](windows-defender-application-guard/install-wd-app-guard.md) -###### [Confguration settings](windows-defender-application-guard/configure-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-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) ###### [Memory integrity](windows-defender-exploit-guard/memory-integrity.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 77d493783a..778e78596d 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -223,7 +223,7 @@ ###### [Troubleshoot subscription and portal access issues](troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -#### [Windows Defender ATP APIs](exposed-apis-intro.md) +#### [Windows Defender ATP APIs](apis-intro.md) ##### Create your app ###### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) ###### [Get access without a user](exposed-apis-create-app-webapp.md) @@ -295,24 +295,24 @@ ##### [Use the Windows Defender ATP exposed APIs (deprecated)](exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs (deprecated)](supported-apis-windows-defender-advanced-threat-protection.md) #######Actor (deprecated) -######## [Get actor information (deprecated)](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) -######## [Get actor related alerts (deprecated)](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get actor information (deprecated)](get-actor-information-windows-defender-advanced-threat-protection.md) +######## [Get actor related alerts (deprecated)](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) #######Alerts (deprecated) -######## [Get alerts (deprecated)](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) -######## [Get alert information by ID (deprecated)](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -######## [Get alert related actor information (deprecated)](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related domain information (deprecated)](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related IP information (deprecated)](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related machine information (deprecated)](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +######## [Get alerts (deprecated)](get-alerts-windows-defender-advanced-threat-protection.md) +######## [Get alert information by ID (deprecated)](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######## [Get alert related actor information (deprecated)](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related domain information (deprecated)](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related IP information (deprecated)](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related machine information (deprecated)](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) #######Domain (deprecated) -######## [Get domain related alerts (deprecated)](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get domain related machines (deprecated)](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get domain statistics (deprecated)](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) -######## [Is domain seen in organization (deprecated)](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) +######## [Get domain related alerts (deprecated)](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get domain related machines (deprecated)](get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get domain statistics (deprecated)](get-domain-statistics-windows-defender-advanced-threat-protection.md) +######## [Is domain seen in organization (deprecated)](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) #######File(deprecated) -######## [Block file (deprecated)](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +######## [Block file (deprecated)](block-file-windows-defender-advanced-threat-protection.md) ######## [Get file information (deprecated)](get-file-information-windows-defender-advanced-threat-protection.md) ######## [Get file related alerts (deprecated)](get-file-related-alerts-windows-defender-advanced-threat-protection.md) ######## [Get file related machines (deprecated)](get-file-related-machines-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md index db36c8aa7e..e28bac587b 100644 --- a/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 - Adds or remove tag to a specific machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- From 713af4035600d33ed2b7796e347c5c0d0eef9fa7 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 19 Oct 2018 15:53:13 -0700 Subject: [PATCH 122/201] fix links add intro to toc --- windows/security/threat-protection/TOC.md | 3 --- .../security/threat-protection/windows-defender-atp/TOC.md | 2 +- ...package-windows-defender-advanced-threat-protection-new.md | 2 +- ...ference-windows-defender-advanced-threat-protection-new.md | 2 +- .../windows-defender-atp/exposed-apis-create-app-nativeapp.md | 4 ++-- .../windows-defender-atp/exposed-apis-create-app-webapp.md | 4 ++-- .../exposed-apis-full-sample-powershell.md | 4 ++-- .../windows-defender-atp/exposed-apis-list.md | 2 +- ...o-by-ip-windows-defender-advanced-threat-protection-new.md | 2 +- ...s-by-ip-windows-defender-advanced-threat-protection-new.md | 2 +- ...o-by-id-windows-defender-advanced-threat-protection-new.md | 2 +- ...in-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...es-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...ip-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...ne-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...er-info-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...achines-windows-defender-advanced-threat-protection-new.md | 2 +- ...tistics-windows-defender-advanced-threat-protection-new.md | 2 +- ...rmation-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...achines-windows-defender-advanced-threat-protection-new.md | 2 +- ...tistics-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...achines-windows-defender-advanced-threat-protection-new.md | 2 +- ...tistics-windows-defender-advanced-threat-protection-new.md | 2 +- ...e-by-id-windows-defender-advanced-threat-protection-new.md | 2 +- ...n-users-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...-object-windows-defender-advanced-threat-protection-new.md | 2 +- ...lection-windows-defender-advanced-threat-protection-new.md | 2 +- ...sas-uri-windows-defender-advanced-threat-protection-new.md | 2 +- ...rmation-windows-defender-advanced-threat-protection-new.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 2 +- ...achines-windows-defender-advanced-threat-protection-new.md | 2 +- ...-in-org-windows-defender-advanced-threat-protection-new.md | 2 +- ...een-org-windows-defender-advanced-threat-protection-new.md | 2 +- ...machine-windows-defender-advanced-threat-protection-new.md | 2 +- ...ine-api-windows-defender-advanced-threat-protection-new.md | 2 +- ...ecution-windows-defender-advanced-threat-protection-new.md | 2 +- .../windows-defender-atp/run-advanced-query-api.md | 4 ++-- .../windows-defender-atp/run-advanced-query-sample-ms-flow.md | 4 ++-- .../run-advanced-query-sample-power-bi-app-token.md | 2 +- .../run-advanced-query-sample-power-bi-user-token.md | 2 +- .../run-advanced-query-sample-powershell.md | 4 ++-- .../windows-defender-atp/run-advanced-query-sample-python.md | 4 ++-- ...av-scan-windows-defender-advanced-threat-protection-new.md | 2 +- ...machine-windows-defender-advanced-threat-protection-new.md | 2 +- ...ecution-windows-defender-advanced-threat-protection-new.md | 2 +- ...e-alert-windows-defender-advanced-threat-protection-new.md | 2 +- 51 files changed, 57 insertions(+), 60 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 5ee476d097..8f9ed77c75 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -151,10 +151,7 @@ #### [Management and APIs](windows-defender-atp/management-apis.md) ##### [Understand threat intelligence concepts](windows-defender-atp/threat-indicator-concepts-windows-defender-advanced-threat-protection.md) - ##### [Windows Defender ATP APIs](windows-defender-atp/apis-intro.md) - - ##### [Managed security service provider support](windows-defender-atp/mssp-support-windows-defender-advanced-threat-protection.md) #### [Microsoft threat protection](windows-defender-atp/threat-protection-integration.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 778e78596d..6cd151e73c 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -84,7 +84,7 @@ ### [Management and APIs](management-apis.md) #### [Understand threat intelligence concepts](threat-indicator-concepts-windows-defender-advanced-threat-protection.md) - +#### [Windows Defender ATP APIs](apis-intro.md) #### [Managed security service provider support](mssp-support-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md index 7783e25c09..bcd6861b37 100644 --- a/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Collect investigation package from a machine. [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 46747a3c0d..16b7b0524d 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Enables using event data, as obtained from the [Advanced Hunting](run-advanced-query-api.md) for creating a new alert entity. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md index 28a6892fb8..679dc47866 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-nativeapp.md @@ -29,7 +29,7 @@ This page describe how to create an application to get programmatical access to If you need programmatical access Windows Defender ATP without a user, refer to [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md). -If you are not sure which access you need, read the [Introduction page](exposed-apis-intro.md). +If you are not sure which access you need, read the [Introduction page](apis-intro.md). Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will enable you to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). @@ -170,6 +170,6 @@ Sanity check to make sure you got a correct token: ``` ## Related topics -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Supported Windows Defender ATP APIs](exposed-apis-list.md) - [Access Windows Defender ATP without a user](exposed-apis-create-app-webapp.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md index 0ae84e76b3..ca0153916b 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-create-app-webapp.md @@ -27,7 +27,7 @@ This page describes how to create an application to get programmatical access to If you need programmatical access Windows Defender ATP on behalf of a user, see [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) -If you are not sure which access you need, see [Use Windows Defender ATP APIs](exposed-apis-intro.md). +If you are not sure which access you need, see [Use Windows Defender ATP APIs](apis-intro.md). Windows Defender ATP exposes much of its data and actions through a set of programmatic APIs. Those APIs will help you automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). @@ -215,6 +215,6 @@ Sanity check to make sure you got a correct token: ``` ## Related topics -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Supported Windows Defender ATP APIs](exposed-apis-list.md) - [Access Windows Defender ATP on behalf of a user](exposed-apis-create-app-nativeapp.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md index ed69b07caf..0ff6172338 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md @@ -27,7 +27,7 @@ In this section we share PowerShell samples to - Use token to retrieve the latest alerts in Windows Defender ATP - For each alert, if the alert has medium or high priority and is still in progress, check how many times the machine has connected to suspicious URL. ->**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). +>**Prerequisite**: You first need to [create an app](apis-intro.md). ## Preparation Instructions @@ -112,7 +112,7 @@ $response ## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using Python](run-advanced-query-sample-python.md) - [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md index 4afdfd5ac2..d8edf97d46 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md @@ -36,4 +36,4 @@ Machines | Run API calls such as find machine information by IP, get machines, g User | Run API calls such as get alert related user information, user information, user related alerts, and user related machines. ## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) diff --git a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md index 443b86b728..5f1df97182 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection-new.md @@ -28,7 +28,7 @@ Find a machine by internal IP. >The timestamp must be within the last 30 days. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md index 61c158ed1b..495830551e 100644 --- a/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 - The given timestamp must be in the past 30 days. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md index 2ad984ccf6..d2187f343b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves an alert by its ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md index 6ed27e2648..0df45988d6 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves all domains related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md index 951363752e..0761a7b22c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves all files related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md index 45eca676f9..0aa81fbd10 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves all IPs related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md index 2aaf342cae..5eec325056 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves machine that is related to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md index 8e6501fcf1..143f06474b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves the user associated to a specific alert. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md index 4d4e5e0cb0..c68a75f6be 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ Retrieves top recent alerts. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md index fc469816ef..ee1404dd5e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -27,7 +27,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given domain address. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md index f1fd36c675..4d69da1a53 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines that have communicated to or from a given domain address. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md index 7bfd097dd2..d3dd0b2f72 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves the prevalence for the given domain. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md index 63aabdd191..2080cabc06 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieves a file by identifier Sha1, Sha256, or MD5. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md index 284cb68225..0ef637c98e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given file hash. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md index ca74749c35..94de515e8e 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines related to a given file hash. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md index a53c06b80a..31913eb556 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection-new.md @@ -27,7 +27,7 @@ ms.date: 12/08/2017 Retrieves the prevalence for the given file. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md index 92ca8d53d4..27c06e86a8 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given IP address. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md index f68e1e12b1..20449184f7 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines that communicated with or from a particular IP. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md index cdeaa1e441..763444713a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Retrieves the prevalence for the given IP. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md index 335b6efcb7..4211bbbb1f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a machine entity by ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md index 5dad09904f..31988d7d7b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of logged on users. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md index 2fd9e07d99..fc89631378 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given machine ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md index 17e20f0b73..96a4953581 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Get action performed on a machine. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index d057cb5c85..77fcc41c80 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -25,7 +25,7 @@ ms.date: 12/08/2017 Get MachineAction collection API supports [OData V4 queries](https://www.odata.org/documentation/). ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md index bf4cb3c934..6b90d0ff62 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Get a URI that allows downloading of an [investigation package](collect-investigation-package-windows-defender-advanced-threat-protection-new.md). ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md index b0c31a0088..ea4a25eca2 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Retrieve a User entity by key (user name or domain\user). ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index bca064ca3f..2ff5212e4b 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves a collection of alerts related to a given user ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 2198203628..53e0047b39 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines related to a given user ID. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md index 22bf9eb5a9..066dac83dd 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 04/24/2018 Answers whether a domain was seen in the organization. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md index b976177106..fc6b531fc1 100644 --- a/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ ms.date: 12/08/2017 Answers whether an IP was seen in the organization. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md index 33e7130f36..696d961f94 100644 --- a/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Isolates a machine from accessing external network. [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md index 13b8574222..0200975d55 100644 --- a/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/offboard-machine-api-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Offboard machine from WDATP. [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md index 90321fb7ff..d57876fdc0 100644 --- a/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Restrict execution of all applications on the machine except a predefined set (s [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 775c140d57..cb0a5624af 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -32,7 +32,7 @@ This API is a beta version only and is currently restricted to the following act 3. The number of executions is limited​ (up to 15 minutes every hour and 4 hours a day) ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- @@ -145,7 +145,7 @@ Content-Type: application/json​ ## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting from Portal](advanced-hunting-windows-defender-advanced-threat-protection.md) - [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) - [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md index e0ae5f9b2d..dd62b3ea19 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md @@ -22,7 +22,7 @@ ms.date: 09/24/2018 Schedule advanced query. ## Before you begin -You first need to [create an app](exposed-apis-intro.md). +You first need to [create an app](apis-intro.md). ## Use case @@ -83,6 +83,6 @@ You can find below the full definition ![Image of E2E flow](images/ms-flow-e2e.png) ## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) \ No newline at end of file diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md index c20268f3b5..04c224b498 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md @@ -128,7 +128,7 @@ If you want to use **user token** instead please refer to [this](run-advanced-qu ## Related topic - [Create custom Power BI reports with user authentication](run-advanced-query-sample-power-bi-user-token.md) -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) - [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md index 4c57316ddc..333683cda5 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -112,7 +112,7 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). ## Related topic - [Create custom Power BI reports with app authentication](run-advanced-query-sample-power-bi-app-token.md) -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) - [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md index ca0f03811b..ae59b2fe28 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md @@ -25,7 +25,7 @@ Run advanced queries using PowerShell, see [Advanced Hunting API](run-advanced-q In this section we share PowerShell samples to retrieve a token and use it to run a query. ## Before you begin -You first need to [create an app](exposed-apis-intro.md). +You first need to [create an app](apis-intro.md). ## Preparation instructions @@ -113,7 +113,7 @@ $results | ConvertTo-Json | Set-Content file1.json ## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using Python](run-advanced-query-sample-python.md) - [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md index afd8a8d4d4..fd546b266a 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md @@ -23,7 +23,7 @@ Run advanced queries using Python, see [Advanced Hunting API](run-advanced-query In this section we share Python samples to retrieve a token and use it to run a query. ->**Prerequisite**: You first need to [create an app](exposed-apis-intro.md). +>**Prerequisite**: You first need to [create an app](apis-intro.md). ## Get token @@ -140,7 +140,7 @@ outputFile.close() ## Related topic -- [Windows Defender ATP APIs](exposed-apis-intro.md) +- [Windows Defender ATP APIs](apis-intro.md) - [Advanced Hunting API](run-advanced-query-api.md) - [Advanced Hunting using PowerShell](run-advanced-query-sample-powershell.md) - [Schedule Advanced Hunting](run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md index f8a0432c1d..c9ae44eb2b 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Initiate Windows Defender Antivirus scan on a machine. [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md index 237350b465..0b654aa63c 100644 --- a/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Undo isolation of a machine. [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md index fd0479fd8a..8ca7430854 100644 --- a/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection-new.md @@ -24,7 +24,7 @@ Enable execution of any application on the machine. [!include[Machine actions note](machineactionsnote.md)] ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 7d7bc5537c..37d8b92160 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Update the properties of an alert entity. ## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](exposed-apis-intro.md) +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- From 2cb6f106c639d3f6a6eb93fcc3c0eaf2043698e1 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 19 Oct 2018 16:36:16 -0700 Subject: [PATCH 123/201] update toc --- windows/security/threat-protection/TOC.md | 126 +++++++++--------- .../windows-defender-atp/TOC.md | 118 ++++++++-------- .../windows-defender-atp/use-apis.md | 2 +- 3 files changed, 123 insertions(+), 123 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 8f9ed77c75..8cb9e6a5b1 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -291,7 +291,7 @@ ###### [Troubleshoot onboarding issues](windows-defender-atp/troubleshoot-onboarding-windows-defender-advanced-threat-protection.md) ####### [Troubleshoot subscription and portal access issues](windows-defender-atp/troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -##### [Windows Defender ATP APIs](windows-defender-atp/use-apis.md) +##### [Use the Windows Defender ATP exposed APIs](windows-defender-atp/use-apis.md) ###### Create your app ####### [Get access on behalf of a user](windows-defender-atp/exposed-apis-create-app-nativeapp.md) ####### [Get access without a user](windows-defender-atp/exposed-apis-create-app-webapp.md) @@ -359,71 +359,71 @@ ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -###### [Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) -####### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) -########Actor (deprecated) -######### [Get actor information (deprecated)](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) -######### [Get actor related alerts (deprecated)](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -########Alerts (deprecated) -######### [Get alerts (deprecated)](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) -######### [Get alert information by ID (deprecated)](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -######### [Get alert related actor information (deprecated)](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related domain information (deprecated)](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related IP information (deprecated)](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -######### [Get alert related machine information (deprecated)](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -########Domain (deprecated) -######### [Get domain related alerts (deprecated)](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get domain related machines (deprecated)](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######### [Get domain statistics (deprecated)](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) -######### [Is domain seen in organization (deprecated)](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) - -########File(deprecated) -######### [Block file (deprecated)](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) -######### [Get file information (deprecated)](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) -######### [Get file related alerts (deprecated)](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get file related machines (deprecated)](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) -######### [Get file statistics (deprecated)](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) -######### [Get FileActions collection (deprecated)](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) -######### [Unblock file (deprecated)](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) +##### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) +###### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) +#######Actor (deprecated) +######## [Get actor information (deprecated)](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) +######## [Get actor related alerts (deprecated)](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +#######Alerts (deprecated) +######## [Get alerts (deprecated)](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) +######## [Get alert information by ID (deprecated)](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +######## [Get alert related actor information (deprecated)](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related domain information (deprecated)](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related file information (deprecated)](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related IP information (deprecated)](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +######## [Get alert related machine information (deprecated)](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +#######Domain (deprecated) +######## [Get domain related alerts (deprecated)](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get domain related machines (deprecated)](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get domain statistics (deprecated)](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) +######## [Is domain seen in organization (deprecated)](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -########IP (deprecated) -######### [Get IP related alerts (deprecated)](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get IP related machines (deprecated)](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) -######### [Get IP statistics (deprecated)](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) -######### [Is IP seen in organization (deprecated)](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) -########Machines (deprecated) -######### [Collect investigation package (deprecated)](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) -######### [Find machine information by IP (deprecated)](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -######### [Get machines (deprecated)](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -######### [Get FileMachineAction object (deprecated)](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -######### [Get FileMachineActions collection (deprecated)](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -######### [Get machine by ID (deprecated)](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) -######### [Get machine log on users (deprecated)](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -######### [Get machine related alerts (deprecated)](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get MachineAction object (deprecated)](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) -######### [Get MachineActions collection (deprecated)](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) -######### [Get machines (deprecated)](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -######### [Get package SAS URI (deprecated)](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) -######### [Isolate machine (deprecated)](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) -######### [Release machine from isolation (deprecated)](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) -######### [Remove app restriction (deprecated)](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -######### [Request sample (deprecated)](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) -######### [Restrict app execution (deprecated)](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) -######### [Run antivirus scan (deprecated)](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) -######### [Stop and quarantine file (deprecated)](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -########User (deprecated) -######### [Get alert related user information (deprecated)](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -######### [Get user information (deprecated)](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) -######### [Get user related alerts (deprecated)](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) -######### [Get user related machines (deprecated)](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) +#######File(deprecated) +######## [Block file (deprecated)](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) +######## [Get file information (deprecated)](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) +######## [Get file related alerts (deprecated)](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get file related machines (deprecated)](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get file statistics (deprecated)](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) +######## [Get FileActions collection (deprecated)](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) +######## [Unblock file (deprecated)](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) + +#######IP (deprecated) +######## [Get IP related alerts (deprecated)](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get IP related machines (deprecated)](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) +######## [Get IP statistics (deprecated)](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) +######## [Is IP seen in organization (deprecated)](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) +#######Machines (deprecated) +######## [Collect investigation package (deprecated)](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) +######## [Find machine information by IP (deprecated)](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +######## [Get machines (deprecated)](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineAction object (deprecated)](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get FileMachineActions collection (deprecated)](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machine by ID (deprecated)](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) +######## [Get machine log on users (deprecated)](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +######## [Get machine related alerts (deprecated)](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get MachineAction object (deprecated)](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) +######## [Get MachineActions collection (deprecated)](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) +######## [Get machines (deprecated)](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) +######## [Get package SAS URI (deprecated)](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) +######## [Isolate machine (deprecated)](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) +######## [Release machine from isolation (deprecated)](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) +######## [Remove app restriction (deprecated)](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Request sample (deprecated)](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) +######## [Restrict app execution (deprecated)](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) +######## [Run antivirus scan (deprecated)](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) +######## [Stop and quarantine file (deprecated)](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) + +#######User (deprecated) +######## [Get alert related user information (deprecated)](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +######## [Get user information (deprecated)](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) +######## [Get user related alerts (deprecated)](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) +######## [Get user related machines (deprecated)](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) -######Windows updates (KB) info -####### [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) -######Common Vulnerabilities and Exposures (CVE) to KB map -####### [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) +#####Windows updates (KB) info +###### [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) +#####Common Vulnerabilities and Exposures (CVE) to KB map +###### [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 6cd151e73c..9a1df0211a 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -223,7 +223,7 @@ ###### [Troubleshoot subscription and portal access issues](troubleshoot-onboarding-error-messages-windows-defender-advanced-threat-protection.md) -#### [Windows Defender ATP APIs](apis-intro.md) +#### [Use the Windows Defender ATP exposed APIs](use-apis.md) ##### Create your app ###### [Get access on behalf of a user](exposed-apis-create-app-nativeapp.md) ###### [Get access without a user](exposed-apis-create-app-webapp.md) @@ -292,65 +292,65 @@ ###### Multiple APIs ####### [PowerShell](exposed-apis-full-sample-powershell.md) -##### [Use the Windows Defender ATP exposed APIs (deprecated)](exposed-apis-windows-defender-advanced-threat-protection.md) -###### [Supported Windows Defender ATP APIs (deprecated)](supported-apis-windows-defender-advanced-threat-protection.md) -#######Actor (deprecated) -######## [Get actor information (deprecated)](get-actor-information-windows-defender-advanced-threat-protection.md) -######## [Get actor related alerts (deprecated)](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -#######Alerts (deprecated) -######## [Get alerts (deprecated)](get-alerts-windows-defender-advanced-threat-protection.md) -######## [Get alert information by ID (deprecated)](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -######## [Get alert related actor information (deprecated)](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related domain information (deprecated)](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related file information](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related IP information (deprecated)](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -######## [Get alert related machine information (deprecated)](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -#######Domain (deprecated) -######## [Get domain related alerts (deprecated)](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get domain related machines (deprecated)](get-domain-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get domain statistics (deprecated)](get-domain-statistics-windows-defender-advanced-threat-protection.md) -######## [Is domain seen in organization (deprecated)](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) - -#######File(deprecated) -######## [Block file (deprecated)](block-file-windows-defender-advanced-threat-protection.md) -######## [Get file information (deprecated)](get-file-information-windows-defender-advanced-threat-protection.md) -######## [Get file related alerts (deprecated)](get-file-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get file related machines (deprecated)](get-file-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get file statistics (deprecated)](get-file-statistics-windows-defender-advanced-threat-protection.md) -######## [Get FileActions collection (deprecated)](get-fileactions-collection-windows-defender-advanced-threat-protection.md) -######## [Unblock file (deprecated)](unblock-file-windows-defender-advanced-threat-protection.md) +#### [Use the Windows Defender ATP exposed APIs (deprecated)](exposed-apis-windows-defender-advanced-threat-protection.md) +##### [Supported Windows Defender ATP APIs (deprecated)](supported-apis-windows-defender-advanced-threat-protection.md) +######Actor (deprecated) +####### [Get actor information (deprecated)](get-actor-information-windows-defender-advanced-threat-protection.md) +####### [Get actor related alerts (deprecated)](get-actor-related-alerts-windows-defender-advanced-threat-protection.md) +######Alerts (deprecated) +####### [Get alerts (deprecated)](get-alerts-windows-defender-advanced-threat-protection.md) +####### [Get alert information by ID (deprecated)](get-alert-info-by-id-windows-defender-advanced-threat-protection.md) +####### [Get alert related actor information (deprecated)](get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related domain information (deprecated)](get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related file information (deprecated)](get-alert-related-files-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related IP information (deprecated)](get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) +####### [Get alert related machine information (deprecated)](get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) +######Domain (deprecated) +####### [Get domain related alerts (deprecated)](get-domain-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get domain related machines (deprecated)](get-domain-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get domain statistics (deprecated)](get-domain-statistics-windows-defender-advanced-threat-protection.md) +####### [Is domain seen in organization (deprecated)](is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -#######IP (deprecated) -######## [Get IP related alerts (deprecated)](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get IP related machines (deprecated)](get-ip-related-machines-windows-defender-advanced-threat-protection.md) -######## [Get IP statistics (deprecated)](get-ip-statistics-windows-defender-advanced-threat-protection.md) -######## [Is IP seen in organization (deprecated)](is-ip-seen-org-windows-defender-advanced-threat-protection.md) -#######Machines (deprecated) -######## [Collect investigation package (deprecated)](collect-investigation-package-windows-defender-advanced-threat-protection.md) -######## [Find machine information by IP (deprecated)](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -######## [Get machines (deprecated)](get-machines-windows-defender-advanced-threat-protection.md) -######## [Get FileMachineAction object (deprecated)](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -######## [Get FileMachineActions collection (deprecated)](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -######## [Get machine by ID (deprecated)](get-machine-by-id-windows-defender-advanced-threat-protection.md) -######## [Get machine log on users (deprecated)](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -######## [Get machine related alerts (deprecated)](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get MachineAction object (deprecated)](get-machineaction-object-windows-defender-advanced-threat-protection.md) -######## [Get MachineActions collection (deprecated)](get-machineactions-collection-windows-defender-advanced-threat-protection.md) -######## [Get machines (deprecated)](get-machines-windows-defender-advanced-threat-protection.md) -######## [Get package SAS URI (deprecated)](get-package-sas-uri-windows-defender-advanced-threat-protection.md) -######## [Isolate machine (deprecated)](isolate-machine-windows-defender-advanced-threat-protection.md) -######## [Release machine from isolation (deprecated)](unisolate-machine-windows-defender-advanced-threat-protection.md) -######## [Remove app restriction (deprecated)](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -######## [Request sample (deprecated)](request-sample-windows-defender-advanced-threat-protection.md) -######## [Restrict app execution (deprecated)](restrict-code-execution-windows-defender-advanced-threat-protection.md) -######## [Run antivirus scan (deprecated)](run-av-scan-windows-defender-advanced-threat-protection.md) -######## [Stop and quarantine file (deprecated)](stop-quarantine-file-windows-defender-advanced-threat-protection.md) - -#######User (deprecated) -######## [Get alert related user information (deprecated)](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -######## [Get user information (deprecated)](get-user-information-windows-defender-advanced-threat-protection.md) -######## [Get user related alerts (deprecated)](get-user-related-alerts-windows-defender-advanced-threat-protection.md) -######## [Get user related machines (deprecated)](get-user-related-machines-windows-defender-advanced-threat-protection.md) +######File(deprecated) +####### [Block file (deprecated)](block-file-windows-defender-advanced-threat-protection.md) +####### [Get file information (deprecated)](get-file-information-windows-defender-advanced-threat-protection.md) +####### [Get file related alerts (deprecated)](get-file-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get file related machines (deprecated)](get-file-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get file statistics (deprecated)](get-file-statistics-windows-defender-advanced-threat-protection.md) +####### [Get FileActions collection (deprecated)](get-fileactions-collection-windows-defender-advanced-threat-protection.md) +####### [Unblock file (deprecated)](unblock-file-windows-defender-advanced-threat-protection.md) + +######IP (deprecated) +####### [Get IP related alerts (deprecated)](get-ip-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get IP related machines (deprecated)](get-ip-related-machines-windows-defender-advanced-threat-protection.md) +####### [Get IP statistics (deprecated)](get-ip-statistics-windows-defender-advanced-threat-protection.md) +####### [Is IP seen in organization (deprecated)](is-ip-seen-org-windows-defender-advanced-threat-protection.md) +######Machines (deprecated) +####### [Collect investigation package (deprecated)](collect-investigation-package-windows-defender-advanced-threat-protection.md) +####### [Find machine information by IP (deprecated)](find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) +####### [Get machines (deprecated)](get-machines-windows-defender-advanced-threat-protection.md) +####### [Get FileMachineAction object (deprecated)](get-filemachineaction-object-windows-defender-advanced-threat-protection.md) +####### [Get FileMachineActions collection (deprecated)](get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) +####### [Get machine by ID (deprecated)](get-machine-by-id-windows-defender-advanced-threat-protection.md) +####### [Get machine log on users (deprecated)](get-machine-log-on-users-windows-defender-advanced-threat-protection.md) +####### [Get machine related alerts (deprecated)](get-machine-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get MachineAction object (deprecated)](get-machineaction-object-windows-defender-advanced-threat-protection.md) +####### [Get MachineActions collection (deprecated)](get-machineactions-collection-windows-defender-advanced-threat-protection.md) +####### [Get machines (deprecated)](get-machines-windows-defender-advanced-threat-protection.md) +####### [Get package SAS URI (deprecated)](get-package-sas-uri-windows-defender-advanced-threat-protection.md) +####### [Isolate machine (deprecated)](isolate-machine-windows-defender-advanced-threat-protection.md) +####### [Release machine from isolation (deprecated)](unisolate-machine-windows-defender-advanced-threat-protection.md) +####### [Remove app restriction (deprecated)](unrestrict-code-execution-windows-defender-advanced-threat-protection.md) +####### [Request sample (deprecated)](request-sample-windows-defender-advanced-threat-protection.md) +####### [Restrict app execution (deprecated)](restrict-code-execution-windows-defender-advanced-threat-protection.md) +####### [Run antivirus scan (deprecated)](run-av-scan-windows-defender-advanced-threat-protection.md) +####### [Stop and quarantine file (deprecated)](stop-quarantine-file-windows-defender-advanced-threat-protection.md) + +######User (deprecated) +####### [Get alert related user information (deprecated)](get-alert-related-user-info-windows-defender-advanced-threat-protection.md) +####### [Get user information (deprecated)](get-user-information-windows-defender-advanced-threat-protection.md) +####### [Get user related alerts (deprecated)](get-user-related-alerts-windows-defender-advanced-threat-protection.md) +####### [Get user related machines (deprecated)](get-user-related-machines-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/use-apis.md b/windows/security/threat-protection/windows-defender-atp/use-apis.md index 29347f933e..0232e57b31 100644 --- a/windows/security/threat-protection/windows-defender-atp/use-apis.md +++ b/windows/security/threat-protection/windows-defender-atp/use-apis.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 10/23/2017 --- -# Use the Windows Defender ATP APIs +# Use the Windows Defender ATP exposed APIs **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) From 38113b40c0e55629112f830b44ebfef42aa0e254 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 22 Oct 2018 13:55:55 -0700 Subject: [PATCH 124/201] add deprecated --- .../get-alerts-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md index 45aab8f699..b676d92442 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get alerts API +# Get alerts API (deprecated) **Applies to:** From add209943508cda2d5c8ecac0ed3b194c38cea41 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Wed, 24 Oct 2018 16:20:08 +0300 Subject: [PATCH 125/201] [WDATP] Update advanced hunting URL --- ...-windows-defender-advanced-threat-protection-new.md | 2 +- .../exposed-apis-full-sample-powershell.md | 2 +- ...-windows-defender-advanced-threat-protection-new.md | 2 +- .../windows-defender-atp/run-advanced-query-api.md | 4 ++-- .../run-advanced-query-sample-ms-flow.md | 10 +++++----- .../run-advanced-query-sample-power-bi-app-token.md | 2 +- .../run-advanced-query-sample-power-bi-user-token.md | 2 +- .../run-advanced-query-sample-powershell.md | 2 +- .../run-advanced-query-sample-python.md | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md index 16b7b0524d..53054cc36b 100644 --- a/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/create-alert-by-reference-windows-defender-advanced-threat-protection-new.md @@ -39,7 +39,7 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' ## HTTP request ``` -POST /api/CreateAlertByReference +POST https://api.securitycenter.windows.com/api/CreateAlertByReference ``` ## Request headers diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md index 0ff6172338..5c554d4040 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-full-sample-powershell.md @@ -101,7 +101,7 @@ $query = "NetworkCommunicationEvents | where RemoteUrl == `"$suspiciousUrl`" | summarize ConnectionsCount = count() by MachineId" -$queryUrl = "https://api.securitycenter.windows.com/advancedqueries/query" +$queryUrl = "https://api.securitycenter.windows.com/api/advancedqueries/run" $queryBody = ConvertTo-Json -InputObject @{ 'Query' = $query } $queryResponse = Invoke-WebRequest -Method Post -Uri $queryUrl -Headers $headers -Body $queryBody -ErrorAction Stop diff --git a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md index 8f2008c14a..5d41431d83 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machines-windows-defender-advanced-threat-protection-new.md @@ -23,7 +23,7 @@ ms.date: 12/08/2017 Retrieves a collection of machines that have communicated with WDATP cloud on the last 30 days. Get Machines collection API supports [OData V4 queries](https://www.odata.org/documentation/). -The OData's Filter query is supported on: "Id", "ComputerDnsName", "LastSeen", "LastIpAddress", "HealthStatus", "OsPlatform", "RiskScore" and "RbacGroupId" +The OData's Filter query is supported on: "Id", "ComputerDnsName", "LastSeen", "LastIpAddress", "HealthStatus", "OsPlatform", "RiskScore", "MachineTags" and "RbacGroupId" ## Permissions diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index cb0a5624af..4281f9dd00 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -46,7 +46,7 @@ Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' ## HTTP request ``` -POST /advancedqueries/query +POST https://api.securitycenter.windows.com/api/advancedqueries/run ``` ## Request headers @@ -80,7 +80,7 @@ Here is an example of the request. > - api-uk.securitycenter.windows.com ``` -POST https://api.securitycenter.windows.com/advancedqueries/query +POST https://api.securitycenter.windows.com/api/advancedqueries/run Content-type: application/json { "Query":"ProcessCreationEvents diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md index dd62b3ea19..d5e16fbf5a 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-ms-flow.md @@ -40,15 +40,15 @@ Use the following basic flow as an example. ![Image of MsFlow choose an action](images/ms-flow-choose-action.png) - Set method to be POST - - Uri is https://api.securitycenter.windows.com/advancedqueries/query or one of the region specific locations - - US: https://api-us.securitycenter.windows.com/advancedqueries/query - - Europe: https://api-eu.securitycenter.windows.com/advancedqueries/query - - United Kingdom: https://api-uk.securitycenter.windows.com/advancedqueries/query + - Uri is https://api.securitycenter.windows.com/api/advancedqueries/run or one of the region specific locations + - US: https://api-us.securitycenter.windows.com/api/advancedqueries/run + - Europe: https://api-eu.securitycenter.windows.com/api/advancedqueries/run + - United Kingdom: https://api-uk.securitycenter.windows.com/api/advancedqueries/run - Add the Header: Content-Type application/json - In the body write your query surrounded by single quotation mark (') - In the Advanced options select Authentication to be Active Directory OAuth - Set the Tenant with proper AAD Tenant Id - - Audience is https://securitycenter.onmicrosoft.com/windowsatpservice + - Audience is https://api.securitycenter.windows.com - Client ID is your application ID - Credential Type should be Secret - Secret is the application secret generated in the Azure Active directory. diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md index 04c224b498..ce6ccb012c 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md @@ -59,7 +59,7 @@ If you want to use **user token** instead please refer to [this](run-advanced-qu AccessToken= AuthResponse[access_token], Bearer = Text.Combine({"Bearer", AccessToken}, " "), - AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query", + AdvancedHuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries/run", Response = Json.Document(Web.Contents( AdvancedHuntingUrl, diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md index 333683cda5..202d338c71 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -48,7 +48,7 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", - AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query", + AdvancedHuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries/run", Response = Json.Document(Web.Contents( AdvancedHuntingUrl, diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md index ae59b2fe28..76fa741ab6 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-powershell.md @@ -71,7 +71,7 @@ Run the following query: ``` $query = 'RegistryEvents | limit 10' # Paste your own query here -$url = "https://api.securitycenter.windows.com/advancedqueries/query" +$url = "https://api.securitycenter.windows.com/api/advancedqueries/run" $headers = @{ 'Content-Type' = 'application/json' Accept = 'application/json' diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md index fd546b266a..71784d6ccd 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-python.md @@ -71,7 +71,7 @@ where ``` query = 'RegistryEvents | limit 10' # Paste your own query here -url = "https://api.securitycenter.windows.com/advancedqueries/query" +url = "https://api.securitycenter.windows.com/api/advancedqueries/run" headers = { 'Content-Type' : 'application/json', 'Accept' : 'application/json', From 1831d6f0a89c7c0dc4499d7999c31791ff50fe2a Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 09:06:04 +0300 Subject: [PATCH 126/201] s --- ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 109 ++++++++++++++++++ ...defender-advanced-threat-protection-new.md | 41 +++++++ 3 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md create mode 100644 windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md index 77fcc41c80..5a137cb5a8 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# List machineActions API +# List MachineActions API [!include[Prereleaseinformation](prerelease.md)] @@ -140,7 +140,7 @@ Here is an example of the response. HTTP/1.1 200 Ok Content-type: application/json { - "@odata.context": "https://api.securitycenter.windows.com/testwdatppreview/$metadata#MachineActions", + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions", "value": [ { "id": "69dc3630-1ccc-4342-acf3-35286eec741d", diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..a4dc9a8ac3 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,109 @@ +--- +title: List TiIndicators API +description: Use this API to create calls related to get TiIndicators collection +keywords: apis, public api, supported apis, TiIndicators collection +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# List TiIndicators API + +[!include[Prereleaseinformation](prerelease.md)] + +>[!Note] +> Currently this API is supported only for AppOnly context requests. (See [Get access without a user](exposed-apis-create-app-webapp.md) for more information) + + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + + Gets collection of Ti Indicators. + Get TiIndicators collection API supports [OData V4 queries](https://www.odata.org/documentation/). + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti_ReadWrite | 'Read and write Ti Indicators' + + +## HTTP request +``` +GET https://api.securitycenter.windows.com/api/tiindicators +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful, this method returns 200, Ok response code with a collection of [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. + +>[!Note] +> The response will only include Ti Indicators that submitted by the calling Application. + + +## Example + +**Request** + +Here is an example of a request that gets all Ti Indicators + +``` +GET https://api.securitycenter.windows.com/api/tiindicators +``` + +[!include[Improve request performance](improverequestperformance-new.md)] + +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 200 Ok +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#TiIndicators", + "value": [ + { + "indicator": "12.13.14.15", + "indicatorType": "IpAddress", + "title": "test", + "creationTimeDateTimeUtc": "2018-10-24T11:15:35.3688259Z", + "createdBy": "45097602-1234-5678-1234-9f453233e62c", + "expirationTime": "2020-12-12T00:00:00Z", + "action": "AlertAndBlock", + "severity": "Informational", + "description": "test", + "recommendedActions": "test" + }, + { + "indicator": "220e7d15b0b3d7fac48f2bd61114db1022197f7f", + "indicatorType": "FileSha1", + "title": "test", + "creationTimeDateTimeUtc": "2018-10-24T10:54:23.2009016Z", + "createdBy": "45097602-1234-5678-1234-9f453233e62c", + "expirationTime": "2020-12-12T00:00:00Z", + "action": "AlertAndBlock", + "severity": "Informational", + "description": "test", + "recommendedActions": "TEST" + } + ] +} +``` diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..e3cc47f323 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,41 @@ +--- +title: TiIndicator resource type +description: TiIndicator entity description. +keywords: apis, supported apis, get, TiIndicator, recent +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# TiIndicator resource type + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prereleaseinformation](prerelease.md)] + +Method|Return Type |Description +:---|:---|:--- +[List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. + +# Properties +Property | Type | Description +:---|:---|:--- +indicator | String | Identity of the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url" +title | String | Ti indicator title. +creationTimeDateTimeUtc | DateTimeOffset | The date and time when the indicator was created. +createdBy | String | Identity of the user/application that created the indicator. +expirationTime | DateTimeOffset | The expiration time of the indicator +action | Enum | The action that will be taken when the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed" +severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High" +description | String | Description of the indicator. +recommendedActions | String | Recommended actions for the indicator. + + From a7ee8fea98aceeb08580073b5f736cb7d2d87fc6 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 09:11:11 +0300 Subject: [PATCH 127/201] s --- windows/security/threat-protection/TOC.md | 4 ++++ .../security/threat-protection/windows-defender-atp/TOC.md | 3 +++ 2 files changed, 7 insertions(+) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 8cb9e6a5b1..212cd5618f 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -350,6 +350,10 @@ ####### [User](windows-defender-atp/user-windows-defender-advanced-threat-protection-new.md) ######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) + +####### [Ti Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [List TiIndicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) + ###### How to use APIs - Samples ####### Advanced Hunting API ######## [Schedule advanced Hunting using Microsoft Flow](windows-defender-atp/run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 71c2a82d6f..fdf3ee51b8 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -287,6 +287,9 @@ ####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) +###### [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) + ##### How to use APIs - Samples ###### Advanced Hunting API ####### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-sample-ms-flow.md) From 0a9bbd5920827b7816e223f069a912a2bf72e144 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 09:52:49 +0300 Subject: [PATCH 128/201] s --- ...defender-advanced-threat-protection-new.md | 113 ++++++++++++++++++ ...defender-advanced-threat-protection-new.md | 2 +- 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..7fdf4d6915 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,113 @@ +--- +title: Submit Ti Indicator API +description: Use this API to submit Ti Indicator. +keywords: apis, graph api, supported apis, submit, ti, ti indicator +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Submit Ti Indicator API + +[!include[Prerelease information](prerelease.md)] + +>[!Note] +> Currently this API is supported only for AppOnly context requests. (See [Get access without a user](exposed-apis-create-app-webapp.md) for more information) + + +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +Submits new [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti_ReadWrite | 'Read and write Ti Indicators' + + +## HTTP request +``` +POST https://api.securitycenter.windows.com/api/tiindicators +``` + +[!include[Improve request performance](improverequestperformance-new.md)] + + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. +Content-Type | string | application/json. **Required**. + +## Request body +In the request body, supply a JSON object with the following parameters: + +Parameter | Type | Description +:---|:---|:--- +indicator | String | Identity of the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. **Required** +indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url". **Required** +title | String | Ti indicator title. +expirationTime | DateTimeOffset | The expiration time of the indicator. +action | Enum | The action that will be taken when the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed". **Required** +severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High". +description | String | Description of the indicator. +recommendedActions | String | Recommended actions for the indicator. + + +## Response +If successful, this method returns 201 - Created response code and the created [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) in the response body. + + +## Example + +**Request** + +Here is an example of the request. + +``` +POST https://api.securitycenter.windows.com/api/tiindicators +Content-type: application/json +{ + "indicator": "220e7d15b0b3d7fac48f2bd61114db1022197f7f", + "indicatorType": "FileSha1", + "title": "test", + "expirationTime": "2020-12-12T00:00:00Z", + "action": "AlertAndBlock", + "severity": "Informational", + "description": "test", + "recommendedActions": "TEST" +} + +``` +**Response** + +Here is an example of the response. + +``` +HTTP/1.1 201 Created +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", + "indicator": "220e7d15b0b3d7fac48f2bd61114db1022197f7f", + "indicatorType": "FileSha1", + "title": "test", + "creationTimeDateTimeUtc": "2018-10-24T10:54:23.2009016Z", + "createdBy": "45097602-1234-5678-1234-9f453233e62c", + "expirationTime": "2020-12-12T00:00:00Z", + "action": "AlertAndBlock", + "severity": "Informational", + "description": "test", + "recommendedActions": "TEST" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index e3cc47f323..d194ebfcf3 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ indicator | String | Identity of the [Ti Indicator](ti-indicator-windows-defende indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url" title | String | Ti indicator title. creationTimeDateTimeUtc | DateTimeOffset | The date and time when the indicator was created. -createdBy | String | Identity of the user/application that created the indicator. +createdBy | String | Identity of the user/application that submitted the indicator. expirationTime | DateTimeOffset | The expiration time of the indicator action | Enum | The action that will be taken when the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed" severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High" From 8617788970cad13b41f7574fc5e21a9fbd161748 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 10:10:00 +0300 Subject: [PATCH 129/201] s --- windows/security/threat-protection/TOC.md | 1 + .../security/threat-protection/windows-defender-atp/TOC.md | 1 + ...lection-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...dicator-windows-defender-advanced-threat-protection-new.md | 4 +++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 212cd5618f..5847327d5d 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -353,6 +353,7 @@ ####### [Ti Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) ######## [List TiIndicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) +######## [Submit TiIndicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) ###### How to use APIs - Samples ####### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index fdf3ee51b8..dce77004ba 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -289,6 +289,7 @@ ###### [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) ####### [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) +####### [Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) ##### How to use APIs - Samples ###### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md index a4dc9a8ac3..ccc20899c0 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md @@ -41,6 +41,8 @@ Application | Ti_ReadWrite | 'Read and write Ti Indicators' GET https://api.securitycenter.windows.com/api/tiindicators ``` +[!include[Improve request performance](improverequestperformance-new.md)] + ## Request headers Name | Type | Description @@ -68,8 +70,6 @@ Here is an example of a request that gets all Ti Indicators GET https://api.securitycenter.windows.com/api/tiindicators ``` -[!include[Improve request performance](improverequestperformance-new.md)] - **Response** Here is an example of the response. diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index d194ebfcf3..ff7490cb45 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -22,7 +22,9 @@ ms.date: 12/08/2017 Method|Return Type |Description :---|:---|:--- -[List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. +[List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) Collection | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. +[Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. + # Properties Property | Type | Description From f4e25119980203f620b9afe87e434866a865e6ab Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 10:24:04 +0300 Subject: [PATCH 130/201] s --- windows/security/threat-protection/TOC.md | 1 + .../windows-defender-atp/TOC.md | 1 + ...defender-advanced-threat-protection-new.md | 92 +++++++++++++++++++ ...defender-advanced-threat-protection-new.md | 1 + 4 files changed, 95 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 5847327d5d..0d23d46f02 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -352,6 +352,7 @@ ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) ####### [Ti Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [Get TiIndicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ######## [List TiIndicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) ######## [Submit TiIndicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index dce77004ba..0f3417f61c 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -289,6 +289,7 @@ ###### [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) ####### [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) +####### [Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ####### [Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) ##### How to use APIs - Samples diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..5363e99022 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,92 @@ +--- +title: Get Ti Indicator by ID API +description: Retrieves Ti Indicator entity by ID. +keywords: apis, public api, supported apis, get, ti indicator, entity, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Get Ti Indicator by ID API + +[!include[Prereleaseinformation](prerelease.md)] + +>[!Note] +> Currently this API is supported only for AppOnly context requests. (See [Get access without a user](exposed-apis-create-app-webapp.md) for more information) + + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) +Retrieves a Ti Indicator entity by ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti_ReadWrite | 'Read and write Ti Indicators' + + +## HTTP request +``` +GET https://api.securitycenter.windows.com/api/tiindicators/{id} +``` + +[!include[Improve request performance](improverequestperformance-new.md)] + + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machine exists - 200 OK with the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the body. +If Ti Indicator with the specified id was not found - 404 Not Found. + + +## Example + +**Request** + +Here is an example of the request. + +``` +GET https://api.securitycenter.windows.com/api/tiindicators/220e7d15b0b3d7fac48f2bd61114db1022197f7f +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#TiIndicators/$entity", + "indicator": "220e7d15b0b3d7fac48f2bd61114db1022197f7f", + "indicatorType": "FileSha1", + "title": "test", + "creationTimeDateTimeUtc": "2018-10-24T10:54:23.2009016Z", + "createdBy": "45097602-0cfe-4cc6-925f-9f453233e62c", + "expirationTime": "2020-12-12T00:00:00Z", + "action": "AlertAndBlock", + "severity": "Informational", + "description": "test", + "recommendedActions": "TEST" +} + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index ff7490cb45..9378118bc3 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -23,6 +23,7 @@ ms.date: 12/08/2017 Method|Return Type |Description :---|:---|:--- [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) Collection | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. +[Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Gets the requested [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. [Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. From c4be1c7e9a34461800441157a969b70512845266 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 10:27:24 +0300 Subject: [PATCH 131/201] s --- ...dicator-windows-defender-advanced-threat-protection-new.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md index 7fdf4d6915..06d719aea1 100644 --- a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -22,9 +22,11 @@ ms.date: 12/08/2017 **Applies to:** + - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Submits new [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +- Submits new [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. + ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) From aeb9f1e9605b0480f53a00ade4da0c12e29af1d7 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 10:30:44 +0300 Subject: [PATCH 132/201] s --- ...r-by-id-windows-defender-advanced-threat-protection-new.md | 2 +- ...lection-windows-defender-advanced-threat-protection-new.md | 2 +- ...dicator-windows-defender-advanced-threat-protection-new.md | 4 ++-- ...dicator-windows-defender-advanced-threat-protection-new.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md index 5363e99022..9bccb48149 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md @@ -31,7 +31,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti_ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write Ti Indicators' ## HTTP request diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md index ccc20899c0..a20702696c 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md @@ -33,7 +33,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti_ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write Ti Indicators' ## HTTP request diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md index 06d719aea1..e6ca8b30aa 100644 --- a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -33,7 +33,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti_ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write Ti Indicators' ## HTTP request @@ -58,9 +58,9 @@ Parameter | Type | Description :---|:---|:--- indicator | String | Identity of the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. **Required** indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url". **Required** +action | Enum | The action that will be taken if the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed". **Required** title | String | Ti indicator title. expirationTime | DateTimeOffset | The expiration time of the indicator. -action | Enum | The action that will be taken when the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed". **Required** severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High". description | String | Description of the indicator. recommendedActions | String | Recommended actions for the indicator. diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index 9378118bc3..3316f2755c 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -36,7 +36,7 @@ title | String | Ti indicator title. creationTimeDateTimeUtc | DateTimeOffset | The date and time when the indicator was created. createdBy | String | Identity of the user/application that submitted the indicator. expirationTime | DateTimeOffset | The expiration time of the indicator -action | Enum | The action that will be taken when the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed" +action | Enum | The action that will be taken if the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed" severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High" description | String | Description of the indicator. recommendedActions | String | Recommended actions for the indicator. From 8c849a40aff9f43742e907ca2dd7b1cba90d6d43 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 11:37:45 +0300 Subject: [PATCH 133/201] s --- windows/security/threat-protection/TOC.md | 1 + .../windows-defender-atp/TOC.md | 1 + ...defender-advanced-threat-protection-new.md | 1 + ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 105 ++++++++++++++++++ 5 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 0d23d46f02..7bfd43887d 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -355,6 +355,7 @@ ######## [Get TiIndicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ######## [List TiIndicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) ######## [Submit TiIndicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [Update TiIndicator](windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md) ###### How to use APIs - Samples ####### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 0f3417f61c..04c42b236f 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -291,6 +291,7 @@ ####### [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) ####### [Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ####### [Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [Update TiIndicator](update-ti-indicator-windows-defender-advanced-threat-protection-new.md) ##### How to use APIs - Samples ###### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index 3316f2755c..7591eb7ea2 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -25,6 +25,7 @@ Method|Return Type |Description [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) Collection | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. [Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Gets the requested [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. [Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +[Update TiIndicator](update-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Updates [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. # Properties diff --git a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md index 37d8b92160..1ce73605cf 100644 --- a/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/update-alert-windows-defender-advanced-threat-protection-new.md @@ -49,13 +49,13 @@ Content-Type | String | application/json. **Required**. ## Request body -In the request body, supply the values for the relevant fields that should be updated.Existing properties that are not included in the request body will maintain their previous values or be recalculated based on tchanges to other property values. For best performance you shouldn't include existing values that haven't change. +In the request body, supply the values for the relevant fields that should be updated.Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't change. Property | Type | Description :---|:---|:--- status | String | Specifies the current status of the alert. The property values are: 'New', 'InProgress' and 'Resolved'. assignedTo | String | Owner of the alert -classification | String | Speficies the specification of the alert. The property values are: 'Unknown', 'FalsePositive', 'TruePositive'. +classification | String | Specifies the specification of the alert. The property values are: 'Unknown', 'FalsePositive', 'TruePositive'. determination | String | Specifies the determination of the alert. The property values are: 'NotAvailable', 'Apt', 'Malware', 'SecurityPersonnel', 'SecurityTesting', 'UnwantedSoftware', 'Other' diff --git a/windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..39402786b5 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,105 @@ +--- +title: Update Ti Indicator +description: Updates a specific Ti Indicator +keywords: apis, public api, supported apis, patch, update, ti indicator, information, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Update TiIndicator + +[!include[Prereleaseinformation](prerelease.md)] + +>[!Note] +> Currently this API is supported only for AppOnly context requests. (See [Get access without a user](exposed-apis-create-app-webapp.md) for more information) + + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +- Update the properties of an alert entity. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti.ReadWrite | 'Read and write Ti Indicators' + + +## HTTP request +``` +PATCH https://api.securitycenter.windows.com/api/tiindicators/{id} +``` + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. +Content-Type | String | application/json. **Required**. + + +## Request body +In the request body, supply the values for the relevant fields that should be updated.Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't change. + +Property | Type | Description +:---|:---|:--- +expirationTime | DateTimeOffset | The expiration time of the indicator. +title | String | Ti indicator title. +severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High" +description | String | Description of the indicator. +recommendedActions | String | Recommended actions for the indicator. + +## Response +If successful, this method returns 200 - OK, and the updated [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +In case of incorrect Body, the return type will be 400 - Bad request, with message that indicates the reason. +If the Ti Indicator is not exist, 404 - Not found. + + +## Example + +**Request** + +Here is an example of the request. + +[!include[Improve request performance](improverequestperformance-new.md)] + +``` +PATCH https://api.securitycenter.windows.com/api/tiindicators/220e7d15b0b3d7fac48f2bd61114db1022197f7f +Content-Type: application/json +{ + "title": "Ben2", + "severity": "High", + "description": "test2", + "expirationTime": "2020-12-12T00:00:00Z" +} +``` + +**Response** + +Here is an example of the response. + +``` +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#TiIndicators/$entity", + "indicator": "220e7d15b0b3d7fac48f2bd61114db1022197f7f", + "indicatorType": "FileSha1", + "title": "Ben2", + "creationTimeDateTimeUtc": "2018-10-24T10:54:23.2009016Z", + "createdBy": "45097602-0cfe-4cc6-925f-9f453233e62c", + "expirationTime": "2020-12-12T00:00:00Z", + "action": "AlertAndBlock", + "severity": "High", + "description": "test", + "recommendedActions": "TEST2" +} +``` From c33f51f67c28e02e5052b3ce9c24be67d21df891 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 12:54:09 +0300 Subject: [PATCH 134/201] s --- windows/security/threat-protection/TOC.md | 6 +- .../windows-defender-atp/TOC.md | 4 +- ...defender-advanced-threat-protection-new.md | 77 +++++++++++++ ...defender-advanced-threat-protection-new.md | 14 +-- ...defender-advanced-threat-protection-new.md | 4 +- ...defender-advanced-threat-protection-new.md | 105 ------------------ 6 files changed, 91 insertions(+), 119 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md delete mode 100644 windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 7bfd43887d..2a3bb8ddea 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -352,10 +352,10 @@ ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) ####### [Ti Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) -######## [Get TiIndicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ######## [List TiIndicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) -######## [Submit TiIndicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) -######## [Update TiIndicator](windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [Get TiIndicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) +######## [Submit or Update TiIndicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [Delete TiIndicator](windows-defender-atp/delete-ti-indicator-windows-defender-advanced-threat-protection-new.md) ###### How to use APIs - Samples ####### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 04c42b236f..5776de1442 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -290,8 +290,8 @@ ###### [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) ####### [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) ####### [Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) -####### [Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) -####### [Update TiIndicator](update-ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [Submit or Update TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [Delete TiIndicator](delete-ti-indicator-windows-defender-advanced-threat-protection-new.md) ##### How to use APIs - Samples ###### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md new file mode 100644 index 0000000000..bad34080f3 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md @@ -0,0 +1,77 @@ +--- +title: Delete Ti Indicator. +description: Deletes Ti Indicator entity by ID. +keywords: apis, public api, supported apis, delete, ti indicator, entity, id +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 12/08/2017 +--- + +# Delete Ti Indicator API + +[!include[Prereleaseinformation](prerelease.md)] + +>[!Note] +> Currently this API is supported only for AppOnly context requests. (See [Get access without a user](exposed-apis-create-app-webapp.md) for more information) + + +**Applies to:** + +- Windows Defender Advanced Threat Protection (Windows Defender ATP) +Retrieves a Ti Indicator entity by ID. + +## Permissions +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | Ti.ReadWrite | 'Read and write Ti Indicators' + + +## HTTP request +``` +Delete https://api.securitycenter.windows.com/api/tiindicators/{id} +``` + +[!include[Improve request performance](improverequestperformance-new.md)] + + +## Request headers + +Name | Type | Description +:---|:---|:--- +Authorization | String | Bearer {token}. **Required**. + + +## Request body +Empty + +## Response +If successful and machine exists - 204 OK without content. +If Ti Indicator with the specified id was not found - 404 Not Found. + +## Example + +**Request** + +Here is an example of the request. + +``` +DELETE https://api.securitycenter.windows.com/api/tiindicators/220e7d15b0b3d7fac48f2bd61114db1022197f7f +``` + +**Response** + +Here is an example of the response. + + +``` +HTTP/1.1 204 NO CONTENT + +``` diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md index e6ca8b30aa..a947298374 100644 --- a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -1,7 +1,7 @@ --- -title: Submit Ti Indicator API -description: Use this API to submit Ti Indicator. -keywords: apis, graph api, supported apis, submit, ti, ti indicator +title: Submit or Update Ti Indicator API +description: Use this API to submit or Update Ti Indicator. +keywords: apis, graph api, supported apis, submit, ti, ti indicator, update search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Submit Ti Indicator API +# Submit or Update Ti Indicator API [!include[Prerelease information](prerelease.md)] @@ -25,7 +25,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -- Submits new [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +- Submits or Updates new [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. ## Permissions @@ -67,7 +67,7 @@ recommendedActions | String | Recommended actions for the indicator. ## Response -If successful, this method returns 201 - Created response code and the created [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) in the response body. +If successful, this method returns 200 - OK response code and the created / updated [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the response body. ## Example @@ -96,7 +96,7 @@ Content-type: application/json Here is an example of the response. ``` -HTTP/1.1 201 Created +HTTP/1.1 200 OK Content-type: application/json { "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions/$entity", diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index 7591eb7ea2..36bff33024 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -24,8 +24,8 @@ Method|Return Type |Description :---|:---|:--- [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) Collection | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. [Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Gets the requested [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. -[Submit TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. -[Update TiIndicator](update-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Updates [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +[Submit or Update TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +[Delete TiIndicator](delete-ti-indicator-windows-defender-advanced-threat-protection-new.md) | No Content | Deletes [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. # Properties diff --git a/windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md deleted file mode 100644 index 39402786b5..0000000000 --- a/windows/security/threat-protection/windows-defender-atp/update-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Update Ti Indicator -description: Updates a specific Ti Indicator -keywords: apis, public api, supported apis, patch, update, ti indicator, information, id -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: medium -ms.date: 12/08/2017 ---- - -# Update TiIndicator - -[!include[Prereleaseinformation](prerelease.md)] - ->[!Note] -> Currently this API is supported only for AppOnly context requests. (See [Get access without a user](exposed-apis-create-app-webapp.md) for more information) - - -**Applies to:** - -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - -- Update the properties of an alert entity. - -## Permissions -One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) - -Permission type | Permission | Permission display name -:---|:---|:--- -Application | Ti.ReadWrite | 'Read and write Ti Indicators' - - -## HTTP request -``` -PATCH https://api.securitycenter.windows.com/api/tiindicators/{id} -``` - -## Request headers - -Name | Type | Description -:---|:---|:--- -Authorization | String | Bearer {token}. **Required**. -Content-Type | String | application/json. **Required**. - - -## Request body -In the request body, supply the values for the relevant fields that should be updated.Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't change. - -Property | Type | Description -:---|:---|:--- -expirationTime | DateTimeOffset | The expiration time of the indicator. -title | String | Ti indicator title. -severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High" -description | String | Description of the indicator. -recommendedActions | String | Recommended actions for the indicator. - -## Response -If successful, this method returns 200 - OK, and the updated [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. -In case of incorrect Body, the return type will be 400 - Bad request, with message that indicates the reason. -If the Ti Indicator is not exist, 404 - Not found. - - -## Example - -**Request** - -Here is an example of the request. - -[!include[Improve request performance](improverequestperformance-new.md)] - -``` -PATCH https://api.securitycenter.windows.com/api/tiindicators/220e7d15b0b3d7fac48f2bd61114db1022197f7f -Content-Type: application/json -{ - "title": "Ben2", - "severity": "High", - "description": "test2", - "expirationTime": "2020-12-12T00:00:00Z" -} -``` - -**Response** - -Here is an example of the response. - -``` -{ - "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#TiIndicators/$entity", - "indicator": "220e7d15b0b3d7fac48f2bd61114db1022197f7f", - "indicatorType": "FileSha1", - "title": "Ben2", - "creationTimeDateTimeUtc": "2018-10-24T10:54:23.2009016Z", - "createdBy": "45097602-0cfe-4cc6-925f-9f453233e62c", - "expirationTime": "2020-12-12T00:00:00Z", - "action": "AlertAndBlock", - "severity": "High", - "description": "test", - "recommendedActions": "TEST2" -} -``` From 943b274b622abaaf1193e4fb9440c3f34c6ef85c Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 25 Oct 2018 14:57:53 +0300 Subject: [PATCH 135/201] s --- ...dicator-windows-defender-advanced-threat-protection-new.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md index a947298374..c85c4bbb6f 100644 --- a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -67,8 +67,8 @@ recommendedActions | String | Recommended actions for the indicator. ## Response -If successful, this method returns 200 - OK response code and the created / updated [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the response body. - +- If successful, this method returns 200 - OK response code and the created / updated [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the response body. +- If not successful: this method return 400 - Bad Request / 409 - Conflict with the failure reason. Bad request usually indicates incorrect body and Conflict can happen if you try to submit a Ti Indicator with existing indicator value but with different Indicator type or Action. ## Example From 4cc084e5ca5d9af37708581104420a6f6d245649 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Thu, 25 Oct 2018 20:00:35 +0000 Subject: [PATCH 136/201] Initialize open publishing repository: https://cpubwin.visualstudio.com/DefaultCollection/it-client/_git/it-client of branch live --- .openpublishing.publish.config.json | 16 ++++++++++ windows/eulas/docfx.json | 47 +++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 windows/eulas/docfx.json diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index d9934af08a..224abb8ddd 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -34,6 +34,22 @@ "moniker_groups": [], "version": 0 }, + { + "docset_name": "eula-vsts", + "build_source_folder": "windows/eulas", + "build_output_subfolder": "eula-vsts", + "locale": "en-us", + "monikers": [], + "moniker_ranges": [], + "open_to_public_contributors": false, + "type_mapping": { + "Conceptual": "Content", + "ManagedReference": "Content", + "RestApi": "Content" + }, + "build_entry_point": "docs", + "template_folder": "_themes" + }, { "docset_name": "gdpr", "build_source_folder": "gdpr", diff --git a/windows/eulas/docfx.json b/windows/eulas/docfx.json new file mode 100644 index 0000000000..ff3ab96c92 --- /dev/null +++ b/windows/eulas/docfx.json @@ -0,0 +1,47 @@ +{ + "build": { + "content": [ + { + "files": [ + "**/*.md", + "**/*.yml" + ], + "exclude": [ + "**/obj/**", + "**/includes/**", + "_themes/**", + "_themes.pdf/**", + "README.md", + "LICENSE", + "LICENSE-CODE", + "ThirdPartyNotices" + ] + } + ], + "resource": [ + { + "files": [ + "**/*.png", + "**/*.jpg" + ], + "exclude": [ + "**/obj/**", + "**/includes/**", + "_themes/**", + "_themes.pdf/**" + ] + } + ], + "overwrite": [], + "externalReference": [], + "globalMetadata": { + "breadcrumb_path": "/windows/eulas/breadcrumb/toc.json", + "extendBreadcrumb": true, + "feedback_system": "None" + }, + "fileMetadata": {}, + "template": [], + "dest": "eula-vsts", + "markdownEngineName": "markdig" + } +} \ No newline at end of file From 20d62cdc00f6a21468a8b6e5b3c75c72592367a0 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Sun, 28 Oct 2018 08:27:23 +0200 Subject: [PATCH 137/201] s --- windows/security/threat-protection/TOC.md | 10 +++++----- .../threat-protection/windows-defender-atp/TOC.md | 10 +++++----- ...dows-defender-advanced-threat-protection-new.md | 10 +++++----- ...dows-defender-advanced-threat-protection-new.md | 10 +++++----- ...dows-defender-advanced-threat-protection-new.md | 12 ++++++------ ...dows-defender-advanced-threat-protection-new.md | 14 +++++++------- ...dows-defender-advanced-threat-protection-new.md | 12 ++++++------ 7 files changed, 39 insertions(+), 39 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 2a3bb8ddea..b2568ff5d9 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -351,11 +351,11 @@ ######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -####### [Ti Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) -######## [List TiIndicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) -######## [Get TiIndicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) -######## [Submit or Update TiIndicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) -######## [Delete TiIndicator](windows-defender-atp/delete-ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [TI Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [List TI Indicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) +######## [Get TI Indicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) +######## [Submit TI Indicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) +######## [Delete TI Indicator](windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ###### How to use APIs - Samples ####### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 5776de1442..273cc66efe 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -287,11 +287,11 @@ ####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -###### [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) -####### [List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) -####### [Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) -####### [Submit or Update TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) -####### [Delete TiIndicator](delete-ti-indicator-windows-defender-advanced-threat-protection-new.md) +###### [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [List TI Indicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) +####### [Get TI Indicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) +####### [Submit TI Indicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) +####### [Delete TI Indicator](delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) ##### How to use APIs - Samples ###### Advanced Hunting API diff --git a/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md index bad34080f3..b0d3efb765 100644 --- a/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Delete Ti Indicator API +# Delete TI Indicator API [!include[Prereleaseinformation](prerelease.md)] @@ -24,14 +24,14 @@ ms.date: 12/08/2017 **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Retrieves a Ti Indicator entity by ID. +Retrieves a TI Indicator entity by ID. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti.ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write TI Indicators' ## HTTP request @@ -53,8 +53,8 @@ Authorization | String | Bearer {token}. **Required**. Empty ## Response -If successful and machine exists - 204 OK without content. -If Ti Indicator with the specified id was not found - 404 Not Found. +If TI Indicator exist and deleted successfully - 204 OK without content. +If TI Indicator with the specified id was not found - 404 Not Found. ## Example diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md index 9bccb48149..ccd438a908 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Get Ti Indicator by ID API +# Get TI Indicator by ID API [!include[Prereleaseinformation](prerelease.md)] @@ -24,14 +24,14 @@ ms.date: 12/08/2017 **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) -Retrieves a Ti Indicator entity by ID. +Retrieves a TI Indicator entity by ID. ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti.ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write TI Indicators' ## HTTP request @@ -53,8 +53,8 @@ Authorization | String | Bearer {token}. **Required**. Empty ## Response -If successful and machine exists - 200 OK with the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the body. -If Ti Indicator with the specified id was not found - 404 Not Found. +If successful and TI Indicator exists - 200 OK with the [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the body. +If TI Indicator with the specified id was not found - 404 Not Found. ## Example diff --git a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md index a20702696c..d2c398ee0f 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md @@ -25,15 +25,15 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) - Gets collection of Ti Indicators. - Get TiIndicators collection API supports [OData V4 queries](https://www.odata.org/documentation/). + Gets collection of TI Indicators. + Get TI Indicators collection API supports [OData V4 queries](https://www.odata.org/documentation/). ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti.ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write TI Indicators' ## HTTP request @@ -54,17 +54,17 @@ Authorization | String | Bearer {token}. **Required**. Empty ## Response -If successful, this method returns 200, Ok response code with a collection of [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. +If successful, this method returns 200, Ok response code with a collection of [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. >[!Note] -> The response will only include Ti Indicators that submitted by the calling Application. +> The response will only include TI Indicators that submitted by the calling Application. ## Example **Request** -Here is an example of a request that gets all Ti Indicators +Here is an example of a request that gets all TI Indicators ``` GET https://api.securitycenter.windows.com/api/tiindicators diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md index c85c4bbb6f..59030b2ebd 100644 --- a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Submit or Update Ti Indicator API +# Submit or Update TI Indicator API [!include[Prerelease information](prerelease.md)] @@ -25,7 +25,7 @@ ms.date: 12/08/2017 - Windows Defender Advanced Threat Protection (Windows Defender ATP) -- Submits or Updates new [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +- Submits or Updates new [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. ## Permissions @@ -33,7 +33,7 @@ One of the following permissions is required to call this API. To learn more, in Permission type | Permission | Permission display name :---|:---|:--- -Application | Ti.ReadWrite | 'Read and write Ti Indicators' +Application | Ti.ReadWrite | 'Read and write TI Indicators' ## HTTP request @@ -56,10 +56,10 @@ In the request body, supply a JSON object with the following parameters: Parameter | Type | Description :---|:---|:--- -indicator | String | Identity of the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. **Required** +indicator | String | Identity of the [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. **Required** indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url". **Required** action | Enum | The action that will be taken if the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed". **Required** -title | String | Ti indicator title. +title | String | TI indicator title. expirationTime | DateTimeOffset | The expiration time of the indicator. severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High". description | String | Description of the indicator. @@ -67,8 +67,8 @@ recommendedActions | String | Recommended actions for the indicator. ## Response -- If successful, this method returns 200 - OK response code and the created / updated [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the response body. -- If not successful: this method return 400 - Bad Request / 409 - Conflict with the failure reason. Bad request usually indicates incorrect body and Conflict can happen if you try to submit a Ti Indicator with existing indicator value but with different Indicator type or Action. +- If successful, this method returns 200 - OK response code and the created / updated [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity in the response body. +- If not successful: this method return 400 - Bad Request / 409 - Conflict with the failure reason. Bad request usually indicates incorrect body and Conflict can happen if you try to submit a TI Indicator with existing indicator value but with different Indicator type or Action. ## Example diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index 36bff33024..3d3df87d11 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -13,7 +13,7 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# TiIndicator resource type +# TI(threat intelligence) Indicator resource type **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) @@ -22,16 +22,16 @@ ms.date: 12/08/2017 Method|Return Type |Description :---|:---|:--- -[List TiIndicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) Collection | List [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. -[Get TiIndicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Gets the requested [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. -[Submit or Update TiIndicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. -[Delete TiIndicator](delete-ti-indicator-windows-defender-advanced-threat-protection-new.md) | No Content | Deletes [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +[List TI Indicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) | [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) Collection | List [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entities. +[Get TI Indicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) | [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Gets the requested [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +[Submit TI Indicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) | [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) | Submits [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +[Delete TI Indicator](delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) | No Content | Deletes [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. # Properties Property | Type | Description :---|:---|:--- -indicator | String | Identity of the [Ti Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. +indicator | String | Identity of the [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url" title | String | Ti indicator title. creationTimeDateTimeUtc | DateTimeOffset | The date and time when the indicator was created. From 2cb8a34f95d68b4cf9e53bf9bc9a6e1255d62ba5 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Sun, 28 Oct 2018 13:05:15 +0200 Subject: [PATCH 138/201] s --- ...-windows-defender-advanced-threat-protection-new.md | 10 +++++----- ...-windows-defender-advanced-threat-protection-new.md | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md index 59030b2ebd..1a2575ea36 100644 --- a/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -59,11 +59,11 @@ Parameter | Type | Description indicator | String | Identity of the [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. **Required** indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url". **Required** action | Enum | The action that will be taken if the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed". **Required** -title | String | TI indicator title. -expirationTime | DateTimeOffset | The expiration time of the indicator. -severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High". -description | String | Description of the indicator. -recommendedActions | String | Recommended actions for the indicator. +title | String | TI indicator alert title. **Optional** +expirationTime | DateTimeOffset | The expiration time of the indicator. **Optional** +severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High". **Optional** +description | String | Description of the indicator. **Optional** +recommendedActions | String | TI indicator alert recommended actions. **Optional** ## Response diff --git a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md index 3d3df87d11..d8693cd298 100644 --- a/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md @@ -33,13 +33,13 @@ Property | Type | Description :---|:---|:--- indicator | String | Identity of the [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) entity. indicatorType | Enum | Type of the indicator. Possible values are: "FileSha1", "FileSha256", "IpAddress", "DomainName" and "Url" -title | String | Ti indicator title. +title | String | Ti indicator alert title. creationTimeDateTimeUtc | DateTimeOffset | The date and time when the indicator was created. createdBy | String | Identity of the user/application that submitted the indicator. expirationTime | DateTimeOffset | The expiration time of the indicator action | Enum | The action that will be taken if the indicator will be discovered in the organization. Possible values are: "Alert", "AlertAndBlock", and "Allowed" severity | Enum | The severity of the indicator. possible values are: "Informational", "Low", "Medium" and "High" description | String | Description of the indicator. -recommendedActions | String | Recommended actions for the indicator. +recommendedActions | String | TI indicator alert recommended actions. From 9a1053054c5bd7fc28e6e378a5be95bf4a7a3e8c Mon Sep 17 00:00:00 2001 From: David Laufer Date: Mon, 5 Nov 2018 09:32:35 +0200 Subject: [PATCH 139/201] Fix Advanced Hunting with Power BI --- ...advanced-query-sample-power-bi-user-token.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md index 202d338c71..b065578d98 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-sample-power-bi-user-token.md @@ -47,15 +47,12 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). let Query = "MachineInfo | where EventTime > ago(7d) | summarize EventCount=count(), LastSeen=max(EventTime) by MachineId", - - AdvancedHuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries/run", - - Response = Json.Document(Web.Contents( - AdvancedHuntingUrl, - [ - Query=[#"queryText"=Query] - ] - )), + + FormattedQuery= Uri.EscapeDataString(Query), + + AdvancedHuntingUrl = "https://api.securitycenter.windows.com/api/advancedqueries?key=" & FormattedQuery, + + Response = Json.Document(Web.Contents(AdvancedHuntingUrl)), TypeMap = #table( { "Type", "PowerBiType" }, @@ -83,7 +80,7 @@ You first need to [create an app](exposed-apis-create-app-nativeapp.md). Results = Response[Results], Rows = Table.FromRecords(Results, Schema[Name]), Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}})) - + in Table ``` From d9a525d22d74cc23115560609393805bbd8a718f Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 5 Nov 2018 11:01:47 -0800 Subject: [PATCH 140/201] update win10 version req --- windows/security/threat-protection/TOC.md | 2 +- ...ard-configure-windows-defender-advanced-threat-protection.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 3145f56988..a328d38a24 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -186,7 +186,7 @@ ### [Configure and manage capabilities](windows-defender-atp/onboard.md) #### [Configure attack surface reduction](windows-defender-atp/configure-attack-surface-reduction.md) ##### [Hardware-based isolation](windows-defender-application-guard/install-wd-app-guard.md) -###### [Confguration settings](windows-defender-application-guard/configure-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-guard/introduction-to-device-guard-virtualization-based-security-and-windows-defender-application-control.md) ###### [Memory integrity](windows-defender-exploit-guard/memory-integrity.md) diff --git a/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md index b2004cfea5..5c48e4903e 100644 --- a/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/onboard-configure-windows-defender-advanced-threat-protection.md @@ -42,7 +42,7 @@ For more information, see [Windows 10 Licensing](https://www.microsoft.com/en-us - Windows 7 SP1 Pro - Windows 8.1 Enterprise - Windows 8.1 Pro -- Windows 10 +- Windows 10, version 1607 or later - Windows 10 Enterprise - Windows 10 Education - Windows 10 Pro From 23b75b71fd96b857af51a79bf89d10217b7f6e76 Mon Sep 17 00:00:00 2001 From: jaimeo Date: Mon, 5 Nov 2018 11:04:33 -0800 Subject: [PATCH 141/201] initial import of text and images from blog post --- .../images/UR-driver-issue-detail.png | Bin 0 -> 87943 bytes .../deployment/images/UR-example-feedback.png | Bin 0 -> 126533 bytes windows/deployment/images/UR-monitor-main.png | Bin 0 -> 177680 bytes .../UR-update-progress-failed-detail.png | Bin 0 -> 100226 bytes .../upgrade-readiness-deploy-windows.md | 4 +- .../upgrade-readiness-monitor-deployment.md | 48 ++++++++++++++++++ 6 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 windows/deployment/images/UR-driver-issue-detail.png create mode 100644 windows/deployment/images/UR-example-feedback.png create mode 100644 windows/deployment/images/UR-monitor-main.png create mode 100644 windows/deployment/images/UR-update-progress-failed-detail.png create mode 100644 windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md diff --git a/windows/deployment/images/UR-driver-issue-detail.png b/windows/deployment/images/UR-driver-issue-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..933b2e2346d2422e693d2c852f051c1dfd3eb1b7 GIT binary patch literal 87943 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
      ~~B#e*Je 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 yM-ljU^ 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/images/UR-example-feedback.png b/windows/deployment/images/UR-example-feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..5a05bb54e154d81650b4cf4b65c940c2a6753979 GIT binary patch literal 126533 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 {{s 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/images/UR-monitor-main.png b/windows/deployment/images/UR-monitor-main.png new file mode 100644 index 0000000000000000000000000000000000000000..83904d3be2de80b1860b56a97e83a7bf1b71921b GIT binary patch literal 177680 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%0Ap^Tk#62*8Tu&%FL3djk>l42A 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 z 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 literal 0 HcmV?d00001 diff --git a/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md b/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md index b5f0b2b68b..3aabb7b13b 100644 --- a/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md +++ b/windows/deployment/upgrade/upgrade-readiness-deploy-windows.md @@ -1,8 +1,8 @@ --- -title: Upgrade Readiness - Get a list of computers that are upgrade-ready (Windows 10) +title: Upgrade Readiness - Get a list of computers that are upgrade ready (Windows 10) description: Describes how to get a list of computers that are ready to be upgraded in Upgrade Readiness. ms.prod: w10 -author: greg-lindsay +author: jaimeo ms.date: 04/19/2017 --- diff --git a/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md new file mode 100644 index 0000000000..0f5b9e3730 --- /dev/null +++ b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md @@ -0,0 +1,48 @@ +--- +title: Monitor deployment with Upgrade Readiness +description: Describes how to use Upgrade Readiness to monitor the deployment after Windows upgrades. +keywords: windows analytics, oms, operations management suite, prerequisites, requirements, upgrades, log analytics, +ms.localizationpriority: medium +ms.prod: w10 +author: jaimeo +ms.author: jaimeo +ms.date: 11/05/2018 +--- + +# Upgrade Readiness - Step 4: Monitor + +Now that you have started deploying an update with Upgrade Readiness, you can use it to monitor important elements. + +![Upgrade Readiness dialog showing "STEP 4: Monitor" and blades for "Update progress," "Driver issues," and "User feedback"](../images/UR-monitor-main.png) + + +## Update progress + +The **Update progress** blade allows you to monitor the progress and status of your deployment. Any device that has attepted to upgrade in the last 30 days displays the **DeploymentStatus**. You'll be able to see the number of computers that have successfully upgraded, failed to upgrade, are stalled, etc. {what does "uninstalled" mean? Should we have some more detailed explication of each of the states and what admin actions are recommended for each?} + + +Selecting this blade allows you to view device-level details about the deployment. For example, select **Failed**, to view the original operating system version, the target operating system version, and the reason the update failed for each of the devices that failed to upgrade. In the case of the device illustrated in the following image, an attempt was made to upgrade from Windows 10, version 1703 to 1709, but the operation timed out.' + +!["Update progress" blade showing detailed information after selecting the "failed" item](../images/UR-update-progress-failed-detail.png) + + +## Driver issues + +The **Driver issues** blade allows you to see Device Manager errors for your upgraded devices. We include data for all compatibility-related device errors, such as "driver not found" and "driver not started". The blade summarizes errors by error type, but you can select a particular error type to see device-level details about which device(s) are failing and where to obtain a driver. + + +For example, by selecting error code **28 - driver not installed**, you would see that the device below is missing the driver for a network controller. Upgrade Readiness also notifies that a suitable driver is available online through Windows Update. If this device is configured to automatically receive updates from Windows Update, this issue would likely resolve itself following the device's next Windows Update scan. If this device does not automatically receive updates from Windows Update, you would need to deliver the driver manually. + +!["Driver issue" blade showing detailed information after selecting a specific driver error](../images/UR-driver-issue-detail.png) + +## User Feedback + +The **User Feedback** blade focuses on gathering subjective feedback from your end users. If a user submits feedback through Feedback Hub app on a device in your workspace, we will make that feedback visible to you in this blade. The Feedback Hub app is built into Windows 10 and can be accessed by typing "Feedback Hub" in the Cortana search bar. + + +We recommend that you encourage your end users to submit any feedback they have through Feedback Hub. Not only will this feedback be sent directly to Microsoft for review, but you'll also be able to see it by using Upgrade Readiness. You should be aware that **feedback submitted through Feedback Hub will be publicly visible**, so it's best to avoid submitting feedback about internal line-of-business applications. + +When viewing user feedback in Upgrade Readiness, you'll be able to see the raw "Title" and "Feedback" text from the user's submission in Feedback Hub, as well as the number of upvotes the submission has received. (Since feedback is publicly visible, the number of upvotes is a global value and not specific to your company.) If a Microsoft engineer has responded to the submission in Feedback Hub, we'll pull in the Microsoft response for you to see as well. + +![Example user feedback item](../images/UR-example-feedback.png) + \ No newline at end of file From edcdd4edfc77ae91064dbb19cd06c9ad2c461126 Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Tue, 6 Nov 2018 11:12:17 -0800 Subject: [PATCH 142/201] updated scores --- .../intelligence/top-scoring-industry-antivirus-tests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 3377c08bfd..55c9c930a5 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -31,7 +31,7 @@ The AV-TEST Product Review and Certification Report tests on three categories: p ### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** - Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 9 of the 12 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). + Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 14 of the 16 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). ### May-June 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/june-2018/microsoft-windows-defender-antivirus-4.12-182374/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2v60I?ocid=cx-docs-avreports) From f37cfe5b44da19e7687c5ef4194eab30c2cae443 Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Tue, 6 Nov 2018 11:14:03 -0800 Subject: [PATCH 143/201] updated scores --- .../intelligence/top-scoring-industry-antivirus-tests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 55c9c930a5..58e315b9d0 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -31,7 +31,7 @@ The AV-TEST Product Review and Certification Report tests on three categories: p ### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** - Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 14 of the 16 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). + Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 11 of the 12 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). ### May-June 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/june-2018/microsoft-windows-defender-antivirus-4.12-182374/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2v60I?ocid=cx-docs-avreports) From 126402c462f01a51c838375e366ec7d4f9a4b796 Mon Sep 17 00:00:00 2001 From: Justin Hall Date: Tue, 6 Nov 2018 13:56:41 -0800 Subject: [PATCH 144/201] edit --- .../protect-enterprise-data-using-wip.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md index 8ce020a25f..ed41a8ef23 100644 --- a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md +++ b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md @@ -8,7 +8,7 @@ ms.mktglfcycl: explore ms.sitesec: library ms.pagetype: security ms.author: justinha -ms.date: 06/18/2018 +ms.date: 11/06/2018 ms.localizationpriority: medium --- @@ -24,6 +24,10 @@ With the increase of employee-owned devices in the enterprise, there’s also an Windows Information Protection (WIP), previously known as enterprise data protection (EDP), helps to protect against this potential data leakage without otherwise interfering with the employee experience. WIP also helps to protect enterprise apps and data against accidental data leak on enterprise-owned devices and personal devices that employees bring to work without requiring changes to your environment or other apps. Finally, another data protection technology, Azure Rights Management also works alongside WIP to extend data protection for data that leaves the device, such as when email attachments are sent from an enterprise aware version of a rights management mail client. +## Video: Protect enterprise data from being accidentally copied to the wrong place + +> [!Video https://www.youtube.com/embed/1s09SrwxccM] + ## Prerequisites You’ll need this software to run WIP in your enterprise: From a94397275a6917bad14c86e207fe0c041d0f29d0 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Tue, 6 Nov 2018 14:11:52 -0800 Subject: [PATCH 145/201] add link to PDF --- ...uirements-windows-defender-advanced-threat-protection.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md index db250caeda..97ff492e3b 100644 --- a/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/minimum-requirements-windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 07/01/2018 +ms.date: 11/06/2018 --- # Minimum requirements for Windows Defender ATP @@ -30,7 +30,9 @@ Windows Defender Advanced Threat Protection requires one of the following Micros - Windows 10 Education E5 - Microsoft 365 E5 (M365 E5) which includes Windows 10 Enterprise E5 -For more information, see [Windows 10 Licensing](https://www.microsoft.com/en-us/Licensing/product-licensing/windows10.aspx#tab=2). +For more information on the array of features in Windows 10 editions, see [Compare Windows 10 editions](https://www.microsoft.com/en-us/windowsforbusiness/compare). + +For a detailed comparison table of Windows 10 commercial edition comparison, see the [comparison PDF](https://wincom.blob.core.windows.net/documents/Windows10_Commercial_Comparison.pdf). ## Related topic From fe06958bce9082270a36c1af07e25e2e00e9d0bf Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Tue, 6 Nov 2018 15:07:26 -0800 Subject: [PATCH 146/201] updated graphs --- .../intelligence/images/PrevalentMalware.png | Bin 0 -> 25161 bytes .../intelligence/images/PrevalentMalware1.png | Bin 23173 -> 0 bytes .../intelligence/images/RealWorld.png | Bin 0 -> 22723 bytes .../intelligence/images/RealWorld1.png | Bin 24104 -> 0 bytes .../top-scoring-industry-antivirus-tests.md | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 windows/security/threat-protection/intelligence/images/PrevalentMalware.png delete mode 100644 windows/security/threat-protection/intelligence/images/PrevalentMalware1.png create mode 100644 windows/security/threat-protection/intelligence/images/RealWorld.png delete mode 100644 windows/security/threat-protection/intelligence/images/RealWorld1.png diff --git a/windows/security/threat-protection/intelligence/images/PrevalentMalware.png b/windows/security/threat-protection/intelligence/images/PrevalentMalware.png new file mode 100644 index 0000000000000000000000000000000000000000..8d93b4ed9d217b7ba26044b33b374b02ba9d5666 GIT binary patch literal 25161 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

      |71gQhwUr-9f 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 diff --git a/windows/security/threat-protection/intelligence/images/RealWorld.png b/windows/security/threat-protection/intelligence/images/RealWorld.png new file mode 100644 index 0000000000000000000000000000000000000000..82b7983c38d06fc6ab369bf678c4f56007db0ddd GIT binary patch literal 22723 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
      ![AV-Comparatives Logo](./images/av-comparatives-logo-3.png) From e36d84fe21ef28b0f04f09517b44d7cf671b42ab Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Tue, 6 Nov 2018 15:08:33 -0800 Subject: [PATCH 147/201] updated scores --- .../intelligence/top-scoring-industry-antivirus-tests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 835d1e92f6..43bef2e93e 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -31,7 +31,7 @@ The AV-TEST Product Review and Certification Report tests on three categories: p ### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** - Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 11 of the 12 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). + Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 14 of the 16 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). ### May-June 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/june-2018/microsoft-windows-defender-antivirus-4.12-182374/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2v60I?ocid=cx-docs-avreports) From 6f06cc2b4c8372c443ae3e3d9336304a8c97e6cb Mon Sep 17 00:00:00 2001 From: Jeanie Decker Date: Wed, 7 Nov 2018 15:33:04 +0000 Subject: [PATCH 148/201] Merged PR 12646: fix wmi bridge script and SH oobe --- .../first-run-program-surface-hub.md | 2 +- ...ses-deployment-surface-hub-multi-forest.md | 2 +- ...change-history-for-configure-windows-10.md | 8 +- windows/configuration/kiosk-mdm-bridge.md | 100 +++++++++--------- 4 files changed, 59 insertions(+), 53 deletions(-) diff --git a/devices/surface-hub/first-run-program-surface-hub.md b/devices/surface-hub/first-run-program-surface-hub.md index 2574c2cbf6..6fcee63f5d 100644 --- a/devices/surface-hub/first-run-program-surface-hub.md +++ b/devices/surface-hub/first-run-program-surface-hub.md @@ -396,7 +396,7 @@ Once the device has been domain joined, you must specify a security group from t The following input is required: - **Domain:** This is the fully qualified domain name (FQDN) of the domain that you want to join. A security group from this domain can be used to manage the device. -- **User name:** The user name of an account that has sufficient permission to join the specified domain. This account must be a computer object. +- **User name:** The user name of an account that has sufficient permission to join the specified domain. - **Password:** The password for the account. After the credentials are verified, you will be asked to type a security group name. This input is required. diff --git a/devices/surface-hub/on-premises-deployment-surface-hub-multi-forest.md b/devices/surface-hub/on-premises-deployment-surface-hub-multi-forest.md index babce30d59..cae7e9639e 100644 --- a/devices/surface-hub/on-premises-deployment-surface-hub-multi-forest.md +++ b/devices/surface-hub/on-premises-deployment-surface-hub-multi-forest.md @@ -80,7 +80,7 @@ If you have a multi-forest on-premises deployment with Microsoft Exchange 2013 o 6. You now need to change the room mailbox to a linked mailbox: ```PowerShell - $cred=Get-Credential AuthForest\LinkedRoomTest1 + $cred=Get-Credential AuthForest\ADAdmin Set-mailbox -Alias LinkedRoomTest1 -LinkedMasterAccount AuthForest\LinkedRoomTest1 -LinkedDomainController AuthForest-4939.AuthForest.extest.contoso.com -Name LinkedRoomTest1 -LinkedCredential $cred -Identity LinkedRoomTest1 ``` diff --git a/windows/configuration/change-history-for-configure-windows-10.md b/windows/configuration/change-history-for-configure-windows-10.md index f14d66e522..d7be6815e1 100644 --- a/windows/configuration/change-history-for-configure-windows-10.md +++ b/windows/configuration/change-history-for-configure-windows-10.md @@ -10,13 +10,19 @@ ms.localizationpriority: medium author: jdeckerms ms.author: jdecker ms.topic: article -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- # Change history for Configure Windows 10 This topic lists new and updated topics in the [Configure Windows 10](index.md) documentation for Windows 10 and Windows 10 Mobile. +## Novermber 2018 + +New or changed topic | Description +--- | --- +[Use MDM Bridge WMI Provider to create a Windows 10 kiosk](kiosk-mdm-bridge.md) | Updated script. + ## October 2018 New or changed topic | Description diff --git a/windows/configuration/kiosk-mdm-bridge.md b/windows/configuration/kiosk-mdm-bridge.md index 9738a64aae..bb333f0c3f 100644 --- a/windows/configuration/kiosk-mdm-bridge.md +++ b/windows/configuration/kiosk-mdm-bridge.md @@ -8,7 +8,7 @@ ms.mktglfcycl: manage ms.sitesec: library author: jdeckerms ms.localizationpriority: medium -ms.date: 07/30/2018 +ms.date: 11/07/2018 --- # Use MDM Bridge WMI Provider to create a Windows 10 kiosk @@ -32,55 +32,55 @@ $nameSpaceName="root\cimv2\mdm\dmmap" $className="MDM_AssignedAccess" $obj = Get-CimInstance -Namespace $namespaceName -ClassName $className $obj.Configuration = @" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - MultiAppKioskUser - - - - +<?xml version="1.0" encoding="utf-8" ?> +<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config"> + <Profiles> + <Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"> + <AllAppsList> + <AllowedApps> + <App AppUserModelId="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" /> + <App AppUserModelId="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" /> + <App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" /> + <App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" /> + <App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" /> + <App DesktopAppPath="%windir%\system32\mspaint.exe" /> + <App DesktopAppPath="C:\Windows\System32\notepad.exe" /> + </AllowedApps> + </AllAppsList> + <StartLayout> + <![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification"> + <LayoutOptions StartTileGroupCellWidth="6" /> + <DefaultLayoutOverride> + <StartLayoutCollection> + <defaultlayout:StartLayout GroupCellWidth="6"> + <start:Group Name="Group1"> + <start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" /> + <start:Tile Size="2x2" Column="4" Row="2" AppUserModelID="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" /> + <start:Tile Size="2x2" Column="4" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" /> + <start:Tile Size="2x2" Column="4" Row="4" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" /> + <start:Tile Size="4x2" Column="0" Row="4" AppUserModelID="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" /> + </start:Group> + <start:Group Name="Group2"> + <start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" /> + <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk" /> + </start:Group> + </defaultlayout:StartLayout> + </StartLayoutCollection> + </DefaultLayoutOverride> + </LayoutModificationTemplate> + ]]> + </StartLayout> + <Taskbar ShowTaskbar="true"/> + </Profile> + </Profiles> + <Configs> + <Config> + <Account>MultiAppKioskUser</Account> + <DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/> + </Config> + </Configs> +</AssignedAccessConfiguration> "@ - + Set-CimInstance -CimInstance $obj ``` From 200b733f9117d10fc0682e1b8703a2f978df257b Mon Sep 17 00:00:00 2001 From: "Andrea Bichsel (Aquent LLC)" Date: Wed, 7 Nov 2018 17:13:23 +0000 Subject: [PATCH 149/201] Lsass rule does honor exclusions. --- .../customize-attack-surface-reduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md b/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md index a948e7db7e..8bbe633287 100644 --- a/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md +++ b/windows/security/threat-protection/windows-defender-exploit-guard/customize-attack-surface-reduction.md @@ -58,7 +58,7 @@ Block JavaScript or VBScript from launching downloaded executable content | [!in Block executable content from email client and webmail | [!include[Check mark no](images/svg/check-no.svg)] | BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550 Block executable files from running unless they meet a prevalence, age, or trusted list criteria | [!include[Check mark yes](images/svg/check-yes.svg)] | 01443614-cd74-433a-b99e-2ecdc07bfc25 Use advanced protection against ransomware | [!include[Check mark yes](images/svg/check-yes.svg)] | c1db55ab-c21a-4637-bb3f-a12568109d35 -Block credential stealing from the Windows local security authority subsystem (lsass.exe) | [!include[Check mark no](images/svg/check-no.svg)] | 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 +Block credential stealing from the Windows local security authority subsystem (lsass.exe) | [!include[Check mark yes](images/svg/check-yes.svg)] | 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 Block process creations originating from PSExec and WMI commands | [!include[Check mark yes](images/svg/check-yes.svg)] | d1e49aac-8f56-4280-b9ba-993a6d77406c Block untrusted and unsigned processes that run from USB | [!include[Check mark yes](images/svg/check-yes.svg)] | b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4 Block Office communication applications from creating child processes | [!include[Check mark yes](images/svg/check-yes.svg)] | 26190899-1602-49e8-8b27-eb1d0a1ce869 From f66ed3b32c9ae5d1792e3dd36571709f540829df Mon Sep 17 00:00:00 2001 From: jaimeo Date: Wed, 7 Nov 2018 09:59:20 -0800 Subject: [PATCH 150/201] fixed some typos and yooked up TOC --- windows/deployment/TOC.md | 1 + .../upgrade-readiness-monitor-deployment.md | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index ce9e1629c5..aa375d690f 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -260,6 +260,7 @@ ##### [Step 1: Identify apps](upgrade/upgrade-readiness-identify-apps.md) ##### [Step 2: Resolve issues](upgrade/upgrade-readiness-resolve-issues.md) ##### [Step 3: Deploy Windows](upgrade/upgrade-readiness-deploy-windows.md) +##### [Step 4: Monitor deployment](upgrade/upgrade-readiness-monitor-deployment.md) ##### [Additional insights](upgrade/upgrade-readiness-additional-insights.md) ##### [Targeting a new operating system version](upgrade/upgrade-readiness-target-new-OS.md) ### [Monitor Windows Updates with Update Compliance](update/update-compliance-monitor.md) diff --git a/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md index 0f5b9e3730..be3d2aee32 100644 --- a/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md +++ b/windows/deployment/upgrade/upgrade-readiness-monitor-deployment.md @@ -6,7 +6,7 @@ ms.localizationpriority: medium ms.prod: w10 author: jaimeo ms.author: jaimeo -ms.date: 11/05/2018 +ms.date: 11/07/2018 --- # Upgrade Readiness - Step 4: Monitor @@ -18,26 +18,26 @@ Now that you have started deploying an update with Upgrade Readiness, you can us ## Update progress -The **Update progress** blade allows you to monitor the progress and status of your deployment. Any device that has attepted to upgrade in the last 30 days displays the **DeploymentStatus**. You'll be able to see the number of computers that have successfully upgraded, failed to upgrade, are stalled, etc. {what does "uninstalled" mean? Should we have some more detailed explication of each of the states and what admin actions are recommended for each?} +The **Update progress** blade allows you to monitor the progress and status of your deployment. Any device that has attepted to upgrade in the last 30 days displays the **DeploymentStatus** attribute. You'll be able to see the number of computers that have successfully upgraded, failed to upgrade, are stalled, etc. -Selecting this blade allows you to view device-level details about the deployment. For example, select **Failed**, to view the original operating system version, the target operating system version, and the reason the update failed for each of the devices that failed to upgrade. In the case of the device illustrated in the following image, an attempt was made to upgrade from Windows 10, version 1703 to 1709, but the operation timed out.' +Selecting this blade allows you to view device-level details about the deployment. For example, select **Failed** to view the original operating system version, the target operating system version, and the reason the update failed for each of the devices that failed to upgrade. In the case of the device illustrated in the following image, an attempt was made to upgrade from Windows 10, version 1703 to 1709, but the operation timed out. !["Update progress" blade showing detailed information after selecting the "failed" item](../images/UR-update-progress-failed-detail.png) ## Driver issues -The **Driver issues** blade allows you to see Device Manager errors for your upgraded devices. We include data for all compatibility-related device errors, such as "driver not found" and "driver not started". The blade summarizes errors by error type, but you can select a particular error type to see device-level details about which device(s) are failing and where to obtain a driver. +The **Driver issues** blade allows you to see Device Manager errors for your upgraded devices. We include data for all compatibility-related device errors, such as "driver not found" and "driver not started." The blade summarizes errors by error type, but you can select a particular error type to see device-level details about which device(s) are failing and where to obtain a driver. -For example, by selecting error code **28 - driver not installed**, you would see that the device below is missing the driver for a network controller. Upgrade Readiness also notifies that a suitable driver is available online through Windows Update. If this device is configured to automatically receive updates from Windows Update, this issue would likely resolve itself following the device's next Windows Update scan. If this device does not automatically receive updates from Windows Update, you would need to deliver the driver manually. +For example, by selecting error code **28 - driver not installed**, you would see that the device in the following image is missing the driver for a network controller. Upgrade Readiness also notifies that a suitable driver is available online through Windows Update. If this device is configured to automatically receive updates from Windows Update, this issue would likely resolve itself following the device's next Windows Update scan. If this device does not automatically receive updates from Windows Update, you would need to deliver the driver manually. !["Driver issue" blade showing detailed information after selecting a specific driver error](../images/UR-driver-issue-detail.png) -## User Feedback +## User feedback -The **User Feedback** blade focuses on gathering subjective feedback from your end users. If a user submits feedback through Feedback Hub app on a device in your workspace, we will make that feedback visible to you in this blade. The Feedback Hub app is built into Windows 10 and can be accessed by typing "Feedback Hub" in the Cortana search bar. +The **User Feedback** blade focuses on gathering subjective feedback from your end users. If a user submits feedback through the Feedback Hub app on a device in your workspace, we will make that feedback visible to you in this blade. The Feedback Hub app is built into Windows 10 and can be accessed by typing "Feedback Hub" in the Cortana search bar. We recommend that you encourage your end users to submit any feedback they have through Feedback Hub. Not only will this feedback be sent directly to Microsoft for review, but you'll also be able to see it by using Upgrade Readiness. You should be aware that **feedback submitted through Feedback Hub will be publicly visible**, so it's best to avoid submitting feedback about internal line-of-business applications. From 3f6444634a5f7df460d3f5603ed5d6d76839d3d7 Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Wed, 7 Nov 2018 11:25:05 -0800 Subject: [PATCH 151/201] added note --- .../intelligence/top-scoring-industry-antivirus-tests.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 43bef2e93e..34ca3bda7a 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -18,16 +18,14 @@ ms.date: 09/05/2018 We want to be transparent and have gathered top industry reports that demonstrate our enterprise antivirus capabilities. Note that these tests only provide results for antivirus and do not test for additional security protections. In the real world, millions of devices are protected from cyberattacks every day, sometimes [milliseconds after a campaign starts](https://cloudblogs.microsoft.com/microsoftsecure/2018/03/07/behavior-monitoring-combined-with-machine-learning-spoils-a-massive-dofoil-coin-mining-campaign?ocid=cx-docs-avreports). Windows Defender Antivirus is part of the [next generation](https://www.youtube.com/watch?v=Xy3MOxkX_o4) Windows Defender Advanced Threat Protection ([Windows Defender ATP](https://www.microsoft.com/WindowsForBusiness/windows-atp?ocid=cx-docs-avreports)) security stack which addresses the latest and most sophisticated threats today. In many cases, customers might not even know they were protected. That's because Windows Defender Antivirus detects and stops malware at first sight by using [machine learning](https://cloudblogs.microsoft.com/microsoftsecure/2018/06/07/machine-learning-vs-social-engineering?ocid=cx-docs-avreports), [artificial intelligence](https://cloudblogs.microsoft.com/microsoftsecure/2018/02/14/how-artificial-intelligence-stopped-an-emotet-outbreak?ocid=cx-docs-avreports), behavioral analysis, and other advanced technologies. - -> [!TIP] -> Learn why [Windows Defender Antivirus is the most deployed in the enterprise](https://cloudblogs.microsoft.com/microsoftsecure/2018/03/22/why-windows-defender-antivirus-is-the-most-deployed-in-the-enterprise?ocid=cx-docs-avreports). -



      ![AV-TEST logo](./images/av-test-logo.png) ## AV-TEST: Perfect protection score of 6.0/6.0 in the latest test The AV-TEST Product Review and Certification Report tests on three categories: protection, performance, and usability. The scores listed below are for the Protection category which has two scores: Real-World Testing and the AV-TEST reference set (known as "Prevalent Malware"). +> [!NOTE] +> [Download our analysis of the latest results](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) ### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** From 0cb68bbfe0e8808c561315e1f2aa164dfb8c8e2c Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Wed, 7 Nov 2018 12:00:39 -0800 Subject: [PATCH 152/201] updated text --- .../intelligence/top-scoring-industry-antivirus-tests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index 34ca3bda7a..ed1a13c200 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -25,9 +25,9 @@ In the real world, millions of devices are protected from cyberattacks every day The AV-TEST Product Review and Certification Report tests on three categories: protection, performance, and usability. The scores listed below are for the Protection category which has two scores: Real-World Testing and the AV-TEST reference set (known as "Prevalent Malware"). > [!NOTE] -> [Download our analysis of the latest results](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) +> [Download our latest analysis: Examining the AV-TEST July-August results](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) -### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) **Latest** +### July-August 2018 AV-TEST Business User test: [Protection score 6.0/6.0](https://www.av-test.org/en/antivirus/business-windows-client/windows-10/august-2018/microsoft-windows-defender-antivirus-4.12--4.18-183212/) | [Analysis](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2IL3Y) Windows Defender Antivirus achieved an overall Protection score of 6.0/6.0, detecting 100% of 20,022 malware samples. With the latest results, Windows Defender Antivirus has achieved 100% on 14 of the 16 most recent antivirus tests (combined "Real-World" and "Prevalent malware"). From de2ca4f5e542e167cf943a8f1329afa53f4259bb Mon Sep 17 00:00:00 2001 From: Brian Lich Date: Wed, 7 Nov 2018 21:36:06 +0000 Subject: [PATCH 153/201] Additional diagnostic data events --- ...ndows-diagnostic-events-and-fields-1703.md | 497 +++++- ...ndows-diagnostic-events-and-fields-1709.md | 1092 +++++++++--- ...ndows-diagnostic-events-and-fields-1803.md | 1331 ++++++++++++++- ...ndows-diagnostic-events-and-fields-1809.md | 1504 ++++++++++++++++- 4 files changed, 4075 insertions(+), 349 deletions(-) diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md index dce0c91085..ada643a31a 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 09/10/2018 +ms.date: 11/07/2018 --- @@ -28,6 +28,7 @@ Use this article to learn about diagnostic events, grouped by event area, and th You can learn more about Windows functional and diagnostic data through these articles: + - [Windows 10, version 1809 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1809.md) - [Windows 10, version 1803 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1803.md) - [Windows 10, version 1709 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1709.md) @@ -60,15 +61,15 @@ The following fields are available: - **DecisionMatchingInfoPostUpgrade_RS3** The total DecisionMatchingInfoPostUpgrade objects targeting the next release of Windows on this device. - **DecisionMediaCenter_RS3** The total DecisionMediaCenter objects targeting the next release of Windows on this device. - **DecisionSystemBios_RS3** The total DecisionSystemBios objects targeting the next release of Windows on this device. -- **InventoryLanguagePack** The count of DecisionApplicationFile objects present on this machine targeting the next release of Windows -- **InventorySystemBios** The count of DecisionDevicePnp objects present on this machine targeting the next release of Windows -- **PCFP** The count of DecisionDriverPackage objects present on this machine targeting the next release of Windows -- **SystemProcessorCompareExchange** The count of DecisionMatchingInfoBlock objects present on this machine targeting the next release of Windows -- **SystemProcessorNx** The count of DataSourceMatchingInfoPostUpgrade objects present on this machine targeting the next release of Windows -- **SystemProcessorSse2** The count of DecisionMatchingInfoPostUpgrade objects present on this machine targeting the next release of Windows -- **SystemWim** The count of DecisionMediaCenter objects present on this machine targeting the next release of Windows -- **SystemWindowsActivationStatus** The count of DecisionSystemBios objects present on this machine targeting the next release of Windows -- **SystemWlan** The count of InventoryApplicationFile objects present on this machine. +- **InventoryLanguagePack** The total InventoryLanguagePack objects that are present on this device. +- **InventorySystemBios** The total InventorySystemBios objects that are present on this device. +- **PCFP** An ID for the system that is calculated by hashing hardware identifiers. +- **SystemProcessorCompareExchange** The total SystemProcessorCompareExchange objects that are present on this device. +- **SystemProcessorNx** The total SystemProcessorNx objects that are present on this device. +- **SystemProcessorSse2** The total SystemProcessorSse2 objects that are present on this device. +- **SystemWim** The total SystemWim objects that are present on this device +- **SystemWindowsActivationStatus** The total SystemWindowsActivationStatus objects that are present on this device. +- **SystemWlan** The total SystemWlan objects that are present on this device. - **Wmdrm_RS3** The total Wmdrm objects targeting the next release of Windows on this device. @@ -334,7 +335,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -670,7 +671,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1472,6 +1473,12 @@ The following fields are available: - **SocketCount** Number of physical CPU sockets of the machine. +### Census.Security + +Provides information on several important data points about security settings. + + + ### Census.Speech This event is used to gather basic speech settings on the device. @@ -2058,6 +2065,23 @@ The following fields are available: - **devinv.dll** The file version of the Device inventory component. +### Microsoft.Windows.Inventory.Core.FileSigningInfoAdd + +This event enumerates the signatures of files, either driver packages or application executables. For driver packages, this data is collected on demand via Telecommand to limit it only to unrecognized driver packages, saving time for the client and space on the server. For applications, this data is collected for up to 10 random executables on a system. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **CatalogSigners** Signers from catalog. Each signer starts with Chain. +- **DriverPackageStrongName** Optional. Available only if FileSigningInfo is collected on a driver package. +- **EmbeddedSigners** Embedded signers. Each signer starts with Chain. +- **FileName** The file name of the file whose signatures are listed. +- **FileType** Either exe or sys, depending on if a driver package or application executable. +- **InventoryVersion** The version of the inventory file generating the events. +- **Thumbprint** Comma separated hash of the leaf node of each signer. Semicolon is used to separate CatalogSigners from EmbeddedSigners. There will always be a trailing comma. + + ### Microsoft.Windows.Inventory.Core.InventoryApplicationAdd This event sends basic metadata about an application on the system to help keep Windows up to date. @@ -2251,7 +2275,7 @@ The following fields are available: - **Enumerator** The bus that enumerated the device - **HWID** A JSON array that provides the value and order of the HWID tree for the device. See [HWID](#hwid). - **Inf** The INF file name. -- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/library/windows/hardware/ff543130.aspx +- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/en-us/library/windows/hardware/ff543130.aspx - **InventoryVersion** The version of the inventory file generating the events. - **LowerClassFilters** Lower filter class drivers IDs installed for the device. - **LowerFilters** Lower filter drivers IDs installed for the device @@ -2379,6 +2403,90 @@ The following fields are available: - **InventoryVersion** The version of the inventory file generating the events. +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInAdd + +Invalid variant - Provides data on the installed Office Add-ins + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInRemove + +Indicates that this particular data object represented by the objectInstanceId is no longer present. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInStartSync + +This event indicates that a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIdentifiersAdd + +Provides data on the Office identifiers. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIdentifiersStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIESettingsAdd + +Provides data on Office-related Internet Explorer features. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeIESettingsStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeInsightsAdd + +This event provides insight data on the installed Office products + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeProductsAdd + +Describes Office Products installed. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeProductsStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeSettingsAdd + +This event describes various Office settings + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeSettingsStartSync + +Indicates a new sync is being generated for this object type. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoAdd + +Provides data on Unified Update Platform (UUP) products and what version they are at. + + + +### Microsoft.Windows.Inventory.General.InventoryMiscellaneousUUPInfoStartSync + +Diagnostic event to indicate a new sync is being generated for this object type. + + + ### Microsoft.Windows.Inventory.Indicators.Checksum This event summarizes the counts for the InventoryMiscellaneousUexIndicatorAdd events. @@ -2546,14 +2654,14 @@ The following fields are available: - **AppVersion** The version of the app. - **BuildArch** Is the architecture x86 or x64? - **Environment** Is the device on the production or int service? -- **IsMSFTInternal** Is this an internal Microsoft device? -- **MachineGuid** The CEIP machine ID. +- **IsMSFTInternal** TRUE if the device is an internal Microsoft device. +- **MachineGuid** The GUID (Globally Unique ID) that identifies the machine for the CEIP (Customer Experience Improvement Program). - **Market** Which market is this in? - **OfficeVersion** The version of Office that is installed. - **OneDriveDeviceId** The OneDrive device ID. - **OSDeviceName** Only if the device is internal to Microsoft, the device name. - **OSUserName** Only if the device is internal to Microsoft, the user name. -- **UserGuid** A unique global user identifier. +- **UserGuid** The GUID (Globally Unique ID) of the user currently logged in. ### Microsoft.OneDrive.Sync.Updater.ComponentInstallState @@ -2605,12 +2713,12 @@ The following fields are available: ### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult -This event determines the outcome of the operation. +This event sends information describing the result of the update. The following fields are available: - **hr** The HResult of the operation. -- **IsLoggingEnabled** Is logging enabled? +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. - **UpdaterVersion** The version of the updater. @@ -2642,6 +2750,43 @@ The following fields are available: - **winInetError** The HResult of the operation. +## Other events + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + +The following fields are available: + +- **ActivationUri** Activation URI (Uniform Resource Identifier) used in the attempt to activate the app. +- **AppId** The Xbox LIVE Title ID. +- **AppUserModelId** The AUMID (Application User Model ID) of the app to activate. +- **Result** The HResult error. +- **UserId** The Xbox LIVE User ID (XUID). + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + +The following fields are available: + +- **AppActionId** The ID of the application action. +- **AppCurrentVisibilityState** The ID of the current application visibility state. +- **AppId** The Xbox LIVE Title ID of the app. +- **AppPackageFullName** The full name of the application package. +- **AppPreviousVisibilityState** The ID of the previous application visibility state. +- **AppSessionId** The application session ID. +- **AppType** The type ID of the application (AppType_NotKnown, AppType_Era, AppType_Sra, AppType_Uwa). +- **BCACode** The BCA (Burst Cutting Area) mark code of the optical disc used to launch the application. +- **DurationMs** The amount of time (in milliseconds) since the last application state transition. +- **IsTrialLicense** This boolean value is TRUE if the application is on a trial license. +- **LicenseType** The type of licensed used to authorize the app (0 - Unknown, 1 - User, 2 - Subscription, 3 - Offline, 4 - Disc). +- **LicenseXuid** If the license type is 1 (User), this field contains the XUID (Xbox User ID) of the registered owner of the license. +- **ProductGuid** The Xbox product GUID (Globally-Unique ID) of the application. +- **UserId** The XUID (Xbox User ID) of the current user. + + ## Remediation events ### Microsoft.Windows.Remediation.Applicable @@ -2807,7 +2952,7 @@ The following fields are available: - **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. - **usoScanIsUserLoggedOn** TRUE if the user is logged on. - **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). -- **usoScanType** The type of USO (Update Session Orchestrator) scan (Interactive or Background). +- **usoScanType** The type of USO (Update Session Orchestrator) scan: "Interactive" or "Background". - **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. - **WindowsInstallerFolderSizeInMegabytes** The size of the Windows Installer folder, measured in Megabytes. - **WindowsOldFolderSizeInMegabytes** The size of the Windows.OLD folder, measured in Megabytes. @@ -2939,11 +3084,11 @@ This event reports whether a plug-in started, to help ensure Windows is up to da The following fields are available: -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **PackageVersion** The version number of the current remediation package. -- **PluginName** The name of the plug-in specified for each generic plug-in event. -- **Result** The HRESULT for Detection or Perform Action phases of the plug-in. +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. ### Microsoft.Windows.Remediation.wilResult @@ -3821,7 +3966,7 @@ The following fields are available: - **RelatedCV** The previous Correlation Vector that was used before swapping with a new one - **RepeatFailFlag** Indicates whether this specific piece of content had previously failed to download. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Windows Store, etc.). - **Setup360Phase** If the download is for an operating system upgrade, this datapoint indicates which phase of the upgrade is underway. - **ShippingMobileOperator** The mobile operator that a device shipped on. - **StatusCode** Indicates the result of a Download event (success, cancellation, failure code HResult). @@ -4118,6 +4263,22 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgent_FellBackToCanonical + +This event collects information when Express could not be used, and the update had to fall back to “canonical” during the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **PackageCount** The number of packages that fell back to “canonical”. +- **PackageList** PackageIDs which fell back to “canonical”. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + ### Update360Telemetry.UpdateAgent_Initialize This event sends data during the initialize phase of updating Windows. @@ -4152,6 +4313,22 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgent_Merge + +This event sends data on the merge phase when updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current reboot. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + ### Update360Telemetry.UpdateAgent_ModeStart This event sends data for the start of each mode during the process of updating Windows. @@ -4184,6 +4361,130 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgentDownloadRequest + +This event sends data for the download request phase of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to PC and Mobile. + +The following fields are available: + +- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. +- **DownloadRequests** Number of times a download was retried. +- **ErrorCode** The error code returned for the current download request phase. +- **ExtensionName** Indicates whether the payload is related to Operating System content or a plugin. +- **FlightId** Unique ID for each flight. +- **InternalFailureResult** Indicates a non-fatal error from a plugin. +- **ObjectId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **PackageCountOptional** # of optional packages requested. +- **PackageCountRequired** # of required packages requested. +- **PackageCountTotal** Total # of packages needed. +- **PackageCountTotalCanonical** Total number of canonical packages. +- **PackageCountTotalDiff** Total number of diff packages. +- **PackageCountTotalExpress** Total number of express packages. +- **PackageExpressType** Type of express package. +- **PackageSizeCanonical** Size of canonical packages in bytes. +- **PackageSizeDiff** Size of diff packages in bytes. +- **PackageSizeExpress** Size of express packages in bytes. +- **RangeRequestState** Indicates the range request type used. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the download request phase of update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt (same value for initialize, download, install commit phases). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentInitialize + +This event sends data for the initialize phase of updating Windows via the new Unified Update Platform (UUP) scenario, which is applicable to both PCs and Mobile. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **FlightMetadata** Contains the FlightId and the build being flighted. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the install phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionData** String containing instructions to update agent for processing FODs and DUICs (Null for other scenarios). +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentMitigationResult + +This event sends data indicating the result of each update agent mitigation. + +The following fields are available: + +- **Applicable** Indicates whether the mitigation is applicable for the current update. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightId** Unique identifier for each flight. +- **Index** The mitigation index of this particular mitigation. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly name of the mitigation. +- **ObjectId** Unique value for each Update Agent mode. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentMitigationSummary + +This event sends a summary of all the update agent mitigations available for an this update. + + + +### Update360Telemetry.UpdateAgentModeStart + +This event sends data for the start of each mode during the process of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to both PCs and Mobile. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **Mode** Indicates the mode that has started. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. +- **Version** Version of update + + +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + + + +### Update360Telemetry.UpdateAgentSetupBoxLaunch + +The UpdateAgent_SetupBoxLaunch event sends data for the launching of the setup box when updating Windows via the new Unified Update Platform (UUP) scenario. This event is only applicable to PCs. + +The following fields are available: + +- **ContainsExpressPackage** Indicates whether the download package is express. +- **FlightId** Unique ID for each flight. +- **FreeSpace** Free space on OS partition. +- **InstallCount** Number of install attempts using the same sandbox. +- **ObjectId** Unique value for each Update Agent mode. +- **Quiet** Indicates whether setup is running in quiet mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **SandboxSize** Size of the sandbox. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **SetupMode** Mode of setup to be launched. +- **UpdateId** Unique ID for each Update. +- **UserSession** Indicates whether install was invoked by user actions. + + ## Upgrade events ### Setup360Telemetry.Downlevel @@ -4242,9 +4543,9 @@ The following fields are available: - **Setup360Extended** Detailed information about the phase or action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. - **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. -- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). -- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled - **TestId** ID that uniquely identifies a group of events. - **WuId** Windows Update client ID. @@ -4375,6 +4676,24 @@ This event helps determine whether the device received supplemental content duri +### Setup360Telemetry.Setup360MitigationResult + +This event sends data indicating the result of each setup mitigation. + + + +### Setup360Telemetry.Setup360MitigationSummary + +This event sends a summary of all the setup mitigations available for this update. + + + +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + + + ### Setup360Telemetry.UnexpectedEvent This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. @@ -4388,7 +4707,7 @@ The following fields are available: - **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. - **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. -- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. - **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). - **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. @@ -4819,11 +5138,11 @@ The following fields are available: - **errorCode** The error code that was returned. - **experimentId** When running a test, this is used to correlate events that are part of the same test. - **fileID** The ID of the file being downloaded. -- **isVpn** Is the device connected to a Virtual Private Network? +- **isVpn** Indicates whether the device is connected to a VPN (Virtual Private Network). - **scenarioID** The ID of the scenario. - **sessionID** The ID of the file download session. - **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Did the download use memory streaming? +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. ### Microsoft.OSG.DU.DeliveryOptClient.DownloadCompleted @@ -4862,7 +5181,7 @@ The following fields are available: - **updateID** The ID of the update being downloaded. - **uplinkBps** The maximum measured available upload bandwidth (in bytes per second). - **uplinkUsageBps** The upload speed (in bytes per second). -- **usedMemoryStream** Did the download use memory streaming? +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. ### Microsoft.OSG.DU.DeliveryOptClient.DownloadPaused @@ -5146,6 +5465,17 @@ The following fields are available: - **wuDeviceid** The Windows Update device GUID. +### Microsoft.Windows.Update.Orchestrator.DeferRestart + +This event indicates that a restart required for installing updates was postponed. + +The following fields are available: + +- **filteredDeferReason** Applicable filtered reasons why reboot was postponed (such as user active, or low battery). +- **raisedDeferReason** Indicates all potential reasons for postponing restart (such as user active, or low battery). +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.Detection This event indicates that a scan for a Windows Update occurred. @@ -5192,7 +5522,7 @@ The following fields are available: - **EventPublishedTime** Time when this event was generated. - **flightID** The specific ID of the Windows Insider build. - **revisionNumber** Update revision number. -- **updateId** Unique Windows Update ID. +- **updateId** Unique Update ID. - **updateScenarioType** Update session type. - **UpdateStatus** Last status of update. - **wuDeviceid** Unique Device ID. @@ -5240,6 +5570,30 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.LowUptimes + +This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. + +The following fields are available: + +- **lowUptimeMinHours** Current setting for the minimum number of hours needed to not be considered low uptime. +- **lowUptimeQueryDays** Current setting for the number of recent days to check for uptime. +- **uptimeMinutes** Number of minutes of uptime measured. +- **wuDeviceid** Unique device ID for Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + ### Microsoft.Windows.Update.Orchestrator.PostInstall This event is sent after a Windows update install completes. @@ -5256,6 +5610,15 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.PreShutdownStart + +This event is generated before the shutdown and commit operations. + +The following fields are available: + +- **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. + + ### Microsoft.Windows.Update.Orchestrator.RebootFailed This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows up to date. @@ -5276,6 +5639,18 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. @@ -5332,6 +5707,32 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.UsoSession + +This event represents the state of the USO service at start and completion. + +The following fields are available: + +- **activeSessionid** A unique session GUID. +- **eventScenario** The state of the update action. +- **interactive** Is the USO session interactive? +- **lastErrorcode** The last error that was encountered. +- **lastErrorstate** The state of the update when the last error was encountered. +- **sessionType** A GUID that refers to the update session type. +- **updateScenarioType** A descriptive update session type. +- **wuDeviceid** The Windows Update device GUID. + + ### Microsoft.Windows.Update.UpdateStackServicing.CheckForUpdates This event sends data about the UpdateStackServicing check for updates, to help keep Windows up to date. @@ -5352,6 +5753,28 @@ The following fields are available: - **WUDeviceID** The Windows Update device ID. +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + ### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded This event is sent when a security update has successfully completed. @@ -5390,7 +5813,7 @@ The following fields are available: ### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up-to-date. +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. The following fields are available: @@ -5406,6 +5829,14 @@ The following fields are available: - **wuDeviceid** The Windows Update device GUID. +## Windows Update mitigation events + +### Mitigation360Telemetry.MitigationCustom.FixupEditionId + +This event sends data specific to the FixupEditionId mitigation used for OS Updates. + + + ## Winlogon events ### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md index f1ca2eae5e..e6b7d5cbc6 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 10/10/2018 +ms.date: 11/07/2018 --- @@ -65,20 +65,20 @@ The following fields are available: - **DecisionSystemBios_RS4** The total DecisionSystemBios objects targeting Windows 10 version, 1803 present on this device. - **DecisionTest_RS1** An ID for the system, calculated by hashing hardware identifiers. - **InventoryApplicationFile** The count of the number of this particular object type present on this device. -- **InventoryLanguagePack** The count of InventoryLanguagePack objects present on this machine. +- **InventoryLanguagePack** The count of the number of this particular object type present on this device. - **InventoryMediaCenter** The count of the number of this particular object type present on this device. - **InventorySystemBios** The count of the number of this particular object type present on this device. - **InventoryTest** The count of the number of this particular object type present on this device. - **InventoryUplevelDriverPackage** The count of the number of this particular object type present on this device. -- **PCFP** An ID for the system, calculated by hashing hardware identifiers. +- **PCFP** The count of the number of this particular object type present on this device. - **SystemMemory** The count of the number of this particular object type present on this device. - **SystemProcessorCompareExchange** The count of the number of this particular object type present on this device. - **SystemProcessorLahfSahf** The count of the number of this particular object type present on this device. - **SystemProcessorNx** The count of the number of this particular object type present on this device. -- **SystemProcessorPrefetchW** The count of SystemProcessorPrefetchW objects present on this machine. -- **SystemProcessorSse2** The count of SystemProcessorSse2 objects present on this machine. +- **SystemProcessorPrefetchW** The count of the number of this particular object type present on this device. +- **SystemProcessorSse2** The count of the number of this particular object type present on this device. - **SystemTouch** The count of the number of this particular object type present on this device. -- **SystemWim** The count of SystemWim objects present on this machine. +- **SystemWim** The count of the number of this particular object type present on this device. - **SystemWindowsActivationStatus** The count of the number of this particular object type present on this device. - **SystemWlan** The count of the number of this particular object type present on this device. - **Wmdrm_RS1** An ID for the system, calculated by hashing hardware identifiers. @@ -359,7 +359,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -706,7 +706,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1209,6 +1209,23 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.SystemWlanAdd + +This event sends data indicating whether the system has WLAN, and if so, whether it uses an emulated driver that could block an upgrade, to help keep Windows up-to-date. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. +- **Blocking** Is the upgrade blocked because of an emulated WLAN driver? +- **HasWlanBlock** Does the emulated WLAN driver have an upgrade block? +- **WlanEmulatedDriver** Does the device have an emulated WLAN driver? +- **WlanExists** Does the device support WLAN at all? +- **WlanModulePresent** Are any WLAN modules present? +- **WlanNativeDriver** Does the device have a non-emulated WLAN driver? + + ### Microsoft.Windows.Appraiser.General.SystemWlanRemove This event indicates that the SystemWlan object is no longer present. @@ -1525,16 +1542,16 @@ The following fields are available: - **KvaShadow** Microcode info of the processor. - **MMSettingOverride** Microcode setting of the processor. - **MMSettingOverrideMask** Microcode setting override of the processor. -- **ProcessorArchitecture** Retrieves the processor architecture of the installed operating system. -- **ProcessorClockSpeed** Clock speed of the processor in MHz. -- **ProcessorCores** Number of logical cores in the processor. -- **ProcessorIdentifier** Processor Identifier of a manufacturer. -- **ProcessorManufacturer** Name of the processor manufacturer. -- **ProcessorModel** Name of the processor model. +- **ProcessorArchitecture** Retrieves the processor architecture of the installed operating system. The complete list of values can be found in DimProcessorArchitecture. +- **ProcessorClockSpeed** Retrieves the clock speed of the processor in MHz. +- **ProcessorCores** Retrieves the number of cores in the processor. +- **ProcessorIdentifier** The processor identifier of a manufacturer. +- **ProcessorManufacturer** Retrieves the name of the processor's manufacturer. +- **ProcessorModel** Retrieves the name of the processor model. - **ProcessorPhysicalCores** Number of physical cores in the processor. -- **ProcessorUpdateRevision** Microcode revision +- **ProcessorUpdateRevision** Retrieves the processor architecture of the installed operating system. - **ProcessorUpdateStatus** Enum value that represents the processor microcode load status -- **SocketCount** Count of CPU sockets. +- **SocketCount** Number of physical CPU sockets of the machine. - **SpeculationControl** If the system has enabled protections needed to validate the speculation control vulnerability. @@ -1545,14 +1562,14 @@ This event provides information on about security settings used to help keep Win The following fields are available: - **AvailableSecurityProperties** This field helps to enumerate and report state on the relevant security properties for Device Guard. -- **CGRunning** Is Credential Guard running? +- **CGRunning** Credential Guard isolates and hardens key system and user secrets against compromise, helping to minimize the impact and breadth of a Pass the Hash style attack in the event that malicious code is already running via a local or network based vector. This field tells if Credential Guard is running. - **DGState** This field summarizes the Device Guard state. -- **HVCIRunning** Is HVCI running? +- **HVCIRunning** Hypervisor Code Integrity (HVCI) enables Device Guard to help protect kernel mode processes and drivers from vulnerability exploits and zero days. HVCI uses the processor’s functionality to force all software running in kernel mode to safely allocate memory. This field tells if HVCI is running. - **IsSawGuest** Indicates whether the device is running as a Secure Admin Workstation Guest. - **IsSawHost** Indicates whether the device is running as a Secure Admin Workstation Host. - **RequiredSecurityProperties** Describes the required security properties to enable virtualization-based security. -- **SecureBootCapable** Is this device capable of running Secure Boot? -- **VBSState** Is virtualization-based security enabled, disabled, or running? +- **SecureBootCapable** Systems that support Secure Boot can have the feature turned off via BIOS. This field tells if the system is capable of running Secure Boot, regardless of the BIOS setting. +- **VBSState** Virtualization-based security (VBS) uses the hypervisor to help protect the kernel and other parts of the operating system. Credential Guard and Hypervisor Code Integrity (HVCI) both depend on VBS to isolate/protect secrets, and kernel-mode code integrity validation. VBS has a tri-state that can be Disabled, Enabled, or Running. ### Census.Speech @@ -1889,6 +1906,82 @@ The following fields are available: - **VortexHttpResponsesWithDroppedEvents** Number of Vortex responses containing at least 1 dropped event. +## DxgKernelTelemetry events + +### DxgKrnlTelemetry.GPUAdapterInventoryV2 + +This event sends basic GPU and display driver information to keep Windows and display drivers up-to-date. + +The following fields are available: + +- **AdapterTypeValue** The numeric value indicating the type of Graphics adapter. +- **aiSeqId** The event sequence ID. +- **bootId** The system boot ID. +- **ComputePreemptionLevel** The maximum preemption level supported by GPU for compute payload. +- **DedicatedSystemMemoryB** The amount of system memory dedicated for GPU use (in bytes). +- **DedicatedVideoMemoryB** The amount of dedicated VRAM of the GPU (in bytes). +- **DisplayAdapterLuid** The display adapter LUID. +- **DriverDate** The date of the display driver. +- **DriverRank** The rank of the display driver. +- **DriverVersion** The display driver version. +- **GPUDeviceID** The GPU device ID. +- **GPUPreemptionLevel** The maximum preemption level supported by GPU for graphics payload. +- **GPURevisionID** The GPU revision ID. +- **GPUVendorID** The GPU vendor ID. +- **InterfaceId** The GPU interface ID. +- **IsDisplayDevice** Does the GPU have displaying capabilities? +- **IsHybridDiscrete** Does the GPU have discrete GPU capabilities in a hybrid device? +- **IsHybridIntegrated** Does the GPU have integrated GPU capabilities in a hybrid device? +- **IsLDA** Is the GPU comprised of Linked Display Adapters? +- **IsMiracastSupported** Does the GPU support Miracast? +- **IsMismatchLDA** Is at least one device in the Linked Display Adapters chain from a different vendor? +- **IsMPOSupported** Does the GPU support Multi-Plane Overlays? +- **IsMsMiracastSupported** Are the GPU Miracast capabilities driven by a Microsoft solution? +- **IsPostAdapter** Is this GPU the POST GPU in the device? +- **IsRemovable** TRUE if the adapter supports being disabled or removed. +- **IsRenderDevice** Does the GPU have rendering capabilities? +- **IsSoftwareDevice** Is this a software implementation of the GPU? +- **MeasureEnabled** Is the device listening to MICROSOFT_KEYWORD_MEASURES? +- **NumVidPnSources** The number of supported display output sources. +- **NumVidPnTargets** The number of supported display output targets. +- **SharedSystemMemoryB** The amount of system memory shared by GPU and CPU (in bytes). +- **SubSystemID** The subsystem ID. +- **SubVendorID** The GPU sub vendor ID. +- **TelemetryEnabled** Is the device listening to MICROSOFT_KEYWORD_TELEMETRY? +- **TelInvEvntTrigger** What triggered this event to be logged? Example: 0 (GPU enumeration) or 1 (DxgKrnlTelemetry provider toggling) +- **version** The event version. +- **WDDMVersion** The Windows Display Driver Model version. + + +## Fault Reporting events + +### Microsoft.Windows.FaultReporting.AppCrashEvent + +This event sends data about crashes for both native and managed applications, to help keep Windows up to date. The data includes information about the crashing process and a summary of its exception record. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the crash to the Watson service, and the WER event will contain the same ReportID (see field 14 of crash event, field 19 of WER event) as the crash event for the crash being reported. AppCrash is emitted once for each crash handled by WER (e.g. from an unhandled exception or FailFast or ReportException). Note that Generic Watson event types (e.g. from PLM) that may be considered crashes\" by a user DO NOT emit this event. + +The following fields are available: + +- **AppName** The name of the app that has crashed. +- **AppSessionGuid** GUID made up of process ID and is used as a correlation vector for process instances in the telemetry backend. +- **AppTimeStamp** The date/time stamp of the app. +- **AppVersion** The version of the app that has crashed. +- **ExceptionCode** The exception code returned by the process that has crashed. +- **ExceptionOffset** The address where the exception had occurred. +- **Flags** Flags indicating how reporting is done. For example, queue the report, do not offer JIT debugging, or do not terminate the process after reporting. +- **ModName** Exception module name (e.g. bar.dll). +- **ModTimeStamp** The date/time stamp of the module. +- **ModVersion** The version of the module that has crashed. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the crashing process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has crashed. +- **ProcessId** The ID of the process that has crashed. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported +- **TargetAsId** The sequence number for the hanging process. + + ## Feature update events ### Microsoft.Windows.Upgrade.Uninstall.UninstallFailed @@ -1916,6 +2009,33 @@ This event sends basic metadata about the starting point of uninstalling a featu +## Hang Reporting events + +### Microsoft.Windows.HangReporting.AppHangEvent + +This event sends data about hangs for both native and managed applications, to help keep Windows up to date. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the hang to the Watson service, and the WER event will contain the same ReportID (see field 13 of hang event, field 19 of WER event) as the hang event for the hang being reported. AppHang is reported only on PC devices. It handles classic Win32 hangs and is emitted only once per report. Some behaviors that may be perceived by a user as a hang are reported by app managers (e.g. PLM/RM/EM) as Watson Generics and will not produce AppHang events. + +The following fields are available: + +- **AppName** The name of the app that has hung. +- **AppSessionGuid** GUID made up of process id used as a correlation vector for process instances in the telemetry backend. +- **AppVersion** The version of the app that has hung. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the hung process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has hung. +- **ProcessId** The ID of the process that has hung. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported. +- **TargetAsId** The sequence number for the hanging process. +- **TypeCode** Bitmap describing the hang type. +- **WaitingOnAppName** If this is a cross process hang waiting for an application, this has the name of the application. +- **WaitingOnAppVersion** If this is a cross process hang, this has the version of the application for which it is waiting. +- **WaitingOnPackageFullName** If this is a cross process hang waiting for a package, this has the full name of the package for which it is waiting. +- **WaitingOnPackageRelativeAppId** If this is a cross process hang waiting for a package, this has the relative application id of the package. + + ## Inventory events ### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum @@ -1992,13 +2112,13 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: -- **InventoryVersion** The version of the inventory component +- **InventoryVersion** The version of the inventory component. - **ProgramIds** The unique program identifier the driver is associated with. ### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverStartSync -The InventoryApplicationDriverStartSync event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. +This event indicates that a new set of InventoryApplicationDriverStartAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -2185,12 +2305,12 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: - **BusReportedDescription** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. -- **Class** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. -- **ClassGuid** A unique identifier for the driver installed. -- **COMPID** Name of the .sys image file (or wudfrd.sys if using user mode driver framework). -- **ContainerId** INF file name (the name could be renamed by OS, such as oemXX.inf) -- **Description** The version of the inventory binary generating the events. -- **DeviceState** The current error code for the device. +- **Class** The device setup class of the driver loaded for the device. +- **ClassGuid** The device setup class guid of the driver loaded for the device. +- **COMPID** The list of compat ids for the device. +- **ContainerId** System-supplied GUID that uniquely groups the functional devices associated with a single-function or multifunction device installed in the computer. +- **Description** The device description. +- **DeviceState** DeviceState is a bitmask of the following: DEVICE_IS_CONNECTED 0x0001 (currently only for container). DEVICE_IS_NETWORK_DEVICE 0x0002 (currently only for container). DEVICE_IS_PAIRED 0x0004 (currently only for container). DEVICE_IS_ACTIVE 0x0008 (currently never set). DEVICE_IS_MACHINE 0x0010 (currently only for container). DEVICE_IS_PRESENT 0x0020 (currently always set). DEVICE_IS_HIDDEN 0x0040. DEVICE_IS_PRINTER 0x0080 (currently only for container). DEVICE_IS_WIRELESS 0x0100. DEVICE_IS_WIRELESS_FAT 0x0200. The most common values are therefore: 32 (0x20)= device is present. 96 (0x60)= device is present but hidden. 288 (0x120)= device is a wireless device that is present - **DriverId** A unique identifier for the driver installed. - **DriverName** Name of the .sys image file (or wudfrd.sys if using user mode driver framework). - **DriverPackageStrongName** The immediate parent directory name in the Directory field of InventoryDriverPackage. @@ -2703,6 +2823,183 @@ The following fields are available: - **UserInputTime** The amount of time the loader application spent waiting for user input. +## OneDrive events + +### Microsoft.OneDrive.Sync.Setup.APIOperation + +This event includes basic data about install and uninstall OneDrive API operations. + +The following fields are available: + +- **APIName** The name of the API. +- **Duration** How long the operation took. +- **IsSuccess** Was the operation successful? +- **ResultCode** The result code. +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.EndExperience + +This event includes a success or failure summary of the installation. + +The following fields are available: + +- **APIName** The name of the API. +- **HResult** The result code of the last action performed before this operation +- **IsSuccess** Was the operation successful? +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.OSUpgradeInstallationOperation + +This event is related to the OS version when the OS is upgraded with OneDrive installed. + +The following fields are available: + +- **CurrentOneDriveVersion** The current version of OneDrive. +- **CurrentOSBuildBranch** The current branch of the operating system. +- **CurrentOSBuildNumber** The current build number of the operating system. +- **CurrentOSVersion** The current version of the operating system. +- **HResult** The HResult of the operation. +- **SourceOSBuildBranch** The source branch of the operating system. +- **SourceOSBuildNumber** The source build number of the operating system. +- **SourceOSVersion** The source version of the operating system. + + +### Microsoft.OneDrive.Sync.Setup.RegisterStandaloneUpdaterAPIOperation + +This event is related to registering or unregistering the OneDrive update task. + +The following fields are available: + +- **APIName** The name of the API. +- **IsSuccess** Was the operation successful? +- **RegisterNewTaskResult** The HResult of the RegisterNewTask operation. +- **ScenarioName** The name of the scenario. +- **UnregisterOldTaskResult** The HResult of the UnregisterOldTask operation. + + +### Microsoft.OneDrive.Sync.Updater.ComponentInstallState + +This event includes basic data about the installation state of dependent OneDrive components. + +The following fields are available: + +- **ComponentName** The name of the dependent component. +- **isInstalled** Is the dependent component installed? + + +### Microsoft.OneDrive.Sync.Updater.OverlayIconStatus + +This event indicates if the OneDrive overlay icon is working correctly. 0 = healthy; 1 = can be fixed; 2 = broken + +The following fields are available: + +- **32bit** The status of the OneDrive overlay icon on a 32-bit operating system. +- **64bit** The status of the OneDrive overlay icon on a 64-bit operating system. + + +### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult + +This event sends information describing the result of the update. + +The following fields are available: + +- **hr** The HResult of the operation. +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. +- **UpdaterVersion** The version of the updater. + + +### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult + +This event determines the status when downloading the OneDrive update configuration file. + +The following fields are available: + +- **hr** The HResult of the operation. + + +### Microsoft.OneDrive.Sync.Updater.WebConnectionStatus + +This event determines the error code that was returned when verifying Internet connectivity. + +The following fields are available: + +- **winInetError** The HResult of the operation. + + +## Other events + +### CbsServicingProvider.CbsCapabilityEnumeration + +This event reports on the results of scanning for optional Windows content on Windows Update. + +The following fields are available: + +- **architecture** Indicates the scan was limited to the specified architecture. +- **capabilityCount** The number of optional content packages found during the scan. +- **clientId** The name of the application requesting the optional content. +- **duration** The amount of time it took to complete the scan. +- **hrStatus** The HReturn code of the scan. +- **language** Indicates the scan was limited to the specified language. +- **majorVersion** Indicates the scan was limited to the specified major version. +- **minorVersion** Indicates the scan was limited to the specified minor version. +- **namespace** Indicates the scan was limited to packages in the specified namespace. +- **sourceFilter** A bitmask indicating the scan checked for locally available optional content. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionFinalize + +This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. + +The following fields are available: + +- **capabilities** The names of the optional content packages that were installed. +- **clientId** The name of the application requesting the optional content. +- **highestState** The highest final install state of the optional content. +- **hrStatus** The HReturn code of the install operation. +- **rebootCount** The number of reboots required to complete the install. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionPended + +This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. + +The following fields are available: + +- **clientId** The name of the application requesting the optional content. +- **pendingDecision** Indicates the cause of reboot, if applicable. + + +### Microsoft.Windows.WaaSAssessment.Error + +This event returns the name of the missing setting needed to determine the Operating System build age. + +The following fields are available: + +- **m** The WaaS (“Workspace as a Service”—cloud-based “workspace”) Assessment Error String. + + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + + + ## Remediation events ### Microsoft.Windows.Remediation.Applicable @@ -2716,7 +3013,6 @@ The following fields are available: - **AppraiserDetectCondition** Indicates whether the plug-in passed the appraiser's check. - **AppraiserRegistryValidResult** Indicates whether the registry entry checks out as valid. - **AppraiserTaskDisabled** Indicates the appraiser task is disabled. -- **AppraiserTaskValidFailed** Indicates the Appraiser task did not function and requires intervention. - **CV** Correlation vector - **DateTimeDifference** The difference between local and reference clock times. - **DateTimeSyncEnabled** Indicates whether the datetime sync plug-in is enabled. @@ -2911,7 +3207,7 @@ The following fields are available: - **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. - **usoScanIsUserLoggedOn** TRUE if the user is logged on. - **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). -- **usoScanType** The type of USO (Update Session Orchestrator) scan (Interactive or Background). +- **usoScanType** The type of USO (Update Session Orchestrator) scan: "Interactive" or "Background". - **windows10UpgraderBlockWuUpdates** Event to report the value of Windows 10 Upgrader BlockWuUpdates Key. - **windowsEditionId** Event to report the value of Windows Edition ID. - **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. @@ -2970,6 +3266,41 @@ The following fields are available: - **Time** The time the event was fired. +### Microsoft.Windows.Sediment.Info.Error + +This event indicates an error in the updater payload. This information assists in keeping Windows up to date. + + + +### Microsoft.Windows.Sediment.OSRSS.CheckingOneSettings + +This event indicates the parameters that the Operating System Remediation System Service (OSRSS) uses for a secure ping to Microsoft to help ensure Windows is up to date. + +The following fields are available: + +- **CustomVer** The registry value for targeting. +- **IsMetered** TRUE if the machine is on a metered network. +- **LastVer** The version of the last successful run. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + +### Microsoft.Windows.Sediment.OSRSS.Error + +This event indicates an error occurred in the Operating System Remediation System Service (OSRSS). The information provided helps ensure future upgrade/update attempts are more successful. + +The following fields are available: + +- **FailureType** The type of error encountered. +- **FileName** The code file in which the error occurred. +- **HResult** The failure error code. +- **LineNumber** The line number in the code file at which the error occurred. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + ### Microsoft.Windows.Sediment.OSRSS.UrlState This event indicates the state the Operating System Remediation System Service (OSRSS) is in while attempting a download from the URL. @@ -3195,6 +3526,32 @@ The following fields are available: ## Setup events +### SetupPlatformTel.SetupPlatformTelActivityEvent + +This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. + +The following fields are available: + +- **FieldName** Retrieves the event name/data point. Examples: InstallStartTime, InstallEndtime, OverallResult etc. +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. +- **Value** Value associated with the corresponding event name. For example, time-related events will include the system time + + +### SetupPlatformTel.SetupPlatformTelActivityStarted + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + +The following fields are available: + +- **Name** The name of the dynamic update type. Example: GDR driver + + +### SetupPlatformTel.SetupPlatformTelActivityStopped + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + + + ### SetupPlatformTel.SetupPlatformTelEvent This service retrieves events generated by SetupPlatform, the engine that drives the various deployment scenarios. @@ -3780,6 +4137,131 @@ The following fields are available: ## Update events +### Update360Telemetry.UpdateAgent_DownloadRequest + +This event sends data during the download request phase of updating Windows. + +The following fields are available: + +- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. +- **ErrorCode** The error code returned for the current download request phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **PackageCountOptional** # of optional packages requested. +- **PackageCountRequired** # of required packages requested. +- **PackageCountTotal** Total # of packages needed. +- **PackageCountTotalCanonical** Total number of canonical packages. +- **PackageCountTotalDiff** Total number of diff packages. +- **PackageCountTotalExpress** Total number of express packages. +- **PackageSizeCanonical** Size of canonical packages in bytes. +- **PackageSizeDiff** Size of diff packages in bytes. +- **PackageSizeExpress** Size of express packages in bytes. +- **RangeRequestState** Indicates the range request type used. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the download request phase of update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt (same value for initialize, download, install commit phases) +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgent_FellBackToCanonical + +This event collects information when Express could not be used, and the update had to fall back to “canonical” during the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **PackageCount** The number of packages that fell back to “canonical”. +- **PackageList** PackageIDs which fell back to “canonical”. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgent_Initialize + +This event sends data during the initialize phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current initialize phase. +- **FlightId** Unique ID for each flight. +- **FlightMetadata** Contains the FlightId and the build being flighted. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Result of the initialize phase of update. 0 = Succeeded, 1 = Failed, 2 = Cancelled, 3 = Blocked, 4 = BlockCancelled +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionData** Contains instructions to update agent for processing FODs and DUICs (Null for other scenarios). +- **SessionId** Unique value for each Update Agent mode attempt . +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgent_Install + +This event sends data during the install phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest scan. +- **Result** Result of the install phase of update. 0 = Succeeded 1 = Failed, 2 = Cancelled, 3 = Blocked, 4 = BlockCancelled +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionId** Unique value for each Update Agent mode attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgent_Merge + +This event sends data on the merge phase when updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current reboot. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgent_ModeStart + +This event sends data for the start of each mode during the process of updating Windows. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **Mode** Indicates that the Update Agent mode that has started. 1 = Initialize, 2 = DownloadRequest, 3 = Install, 4 = Commit +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest scan. +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionId** Unique value for each Update Agent mode attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgent_SetupBoxLaunch + +This event sends data during the launching of the setup box when updating Windows. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **Quiet** Indicates whether setup is running in quiet mode. 0 = false 1 = true +- **RelatedCV** Correlation vector value generated from the latest scan. +- **SandboxSize** The size of the sandbox folder on the device. +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate +- **SessionId** Unique value for each Update Agent mode attempt. +- **SetupMode** Setup mode 1 = predownload, 2 = install, 3 = finalize +- **UpdateId** Unique ID for each update. + + ### Update360Telemetry.UpdateAgentCommit This event collects information regarding the commit phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. @@ -3975,6 +4457,24 @@ The following fields are available: - **Version** Version of update +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **Count** The count of applicable OneSettings for the device. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. +- **Values** The values sent back to the device, if applicable. + + ### Update360Telemetry.UpdateAgentPostRebootResult This event collects information for both Mobile and Desktop regarding the post reboot phase of the new Unified Update Platform (UUP) update scenario. @@ -4028,7 +4528,7 @@ The following fields are available: - **CV** Correlation vector. - **DetectorVersion** Most recently run detector version for the current campaign. - **GlobalEventCounter** Client side counter that indicates the ordering of events sent by this user. -- **key1** UI interaction data +- **key1** Interaction data for the UI - **key10** UI interaction data - **key11** UI interaction data - **key12** UI interaction data @@ -4039,9 +4539,9 @@ The following fields are available: - **key17** UI interaction data - **key18** UI interaction data - **key19** UI interaction data -- **key2** UI interaction data +- **key2** Interaction data for the UI - **key20** UI interaction data -- **key21** Interaction data for the UI +- **key21** UI interaction data - **key22** UI interaction data - **key23** UI interaction data - **key24** UI interaction data @@ -4050,12 +4550,12 @@ The following fields are available: - **key27** UI interaction data - **key28** UI interaction data - **key29** UI interaction data -- **key3** UI interaction data +- **key3** Interaction data for the UI - **key30** UI interaction data -- **key4** UI interaction data -- **key5** UI interaction data -- **key6** UI interaction data -- **key7** UI interaction data +- **key4** Interaction data for the UI +- **key5** UI interaction type +- **key6** Current package version of UNP +- **key7** UI interaction type - **key8** UI interaction data - **key9** UI interaction data - **PackageVersion** Current package version of the update notification. @@ -4353,6 +4853,12 @@ This event sends a summary of all the setup mitigations available for this updat +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + + + ### Setup360Telemetry.UnexpectedEvent This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. @@ -4366,7 +4872,7 @@ The following fields are available: - **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. - **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. -- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. - **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). - **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. @@ -4402,17 +4908,37 @@ This event provides the results from the WaaSMedic engine The following fields are available: - **detectionSummary** Result of each applicable detection that was run. -- **featureAssessmentImpact** Windows as a Service (WaaS) Assessment impact on feature updates +- **featureAssessmentImpact** WaaS Assessment impact for feature updates. - **hrEngineResult** Indicates the WaaSMedic engine operation error codes -- **insufficientSessions** True, if the device has enough activity to be eligible for update diagnostics. False, if otherwise -- **isManaged** Indicates the device is managed for updates -- **isWUConnected** Indicates the device is connected to Windows Update -- **noMoreActions** All available WaaSMedic diagnostics have run. There are no pending diagnostics and corresponding actions -- **qualityAssessmentImpact** Windows as a Service (WaaS) Assessment impact for quality updates +- **insufficientSessions** Device not eligible for diagnostics. +- **isManaged** Device is managed for updates. +- **isWUConnected** Device is connected to Windows Update. +- **noMoreActions** No more applicable diagnostics. +- **qualityAssessmentImpact** WaaS Assessment impact for quality updates. - **remediationSummary** Result of each operation performed on a device to fix an invalid state or configuration that's preventing the device from getting updates. For example, if Windows Update service is turned off, the fix is to turn the it back on. -- **usingBackupFeatureAssessment** The WaaSMedic engine contacts Windows as a Service (WaaS) Assessment to determine whether the device is up-to-date. If WaaS Assessment isn't available, the engine falls back to backup feature assessments, which are determined programmatically on the client -- **usingBackupQualityAssessment** The WaaSMedic engine contacts Windows as a Service (WaaS) Assessment to determine whether the device is up-to-date. If WaaS Assessment isn't available, the engine falls back to backup quality assessments, which are determined programmatically on the client -- **versionString** Installed version of the WaaSMedic engine +- **usingBackupFeatureAssessment** Relying on backup feature assessment. +- **usingBackupQualityAssessment** Relying on backup quality assessment. +- **versionString** Version of the WaaSMedic engine. + + +## Windows Error Reporting events + +### Microsoft.Windows.WERVertical.OSCrash + +This event sends binary data from the collected dump file wheneveer a bug check occurs, to help keep Windows up to date. The is the OneCore version of this event. + +The following fields are available: + +- **BootId** Uint32 identifying the boot number for this device. +- **BugCheckCode** Uint64 "bugcheck code" that identifies a proximate cause of the bug check. +- **BugCheckParameter1** Uint64 parameter providing additional information. +- **BugCheckParameter2** Uint64 parameter providing additional information. +- **BugCheckParameter3** Uint64 parameter providing additional information. +- **BugCheckParameter4** Uint64 parameter providing additional information. +- **DumpFileAttributes** Codes that identify the type of data contained in the dump file +- **DumpFileSize** Size of the dump file +- **IsValidDumpFile** True if the dump file is valid for the debugger, false otherwise +- **ReportId** WER Report Id associated with this bug check (used for finding the corresponding report archive in Watson). ## Windows Store events @@ -4798,144 +5324,6 @@ The following fields are available: ## Windows Update Delivery Optimization events -### Microsoft.OSG.DU.DeliveryOptClient.DownloadCanceled - -This event describes when a download was canceled with Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Is the download being done in the background? -- **bytesFromCacheServer** Bytes received from a cache host. -- **bytesFromCDN** The number of bytes received from a CDN source. -- **bytesFromGroupPeers** The number of bytes received from a peer in the same group. -- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same group. -- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **callerName** Name of the API caller. -- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. -- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. -- **clientTelId** A random number used for device sampling. -- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **errorCode** The error code that was returned. -- **experimentId** When running a test, this is used to correlate events that are part of the same test. -- **fileID** The ID of the file being downloaded. -- **gCurMemoryStreamBytes** Current usage for memory streaming. -- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. -- **isVpn** Is the device connected to a Virtual Private Network? -- **jobID** Identifier for the Windows Update job. -- **reasonCode** Reason the action or event occurred. -- **scenarioID** The ID of the scenario. -- **sessionID** The ID of the file download session. -- **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Did the download use memory streaming? - - -### Microsoft.OSG.DU.DeliveryOptClient.DownloadCompleted - -This event describes when a download has completed with Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Is the download a background download? -- **bytesFromCacheServer** Bytes received from a cache host. -- **bytesFromCDN** The number of bytes received from a CDN source. -- **bytesFromGroupPeers** The number of bytes received from a peer in the same domain group. -- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same domain group. -- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. -- **bytesFromPeers** The number of bytes received from a peer in the same LAN. -- **bytesRequested** The total number of bytes requested for download. -- **cacheServerConnectionCount** Number of connections made to cache hosts. -- **callerName** Name of the API caller. -- **cdnConnectionCount** The total number of connections made to the CDN. -- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. -- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. -- **cdnIp** The IP address of the source CDN. -- **clientTelId** A random number used for device sampling. -- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **downlinkBps** The maximum measured available download bandwidth (in bytes per second). -- **downlinkUsageBps** The download speed (in bytes per second). -- **downloadMode** The download mode used for this file download session. -- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **fileID** The ID of the file being downloaded. -- **fileSize** The size of the file being downloaded. -- **gCurMemoryStreamBytes** Current usage for memory streaming. -- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. -- **groupConnectionCount** The total number of connections made to peers in the same group. -- **internetConnectionCount** The total number of connections made to peers not in the same LAN or the same group. -- **isVpn** Is the device connected to a Virtual Private Network? -- **jobID** Identifier for the Windows Update job. -- **lanConnectionCount** The total number of connections made to peers in the same LAN. -- **numPeers** The total number of peers used for this download. -- **restrictedUpload** Is the upload restricted? -- **scenarioID** The ID of the scenario. -- **sessionID** The ID of the download session. -- **totalTimeMs** Duration of the download (in seconds). -- **updateID** The ID of the update being downloaded. -- **uplinkBps** The maximum measured available upload bandwidth (in bytes per second). -- **uplinkUsageBps** The upload speed (in bytes per second). -- **usedMemoryStream** Did the download use memory streaming? - - -### Microsoft.OSG.DU.DeliveryOptClient.DownloadPaused - -This event represents a temporary suspension of a download with Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Is the download a background download? -- **callerName** The name of the API caller. -- **clientTelId** A random number used for device sampling. -- **errorCode** The error code that was returned. -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **fileID** The ID of the file being paused. -- **isVpn** Is the device connected to a Virtual Private Network? -- **jobID** Identifier for the Windows Update job. -- **reasonCode** The reason for pausing the download. -- **scenarioID** The ID of the scenario. -- **sessionID** The ID of the download session. -- **updateID** The ID of the update being paused. - - -### Microsoft.OSG.DU.DeliveryOptClient.DownloadStarted - -This event sends data describing the start of a new download to enable Delivery Optimization. It's used to understand and address problems regarding downloads. - -The following fields are available: - -- **background** Indicates whether the download is happening in the background. -- **bytesRequested** Number of bytes requested for the download. -- **callerName** Name of the API caller. -- **cdnUrl** The URL of the source CDN. -- **clientTelId** Random number used for device selection -- **costFlags** A set of flags representing network cost. -- **deviceProfile** Identifies the usage or form factor (such as Desktop, Xbox, or VM). -- **diceRoll** Random number used for determining if a client will use peering. -- **doClientVersion** The version of the Delivery Optimization client. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **downloadMode** The download mode used for this file download session (CdnOnly = 0, Lan = 1, Group = 2, Internet = 3, Simple = 99, Bypass = 100). -- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). -- **errorCode** The error code that was returned. -- **experimentId** ID used to correlate client/services calls that are part of the same test during A/B testing. -- **fileID** The ID of the file being downloaded. -- **filePath** The path to where the downloaded file will be written. -- **fileSize** Total file size of the file that was downloaded. -- **fileSizeCaller** Value for total file size provided by our caller. -- **groupID** ID for the group. -- **isVpn** Indicates whether the device is connected to a Virtual Private Network. -- **jobID** The ID of the Windows Update job. -- **minDiskSizeGB** The minimum disk size (in GB) policy set for the device to allow peering with delivery optimization. -- **minDiskSizePolicyEnforced** Indicates whether there is an enforced minimum disk size requirement for peering. -- **minFileSizePolicy** The minimum content file size policy to allow the download using peering with delivery optimization. -- **peerID** The ID for this delivery optimization client. -- **scenarioID** The ID of the scenario. -- **sessionID** The ID for the file download session. -- **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Indicates whether the download used memory streaming. - - ### Microsoft.OSG.DU.DeliveryOptClient.FailureCdnCommunication This event represents a failure to download from a CDN with Delivery Optimization. It's used to understand and address problems regarding downloads. @@ -4959,20 +5347,6 @@ The following fields are available: - **sessionID** The ID of the download session. -### Microsoft.OSG.DU.DeliveryOptClient.JobError - -This event represents a Windows Update job error. It allows for investigation of top errors. - -The following fields are available: - -- **clientTelId** A random number used for device sampling. -- **doErrorCode** Error code returned for delivery optimization. -- **errorCode** The error code returned. -- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. -- **fileID** The ID of the file being downloaded. -- **jobID** The Windows Update job ID. - - ## Windows Update events ### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentCommit @@ -5067,6 +5441,24 @@ The following fields are available: - **updateId** Unique ID for each Update. +### Microsoft.Windows.Update.NotificationUx.DialogNotificationToBeDisplayed + +This event indicates that a notification dialog box is about to be displayed to user. + + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootFailedDialog + +This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. + + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootImminentDialog + +This event indicates that the Enhanced Engaged restart "restart imminent" dialog box was displayed. + + + ### Microsoft.Windows.Update.NotificationUx.RebootScheduled Indicates when a reboot is scheduled by the system or a user for a security, quality, or feature update. @@ -5085,6 +5477,18 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.ActivityRestrictedByActiveHoursPolicy + +This event indicates a policy is present that may restrict update activity to outside of active hours. + + + +### Microsoft.Windows.Update.Orchestrator.BlockedByActiveHours + +This event indicates that update activity was blocked because it is within the active hours window. + + + ### Microsoft.Windows.Update.Orchestrator.CommitFailed This event indicates that a device was unable to restart after an update. @@ -5114,16 +5518,16 @@ This event indicates that a scan for a Windows Update occurred. The following fields are available: - **deferReason** Reason why the device could not check for updates. -- **detectionBlockreason** Reason for detection not completing. +- **detectionBlockreason** Reason for blocking detection - **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** The returned error code. -- **eventScenario** End-to-end update session ID, or indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. +- **errorCode** Error value +- **eventScenario** End to end update session ID, or indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. - **flightID** The specific ID of the Windows Insider build the device is getting. - **interactive** Indicates whether the session was user initiated. - **revisionNumber** Update revision number. - **updateId** Update ID. -- **updateScenarioType** Update Session type -- **wuDeviceid** Device ID +- **updateScenarioType** The update session type. +- **wuDeviceid** Unique device ID used by Windows Update. ### Microsoft.Windows.Update.Orchestrator.DisplayNeeded @@ -5142,6 +5546,23 @@ The following fields are available: - **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue +### Microsoft.Windows.Update.Orchestrator.Download + +This event sends launch data for a Windows Update download to help keep Windows up to date. + +The following fields are available: + +- **deferReason** Reason for download not completing. +- **errorCode** An error code represented as a hexadecimal value. +- **eventScenario** End-to-end update session ID. +- **flightID** The specific ID of the Windows Insider build the device is getting. +- **interactive** Indicates whether the session is user initiated. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.FlightInapplicable This event indicates that the update is no longer applicable to this device. @@ -5169,6 +5590,48 @@ The following fields are available: - **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. +### Microsoft.Windows.Update.Orchestrator.InitiatingReboot + +This event sends data about an Orchestrator requesting a reboot from power management to help keep Windows up to date. + +The following fields are available: + +- **EventPublishedTime** Time of the event. +- **flightID** Unique update ID +- **interactive** Indicates whether the reboot initiation stage of the update process was entered as a result of user action. +- **rebootOutsideOfActiveHours** Indicates whether the reboot was to occur outside of active hours. +- **revisionNumber** Revision number of the update. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.Install + +This event sends launch data for a Windows Update install to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **errorCode** The error code reppresented by a hexadecimal value. +- **eventScenario** End-to-end update session ID. +- **flightID** The specific ID of the Windows Insider build the device is getting. +- **flightUpdate** Indicates whether the update is a Windows Insider build. +- **ForcedRebootReminderSet** A boolean value that indicates if a forced reboot will happen for updates. +- **installCommitfailedtime** The time it took for a reboot to happen but the upgrade failed to progress. +- **installRebootinitiatetime** The time it took for a reboot to be attempted. +- **interactive** Identifies if session is user initiated. +- **minutesToCommit** The time it took to install updates. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.LowUptimes This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. @@ -5182,6 +5645,18 @@ The following fields are available: - **wuDeviceid** Unique device ID for Windows Update. +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + ### Microsoft.Windows.Update.Orchestrator.PreShutdownStart This event is generated before the shutdown and commit operations. @@ -5191,6 +5666,166 @@ The following fields are available: - **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. +### Microsoft.Windows.Update.Orchestrator.RebootFailed + +This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **EventPublishedTime** The time that the reboot failure occurred. +- **flightID** Unique update ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot was scheduled outside of active hours. +- **RebootResults** Hex code indicating failure reason. Typically, we expect this to be a specific USO generated hex code. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask + +This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. + +The following fields are available: + +- **RebootTaskRestoredTime** Time at which this reboot task was restored. +- **wuDeviceid** Device ID for the device on which the reboot is restored. + + +### Microsoft.Windows.Update.Orchestrator.SystemNeeded + +This event sends data about why a device is unable to reboot, to help keep Windows up to date. + +The following fields are available: + +- **eventScenario** End-to-end update session ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **systemNeededReason** List of apps or tasks that are preventing the system from restarting. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh + +This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows up to date. + +The following fields are available: + +- **configuredPoliciescount** Number of policies on the device. +- **policiesNamevaluesource** Policy name and source of policy (group policy, MDM or flight). +- **policyCacherefreshtime** Time when policy cache was refreshed. +- **updateInstalluxsetting** Indicates whether a user has set policies via a user experience option. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.USODiagnostics + +This event sends data on whether the state of the update attempt, to help keep Windows up to date. + +The following fields are available: + +- **errorCode** result showing success or failure of current update +- **LastApplicableUpdateFoundTime** The time when the last applicable update was found. +- **LastDownloadDeferredReason** The last reason download was deferred. +- **LastDownloadDeferredTime** The time of the download deferral. +- **LastDownloadFailureError** The last download failure. +- **LastDownloadFailureTime** The time of the last download failure. +- **LastInstallCompletedTime** The time when the last successful install completed. +- **LastInstallDeferredReason** The reason the last install was deferred. +- **LastInstallDeferredTime** The time when the last install was deferred. +- **LastInstallFailureError** The error code associated with the last install failure. +- **LastInstallFailureTime** The time when the last install failed to complete. +- **LastRebootDeferredReason** The reason the last reboot was deferred. +- **LastRebootDeferredTime** The time when the last reboot was deferred. +- **LastRebootPendingTime** The time when the last reboot state was set to “Pending”. +- **LastScanDeferredReason** The reason the last scan was deferred. +- **LastScanDeferredTime** The time when the last scan was deferred. +- **LastScanFailureError** The error code for the last scan failure. +- **LastScanFailureTime** The time when the last scan failed. +- **LastUpdateCheckTime** The time of the last update check. +- **LastUpdateDownloadTime** The time when the last update was downloaded. +- **LastUpgradeInstallFailureError** The error code for the last upgrade install failure. +- **LastUpgradeInstallFailureTime** The time of the last upgrade install failure. +- **LowUpTimeDetectTime** The last time “low up-time” was detected. +- **NoLowUpTimeDetectTime** The last time no “low up-time” was detected. +- **RebootRequired** Indicates reboot is required. +- **revisionNumber** Unique revision number of the Update +- **updateId** Unique ID for Update +- **updateState** Progress within an update state +- **UpgradeInProgressTime** The amount of time a feature update has been in progress. +- **WaaSFeatureAssessmentDays** The number of days Feature Update Assessment has been out of date. +- **WaaSFeatureAssessmentImpact** The impact of the Feature Update Assessment. +- **WaaSUpToDateAssessmentDays** The number of days Quality Update Assessment has been out of date. +- **WaaSUpToDateAssessmentImpact** The impact of Quality Update Assessment. +- **wuDeviceid** Unique ID for Device + + +### Microsoft.Windows.Update.Orchestrator.UsoSession + +This event represents the state of the USO service at start and completion. + +The following fields are available: + +- **activeSessionid** A unique session GUID. +- **eventScenario** The state of the update action. +- **interactive** Is the USO session interactive? +- **lastErrorcode** The last error that was encountered. +- **lastErrorstate** The state of the update when the last error was encountered. +- **sessionType** A GUID that refers to the update session type. +- **updateScenarioType** A descriptive update session type. +- **wuDeviceid** The Windows Update device GUID. + + +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + ### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded This event is sent when a security update has successfully completed. @@ -5209,6 +5844,25 @@ The following fields are available: - **Reason** The reason sent which will cause the reboot to defer. +### Microsoft.Windows.Update.Ux.MusNotification.RebootScheduled + +This event sends basic information about scheduling an update-related reboot, to get security updates and to help keep Windows up-to-date. + +The following fields are available: + +- **activeHoursApplicable** Indicates whether Active Hours applies on this device. +- **forcedReboot** True, if a reboot is forced on the device. Otherwise, this is False +- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. +- **rebootOutsideOfActiveHours** True, if a reboot is scheduled outside of active hours. False, otherwise. +- **rebootScheduledByUser** True, if a reboot is scheduled by user. False, if a reboot is scheduled automatically. +- **rebootState** Current state of the reboot. +- **revisionNumber** Revision number of the update that is getting installed with this reboot. +- **scheduledRebootTime** Time scheduled for the reboot. +- **scheduledRebootTimeInUTC** Time scheduled for the reboot, in UTC. +- **updateId** Identifies which update is being scheduled. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Ux.MusNotification.UxBrokerFirstReadyToReboot This event is fired the first time when the reboot is required. @@ -5227,7 +5881,7 @@ The following fields are available: ### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled -This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up-to-date +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. The following fields are available: @@ -5244,6 +5898,32 @@ The following fields are available: - **wuDeviceid** The Windows Update device GUID. +## Windows Update mitigation events + +### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages + +This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. + +The following fields are available: + +- **ClientId** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightId** Unique identifier for each flight. +- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **MountedImageCount** Number of mounted images. +- **MountedImageMatches** Number of mounted images that were under %systemdrive%\$Windows.~BT. +- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. +- **MountedImagesRemoved** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. +- **MountedImagesSkipped** Number of mounted images that were not under %systemdrive%\$Windows.~BT. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** HResult of this operation. +- **ScenarioId** ID indicating the mitigation scenario. +- **ScenarioSupported** Indicates whether the scenario was supported. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each Update. +- **WuId** Unique ID for the Windows Update client. + + ## Winlogon events ### Microsoft.Windows.Security.Winlogon.SetupCompleteLogon diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md index 9af3127db4..945ae68322 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 09/10/2018 +ms.date: 11/07/2018 --- @@ -28,6 +28,7 @@ Use this article to learn about diagnostic events, grouped by event area, and th You can learn more about Windows functional and diagnostic data through these articles: + - [Windows 10, version 1809 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1809.md) - [Windows 10, version 1709 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1709.md) - [Windows 10, version 1703 basic diagnostic events and fields](basic-level-windows-diagnostic-events-and-fields-1703.md) @@ -35,6 +36,8 @@ You can learn more about Windows functional and diagnostic data through these ar - [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) + + ## Appraiser events ### Microsoft.Windows.Appraiser.General.ChecksumTotalPictureCount @@ -75,7 +78,7 @@ The following fields are available: - **DecisionSystemBios_RS3** The total DecisionSystemBios objects targeting the next release of Windows on this device. - **DecisionTest_RS1** An ID for the system, calculated by hashing hardware identifiers. - **InventoryApplicationFile** The count of the number of this particular object type present on this device. -- **InventoryLanguagePack** The count of the number of this particular object type present on this device. +- **InventoryLanguagePack** The count of InventoryLanguagePack objects present on this machine. - **InventoryMediaCenter** The count of the number of this particular object type present on this device. - **InventorySystemBios** The count of the number of this particular object type present on this device. - **InventoryTest** The count of the number of this particular object type present on this device. @@ -369,7 +372,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -575,6 +578,17 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.DecisionMatchingInfoPostUpgradeStartSync + +This event indicates that a new set of DecisionMatchingInfoPostUpgradeAdd events will be sent. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. + + ### Microsoft.Windows.Appraiser.General.DecisionMediaCenterAdd This event sends decision data about the presence of Windows Media Center, to help keep Windows up to date. @@ -701,7 +715,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -822,6 +836,31 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageAdd + +This event is only runs during setup. It provides a listing of the uplevel driver packages that were downloaded before the upgrade. Is critical to understanding if failures in setup can be traced to not having sufficient uplevel drivers before the upgrade. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. +- **BootCritical** Is the driver package marked as boot critical? +- **Build** The build value from the driver package. +- **CatalogFile** The name of the catalog file within the driver package. +- **Class** The device class from the driver package. +- **ClassGuid** The device class unique ID from the driver package. +- **Date** The date from the driver package. +- **Inbox** Is the driver package of a driver that is included with Windows? +- **OriginalName** The original name of the INF file before it was renamed. Generally a path under $WINDOWS.~BT\Drivers\DU. +- **Provider** The provider of the driver package. +- **PublishedName** The name of the INF file after it was renamed. +- **Revision** The revision of the driver package. +- **SignatureStatus** Indicates if the driver package is signed. Unknown = 0, Unsigned = 1, Signed = 2. +- **VersionMajor** The major version of the driver package. +- **VersionMinor** The minor version of the driver package. + + ### Microsoft.Windows.Appraiser.General.InventoryUplevelDriverPackageRemove This event indicates that the InventoryUplevelDriverPackage object is no longer present. @@ -1179,6 +1218,23 @@ The following fields are available: - **AppraiserVersion** The version of the Appraiser file that is generating the events. +### Microsoft.Windows.Appraiser.General.SystemWlanAdd + +This event sends data indicating whether the system has WLAN, and if so, whether it uses an emulated driver that could block an upgrade, to help keep Windows up-to-date. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **AppraiserVersion** The version of the Appraiser file that is generating the events. +- **Blocking** Is the upgrade blocked because of an emulated WLAN driver? +- **HasWlanBlock** Does the emulated WLAN driver have an upgrade block? +- **WlanEmulatedDriver** Does the device have an emulated WLAN driver? +- **WlanExists** Does the device support WLAN at all? +- **WlanModulePresent** Are any WLAN modules present? +- **WlanNativeDriver** Does the device have a non-emulated WLAN driver? + + ### Microsoft.Windows.Appraiser.General.SystemWlanRemove This event indicates that the SystemWlan object is no longer present. @@ -1292,7 +1348,7 @@ The following fields are available: - **AppraiserTaskExitCode** The Appraiser task exist code. - **AppraiserTaskLastRun** The last runtime for the Appraiser task. - **CensusVersion** The version of Census that generated the current data for this device. -- **IEVersion** Retrieves which version of Internet Explorer is running on this device. +- **IEVersion** IE version running on the device. ### Census.Battery @@ -2594,6 +2650,91 @@ The following fields are available: - **CV** Correlation vector. +## DxgKernelTelemetry events + +### DxgKrnlTelemetry.GPUAdapterInventoryV2 + +This event sends basic GPU and display driver information to keep Windows and display drivers up-to-date. + +The following fields are available: + +- **AdapterTypeValue** The numeric value indicating the type of Graphics adapter. +- **aiSeqId** The event sequence ID. +- **bootId** The system boot ID. +- **BrightnessVersionViaDDI** The version of the Display Brightness Interface. +- **ComputePreemptionLevel** The maximum preemption level supported by GPU for compute payload. +- **DedicatedSystemMemoryB** The amount of system memory dedicated for GPU use (in bytes). +- **DedicatedVideoMemoryB** The amount of dedicated VRAM of the GPU (in bytes). +- **DisplayAdapterLuid** The display adapter LUID. +- **DriverDate** The date of the display driver. +- **DriverRank** The rank of the display driver. +- **DriverVersion** The display driver version. +- **DX10UMDFilePath** The file path to the location of the DirectX 10 Display User Mode Driver in the Driver Store. +- **DX11UMDFilePath** The file path to the location of the DirectX 11 Display User Mode Driver in the Driver Store. +- **DX12UMDFilePath** The file path to the location of the DirectX 12 Display User Mode Driver in the Driver Store. +- **DX9UMDFilePath** The file path to the location of the DirectX 9 Display User Mode Driver in the Driver Store. +- **GPUDeviceID** The GPU device ID. +- **GPUPreemptionLevel** The maximum preemption level supported by GPU for graphics payload. +- **GPURevisionID** The GPU revision ID. +- **GPUVendorID** The GPU vendor ID. +- **InterfaceId** The GPU interface ID. +- **IsDisplayDevice** Does the GPU have displaying capabilities? +- **IsHybridDiscrete** Does the GPU have discrete GPU capabilities in a hybrid device? +- **IsHybridIntegrated** Does the GPU have integrated GPU capabilities in a hybrid device? +- **IsLDA** Is the GPU comprised of Linked Display Adapters? +- **IsMiracastSupported** Does the GPU support Miracast? +- **IsMismatchLDA** Is at least one device in the Linked Display Adapters chain from a different vendor? +- **IsMPOSupported** Does the GPU support Multi-Plane Overlays? +- **IsMsMiracastSupported** Are the GPU Miracast capabilities driven by a Microsoft solution? +- **IsPostAdapter** Is this GPU the POST GPU in the device? +- **IsRemovable** TRUE if the adapter supports being disabled or removed. +- **IsRenderDevice** Does the GPU have rendering capabilities? +- **IsSoftwareDevice** Is this a software implementation of the GPU? +- **KMDFilePath** The file path to the location of the Display Kernel Mode Driver in the Driver Store. +- **MeasureEnabled** Is the device listening to MICROSOFT_KEYWORD_MEASURES? +- **NumVidPnSources** The number of supported display output sources. +- **NumVidPnTargets** The number of supported display output targets. +- **SharedSystemMemoryB** The amount of system memory shared by GPU and CPU (in bytes). +- **SubSystemID** The subsystem ID. +- **SubVendorID** The GPU sub vendor ID. +- **TelemetryEnabled** Is the device listening to MICROSOFT_KEYWORD_TELEMETRY? +- **TelInvEvntTrigger** What triggered this event to be logged? Example: 0 (GPU enumeration) or 1 (DxgKrnlTelemetry provider toggling) +- **version** The event version. +- **WDDMVersion** The Windows Display Driver Model version. + + +## Fault Reporting events + +### Microsoft.Windows.FaultReporting.AppCrashEvent + +This event sends data about crashes for both native and managed applications, to help keep Windows up to date. The data includes information about the crashing process and a summary of its exception record. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the crash to the Watson service, and the WER event will contain the same ReportID (see field 14 of crash event, field 19 of WER event) as the crash event for the crash being reported. AppCrash is emitted once for each crash handled by WER (e.g. from an unhandled exception or FailFast or ReportException). Note that Generic Watson event types (e.g. from PLM) that may be considered crashes\" by a user DO NOT emit this event. + +The following fields are available: + +- **AppName** The name of the app that has crashed. +- **AppSessionGuid** GUID made up of process ID and is used as a correlation vector for process instances in the telemetry backend. +- **AppTimeStamp** The date/time stamp of the app. +- **AppVersion** The version of the app that has crashed. +- **ExceptionCode** The exception code returned by the process that has crashed. +- **ExceptionOffset** The address where the exception had occurred. +- **Flags** Flags indicating how reporting is done. For example, queue the report, do not offer JIT debugging, or do not terminate the process after reporting. +- **FriendlyAppName** The description of the app that has crashed, if different from the AppName. Otherwise, the process name. +- **IsCrashFatal** (Deprecated) True/False to indicate whether the crash resulted in process termination. +- **IsFatal** True/False to indicate whether the crash resulted in process termination. +- **ModName** Exception module name (e.g. bar.dll). +- **ModTimeStamp** The date/time stamp of the module. +- **ModVersion** The version of the module that has crashed. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the crashing process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has crashed. +- **ProcessId** The ID of the process that has crashed. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported +- **TargetAsId** The sequence number for the hanging process. + + ## Feature update events ### Microsoft.Windows.Upgrade.Uninstall.UninstallFailed @@ -2618,6 +2759,34 @@ This event sends basic metadata about the starting point of uninstalling a featu +## Hang Reporting events + +### Microsoft.Windows.HangReporting.AppHangEvent + +This event sends data about hangs for both native and managed applications, to help keep Windows up to date. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the hang to the Watson service, and the WER event will contain the same ReportID (see field 13 of hang event, field 19 of WER event) as the hang event for the hang being reported. AppHang is reported only on PC devices. It handles classic Win32 hangs and is emitted only once per report. Some behaviors that may be perceived by a user as a hang are reported by app managers (e.g. PLM/RM/EM) as Watson Generics and will not produce AppHang events. + +The following fields are available: + +- **AppName** The name of the app that has hung. +- **AppSessionGuid** GUID made up of process id used as a correlation vector for process instances in the telemetry backend. +- **AppVersion** The version of the app that has hung. +- **IsFatal** True/False based on whether the hung application caused the creation of a Fatal Hang Report. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the hung process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has hung. +- **ProcessId** The ID of the process that has hung. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported. +- **TargetAsId** The sequence number for the hanging process. +- **TypeCode** Bitmap describing the hang type. +- **WaitingOnAppName** If this is a cross process hang waiting for an application, this has the name of the application. +- **WaitingOnAppVersion** If this is a cross process hang, this has the version of the application for which it is waiting. +- **WaitingOnPackageFullName** If this is a cross process hang waiting for a package, this has the full name of the package for which it is waiting. +- **WaitingOnPackageRelativeAppId** If this is a cross process hang waiting for a package, this has the relative application id of the package. + + ## Inventory events ### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum @@ -2693,6 +2862,18 @@ The following fields are available: - **Version** The version number of the program. +### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverAdd + +This event represents what drivers an application installs. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **InventoryVersion** The version of the inventory component. +- **ProgramIds** The unique program identifier the driver is associated with. + + ### Microsoft.Windows.Inventory.Core.InventoryApplicationFrameworkAdd This event provides the basic metadata about the frameworks an application may depend on. @@ -2839,6 +3020,17 @@ The following fields are available: - **InventoryVersion** The version of the inventory file generating the events. +### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassRemove + +This event indicates that the InventoryDeviceMediaClassRemove object is no longer present. + +This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). + +The following fields are available: + +- **InventoryVersion** The version of the inventory file generating the events. + + ### Microsoft.Windows.Inventory.Core.InventoryDeviceMediaClassStartSync This event indicates that a new set of InventoryDeviceMediaClassSAdd events will be sent. @@ -2873,7 +3065,7 @@ The following fields are available: - **Enumerator** The date of the driver loaded for the device. - **HWID** The version of the driver loaded for the device. - **Inf** The bus that enumerated the device. -- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/library/windows/hardware/ff543130.aspx +- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/en-us/library/windows/hardware/ff543130.aspx - **InventoryVersion** List of hardware ids for the device. - **LowerClassFilters** Lower filter class drivers IDs installed for the device - **LowerFilters** Lower filter drivers IDs installed for the device @@ -3438,6 +3630,557 @@ The following fields are available: - **UptimeDeltaMS** Total time (in milliseconds) added to Uptime since the last event +## OneDrive events + +### Microsoft.OneDrive.Sync.Setup.APIOperation + +This event includes basic data about install and uninstall OneDrive API operations. + +The following fields are available: + +- **APIName** The name of the API. +- **Duration** How long the operation took. +- **IsSuccess** Was the operation successful? +- **ResultCode** The result code. +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.EndExperience + +This event includes a success or failure summary of the installation. + +The following fields are available: + +- **APIName** The name of the API. +- **HResult** HResult of the operation +- **IsSuccess** Whether the operation is successful or not +- **ScenarioName** The name of the scenario. + + +### Microsoft.OneDrive.Sync.Setup.OSUpgradeInstallationOperation + +This event is related to the OS version when the OS is upgraded with OneDrive installed. + +The following fields are available: + +- **CurrentOneDriveVersion** The current version of OneDrive. +- **CurrentOSBuildBranch** The current branch of the operating system. +- **CurrentOSBuildNumber** The current build number of the operating system. +- **CurrentOSVersion** The current version of the operating system. +- **HResult** The HResult of the operation. +- **SourceOSBuildBranch** The source branch of the operating system. +- **SourceOSBuildNumber** The source build number of the operating system. +- **SourceOSVersion** The source version of the operating system. + + +### Microsoft.OneDrive.Sync.Setup.RegisterStandaloneUpdaterAPIOperation + +This event is related to registering or unregistering the OneDrive update task. + +The following fields are available: + +- **APIName** The name of the API. +- **IsSuccess** Was the operation successful? +- **RegisterNewTaskResult** The HResult of the RegisterNewTask operation. +- **ScenarioName** The name of the scenario. +- **UnregisterOldTaskResult** The HResult of the UnregisterOldTask operation. + + +### Microsoft.OneDrive.Sync.Updater.ComponentInstallState + +This event includes basic data about the installation state of dependent OneDrive components. + +The following fields are available: + +- **ComponentName** The name of the dependent component. +- **isInstalled** Is the dependent component installed? + + +### Microsoft.OneDrive.Sync.Updater.OverlayIconStatus + +This event indicates if the OneDrive overlay icon is working correctly. 0 = healthy; 1 = can be fixed; 2 = broken + +The following fields are available: + +- **32bit** The status of the OneDrive overlay icon on a 32-bit operating system. +- **64bit** The status of the OneDrive overlay icon on a 64-bit operating system. + + +### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult + +This event sends information describing the result of the update. + +The following fields are available: + +- **hr** The HResult of the operation. +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. +- **UpdaterVersion** The version of the updater. + + +### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult + +This event determines the status when downloading the OneDrive update configuration file. + +The following fields are available: + +- **hr** The HResult of the operation. + + +### Microsoft.OneDrive.Sync.Updater.WebConnectionStatus + +This event determines the error code that was returned when verifying Internet connectivity. + +The following fields are available: + +- **winInetError** The HResult of the operation. + + +## Other events + +### CbsServicingProvider.CbsCapabilityEnumeration + +This event reports on the results of scanning for optional Windows content on Windows Update. + +The following fields are available: + +- **architecture** Indicates the scan was limited to the specified architecture. +- **capabilityCount** The number of optional content packages found during the scan. +- **clientId** The name of the application requesting the optional content. +- **duration** The amount of time it took to complete the scan. +- **hrStatus** The HReturn code of the scan. +- **language** Indicates the scan was limited to the specified language. +- **majorVersion** Indicates the scan was limited to the specified major version. +- **minorVersion** Indicates the scan was limited to the specified minor version. +- **namespace** Indicates the scan was limited to packages in the specified namespace. +- **sourceFilter** A bitmask indicating the scan checked for locally available optional content. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionFinalize + +This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. + +The following fields are available: + +- **capabilities** The names of the optional content packages that were installed. +- **clientId** The name of the application requesting the optional content. +- **currentID** The ID of the current install session. +- **highestState** The highest final install state of the optional content. +- **hrStatus** The HReturn code of the install operation. +- **rebootCount** The number of reboots required to complete the install. +- **retryID** The session ID that will be used to retry a failed operation. +- **retryStatus** Indicates whether the install will be retried in the event of failure. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionPended + +This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. + +The following fields are available: + +- **clientId** The name of the application requesting the optional content. +- **pendingDecision** Indicates the cause of reboot, if applicable. + + +### CbsServicingProvider.CbsPackageRemoval + +This event provides information about the results of uninstalling a Windows Cumulative Security Update to help keep Windows up to date. + +The following fields are available: + +- **buildVersion** The build number of the security update being uninstalled. +- **clientId** The name of the application requesting the uninstall. +- **currentStateEnd** The final state of the update after the operation. +- **failureDetails** Information about the cause of a failure, if applicable. +- **failureSourceEnd** The stage during the uninstall where the failure occurred. +- **hrStatusEnd** The overall exit code of the operation. +- **initiatedOffline** Indicates if the uninstall was initiated for a mounted Windows image. +- **majorVersion** The major version number of the security update being uninstalled. +- **minorVersion** The minor version number of the security update being uninstalled. +- **originalState** The starting state of the update before the operation. +- **pendingDecision** Indicates the cause of reboot, if applicable. +- **primitiveExecutionContext** The state during system startup when the uninstall was completed. +- **revisionVersion** The revision number of the security update being uninstalled. +- **transactionCanceled** Indicates whether the uninstall was cancelled. + + +### Microsoft.Windows.Remediation.Applicable + +This event indicates a remedial plug-in is applicable if/when such a plug-in is detected. This is used to ensure Windows is up to date. + +The following fields are available: + +- **ActionName** The name of the action to be taken by the plug-in. +- **AppraiserBinariesValidResult** Indicates whether plug-in was appraised as valid. +- **AppraiserDetectCondition** Indicates whether the plug-in passed the appraiser's check. +- **AppraiserRegistryValidResult** Indicates whether the registry entry checks out as valid. +- **AppraiserTaskDisabled** Indicates the appraiser task is disabled. +- **AppraiserTaskValidFailed** Indicates the Appraiser task did not function and requires intervention. +- **CV** Correlation vector +- **DateTimeDifference** The difference between local and reference clock times. +- **DateTimeSyncEnabled** Indicates whether the datetime sync plug-in is enabled. +- **DaysSinceLastSIH** The number of days since the most recent SIH executed. +- **DaysToNextSIH** The number of days until the next scheduled SIH execution. +- **DetectedCondition** Indicates whether detect condition is true and the perform action will be run. +- **EvalAndReportAppraiserBinariesFailed** Indicates the EvalAndReportAppraiserBinaries event failed. +- **EvalAndReportAppraiserRegEntries** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **EvalAndReportAppraiserRegEntriesFailed** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **GlobalEventCounter** Client side counter that indicates ordering of events sent by the remediation system. +- **HResult** The HRESULT for detection or perform action phases of the plugin. +- **IsAppraiserLatestResult** The HRESULT from the appraiser task. +- **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. +- **LastHresult** The HRESULT for detection or perform action phases of the plugin. +- **LastRun** The date of the most recent SIH run. +- **NextRun** Date of the next scheduled SIH run. +- **PackageVersion** The version of the current remediation package. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Reload** True if SIH reload is required. +- **RemediationNoisyHammerAcLineStatus** Event that indicates the AC Line Status of the machine. +- **RemediationNoisyHammerAutoStartCount** The number of times hammer auto-started. +- **RemediationNoisyHammerCalendarTaskEnabled** Event that indicates Update Assistant Calendar Task is enabled. +- **RemediationNoisyHammerCalendarTaskExists** Event that indicates an Update Assistant Calendar Task exists. +- **RemediationNoisyHammerCalendarTaskTriggerEnabledCount** Event that indicates calendar triggers are enabled in the task. +- **RemediationNoisyHammerDaysSinceLastTaskRunTime** The number of days since the most recent hammer task ran. +- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. +- **RemediationNoisyHammerIsInstalled** TRUE if the noisy hammer is installed. +- **RemediationNoisyHammerLastTaskRunResult** The result of the last hammer task run. +- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. +- **RemediationNoisyHammerTaskEnabled** Indicates whether the Update Assistant Task (Noisy Hammer) is enabled. +- **RemediationNoisyHammerTaskExists** Indicates whether the Update Assistant Task (Noisy Hammer) exists. +- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether counting is enabled for the Update Assistant (Noisy Hammer) task trigger. +- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUAExitState** The code for the exit state of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUserLoggedIn** TRUE if there is a user logged in. +- **RemediationNoisyHammerUserLoggedInAdmin** TRUE if there is the user currently logged in is an Admin. +- **RemediationShellDeviceManaged** TRUE if the device is WSUS managed or Windows Updated disabled. +- **RemediationShellDeviceNewOS** TRUE if the device has a recently installed OS. +- **RemediationShellDeviceSccm** TRUE if the device is managed by SCCM (Microsoft System Center Configuration Manager). +- **RemediationShellDeviceZeroExhaust** TRUE if the device has opted out of Windows Updates completely. +- **RemediationTargetMachine** Indicates whether the device is a target of the specified fix. +- **RemediationTaskHealthAutochkProxy** True/False based on the health of the AutochkProxy task. +- **RemediationTaskHealthChkdskProactiveScan** True/False based on the health of the Check Disk task. +- **RemediationTaskHealthDiskCleanup_SilentCleanup** True/False based on the health of the Disk Cleanup task. +- **RemediationTaskHealthMaintenance_WinSAT** True/False based on the health of the Health Maintenance task. +- **RemediationTaskHealthServicing_ComponentCleanupTask** True/False based on the health of the Health Servicing Component task. +- **RemediationTaskHealthUSO_ScheduleScanTask** True/False based on the health of the USO (Update Session Orchestrator) Schedule task. +- **RemediationTaskHealthWindowsUpdate_ScheduledStartTask** True/False based on the health of the Windows Update Scheduled Start task. +- **RemediationTaskHealthWindowsUpdate_SihbootTask** True/False based on the health of the Sihboot task. +- **RemediationUHServiceBitsServiceEnabled** Indicates whether BITS service is enabled. +- **RemediationUHServiceDeviceInstallEnabled** Indicates whether Device Install service is enabled. +- **RemediationUHServiceDoSvcServiceEnabled** Indicates whether DO service is enabled. +- **RemediationUHServiceDsmsvcEnabled** Indicates whether DSMSVC service is enabled. +- **RemediationUHServiceLicensemanagerEnabled** Indicates whether License Manager service is enabled. +- **RemediationUHServiceMpssvcEnabled** Indicates whether MPSSVC service is enabled. +- **RemediationUHServiceTokenBrokerEnabled** Indicates whether Token Broker service is enabled. +- **RemediationUHServiceTrustedInstallerServiceEnabled** Indicates whether Trusted Installer service is enabled. +- **RemediationUHServiceUsoServiceEnabled** Indicates whether USO (Update Session Orchestrator) service is enabled. +- **RemediationUHServicew32timeServiceEnabled** Indicates whether W32 Time service is enabled. +- **RemediationUHServiceWecsvcEnabled** Indicates whether WECSVC service is enabled. +- **RemediationUHServiceWinmgmtEnabled** Indicates whether WMI service is enabled. +- **RemediationUHServiceWpnServiceEnabled** Indicates whether WPN service is enabled. +- **RemediationUHServiceWuauservServiceEnabled** Indicates whether WUAUSERV service is enabled. +- **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. +- **RunAppraiserFailed** Indicates RunAppraiser failed to run correctly. +- **RunTask** TRUE if SIH task should be run by the plug-in. +- **TimeServiceNTPServer** The URL for the NTP time server used by device. +- **TimeServiceStartType** The startup type for the NTP time service. +- **TimeServiceSyncDomainJoined** True if device domain joined and hence uses DC for clock. +- **TimeServiceSyncType** Type of sync behavior for Date & Time service on device. + + +### Microsoft.Windows.Remediation.ChangePowerProfileDetection + +Indicates whether the remediation system can put in a request to defer a system-initiated sleep to enable installation of security or quality updates. + +The following fields are available: + +- **ActionName** A descriptive name for the plugin action +- **CurrentPowerPlanGUID** The ID of the current power plan configured on the device +- **CV** Correlation vector +- **GlobalEventCounter** Counter that indicates the ordering of events on the device +- **PackageVersion** Current package version of remediation service +- **RemediationBatteryPowerBatteryLevel** Integer between 0 and 100 indicating % battery power remaining (if not on battery, expect 0) +- **RemediationFUInProcess** Result that shows whether the device is currently installing a feature update +- **RemediationFURebootRequred** Indicates that a feature update reboot required was detected so the plugin will exit. +- **RemediationScanInProcess** Result that shows whether the device is currently scanning for updates +- **RemediationTargetMachine** Result that shows whether this device is a candidate for remediation(s) that will fix update issues +- **SetupMutexAvailable** Result that shows whether setup mutex is available or not +- **SysPowerStatusAC** Result that shows whether system is on AC power or not + + +### Microsoft.Windows.Remediation.Completed + +This event enables completion tracking of a process that remediates issues preventing security and quality updates. + +The following fields are available: + +- **ActionName** Name of the action to be completed by the plug-in. +- **AppraiserTaskCreationFailed** TRUE if the appraiser task creation failed to complete successfully. +- **AppraiserTaskDeleteFailed** TRUE if deletion of appraiser task failed to complete successfully. +- **AppraiserTaskExistFailed** TRUE if detection of the appraiser task failed to complete successfully. +- **AppraiserTaskLoadXmlFailed** TRUE if the Appraiser XML Loader failed to complete successfully. +- **AppraiserTaskMissing** TRUE if the Appraiser task is missing. +- **AppraiserTaskTimeTriggerUpdateFailedId** TRUE if the Appraiser Task Time Trigger failed to update successfully. +- **AppraiserTaskValidateTaskXmlFailed** TRUE if the Appraiser Task XML failed to complete successfully. +- **branchReadinessLevel** Branch readiness level policy. +- **cloudControlState** Value indicating whether the shell is enabled on the cloud control settings. +- **CrossedDiskSpaceThreshold** Indicates if cleanup resulted in hard drive usage threshold required for feature update to be exceeded. +- **CV** The Correlation Vector. +- **DateTimeDifference** The difference between the local and reference clocks. +- **DaysSinceOsInstallation** The number of days since the installation of the Operating System. +- **DiskMbCleaned** The amount of space cleaned on the hard disk, measured in Megabytes. +- **DiskMbFreeAfterCleanup** The amount of free hard disk space after cleanup, measured in Megabytes. +- **DiskMbFreeBeforeCleanup** The amount of free hard disk space before cleanup, measured in Megabytes. +- **ForcedAppraiserTaskTriggered** TRUE if Appraiser task ran from the plug-in. +- **GlobalEventCounter** Client-side counter that indicates ordering of events sent by the active user. +- **HandlerCleanupFreeDiskInMegabytes** The amount of hard disk space cleaned by the storage sense handlers, measured in Megabytes. +- **hasRolledBack** Indicates whether the client machine has rolled back. +- **hasUninstalled** Indicates whether the client machine has uninstalled a later version of the OS. +- **hResult** The result of the event execution. +- **HResult** The result of the event execution. +- **installDate** The value of installDate registry key. Indicates the install date. +- **isNetworkMetered** Indicates whether the client machine has uninstalled a later version of the OS. +- **LatestState** The final state of the plug-in component. +- **MicrosoftCompatibilityAppraiser** The name of the component targeted by the Appraiser plug-in. +- **PackageVersion** The package version for the current Remediation. +- **PageFileCount** The number of Windows Page files. +- **PageFileCurrentSize** The size of the Windows Page file, measured in Megabytes. +- **PageFileLocation** The storage location (directory path) of the Windows Page file. +- **PageFilePeakSize** The maximum amount of hard disk space used by the Windows Page file, measured in Megabytes. +- **PluginName** The name of the plug-in specified for each generic plug-in event. +- **RanCleanup** TRUE if the plug-in ran disk cleanup. +- **RemediationBatteryPowerBatteryLevel** Indicates the battery level at which it is acceptable to continue operation. +- **RemediationBatteryPowerExitDueToLowBattery** True when we exit due to low battery power. +- **RemediationBatteryPowerOnBattery** True if we allow execution on battery. +- **RemediationConfigurationTroubleshooterExecuted** True/False based on whether the Remediation Configuration Troubleshooter executed successfully. +- **RemediationConfigurationTroubleshooterIpconfigFix** TRUE if IPConfig Fix completed successfully. +- **RemediationConfigurationTroubleshooterNetShFix** TRUE if network card cache reset ran successfully. +- **RemediationDiskCleanSizeBtWindowsFolderInMegabytes** The size of the Windows BT folder (used to store Windows upgrade files), measured in Megabytes. +- **RemediationDiskCleanupBTFolderEsdSizeInMB** The size of the Windows BT folder (used to store Windows upgrade files) ESD (Electronic Software Delivery), measured in Megabytes. +- **RemediationDiskCleanupGetCurrentEsdSizeInMB** The size of any existing ESD (Electronic Software Delivery) folder, measured in Megabytes. +- **RemediationDiskCleanupSearchFileSizeInMegabytes** The size of the Cleanup Search index file, measured in Megabytes. +- **RemediationDiskCleanupUpdateAssistantSizeInMB** The size of the Update Assistant folder, measured in Megabytes. +- **RemediationDoorstopChangeSucceeded** TRUE if Doorstop registry key was successfully modified. +- **RemediationDoorstopExists** TRUE if there is a One Settings Doorstop value. +- **RemediationDoorstopRegkeyError** TRUE if an error occurred accessing the Doorstop registry key. +- **RemediationDRFKeyDeleteSucceeded** TRUE if the RecoveredFrom (Doorstop) registry key was successfully deleted. +- **RemediationDUABuildNumber** The build number of the DUA. +- **RemediationDUAKeyDeleteSucceeded** TRUE if the UninstallActive registry key was successfully deleted. +- **RemediationDuplicateTokenSucceeded** TRUE if the user token was successfully duplicated. +- **remediationExecution** Remediation shell is in "applying remediation" state. +- **RemediationHibernationMigrated** TRUE if hibernation was migrated. +- **RemediationHibernationMigrationSucceeded** TRUE if hibernation migration succeeded. +- **RemediationImpersonateUserSucceeded** TRUE if the user was successfully impersonated. +- **RemediationNoisyHammerTaskKickOffIsSuccess** TRUE if the NoisyHammer task started successfully. +- **RemediationQueryTokenSucceeded** TRUE if the user token was successfully queried. +- **RemediationRanHibernation** TRUE if the system entered Hibernation. +- **RemediationRevertToSystemSucceeded** TRUE if reversion to the system context succeeded. +- **RemediationShellHasUpgraded** TRUE if the device upgraded. +- **RemediationShellMinimumTimeBetweenShellRuns** Indicates the time between shell runs exceeded the minimum required to execute plugins. +- **RemediationShellRunFromService** TRUE if the shell driver was run from the service. +- **RemediationShellSessionIdentifier** Unique identifier tracking a shell session. +- **RemediationShellSessionTimeInSeconds** Indicates the time the shell session took in seconds. +- **RemediationShellTaskDeleted** Indicates that the shell task has been deleted so no additional sediment pack runs occur for this installation. +- **RemediationUpdateServiceHealthRemediationResult** The result of the Update Service Health plug-in. +- **RemediationUpdateTaskHealthRemediationResult** The result of the Update Task Health plug-in. +- **RemediationUpdateTaskHealthTaskList** A list of tasks fixed by the Update Task Health plug-in. +- **RemediationWindowsLogSpaceFound** The size of the Windows log files found, measured in Megabytes. +- **RemediationWindowsLogSpaceFreed** The amount of disk space freed by deleting the Windows log files, measured in Megabytes. +- **RemediationWindowsSecondaryDriveFreeSpace** The amount of free space on the secondary drive, measured in Megabytes. +- **RemediationWindowsSecondaryDriveLetter** The letter designation of the first secondary drive with a total capacity of 10GB or more. +- **RemediationWindowsSecondaryDriveTotalSpace** The total storage capacity of the secondary drive, measured in Megabytes. +- **RemediationWindowsTotalSystemDiskSize** The total storage capacity of the System Disk Drive, measured in Megabytes. +- **Result** The HRESULT for Detection or Perform Action phases of the plug-in. +- **RunResult** The HRESULT for Detection or Perform Action phases of the plug-in. +- **ServiceHealthPlugin** The nae of the Service Health plug-in. +- **StartComponentCleanupTask** TRUE if the Component Cleanup task started successfully. +- **systemDriveFreeDiskSpace** Indicates the free disk space on system drive in MBs. +- **systemUptimeInHours** Indicates the amount of time the system in hours has been on since the last boot. +- **TotalSizeofOrphanedInstallerFilesInMegabytes** The size of any orphaned Windows Installer files, measured in Megabytes. +- **TotalSizeofStoreCacheAfterCleanupInMegabytes** The size of the Windows Store cache after cleanup, measured in Megabytes. +- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Windows Store cache (prior to cleanup), measured in Megabytes. +- **uninstallActive** TRUE if previous uninstall has occurred for current OS +- **usoScanDaysSinceLastScan** The number of days since the last USO (Update Session Orchestrator) scan. +- **usoScanInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsAllowAutoUpdateKeyPresent** TRUE if the AllowAutoUpdate registry key is set. +- **usoScanIsAllowAutoUpdateProviderSetKeyPresent** TRUE if AllowAutoUpdateProviderSet registry key is set. +- **usoScanIsAuOptionsPresent** TRUE if Auto Update Options registry key is set. +- **usoScanIsFeatureUpdateInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsNetworkMetered** TRUE if the device is currently connected to a metered network. +- **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. +- **usoScanIsUserLoggedOn** TRUE if the user is logged on. +- **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). +- **usoScanType** The type of USO (Update Session Orchestrator) scan: "Interactive" or "Background". +- **windows10UpgraderBlockWuUpdates** Event to report the value of Windows 10 Upgrader BlockWuUpdates Key. +- **windowsEditionId** Event to report the value of Windows Edition ID. +- **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. +- **WindowsInstallerFolderSizeInMegabytes** The size of the Windows Installer folder, measured in Megabytes. +- **WindowsOldFolderSizeInMegabytes** The size of the Windows.OLD folder, measured in Megabytes. +- **WindowsOldSpaceCleanedInMB** The amount of disk space freed by removing the Windows.OLD folder, measured in Megabytes. +- **WindowsPageFileSysSizeInMegabytes** The size of the Windows Page file, measured in Megabytes. +- **WindowsSoftwareDistributionFolderSizeInMegabytes** The size of the SoftwareDistribution folder, measured in Megabytes. +- **WindowsSwapFileSysSizeInMegabytes** The size of the Windows Swap file, measured in Megabytes. +- **WindowsSxsFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) folder, measured in Megabytes. +- **WindowsSxsTempFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) Temp folder, measured in Megabytes. +- **windowsUpgradeRecoveredFromRs4** Event to report the value of the Windows Upgrade Recovered key. + + +### Microsoft.Windows.Remediation.RemediationShellMainExeEventId + +Enables tracking of completion of process that remediates issues preventing security and quality updates. + +The following fields are available: + +- **CV** Client side counter which indicates ordering of events sent by the remediation system. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by the remediation system. +- **PackageVersion** Current package version of Remediation. +- **RemediationShellCanAcquireSedimentMutex** True if the remediation was able to acquire the sediment mutex. False if it is already running. +- **RemediationShellExecuteShellResult** Indicates if the remediation system completed without errors. +- **RemediationShellFoundDriverDll** Result whether the remediation system found its component files to run properly. +- **RemediationShellLoadedShellDriver** Result whether the remediation system loaded its component files to run properly. +- **RemediationShellLoadedShellFunction** Result whether the remediation system loaded the functions from its component files to run properly. + + +### Microsoft.Windows.Remediation.Started + +This event reports whether a plug-in started, to help ensure Windows is up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Applicable + +Indicates whether a given plugin is applicable. + +The following fields are available: + +- **CV** Correlation vector. +- **DetectedCondition** Boolean true if detect condition is true and perform action will be run. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **IsSelfUpdateEnabledInOneSettings** True if self update enabled in Settings. +- **IsSelfUpdateNeeded** True if self update needed by device. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Completed + +Indicates whether a given plugin has completed its work. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. +- **SedLauncherExecutionResult** HRESULT for one execution of the Sediment Launcher. + + +### Microsoft.Windows.SedimentLauncher.Started + +This event indicates that a given plug-in has started. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Applicable + +This event indicates whether a given plug-in is applicable. + +The following fields are available: + +- **CV** Correlation vector. +- **DetectedCondition** Determine whether action needs to run based on device properties. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Completed + +This event indicates whether a given plug-in has completed its work. + +The following fields are available: + +- **CV** Correlation vector. +- **FailedReasons** List of reasons when the plugin action failed. +- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **PackageVersion** Current package version of Remediation. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. +- **SedimentServiceCheckTaskFunctional** True/False if scheduled task check succeeded. +- **SedimentServiceCurrentBytes** Number of current private bytes of memory consumed by sedsvc.exe. +- **SedimentServiceKillService** True/False if service is marked for kill (Shell.KillService). +- **SedimentServiceMaximumBytes** Maximum bytes allowed for the service. +- **SedimentServiceRetrievedKillService** True/False if result of One Settings check for kill succeeded - we only send back one of these indicators (not for each call). +- **SedimentServiceStopping** True/False indicating whether the service is stopping. +- **SedimentServiceTaskFunctional** True/False if scheduled task is functional. If task is not functional this indicates plugins will be run. +- **SedimentServiceTotalIterations** Number of 5 second iterations service will wait before running again. + + +### Microsoft.Windows.SedimentService.Started + +This event indicates a specified plug-in has started. This information helps ensure Windows is up to date. + +The following fields are available: + +- **CV** The Correlation Vector. +- **GlobalEventCounter** The client-side counter that indicates ordering of events. +- **PackageVersion** The version number of the current remediation package. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. + + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + +The following fields are available: + +- **AppActionId** The ID of the application action. +- **AppCurrentVisibilityState** The ID of the current application visibility state. +- **AppId** The Xbox LIVE Title ID of the app. +- **AppPackageFullName** The full name of the application package. +- **AppPreviousVisibilityState** The ID of the previous application visibility state. +- **AppSessionId** The application session ID. +- **AppType** The type ID of the application (AppType_NotKnown, AppType_Era, AppType_Sra, AppType_Uwa). +- **BCACode** The BCA (Burst Cutting Area) mark code of the optical disc used to launch the application. +- **DurationMs** The amount of time (in milliseconds) since the last application state transition. +- **IsTrialLicense** This boolean value is TRUE if the application is on a trial license. +- **LicenseType** The type of licensed used to authorize the app (0 - Unknown, 1 - User, 2 - Subscription, 3 - Offline, 4 - Disc). +- **LicenseXuid** If the license type is 1 (User), this field contains the XUID (Xbox User ID) of the registered owner of the license. +- **ProductGuid** The Xbox product GUID (Globally-Unique ID) of the application. +- **UserId** The XUID (Xbox User ID) of the current user. + + ## Privacy consent logging events ### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentCompleted @@ -3467,6 +4210,54 @@ The following fields are available: ## Sediment events +### Microsoft.Windows.Sediment.Info.DetailedState + +This event is sent when detailed state information is needed from an update trial run. + +The following fields are available: + +- **Data** Data relevant to the state, such as what percent of disk space the directory takes up. +- **Id** Identifies the trial being run, such as a disk related trial. +- **ReleaseVer** The version of the component. +- **State** The state of the reporting data from the trial, such as the top-level directory analysis. +- **Time** The time the event was fired. + + +### Microsoft.Windows.Sediment.Info.Error + +This event indicates an error in the updater payload. This information assists in keeping Windows up to date. + + + +### Microsoft.Windows.Sediment.OSRSS.CheckingOneSettings + +This event indicates the parameters that the Operating System Remediation System Service (OSRSS) uses for a secure ping to Microsoft to help ensure Windows is up to date. + +The following fields are available: + +- **CustomVer** The registry value for targeting. +- **IsMetered** TRUE if the machine is on a metered network. +- **LastVer** The version of the last successful run. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + +### Microsoft.Windows.Sediment.OSRSS.Error + +This event indicates an error occurred in the Operating System Remediation System Service (OSRSS). The information provided helps ensure future upgrade/update attempts are more successful. + +The following fields are available: + +- **FailureType** The type of error encountered. +- **FileName** The code file in which the error occurred. +- **HResult** The failure error code. +- **LineNumber** The line number in the code file at which the error occurred. +- **ServiceVersionMajor** The Major version information of the component. +- **ServiceVersionMinor** The Minor version information of the component. +- **Time** The system time at which the event occurred. + + ### Microsoft.Windows.Sediment.OSRSS.UrlState This event indicates the state the Operating System Remediation System Service (OSRSS) is in while attempting a download from the URL. @@ -3483,6 +4274,32 @@ The following fields are available: ## Setup events +### SetupPlatformTel.SetupPlatformTelActivityEvent + +This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. + +The following fields are available: + +- **FieldName** Retrieves the event name/data point. Examples: InstallStartTime, InstallEndtime, OverallResult etc. +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. +- **Value** Value associated with the corresponding event name. For example, time-related events will include the system time + + +### SetupPlatformTel.SetupPlatformTelActivityStarted + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + +The following fields are available: + +- **Name** The name of the dynamic update type. Example: GDR driver + + +### SetupPlatformTel.SetupPlatformTelActivityStopped + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + + + ### SetupPlatformTel.SetupPlatformTelEvent This service retrieves events generated by SetupPlatform, the engine that drives the various deployment scenarios. @@ -3961,14 +4778,31 @@ The following fields are available: - **SignatureAlgorithm** Hash algorithm for the metadata signature - **SLSPrograms** A test program a machine may be opted in. Examples include "Canary" and "Insider Fast". - **StatusCode** Result code of the event (success, cancellation, failure code HResult) -- **TimestampTokenCertThumbprint** The thumbprint of the encoded timestamp token. +- **TimestampTokenCertThumbprint** Thumbprint of the encoded timestamp token. - **TimestampTokenId** Created time encoded in the timestamp blob. This will be zeroed if the token is itself malformed and decoding failed. - **UpdateId** Identifier associated with the specific piece of content -- **ValidityWindowInDays** The validity window that's in effect when verifying the timestamp. +- **ValidityWindowInDays** Validity window in effect when verifying the timestamp ## Update events +### Update360Telemetry.Revert + +This event sends data relating to the Revert phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the Revert phase. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RebootRequired** Indicates reboot is required. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + ### Update360Telemetry.UpdateAgentCommit This event collects information regarding the commit phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. @@ -4104,6 +4938,52 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgentMitigationResult + +This event sends data indicating the result of each update agent mitigation. + +The following fields are available: + +- **Applicable** Indicates whether the mitigation is applicable for the current update. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightId** Unique identifier for each flight. +- **Index** The mitigation index of this particular mitigation. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly name of the mitigation. +- **ObjectId** Unique value for each Update Agent mode. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentMitigationSummary + +This event sends a summary of all the update agent mitigations available for an this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **Failed** The count of mitigations that failed. +- **FlightId** Unique identifier for each flight. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing all mitigations (in 100-nanosecond increments). +- **Total** Total number of mitigations that were available. +- **UpdateId** Unique ID for each update. + + ### Update360Telemetry.UpdateAgentModeStart This event sends data for the start of each mode during the process of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to both PCs and Mobile. @@ -4120,6 +5000,24 @@ The following fields are available: - **Version** Version of update +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **Count** The count of applicable OneSettings for the device. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. +- **Values** The values sent back to the device, if applicable. + + ### Update360Telemetry.UpdateAgentPostRebootResult This event collects information for both Mobile and Desktop regarding the post reboot phase of the new Unified Update Platform (UUP) update scenario. @@ -4136,6 +5034,12 @@ The following fields are available: - **UpdateId** Unique ID for each update. +### Update360Telemetry.UpdateAgentReboot + +This event sends information indicating that a request has been sent to suspend an update. + + + ### Update360Telemetry.UpdateAgentSetupBoxLaunch The UpdateAgent_SetupBoxLaunch event sends data for the launching of the setup box when updating Windows via the new Unified Update Platform (UUP) scenario. This event is only applicable to PCs. @@ -4185,7 +5089,7 @@ The following fields are available: - **key19** UI interaction data - **key2** Interaction data for the UI - **key20** UI interaction data -- **key21** Interaction data for the UI +- **key21** UI interaction data - **key22** UI interaction data - **key23** UI interaction data - **key24** UI interaction data @@ -4197,10 +5101,10 @@ The following fields are available: - **key3** Interaction data for the UI - **key30** UI interaction data - **key4** Interaction data for the UI -- **key5** UI interaction data -- **key6** UI interaction data -- **key7** Interaction data for the UI -- **key8** Interaction data for the UI +- **key5** UI interaction type +- **key6** Current package version of UNP +- **key7** UI interaction type +- **key8** UI interaction data - **key9** UI interaction data - **PackageVersion** Current package version of the update notification. - **schema** UI interaction type. @@ -4314,6 +5218,7 @@ The following fields are available: - **DownloadRequestAttributes** The attributes we send to DCAT. - **ResultCode** The result returned from the initialization of Facilitator with the URL/attributes. - **Scenario** Dynamic Update scenario (Image DU, or Setup DU). +- **Url** The Delivery Catalog (DCAT) URL we send the request to. - **Version** Version of Facilitator. @@ -4376,9 +5281,9 @@ The following fields are available: - **Setup360Extended** Detailed information about the phase or action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. - **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. -- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). -- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled - **TestId** ID that uniquely identifies a group of events. - **WuId** Windows Update client ID. @@ -4524,6 +5429,67 @@ The following fields are available: - **TargetBuild** Build of the target OS. +### Setup360Telemetry.Setup360MitigationResult + +This event sends data indicating the result of each setup mitigation. + +The following fields are available: + +- **Applicable** TRUE if the mitigation is applicable for the current update. +- **ClientId** In the Windows Update scenario, this is the client ID passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightData** The unique identifier for each flight (test release). +- **Index** The mitigation index of this particular mitigation. +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly (descriptive) name of the mitigation. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly (descriptive) name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). + + +### Setup360Telemetry.Setup360MitigationSummary + +This event sends a summary of all the setup mitigations available for this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **ClientId** The Windows Update client ID passed to Setup. +- **Failed** The count of mitigations that failed. +- **FlightData** The unique identifier for each flight (test release). +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **Total** The total number of mitigations that were available. + + +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ClientId** The Windows Update client ID passed to Setup. +- **Count** The count of applicable OneSettings for the device. +- **FlightData** The ID for the flight (test instance version). +- **InstanceId** The GUID (Globally-Unique ID) that identifies each instance of setuphost.exe. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **ReportId** The Update ID passed to Setup. +- **Result** The HResult of the event error. +- **ScenarioId** The update scenario ID. +- **Values** Values sent back to the device, if applicable. + + ### Setup360Telemetry.UnexpectedEvent This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. @@ -4538,7 +5504,7 @@ The following fields are available: - **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. - **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. - **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. -- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. - **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. - **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). - **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. @@ -4570,6 +5536,26 @@ The following fields are available: - **versionString** Version of the WaaSMedic engine. +## Windows Error Reporting events + +### Microsoft.Windows.WERVertical.OSCrash + +This event sends binary data from the collected dump file wheneveer a bug check occurs, to help keep Windows up to date. The is the OneCore version of this event. + +The following fields are available: + +- **BootId** Uint32 identifying the boot number for this device. +- **BugCheckCode** Uint64 "bugcheck code" that identifies a proximate cause of the bug check. +- **BugCheckParameter1** Uint64 parameter providing additional information. +- **BugCheckParameter2** Uint64 parameter providing additional information. +- **BugCheckParameter3** Uint64 parameter providing additional information. +- **BugCheckParameter4** Uint64 parameter providing additional information. +- **DumpFileAttributes** Codes that identify the type of data contained in the dump file +- **DumpFileSize** Size of the dump file +- **IsValidDumpFile** True if the dump file is valid for the debugger, false otherwise +- **ReportId** WER Report Id associated with this bug check (used for finding the corresponding report archive in Watson). + + ## Windows Error Reporting MTT events ### Microsoft.Windows.WER.MTT.Denominator @@ -4982,7 +5968,7 @@ The following fields are available: - **current** Result of currency check. - **dismOperationSucceeded** Dism uninstall operation status. -- **hResult** Failure error code. +- **hResult** Failure Error code. - **oSVersion** Build number of the device. - **paused** Indicates whether the device is paused. - **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. @@ -5023,7 +6009,7 @@ The following fields are available: - **current** Result of currency check. - **dismOperationSucceeded** Dism uninstall operation status. -- **hResult** Failure error code. +- **hResult** Failure Error code. - **oSVersion** Build number of the device. - **paused** Indicates whether the device is paused. - **rebootRequestSucceeded** Reboot Configuration Service Provider (CSP) call success status. @@ -5058,45 +6044,128 @@ This event sends basic telemetry on the success of the rollback of the Quality/L ## Windows Update Delivery Optimization events -### Microsoft.OSG.DU.DeliveryOptClient.DownloadStarted +### Microsoft.OSG.DU.DeliveryOptClient.DownloadCanceled -This event sends data describing the start of a new download to enable Delivery Optimization. It's used to understand and address problems regarding downloads. +This event describes when a download was canceled with Delivery Optimization. It's used to understand and address problems regarding downloads. The following fields are available: -- **background** Indicates whether the download is happening in the background. -- **bytesRequested** Number of bytes requested for the download. +- **background** Is the download being done in the background? +- **bytesFromCacheServer** Bytes received from a cache host. +- **bytesFromCDN** The number of bytes received from a CDN source. +- **bytesFromGroupPeers** The number of bytes received from a peer in the same group. +- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same group. +- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. +- **bytesFromPeers** The number of bytes received from a peer in the same LAN. - **callerName** Name of the API caller. -- **cdnUrl** The URL of the source CDN -- **costFlags** A set of flags representing network cost. -- **deviceProfile** Identifies the usage or form factor (such as Desktop, Xbox, or VM). -- **diceRoll** Random number used for determining if a client will use peering. -- **doClientVersion** The version of the Delivery Optimization client. -- **doErrorCode** The Delivery Optimization error code that was returned. -- **downloadMode** The download mode used for this file download session (CdnOnly = 0, Lan = 1, Group = 2, Internet = 3, Simple = 99, Bypass = 100). -- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). +- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. +- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. +- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. - **errorCode** The error code that was returned. -- **experimentId** ID used to correlate client/services calls that are part of the same test during A/B testing. +- **experimentId** When running a test, this is used to correlate events that are part of the same test. - **fileID** The ID of the file being downloaded. -- **filePath** The path to where the downloaded file will be written. -- **fileSize** Total file size of the file that was downloaded. -- **fileSizeCaller** Value for total file size provided by our caller. -- **groupID** ID for the group. -- **isEncrypted** Indicates whether the download is encrypted. -- **isVpn** Indicates whether the device is connected to a Virtual Private Network. -- **jobID** The ID of the Windows Update job. -- **minDiskSizeGB** The minimum disk size (in GB) policy set for the device to allow peering with delivery optimization. -- **minDiskSizePolicyEnforced** Indicates whether there is an enforced minimum disk size requirement for peering. -- **minFileSizePolicy** The minimum content file size policy to allow the download using peering with delivery optimization. -- **peerID** The ID for this delivery optimization client. -- **predefinedCallerName** Name of the API caller. +- **gCurMemoryStreamBytes** Current usage for memory streaming. +- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. +- **isVpn** Indicates whether the device is connected to a VPN (Virtual Private Network). +- **jobID** Identifier for the Windows Update job. +- **predefinedCallerName** The name of the API Caller. +- **reasonCode** Reason the action or event occurred. - **scenarioID** The ID of the scenario. -- **sessionID** The ID for the file download session. -- **setConfigs** A JSON representation of the configurations that have been set, and their sources. +- **sessionID** The ID of the file download session. - **updateID** The ID of the update being downloaded. -- **usedMemoryStream** Indicates whether the download used memory streaming. +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. +### Microsoft.OSG.DU.DeliveryOptClient.DownloadCompleted + +This event describes when a download has completed with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **background** Is the download a background download? +- **bytesFromCacheServer** Bytes received from a cache host. +- **bytesFromCDN** The number of bytes received from a CDN source. +- **bytesFromGroupPeers** The number of bytes received from a peer in the same domain group. +- **bytesFromIntPeers** The number of bytes received from peers not in the same LAN or in the same domain group. +- **bytesFromLocalCache** Bytes copied over from local (on disk) cache. +- **bytesFromPeers** The number of bytes received from a peer in the same LAN. +- **bytesRequested** The total number of bytes requested for download. +- **cacheServerConnectionCount** Number of connections made to cache hosts. +- **callerName** Name of the API caller. +- **cdnConnectionCount** The total number of connections made to the CDN. +- **cdnErrorCodes** A list of CDN connection errors since the last FailureCDNCommunication event. +- **cdnErrorCounts** The number of times each error in cdnErrorCodes was encountered. +- **cdnIp** The IP address of the source CDN. +- **dataSourcesTotal** Bytes received per source type, accumulated for the whole session. +- **doErrorCode** The Delivery Optimization error code that was returned. +- **downlinkBps** The maximum measured available download bandwidth (in bytes per second). +- **downlinkUsageBps** The download speed (in bytes per second). +- **downloadMode** The download mode used for this file download session. +- **downloadModeSrc** Source of the DownloadMode setting (KvsProvider = 0, GeoProvider = 1, GeoVerProvider = 2, CpProvider = 3, DiscoveryProvider = 4, RegistryProvider = 5, GroupPolicyProvider = 6, MdmProvider = 7, SettingsProvider = 8, InvalidProviderType = 9). +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being downloaded. +- **fileSize** The size of the file being downloaded. +- **gCurMemoryStreamBytes** Current usage for memory streaming. +- **gMaxMemoryStreamBytes** Maximum usage for memory streaming. +- **groupConnectionCount** The total number of connections made to peers in the same group. +- **internetConnectionCount** The total number of connections made to peers not in the same LAN or the same group. +- **isEncrypted** TRUE if the file is encrypted and will be decrypted after download. +- **isVpn** Is the device connected to a Virtual Private Network? +- **jobID** Identifier for the Windows Update job. +- **lanConnectionCount** The total number of connections made to peers in the same LAN. +- **numPeers** The total number of peers used for this download. +- **predefinedCallerName** The name of the API Caller. +- **restrictedUpload** Is the upload restricted? +- **scenarioID** The ID of the scenario. +- **sessionID** The ID of the download session. +- **totalTimeMs** Duration of the download (in seconds). +- **updateID** The ID of the update being downloaded. +- **uplinkBps** The maximum measured available upload bandwidth (in bytes per second). +- **uplinkUsageBps** The upload speed (in bytes per second). +- **usedMemoryStream** TRUE if the download is using memory streaming for App downloads. + + +### Microsoft.OSG.DU.DeliveryOptClient.DownloadPaused + +This event represents a temporary suspension of a download with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **background** Is the download a background download? +- **callerName** The name of the API caller. +- **errorCode** The error code that was returned. +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being paused. +- **isVpn** Is the device connected to a Virtual Private Network? +- **jobID** Identifier for the Windows Update job. +- **predefinedCallerName** The name of the API Caller object. +- **reasonCode** The reason for pausing the download. +- **scenarioID** The ID of the scenario. +- **sessionID** The ID of the download session. +- **updateID** The ID of the update being paused. + +### Microsoft.OSG.DU.DeliveryOptClient.FailureCdnCommunication + +This event represents a failure to download from a CDN with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **cdnHeaders** The HTTP headers returned by the CDN. +- **cdnIp** The IP address of the CDN. +- **cdnUrl** The URL of the CDN. +- **clientTelId** A random number used for device sampling. +- **errorCode** The error code that was returned. +- **errorCount** The total number of times this error code was seen since the last FailureCdnCommunication event was encountered. +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being downloaded. +- **httpStatusCode** The HTTP status code returned by the CDN. +- **isHeadRequest** The type of HTTP request that was sent to the CDN. Example: HEAD or GET +- **peerType** The type of peer (LAN, Group, Internet, CDN, Cache Host, etc.). +- **requestOffset** The byte offset within the file in the sent request. +- **requestSize** The size of the range requested from the CDN. +- **responseSize** The size of the range response received from the CDN. +- **sessionID** The ID of the download session. + ## Windows Update events ### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentAnalysisSummary @@ -5443,7 +6512,7 @@ The following fields are available: - **displayNeededReason** List of reasons for needing display. - **eventScenario** Indicates the purpose of the event (scan started, succeeded, failed, etc.). -- **filteredDeferReason** Applicable filtered reasons why reboot was postponed (such as user active, or low battery). +- **filteredDeferReason** Applicable filtered reasons why reboot was postponed (such as user active, or low battery).. - **gameModeReason** Name of the executable that caused the game mode state check to start. - **ignoredReason** List of reasons that were intentionally ignored. - **raisedDeferReason** Indicates all potential reasons for postponing restart (such as user active, or low battery). @@ -5462,9 +6531,9 @@ The following fields are available: - **deferReason** Reason why the device could not check for updates. - **detectionBlockingPolicy** State of update action. -- **detectionBlockreason** Reason for blocking detection +- **detectionBlockreason** If we retry to scan - **detectionRetryMode** Indicates whether we will try to scan again. -- **errorCode** Error info +- **errorCode** State of update action - **eventScenario** End-to-end update session ID, or indicates the purpose of sending this event - whether because the software distribution just started installing content, or whether it was cancelled, succeeded, or failed. - **flightID** The specific ID of the Windows Insider build the device is getting. - **interactive** Indicates whether the session was user initiated. @@ -5472,7 +6541,7 @@ The following fields are available: - **revisionNumber** Update revision number. - **scanTriggerSource** Source of the triggered scan. - **updateId** Update ID. -- **updateScenarioType** Source of the triggered scan +- **updateScenarioType** Update Session type - **wuDeviceid** Device ID @@ -5557,7 +6626,7 @@ This event is sent during update scan, download, or install, and indicates that The following fields are available: -- **configVersion** Escalation config version on device . +- **configVersion** Escalation config version on device. - **downloadElapsedTime** Indicates how long since the download is required on device. - **downloadRiskLevel** At-risk level of download phase. - **installElapsedTime** Indicates how long since the install is required on device. @@ -5585,7 +6654,7 @@ This event indicates that the update is no longer applicable to this device. The following fields are available: -- **EventPublishedTime** Time when this event was generated +- **EventPublishedTime** Time when this event was generated. - **flightID** The specific ID of the Windows Insider build. - **revisionNumber** Update revision number. - **updateId** Unique Windows Update ID. @@ -5633,7 +6702,7 @@ The following fields are available: - **deferReason** Reason for install not completing. - **errorCode** The error code reppresented by a hexadecimal value. - **eventScenario** End-to-end update session ID. -- **flightID** The specific ID of the Windows Insider build the device is getting. +- **flightID** Unique update ID - **flightUpdate** Indicates whether the update is a Windows Insider build. - **ForcedRebootReminderSet** A boolean value that indicates if a forced reboot will happen for updates. - **installCommitfailedtime** The time it took for a reboot to happen but the upgrade failed to progress. @@ -5648,6 +6717,31 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.LowUptimes + +This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. + +The following fields are available: + +- **isLowUptimeMachine** Is the machine considered low uptime or not. +- **lowUptimeMinHours** Current setting for the minimum number of hours needed to not be considered low uptime. +- **lowUptimeQueryDays** Current setting for the number of recent days to check for uptime. +- **uptimeMinutes** Number of minutes of uptime measured. +- **wuDeviceid** Unique device ID for Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + ### Microsoft.Windows.Update.Orchestrator.PostInstall This event is sent after a Windows update install completes. @@ -5723,6 +6817,18 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. @@ -5819,6 +6925,76 @@ The following fields are available: - **wuDeviceid** Unique device ID used by Windows Update. +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.USODiagnostics + +This event sends data on whether the state of the update attempt, to help keep Windows up to date. + +The following fields are available: + +- **LastApplicableUpdateFoundTime** The time when the last applicable update was found. +- **LastDownloadDeferredReason** The last reason download was deferred. +- **LastDownloadDeferredTime** The time of the download deferral. +- **LastDownloadFailureError** The last download failure. +- **LastDownloadFailureTime** The time of the last download failure. +- **LastInstallCompletedTime** The time when the last successful install completed. +- **LastInstallDeferredReason** The reason the last install was deferred. +- **LastInstallDeferredTime** The time when the last install was deferred. +- **LastInstallFailureError** The error code associated with the last install failure. +- **LastInstallFailureTime** The time when the last install failed to complete. +- **LastRebootDeferredReason** The reason the last reboot was deferred. +- **LastRebootDeferredTime** The time when the last reboot was deferred. +- **LastRebootPendingTime** The time when the last reboot state was set to “Pending”. +- **LastScanDeferredReason** The reason the last scan was deferred. +- **LastScanDeferredTime** The time when the last scan was deferred. +- **LastScanFailureError** The error code for the last scan failure. +- **LastScanFailureTime** The time when the last scan failed. +- **LastUpdateCheckTime** The time of the last update check. +- **LastUpdateDownloadTime** The time when the last update was downloaded. +- **LastUpgradeInstallFailureError** The error code for the last upgrade install failure. +- **LastUpgradeInstallFailureTime** The time of the last upgrade install failure. +- **LowUpTimeDetectTime** The last time “low up-time” was detected. +- **NoLowUpTimeDetectTime** The last time no “low up-time” was detected. +- **RebootRequired** Indicates reboot is required. +- **UpgradeInProgressTime** The amount of time a feature update has been in progress. +- **WaaSFeatureAssessmentDays** The number of days Feature Update Assessment has been out of date. +- **WaaSFeatureAssessmentImpact** The impact of the Feature Update Assessment. +- **WaaSUpToDateAssessmentDays** The number of days Quality Update Assessment has been out of date. +- **WaaSUpToDateAssessmentImpact** The impact of Quality Update Assessment. +- **wuDeviceid** Unique ID for Device + + +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + ### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded This event is sent when a security update has successfully completed. @@ -5872,6 +7048,25 @@ The following fields are available: - **TaskName** Name of the task +### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled + +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. + +The following fields are available: + +- **activeHoursApplicable** Is the restart respecting Active Hours? +- **IsEnhancedEngagedReboot** TRUE if the reboot path is Enhanced Engaged. Otherwise, FALSE. +- **rebootArgument** The arguments that are passed to the OS for the restarted. +- **rebootOutsideOfActiveHours** Was the restart scheduled outside of Active Hours? +- **rebootScheduledByUser** Was the restart scheduled by the user? If the value is false, the restart was scheduled by the device. +- **rebootState** The state of the restart. +- **revisionNumber** The revision number of the OS being updated. +- **scheduledRebootTime** Time of the scheduled reboot +- **scheduledRebootTimeInUTC** Time of the scheduled restart, in Coordinated Universal Time. +- **updateId** The Windows Update device GUID. +- **wuDeviceid** The Windows Update device GUID. + + ## Windows Update mitigation events ### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages @@ -5880,21 +7075,21 @@ This event sends data specific to the CleanupSafeOsImages mitigation used for OS The following fields are available: -- **ClientId** Unique identifier for each flight. -- **FlightId** Unique GUID that identifies each instances of setuphost.exe. -- **InstanceId** The update scenario in which the mitigation was executed. -- **MitigationScenario** Number of mounted images. -- **MountedImageCount** Number of mounted images that were under %systemdrive%\$Windows.~BT. -- **MountedImageMatches** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. -- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. -- **MountedImagesRemoved** Number of mounted images that were not under %systemdrive%\$Windows.~BT. -- **MountedImagesSkipped** Correlation vector value generated from the latest USO scan. -- **RelatedCV** HResult of this operation. -- **Result** ID indicating the mitigation scenario. -- **ScenarioId** Indicates whether the scenario was supported. -- **ScenarioSupported** Unique value for each update attempt. -- **SessionId** Unique ID for each Update. -- **UpdateId** Unique ID for the Windows Update client. +- **ClientId** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightId** Unique identifier for each flight. +- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **MountedImageCount** Number of mounted images. +- **MountedImageMatches** Number of mounted images that were under %systemdrive%\$Windows.~BT. +- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. +- **MountedImagesRemoved** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. +- **MountedImagesSkipped** Number of mounted images that were not under %systemdrive%\$Windows.~BT. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** HResult of this operation. +- **ScenarioId** ID indicating the mitigation scenario. +- **ScenarioSupported** Indicates whether the scenario was supported. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each Update. - **WuId** Unique ID for the Windows Update client. diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md index 0755ce1e09..b83547ea2a 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1809.md @@ -9,7 +9,7 @@ ms.pagetype: security localizationpriority: high author: brianlic-msft ms.author: brianlic -ms.date: 10/03/2018 +ms.date: 11/07/2018 --- @@ -20,7 +20,7 @@ ms.date: 10/03/2018 - Windows 10, version 1809 -The Basic level gathers a limited set of information that is critical for understanding the device and its configuration including: basic device information, quality-related information, app compatibility, and Microsoft Store. When the level is set to Basic, it also includes the Security level information. +The Basic level gathers a limited set of information that is critical for understanding the device and its configuration including: basic device information, quality-related information, app compatibility, and Windows Store. When the level is set to Basic, it also includes the Security level information. The Basic level helps to identify problems that can occur on a particular device hardware or software configuration. For example, it can help determine if crashes are more frequent on devices with a specific amount of memory or that are running a particular driver version. This helps Microsoft fix operating system or app problems. @@ -281,7 +281,7 @@ The following fields are available: - **DatasourceApplicationFile_TH1** The count of the number of this particular object type present on this device. - **DatasourceApplicationFile_TH2** The count of the number of this particular object type present on this device. - **DatasourceDevicePnp_RS1** The total DataSourceDevicePnp objects targeting Windows 10 version 1607 on this device. -- **DatasourceDevicePnp_RS2** The count of DatasourceApplicationFile objects present on this machine targeting the next release of Windows +- **DatasourceDevicePnp_RS2** The total DatasourceDevicePnp objects targeting Windows 10 version 1703 present on this device. - **DatasourceDevicePnp_RS3** The total DatasourceDevicePnp objects targeting the next release of Windows on this device. - **DatasourceDevicePnp_RS4** The count of the number of this particular object type present on this device. - **DatasourceDevicePnp_RS4Setup** The count of the number of this particular object type present on this device. @@ -295,7 +295,7 @@ The following fields are available: - **DatasourceDriverPackage_TH1** The count of the number of this particular object type present on this device. - **DatasourceDriverPackage_TH2** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoBlock_RS1** The total DataSourceMatchingInfoBlock objects targeting Windows 10 version 1607 on this device. -- **DataSourceMatchingInfoBlock_RS2** The count of DatasourceDevicePnp objects present on this machine targeting the next release of Windows +- **DataSourceMatchingInfoBlock_RS2** The total DataSourceMatchingInfoBlock objects targeting Windows 10 version 1703 present on this device. - **DataSourceMatchingInfoBlock_RS3** The total DataSourceMatchingInfoBlock objects targeting the next release of Windows on this device. - **DataSourceMatchingInfoBlock_RS4** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoBlock_RS4Setup** The count of the number of this particular object type present on this device. @@ -309,7 +309,7 @@ The following fields are available: - **DataSourceMatchingInfoPassive_TH1** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoPassive_TH2** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoPostUpgrade_RS1** The total DataSourceMatchingInfoPostUpgrade objects targeting Windows 10 version 1607 on this device. -- **DataSourceMatchingInfoPostUpgrade_RS2** The count of DatasourceDriverPackage objects present on this machine targeting the next release of Windows +- **DataSourceMatchingInfoPostUpgrade_RS2** The total DataSourceMatchingInfoPostUpgrade objects targeting Windows 10 version 1703 present on this device. - **DataSourceMatchingInfoPostUpgrade_RS3** The total DataSourceMatchingInfoPostUpgrade objects targeting the next release of Windows on this device. - **DataSourceMatchingInfoPostUpgrade_RS4** The count of the number of this particular object type present on this device. - **DataSourceMatchingInfoPostUpgrade_RS4Setup** The count of the number of this particular object type present on this device. @@ -330,7 +330,7 @@ The following fields are available: - **DecisionApplicationFile_TH1** The count of the number of this particular object type present on this device. - **DecisionApplicationFile_TH2** The count of the number of this particular object type present on this device. - **DecisionDevicePnp_RS1** The total DecisionDevicePnp objects targeting Windows 10 version 1607 on this device. -- **DecisionDevicePnp_RS2** The count of DataSourceMatchingInfoBlock objects present on this machine targeting the next release of Windows +- **DecisionDevicePnp_RS2** The total DecisionDevicePnp objects targeting Windows 10 version 1703 present on this device. - **DecisionDevicePnp_RS3** The total DecisionDevicePnp objects targeting the next release of Windows on this device. - **DecisionDevicePnp_RS4** The count of the number of this particular object type present on this device. - **DecisionDevicePnp_RS4Setup** The count of the number of this particular object type present on this device. @@ -344,7 +344,7 @@ The following fields are available: - **DecisionDriverPackage_TH1** The count of the number of this particular object type present on this device. - **DecisionDriverPackage_TH2** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoBlock_RS1** The total DecisionMatchingInfoBlock objects targeting Windows 10 version 1607 present on this device. -- **DecisionMatchingInfoBlock_RS2** The count of DataSourceMatchingInfoPassive objects present on this machine targeting the next release of Windows +- **DecisionMatchingInfoBlock_RS2** The total DecisionMatchingInfoBlock objects targeting Windows 10 version 1703 present on this device. - **DecisionMatchingInfoBlock_RS3** The total DecisionMatchingInfoBlock objects targeting the next release of Windows on this device. - **DecisionMatchingInfoBlock_RS4** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoBlock_RS4Setup** The count of the number of this particular object type present on this device. @@ -358,14 +358,14 @@ The following fields are available: - **DecisionMatchingInfoPassive_TH1** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPassive_TH2** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_RS1** The total DecisionMatchingInfoPostUpgrade objects targeting Windows 10 version 1607 on this device. -- **DecisionMatchingInfoPostUpgrade_RS2** The count of DataSourceMatchingInfoPostUpgrade objects present on this machine targeting the next release of Windows +- **DecisionMatchingInfoPostUpgrade_RS2** The total DecisionMatchingInfoPostUpgrade objects targeting Windows 10 version 1703 present on this device. - **DecisionMatchingInfoPostUpgrade_RS3** The total DecisionMatchingInfoPostUpgrade objects targeting the next release of Windows on this device. - **DecisionMatchingInfoPostUpgrade_RS4** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_RS4Setup** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_TH1** The count of the number of this particular object type present on this device. - **DecisionMatchingInfoPostUpgrade_TH2** The count of the number of this particular object type present on this device. - **DecisionMediaCenter_RS1** The total DecisionMediaCenter objects targeting Windows 10 version 1607 present on this device. -- **DecisionMediaCenter_RS2** The count of DatasourceSystemBios objects present on this machine targeting the next release of Windows +- **DecisionMediaCenter_RS2** The total DecisionMediaCenter objects targeting Windows 10 version 1703 present on this device. - **DecisionMediaCenter_RS3** The total DecisionMediaCenter objects targeting the next release of Windows on this device. - **DecisionMediaCenter_RS4** The count of the number of this particular object type present on this device. - **DecisionMediaCenter_RS4Setup** The count of the number of this particular object type present on this device. @@ -395,7 +395,7 @@ The following fields are available: - **SystemWindowsActivationStatus** The count of the number of this particular object type present on this device. - **SystemWlan** The count of the number of this particular object type present on this device. - **Wmdrm_RS1** An ID for the system, calculated by hashing hardware identifiers. -- **Wmdrm_RS2** The count of InventoryLanguagePack objects present on this machine. +- **Wmdrm_RS2** The total Wmdrm objects targeting Windows 10 version 1703 present on this device. - **Wmdrm_RS3** The total Wmdrm objects targeting the next release of Windows on this device. - **Wmdrm_RS4** The total Wmdrm objects targeting Windows 10, version 1803 present on this device. - **Wmdrm_RS4Setup** The count of the number of this particular object type present on this device. @@ -666,7 +666,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.DecisionApplicationFileRemove -This event indicates that the DecisionApplicationFile object is no longer present. +This event indicates Indicates that the DecisionApplicationFile object is no longer present. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1013,7 +1013,7 @@ The following fields are available: ### Microsoft.Windows.Appraiser.General.InventoryApplicationFileStartSync -This event indicates that a new set of InventoryApplicationFileAdd events will be sent. +This event indicates indicates that a new set of InventoryApplicationFileAdd events will be sent. This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedeviceinventorychange). @@ -1818,14 +1818,18 @@ The following fields are available: - **AdvertisingId** Current state of the advertising ID setting. - **AppDiagnostics** Current state of the app diagnostics setting. - **Appointments** Current state of the calendar setting. +- **AppointmentsSystem** Current state of the calendar setting. - **Bluetooth** Current state of the Bluetooth capability setting. - **BluetoothSync** Current state of the Bluetooth sync capability setting. - **BroadFileSystemAccess** Current state of the broad file system access setting. - **CellularData** Current state of the cellular data capability setting. - **Chat** Current state of the chat setting. +- **ChatSystem** Current state of the chat setting. - **Contacts** Current state of the contacts setting. +- **ContactsSystem** Current state of the Contacts setting. - **DocumentsLibrary** Current state of the documents library setting. - **Email** Current state of the email setting. +- **EmailSystem** Current state of the email setting. - **FindMyDevice** Current state of the "find my device" setting. - **GazeInput** Current state of the gaze input setting. - **HumanInterfaceDevice** Current state of the human interface device setting. @@ -1837,6 +1841,7 @@ The following fields are available: - **Microphone** Current state of the microphone setting. - **PhoneCall** Current state of the phone call setting. - **PhoneCallHistory** Current state of the call history setting. +- **PhoneCallHistorySystem** Current state of the call history setting. - **PicturesLibrary** Current state of the pictures library setting. - **Radios** Current state of the radios setting. - **SensorsCustom** Current state of the custom sensor setting. @@ -1846,6 +1851,7 @@ The following fields are available: - **USB** Current state of the USB setting. - **UserAccountInformation** Current state of the account information setting. - **UserDataTasks** Current state of the tasks setting. +- **UserDataTasksSystem** Current state of the tasks setting. - **UserNotificationListener** Current state of the notifications setting. - **VideosLibrary** Current state of the videos library setting. - **Webcam** Current state of the camera setting. @@ -1979,14 +1985,18 @@ The following fields are available: - **AdvertisingId** Current state of the advertising ID setting. - **AppDiagnostics** Current state of the app diagnostics setting. - **Appointments** Current state of the calendar setting. +- **AppointmentsSystem** Current state of the calendar setting. - **Bluetooth** Current state of the Bluetooth capability setting. - **BluetoothSync** Current state of the Bluetooth sync capability setting. - **BroadFileSystemAccess** Current state of the broad file system access setting. - **CellularData** Current state of the cellular data capability setting. - **Chat** Current state of the chat setting. +- **ChatSystem** Current state of the chat setting. - **Contacts** Current state of the contacts setting. +- **ContactsSystem** Current state of the contacts setting. - **DocumentsLibrary** Current state of the documents library setting. - **Email** Current state of the email setting. +- **EmailSystem** Current state of the email setting. - **GazeInput** Current state of the gaze input setting. - **HumanInterfaceDevice** Current state of the human interface device setting. - **InkTypeImprovement** Current state of the improve inking and typing setting. @@ -1998,6 +2008,7 @@ The following fields are available: - **Microphone** Current state of the microphone setting. - **PhoneCall** Current state of the phone call setting. - **PhoneCallHistory** Current state of the call history setting. +- **PhoneCallHistorySystem** Current state of the call history setting. - **PicturesLibrary** Current state of the pictures library setting. - **Radios** Current state of the radios setting. - **SensorsCustom** Current state of the custom sensor setting. @@ -2007,6 +2018,7 @@ The following fields are available: - **USB** Current state of the USB setting. - **UserAccountInformation** Current state of the account information setting. - **UserDataTasks** Current state of the tasks setting. +- **UserDataTasksSystem** Current state of the tasks setting. - **UserNotificationListener** Current state of the notifications setting. - **VideosLibrary** Current state of the videos library setting. - **Webcam** Current state of the camera setting. @@ -2256,6 +2268,59 @@ The following fields are available: ## Component-based servicing events +### CbsServicingProvider.CbsCapabilityEnumeration + +This event reports on the results of scanning for optional Windows content on Windows Update. + +The following fields are available: + +- **architecture** Indicates the scan was limited to the specified architecture. +- **capabilityCount** The number of optional content packages found during the scan. +- **clientId** The name of the application requesting the optional content. +- **duration** The amount of time it took to complete the scan. +- **hrStatus** The HReturn code of the scan. +- **language** Indicates the scan was limited to the specified language. +- **majorVersion** Indicates the scan was limited to the specified major version. +- **minorVersion** Indicates the scan was limited to the specified minor version. +- **namespace** Indicates the scan was limited to packages in the specified namespace. +- **sourceFilter** A bitmask indicating the scan checked for locally available optional content. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionFinalize + +This event provides information about the results of installing or uninstalling optional Windows content from Windows Update. + +The following fields are available: + +- **capabilities** The names of the optional content packages that were installed. +- **clientId** The name of the application requesting the optional content. +- **currentID** The ID of the current install session. +- **highestState** The highest final install state of the optional content. +- **hrLCUReservicingStatus** Indicates whether the optional content was updated to the latest available version. +- **hrStatus** The HReturn code of the install operation. +- **rebootCount** The number of reboots required to complete the install. +- **retryID** The session ID that will be used to retry a failed operation. +- **retryStatus** Indicates whether the install will be retried in the event of failure. +- **stackBuild** The build number of the servicing stack. +- **stackMajorVersion** The major version number of the servicing stack. +- **stackMinorVersion** The minor version number of the servicing stack. +- **stackRevision** The revision number of the servicing stack. + + +### CbsServicingProvider.CbsCapabilitySessionPended + +This event provides information about the results of installing optional Windows content that requires a reboot to keep Windows up to date. + +The following fields are available: + +- **clientId** The name of the application requesting the optional content. +- **pendingDecision** Indicates the cause of reboot, if applicable. + + ### CbsServicingProvider.CbsLateAcquisition This event sends data to indicate if some Operating System packages could not be updated as part of an upgrade, to help keep Windows up to date. @@ -2266,6 +2331,28 @@ The following fields are available: - **RetryID** The ID identifying the retry attempt to update the listed packages. +### CbsServicingProvider.CbsPackageRemoval + +This event provides information about the results of uninstalling a Windows Cumulative Security Update to help keep Windows up to date. + +The following fields are available: + +- **buildVersion** The build number of the security update being uninstalled. +- **clientId** The name of the application requesting the uninstall. +- **currentStateEnd** The final state of the update after the operation. +- **failureDetails** Information about the cause of a failure, if applicable. +- **failureSourceEnd** The stage during the uninstall where the failure occurred. +- **hrStatusEnd** The overall exit code of the operation. +- **initiatedOffline** Indicates if the uninstall was initiated for a mounted Windows image. +- **majorVersion** The major version number of the security update being uninstalled. +- **minorVersion** The minor version number of the security update being uninstalled. +- **originalState** The starting state of the update before the operation. +- **pendingDecision** Indicates the cause of reboot, if applicable. +- **primitiveExecutionContext** The state during system startup when the uninstall was completed. +- **revisionVersion** The revision number of the security update being uninstalled. +- **transactionCanceled** Indicates whether the uninstall was cancelled. + + ## Deployment extensions ### DeploymentTelemetry.Deployment_End @@ -3009,6 +3096,87 @@ The following fields are available: - **CV** Correlation vector. +## DxgKernelTelemetry events + +### DxgKrnlTelemetry.GPUAdapterInventoryV2 + +This event sends basic GPU and display driver information to keep Windows and display drivers up-to-date. + +The following fields are available: + +- **AdapterTypeValue** The numeric value indicating the type of Graphics adapter. +- **aiSeqId** The event sequence ID. +- **bootId** The system boot ID. +- **BrightnessVersionViaDDI** The version of the Display Brightness Interface. +- **ComputePreemptionLevel** The maximum preemption level supported by GPU for compute payload. +- **DedicatedSystemMemoryB** The amount of system memory dedicated for GPU use (in bytes). +- **DedicatedVideoMemoryB** The amount of dedicated VRAM of the GPU (in bytes). +- **DisplayAdapterLuid** The display adapter LUID. +- **DriverDate** The date of the display driver. +- **DriverRank** The rank of the display driver. +- **DriverVersion** The display driver version. +- **DX10UMDFilePath** The file path to the location of the DirectX 10 Display User Mode Driver in the Driver Store. +- **DX11UMDFilePath** The file path to the location of the DirectX 11 Display User Mode Driver in the Driver Store. +- **DX12UMDFilePath** The file path to the location of the DirectX 12 Display User Mode Driver in the Driver Store. +- **DX9UMDFilePath** The file path to the location of the DirectX 9 Display User Mode Driver in the Driver Store. +- **GPUDeviceID** The GPU device ID. +- **GPUPreemptionLevel** The maximum preemption level supported by GPU for graphics payload. +- **GPURevisionID** The GPU revision ID. +- **GPUVendorID** The GPU vendor ID. +- **InterfaceId** The GPU interface ID. +- **IsDisplayDevice** Does the GPU have displaying capabilities? +- **IsHybridDiscrete** Does the GPU have discrete GPU capabilities in a hybrid device? +- **IsHybridIntegrated** Does the GPU have integrated GPU capabilities in a hybrid device? +- **IsLDA** Is the GPU comprised of Linked Display Adapters? +- **IsMiracastSupported** Does the GPU support Miracast? +- **IsMismatchLDA** Is at least one device in the Linked Display Adapters chain from a different vendor? +- **IsMPOSupported** Does the GPU support Multi-Plane Overlays? +- **IsMsMiracastSupported** Are the GPU Miracast capabilities driven by a Microsoft solution? +- **IsPostAdapter** Is this GPU the POST GPU in the device? +- **IsRemovable** TRUE if the adapter supports being disabled or removed. +- **IsRenderDevice** Does the GPU have rendering capabilities? +- **IsSoftwareDevice** Is this a software implementation of the GPU? +- **KMDFilePath** The file path to the location of the Display Kernel Mode Driver in the Driver Store. +- **MeasureEnabled** Is the device listening to MICROSOFT_KEYWORD_MEASURES? +- **NumVidPnSources** The number of supported display output sources. +- **NumVidPnTargets** The number of supported display output targets. +- **SharedSystemMemoryB** The amount of system memory shared by GPU and CPU (in bytes). +- **SubSystemID** The subsystem ID. +- **SubVendorID** The GPU sub vendor ID. +- **TelemetryEnabled** Is the device listening to MICROSOFT_KEYWORD_TELEMETRY? +- **TelInvEvntTrigger** What triggered this event to be logged? Example: 0 (GPU enumeration) or 1 (DxgKrnlTelemetry provider toggling) +- **version** The event version. +- **WDDMVersion** The Windows Display Driver Model version. + + +## Hang Reporting events + +### Microsoft.Windows.HangReporting.AppHangEvent + +This event sends data about hangs for both native and managed applications, to help keep Windows up to date. It does not contain any Watson bucketing information. The bucketing information is recorded in a Windows Error Reporting (WER) event that is generated when the WER client reports the hang to the Watson service, and the WER event will contain the same ReportID (see field 13 of hang event, field 19 of WER event) as the hang event for the hang being reported. AppHang is reported only on PC devices. It handles classic Win32 hangs and is emitted only once per report. Some behaviors that may be perceived by a user as a hang are reported by app managers (e.g. PLM/RM/EM) as Watson Generics and will not produce AppHang events. + +The following fields are available: + +- **AppName** The name of the app that has hung. +- **AppSessionGuid** GUID made up of process id used as a correlation vector for process instances in the telemetry backend. +- **AppVersion** The version of the app that has hung. +- **IsFatal** True/False based on whether the hung application caused the creation of a Fatal Hang Report. +- **PackageFullName** Store application identity. +- **PackageRelativeAppId** Store application identity. +- **ProcessArchitecture** Architecture of the hung process, as one of the PROCESSOR_ARCHITECTURE_* constants: 0: PROCESSOR_ARCHITECTURE_INTEL. 5: PROCESSOR_ARCHITECTURE_ARM. 9: PROCESSOR_ARCHITECTURE_AMD64. 12: PROCESSOR_ARCHITECTURE_ARM64. +- **ProcessCreateTime** The time of creation of the process that has hung. +- **ProcessId** The ID of the process that has hung. +- **ReportId** A GUID used to identify the report. This can used to track the report across Watson. +- **TargetAppId** The kernel reported AppId of the application being reported. +- **TargetAppVer** The specific version of the application being reported. +- **TargetAsId** The sequence number for the hanging process. +- **TypeCode** Bitmap describing the hang type. +- **WaitingOnAppName** If this is a cross process hang waiting for an application, this has the name of the application. +- **WaitingOnAppVersion** If this is a cross process hang, this has the version of the application for which it is waiting. +- **WaitingOnPackageFullName** If this is a cross process hang waiting for a package, this has the full name of the package for which it is waiting. +- **WaitingOnPackageRelativeAppId** If this is a cross process hang waiting for a package, this has the relative application id of the package. + + ## Inventory events ### Microsoft.Windows.Inventory.Core.AmiTelCacheChecksum @@ -3104,8 +3272,8 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: -- **InventoryVersion** The version of the inventory component -- **ProgramIds** The unique program identifier the driver is associated with +- **InventoryVersion** The version of the inventory component. +- **ProgramIds** The unique program identifier the driver is associated with. ### Microsoft.Windows.Inventory.Core.InventoryApplicationDriverStartSync @@ -3308,9 +3476,10 @@ The following fields are available: - **DriverVerDate** Name of the .sys image file (or wudfrd.sys if using user mode driver framework). - **DriverVerVersion** The immediate parent directory name in the Directory field of InventoryDriverPackage. - **Enumerator** The date of the driver loaded for the device. +- **ExtendedInfs** The extended INF file names. - **HWID** The version of the driver loaded for the device. - **Inf** The bus that enumerated the device. -- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/library/windows/hardware/ff543130.aspx +- **InstallState** The device installation state. One of these values: https://msdn.microsoft.com/en-us/library/windows/hardware/ff543130.aspx - **InventoryVersion** List of hardware ids for the device. - **LowerClassFilters** Lower filter class drivers IDs installed for the device - **LowerFilters** Lower filter drivers IDs installed for the device @@ -3463,6 +3632,18 @@ The following fields are available: - **InventoryVersion** The version of the inventory file generating the events. +### Microsoft.Windows.Inventory.Core.StartUtcJsonTrace + +This event collects traces of all other Core events, not used in typical customer scenarios. This event signals the beginning of the event download, and that tracing should begin. + + + +### Microsoft.Windows.Inventory.Core.StopUtcJsonTrace + +This event collects traces of all other Core events, not used in typical customer scenarios. This event signals the end of the event download, and that tracing should end. + + + ### Microsoft.Windows.Inventory.General.AppHealthStaticAdd This event sends details collected for a specific application on the source device. @@ -3510,27 +3691,27 @@ This event includes fields from [Ms.Device.DeviceInventoryChange](#msdevicedevic The following fields are available: -- **AddinCLSID** The CLSID for the Office add-in. -- **AddInId** Office add-in ID. -- **AddinType** Office add-in Type. -- **BinFileTimestamp** Timestamp of the Office add-in. -- **BinFileVersion** Version of the Office add-in. -- **Description** Office add-in description. -- **FileId** FileId of the Office add-in. -- **FileSize** File size of the Office add-in. -- **FriendlyName** Friendly name for office add-in. -- **FullPath** Unexpanded path to the office add-in. +- **AddinCLSID** The CLSID for the Office addin +- **AddInId** Office addin ID +- **AddinType** The type of the Office addin. +- **BinFileTimestamp** Timestamp of the Office addin +- **BinFileVersion** Version of the Office addin +- **Description** Office addin description +- **FileId** FileId of the Office addin +- **FileSize** File size of the Office addin +- **FriendlyName** Friendly name for office addin +- **FullPath** Unexpanded path to the office addin - **InventoryVersion** The version of the inventory binary generating the events. -- **LoadBehavior** Uint32 that describes the load behavior. -- **OfficeApplication** The office application for this add-in. -- **OfficeArchitecture** Architecture of the add-in. -- **OfficeVersion** The office version for this add-in. -- **OutlookCrashingAddin** Boolean that indicates if crashes have been found for this add-in. -- **ProductCompany** The name of the company associated with the Office add-in. -- **ProductName** The product name associated with the Office add-in. -- **ProductVersion** The version associated with the Office add-in. -- **ProgramId** The unique program identifier of the Office add-in. -- **Provider** Name of the provider for this add-in. +- **LoadBehavior** Uint32 that describes the load behavior +- **OfficeApplication** The office application for this addin +- **OfficeArchitecture** Architecture of the addin +- **OfficeVersion** The office version for this addin +- **OutlookCrashingAddin** Boolean that indicates if crashes have been found for this addin +- **ProductCompany** The name of the company associated with the Office addin +- **ProductName** The product name associated with the Office addin +- **ProductVersion** The version associated with the Office addin +- **ProgramId** The unique program identifier of the Office addin +- **Provider** Name of the provider for this addin ### Microsoft.Windows.Inventory.General.InventoryMiscellaneousOfficeAddInRemove @@ -3908,6 +4089,153 @@ The following fields are available: - **UserInputTime** The amount of time the loader application spent waiting for user input. +## OneDrive events + +### Microsoft.OneDrive.Sync.Updater.ComponentInstallState + +This event includes basic data about the installation state of dependent OneDrive components. + +The following fields are available: + +- **ComponentName** The name of the dependent component. +- **isInstalled** Is the dependent component installed? + + +### Microsoft.OneDrive.Sync.Updater.OverlayIconStatus + +This event indicates if the OneDrive overlay icon is working correctly. 0 = healthy; 1 = can be fixed; 2 = broken + +The following fields are available: + +- **32bit** The status of the OneDrive overlay icon on a 32-bit operating system. +- **64bit** The status of the OneDrive overlay icon on a 64-bit operating system. + + +### Microsoft.OneDrive.Sync.Updater.UpdateOverallResult + +This event sends information describing the result of the update. + +The following fields are available: + +- **hr** The HResult of the operation. +- **IsLoggingEnabled** Indicates whether logging is enabled for the updater. +- **UpdaterVersion** The version of the updater. + + +### Microsoft.OneDrive.Sync.Updater.UpdateXmlDownloadHResult + +This event determines the status when downloading the OneDrive update configuration file. + +The following fields are available: + +- **hr** The HResult of the operation. + + +### Microsoft.OneDrive.Sync.Updater.WebConnectionStatus + +This event determines the error code that was returned when verifying Internet connectivity. + +The following fields are available: + +- **winInetError** The HResult of the operation. + + +## Other events + +### Microsoft.Windows.Kits.WSK.WskImageCreate + +This event sends simple Product and Service usage data when a user is using the Windows System Kit to create new OS “images”. The data includes the version of the Windows System Kit and the state of the event and is used to help investigate “image” creation failures. + +The following fields are available: + +- **Phase** The image creation phase. Values are “Start” or “End”. +- **WskVersion** The version of the Windows System Kit being used. + + +### Microsoft.Windows.Kits.WSK.WskImageCustomization + +This event sends simple Product and Service usage data when a user is using the Windows System Kit to create/modify configuration files allowing the customization of a new OS image with Apps or Drivers. The data includes the version of the Windows System Kit, the state of the event, the customization type (drivers or apps) and the mode (new or updating) and is used to help investigate configuration file creation failures. + +The following fields are available: + +- **Mode** The mode of update to image configuration files. Values are “New” or “Update”. +- **Phase** The image creation phase. Values are “Start” or “End”. +- **Type** The type of update to image configuration files. Values are “Apps” or “Drivers”. +- **WskVersion** The version of the Windows System Kit being used. + + +### Microsoft.Windows.Kits.WSK.WskWorkspaceCreate + +This event sends simple Product and Service usage data when a user is using the Windows System Kit to create new workspace for generating OS “images”. The data includes the version of the Windows System Kit and the state of the event and is used to help investigate workspace creation failures. + +The following fields are available: + +- **Architecture** The OS architecture that the workspace will target. Values are one of: “AMD64”, “ARM64”, “x86”, or “ARM”. +- **OsEdition** The Operating System Edition that the workspace will target. +- **Phase** The image creation phase. Values are “Start” or “End”. +- **WskVersion** The version of the Windows System Kit being used. + + +### Microsoft.Windows.Mitigation.AccountTraceLoggingProvider.General + +This event provides information about application properties to indicate the successful execution. + +The following fields are available: + +- **AppMode** Indicates the mode the app is being currently run around privileges. +- **ExitCode** Indicates the exit code of the app. +- **Help** Indicates if the app needs to be launched in the help mode. +- **ParseError** Indicates if there was a parse error during the execution. +- **RightsAcquired** Indicates if the right privileges were acquired for successful execution. +- **RightsWereEnabled** Indicates if the right privileges were enabled for successful execution. +- **TestMode** Indicates whether the app is being run in test mode. + + +### Microsoft.Windows.Mitigation.AccountTraceLoggingProvider.GetCount + +This event provides information about the properties of user accounts in the Administrator group. + +The following fields are available: + +- **Internal** Indicates the internal property associated with the count group. +- **LastError** The error code (if applicable) for the cause of the failure to get the count of the user account. + + +### Microsoft.Xbox.XamTelemetry.AppActivationError + +This event indicates whether the system detected an activation error in the app. + +The following fields are available: + +- **ActivationUri** Activation URI (Uniform Resource Identifier) used in the attempt to activate the app. +- **AppId** The Xbox LIVE Title ID. +- **AppUserModelId** The AUMID (Application User Model ID) of the app to activate. +- **Result** The HResult error. +- **UserId** The Xbox LIVE User ID (XUID). + + +### Microsoft.Xbox.XamTelemetry.AppActivity + +This event is triggered whenever the current app state is changed by: launch, switch, terminate, snap, etc. + +The following fields are available: + +- **AppActionId** The ID of the application action. +- **AppCurrentVisibilityState** The ID of the current application visibility state. +- **AppId** The Xbox LIVE Title ID of the app. +- **AppPackageFullName** The full name of the application package. +- **AppPreviousVisibilityState** The ID of the previous application visibility state. +- **AppSessionId** The application session ID. +- **AppType** The type ID of the application (AppType_NotKnown, AppType_Era, AppType_Sra, AppType_Uwa). +- **BCACode** The BCA (Burst Cutting Area) mark code of the optical disc used to launch the application. +- **DurationMs** The amount of time (in milliseconds) since the last application state transition. +- **IsTrialLicense** This boolean value is TRUE if the application is on a trial license. +- **LicenseType** The type of licensed used to authorize the app (0 - Unknown, 1 - User, 2 - Subscription, 3 - Offline, 4 - Disc). +- **LicenseXuid** If the license type is 1 (User), this field contains the XUID (Xbox User ID) of the registered owner of the license. +- **ProductGuid** The Xbox product GUID (Globally-Unique ID) of the application. +- **UserId** The XUID (Xbox User ID) of the current user. + + ## Privacy consent logging events ### Microsoft.Windows.Shell.PrivacyConsentLogging.PrivacyConsentCompleted @@ -3936,6 +4264,43 @@ The following fields are available: - **userRegionCode** The current user's region setting +## Setup events + +### SetupPlatformTel.SetupPlatformTelActivityEvent + +This event sends basic metadata about the SetupPlatform update installation process, to help keep Windows up to date. + +The following fields are available: + +- **FieldName** Retrieves the event name/data point. Examples: InstallStartTime, InstallEndtime, OverallResult etc. +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. +- **Value** Value associated with the corresponding event name. For example, time-related events will include the system time + + +### SetupPlatformTel.SetupPlatformTelActivityStarted + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + +The following fields are available: + +- **Name** The name of the dynamic update type. Example: GDR driver + + +### SetupPlatformTel.SetupPlatformTelActivityStopped + +This event sends basic metadata about the update installation process generated by SetupPlatform to help keep Windows up to date. + + + +### SetupPlatformTel.SetupPlatfOrmTelEvent + +This service retrieves events generated by SetupPlatform, the engine that drives the various deployment scenarios. + +The following fields are available: + +- **GroupName** Retrieves the groupname the event belongs to. Example: Install Information, DU Information, Disk Space Information etc. + + ## Software update events ### SoftwareUpdateClientTelemetry.CheckForUpdates @@ -4010,7 +4375,7 @@ The following fields are available: - **ScanDurationInSeconds** The number of seconds a scan took - **ScanEnqueueTime** The number of seconds it took to initialize a scan - **ScanProps** This is a 32-bit integer containing Boolean properties for a given Windows Update scan. The following bits are used; all remaining bits are reserved and set to zero. Bit 0 (0x1): IsInteractive - is set to 1 if the scan is requested by a user, or 0 if the scan is requested by Automatic Updates. Bit 1 (0x2): IsSeeker - is set to 1 if the Windows Update client's Seeker functionality is enabled. Seeker functionality is enabled on certain interactive scans, and results in the scans returning certain updates that are in the initial stages of release (not yet released for full adoption via Automatic Updates). -- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID which represents which service the software distribution client is checking for content (Windows Update, Windows Store, etc.). - **ServiceUrl** The environment URL a device is configured to scan with - **ShippingMobileOperator** The mobile operator that a device shipped on. - **StatusCode** Indicates the result of a CheckForUpdates event (success, cancellation, failure code HResult). @@ -4092,7 +4457,7 @@ The following fields are available: - **RepeatFailCount** Indicates whether this specific piece of content has previously failed. - **RepeatFailFlag** Indicates whether this specific piece of content had previously failed to download. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** An ID that represents which service the software distribution client is installing content for (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID that represents which service the software distribution client is installing content for (Windows Update, Windows Store, etc.). - **Setup360Phase** If the download is for an operating system upgrade, this datapoint indicates which phase of the upgrade is underway. - **ShippingMobileOperator** The mobile operator that a device shipped on. - **SizeCalcTime** Time taken (in seconds) to calculate the total download size of the payload. @@ -4169,7 +4534,7 @@ The following fields are available: - **RepeatFailCount** Indicates whether this specific piece of content has previously failed. - **RepeatFailFlag** Indicates whether this specific piece of content previously failed to install. - **RevisionNumber** The revision number of this specific piece of content. -- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID which represents which service the software distribution client is installing content for (Windows Update, Windows Store, etc.). - **Setup360Phase** If the install is for an operating system upgrade, indicates which phase of the upgrade is underway. - **ShippingMobileOperator** The mobile operator that a device shipped on. - **StatusCode** Indicates the result of an installation event (success, cancellation, failure code HResult). @@ -4219,7 +4584,7 @@ The following fields are available: - **RelatedCV** The previous correlation vector that was used by the client before swapping with a new one. - **RepeatFailCount** Indicates whether this specific piece of content has previously failed. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Windows Store, etc.). - **StatusCode** Result code of the event (success, cancellation, failure code HResult). - **TargetGroupId** For drivers targeted to a specific device model, this ID indicates the distribution group of devices receiving that driver. - **TargetingVersion** For drivers targeted to a specific device model, this is the version number of the drivers being distributed to the device. @@ -4240,7 +4605,7 @@ The following fields are available: - **CmdLineArgs** Command line arguments passed in by the caller. - **EventInstanceID** A globally unique identifier for the event instance. - **EventScenario** Indicates the purpose of the event (scan started, succeeded, failed, etc.). -- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Windows Store, etc.). - **StatusCode** Result code of the event (success, cancellation, failure code HResult). - **WUDeviceID** Unique device ID controlled by the software distribution client. @@ -4279,7 +4644,7 @@ The following fields are available: - **RelatedCV** The previous correlation vector that was used by the client before swapping with a new one. - **RepeatFailCount** Indicates whether this specific piece of content previously failed. - **RevisionNumber** Identifies the revision number of this specific piece of content. -- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** Identifier for the service to which the software distribution client is connecting (Windows Update, Windows Store, etc.). - **StatusCode** Result code of the event (success, cancellation, failure code HResult). - **TargetGroupId** For drivers targeted to a specific device model, this ID indicates the distribution group of devices receiving that driver. - **TargetingVersion** For drivers targeted to a specific device model, this is the version number of the drivers being distributed to the device. @@ -4300,7 +4665,7 @@ The following fields are available: - **IntentPFNs** Intended application-set metadata for atomic update scenarios. - **NumberOfApplicableUpdates** The number of updates ultimately deemed applicable to the system after the detection process is complete. - **RelatedCV** The previous Correlation Vector that was used before swapping with a new one. -- **ServiceGuid** An ID that represents which service the software distribution client is connecting to (Windows Update, Microsoft Store, etc.). +- **ServiceGuid** An ID that represents which service the software distribution client is connecting to (Windows Update, Windows Store, etc.). - **WUDeviceID** The unique device ID controlled by the software distribution client. @@ -4334,6 +4699,296 @@ The following fields are available: - **LinkSpeed** The adapter link speed. +## Update events + +### Update360Telemetry.Revert + +This event sends data relating to the Revert phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the Revert phase. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RebootRequired** Indicates reboot is required. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **RevertResult** The result code returned for the Revert operation. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgentCommit + +This event collects information regarding the commit phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the install phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentDownloadRequest + +This event sends data for the download request phase of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to PC and Mobile. + +The following fields are available: + +- **DeletedCorruptFiles** Boolean indicating whether corrupt payload was deleted. +- **DownloadRequests** Number of times a download was retried. +- **ErrorCode** The error code returned for the current download request phase. +- **ExtensionName** Indicates whether the payload is related to Operating System content or a plugin. +- **FlightId** Unique ID for each flight. +- **InternalFailureResult** Indicates a non-fatal error from a plugin. +- **ObjectId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **PackageCategoriesSkipped** Indicates package categories that were skipped, if applicable. +- **PackageCountOptional** Number of optional packages requested. +- **PackageCountRequired** Number of required packages requested. +- **PackageCountTotal** Total number of packages needed. +- **PackageCountTotalCanonical** Total number of canonical packages. +- **PackageCountTotalDiff** Total number of diff packages. +- **PackageCountTotalExpress** Total number of express packages. +- **PackageExpressType** Type of express package. +- **PackageSizeCanonical** Size of canonical packages in bytes. +- **PackageSizeDiff** Size of diff packages in bytes. +- **PackageSizeExpress** Size of express packages in bytes. +- **RangeRequestState** Indicates the range request type used. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the download request phase of update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt (same value for initialize, download, install commit phases). +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentExpand + +This event collects information regarding the expansion phase of the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ElapsedTickCount** Time taken for expand phase. +- **EndFreeSpace** Free space after expand phase. +- **EndSandboxSize** Sandbox size after expand phase. +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **StartFreeSpace** Free space before expand phase. +- **StartSandboxSize** Sandbox size after expand phase. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentFellBackToCanonical + +This event collects information when express could not be used and we fall back to canonical during the new Unified Update Platform (UUP) update scenario, which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **ObjectId** Unique value for each Update Agent mode. +- **PackageCount** Number of packages that feel back to canonical. +- **PackageList** PackageIds which fell back to canonical. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentInitialize + +This event sends data for the initialize phase of updating Windows via the new Unified Update Platform (UUP) scenario, which is applicable to both PCs and Mobile. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **FlightId** Unique ID for each flight. +- **FlightMetadata** Contains the FlightId and the build being flighted. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** Outcome of the install phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionData** String containing instructions to update agent for processing FODs and DUICs (Null for other scenarios). +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentInstall + +This event sends data for the install phase of updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current install phase. +- **ExtensionName** Indicates whether the payload is related to Operating System content or a plugin. +- **FlightId** Unique value for each Update Agent mode (same concept as InstanceId for Setup360). +- **InternalFailureResult** Indicates a non-fatal error from a plugin. +- **ObjectId** Correlation vector value generated from the latest USO scan. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** The result for the current install phase. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentMerge + +The UpdateAgentMerge event sends data on the merge phase when updating Windows. + +The following fields are available: + +- **ErrorCode** The error code returned for the current merge phase. +- **FlightId** Unique ID for each flight. +- **MergeId** The unique ID to join two update sessions being merged. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Related correlation vector value. +- **Result** Outcome of the merge phase of the update. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentMitigationResult + +This event sends data indicating the result of each update agent mitigation. + +The following fields are available: + +- **Applicable** Indicates whether the mitigation is applicable for the current update. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightId** Unique identifier for each flight. +- **Index** The mitigation index of this particular mitigation. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly name of the mitigation. +- **ObjectId** Unique value for each Update Agent mode. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **UpdateId** Unique ID for each Update. + + +### Update360Telemetry.UpdateAgentMitigationSummary + +This event sends a summary of all the update agent mitigations available for an this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **Failed** The count of mitigations that failed. +- **FlightId** Unique identifier for each flight. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO scan. +- **Result** The HResult of this operation. +- **ScenarioId** The update agent scenario ID. +- **SessionId** Unique value for each update attempt. +- **TimeDiff** The amount of time spent performing all mitigations (in 100-nanosecond increments). +- **Total** Total number of mitigations that were available. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentModeStart + +This event sends data for the start of each mode during the process of updating Windows via the new Unified Update Platform (UUP) scenario. Applicable to both PCs and Mobile. + +The following fields are available: + +- **FlightId** Unique ID for each flight. +- **Mode** Indicates the mode that has started. +- **ObjectId** Unique value for each Update Agent mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. +- **Version** Version of update + + +### Update360Telemetry.UpdateAgentOneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **Count** The count of applicable OneSettings for the device. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. +- **Values** The values sent back to the device, if applicable. + + +### Update360Telemetry.UpdateAgentPostRebootResult + +This event collects information for both Mobile and Desktop regarding the post reboot phase of the new Unified Update Platform (UUP) update scenario. + +The following fields are available: + +- **ErrorCode** The error code returned for the current post reboot phase. +- **FlightId** The specific ID of the Windows Insider build the device is getting. +- **ObjectId** Unique value for each Update Agent mode. +- **PostRebootResult** Indicates the Hresult. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **ScenarioId** The scenario ID. Example: MobileUpdate, DesktopLanguagePack, DesktopFeatureOnDemand, or DesktopDriverUpdate. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. + + +### Update360Telemetry.UpdateAgentReboot + +This event sends information indicating that a request has been sent to suspend an update. + +The following fields are available: + +- **ErrorCode** The error code returned for the current reboot. +- **FlightId** Unique ID for the flight (test instance version). +- **ObjectId** The unique value for each Update Agent mode. +- **RelatedCV** The correlation vector value generated from the latest USO (Update Service Orchestrator) scan. +- **Result** The HResult of the event. +- **ScenarioId** The ID of the update scenario. +- **SessionId** The ID of the update attempt. +- **UpdateId** The ID of the update. + + +### Update360Telemetry.UpdateAgentSetupBoxLaunch + +The UpdateAgent_SetupBoxLaunch event sends data for the launching of the setup box when updating Windows via the new Unified Update Platform (UUP) scenario. This event is only applicable to PCs. + +The following fields are available: + +- **ContainsExpressPackage** Indicates whether the download package is express. +- **FlightId** Unique ID for each flight. +- **FreeSpace** Free space on OS partition. +- **InstallCount** Number of install attempts using the same sandbox. +- **ObjectId** Unique value for each Update Agent mode. +- **Quiet** Indicates whether setup is running in quiet mode. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **SandboxSize** Size of the sandbox. +- **ScenarioId** Indicates the update scenario. +- **SessionId** Unique value for each update attempt. +- **SetupMode** Mode of setup to be launched. +- **UpdateId** Unique ID for each Update. +- **UserSession** Indicates whether install was invoked by user actions. + + ## Upgrade events ### FacilitatorTelemetry.DCATDownload @@ -4364,6 +5019,197 @@ The following fields are available: - **Version** Version of Facilitator. +### Setup360Telemetry.Downlevel + +This event sends data indicating that the device has started the downlevel phase of the upgrade, to help keep Windows up-to-date and secure. + +The following fields are available: + +- **ClientId** If using Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, the default value is Media360, but it can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the downlevel OS. +- **HostOsSkuName** The operating system edition which is running Setup360 instance (downlevel OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** In the Windows Update scenario, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** More detailed information about phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360 (for example, Predownload, Install, Finalize, Rollback). +- **Setup360Result** The result of Setup360 (HRESULT used to diagnose errors). +- **Setup360Scenario** The Setup360 flow type (for example, Boot, Media, Update, MCT). +- **SetupVersionBuildNumber** The build number of Setup360 (build number of the target OS). +- **State** Exit state of given Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** An ID that uniquely identifies a group of events. +- **WuId** This is the Windows Update Client ID. In the Windows Update scenario, this is the same as the clientId. + + +### Setup360Telemetry.Finalize + +This event sends data indicating that the device has started the phase of finalizing the upgrade, to help keep Windows up-to-date and secure. + +The following fields are available: + +- **ClientId** With Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** More detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** ID that uniquely identifies a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as the clientId. + + +### Setup360Telemetry.OsUninstall + +This event sends data regarding OS updates and upgrades from Windows 7, Windows 8, and Windows 10. Specifically, it indicates the outcome of an OS uninstall. + +The following fields are available: + +- **ClientId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running the Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase or action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** Exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled +- **TestId** ID that uniquely identifies a group of events. +- **WuId** Windows Update client ID. + + +### Setup360Telemetry.PostRebootInstall + +This event sends data indicating that the device has invoked the post reboot install phase of the upgrade, to help keep Windows up-to-date. + +The following fields are available: + +- **ClientId** With Windows Update, this is the Windows Update client ID that is passed to Setup. In Media setup, the default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Extension of result - more granular information about phase/action when the potential failure happened +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback +- **Setup360Result** The result of Setup360. This is an HRESULT error code that's used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled +- **TestId** A string to uniquely identify a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as ClientId. + + +### Setup360Telemetry.PreDownloadQuiet + +This event sends data indicating that the device has invoked the predownload quiet phase of the upgrade, to help keep Windows up to date. + +The following fields are available: + +- **ClientId** Using Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous operating system). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** Using Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, canceled. +- **TestId** ID that uniquely identifies a group of events. +- **WuId** This is the Windows Update Client ID. Using Windows Update, this is the same as the clientId. + + +### Setup360Telemetry.PreDownloadUX + +This event sends data regarding OS Updates and Upgrades from Windows 7.X, Windows 8.X, Windows 10 and RS, to help keep Windows up-to-date and secure. Specifically, it indicates the outcome of the PredownloadUX portion of the update process. + +The following fields are available: + +- **ClientId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **HostOSBuildNumber** The build number of the previous operating system. +- **HostOsSkuName** The OS edition which is running the Setup360 instance (previous operating system). +- **InstanceId** Unique GUID that identifies each instance of setuphost.exe. +- **ReportId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of the target OS). +- **State** The exit state of the Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** ID that uniquely identifies a group of events. +- **WuId** Windows Update client ID. + + +### Setup360Telemetry.PreInstallQuiet + +This event sends data indicating that the device has invoked the preinstall quiet phase of the upgrade, to help keep Windows up-to-date. + +The following fields are available: + +- **ClientId** With Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used to diagnose errors. +- **Setup360Scenario** Setup360 flow type (Boot, Media, Update, MCT). +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** A string to uniquely identify a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as the clientId. + + +### Setup360Telemetry.PreInstallUX + +This event sends data regarding OS updates and upgrades from Windows 7, Windows 8, and Windows 10, to help keep Windows up-to-date. Specifically, it indicates the outcome of the PreinstallUX portion of the update process. + +The following fields are available: + +- **ClientId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running the Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe. +- **ReportId** For Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that is used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type, Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** A string to uniquely identify a group of events. +- **WuId** Windows Update client ID. + + +### Setup360Telemetry.Setup360 + +This event sends data about OS deployment scenarios, to help keep Windows up-to-date. + +The following fields are available: + +- **ClientId** Retrieves the upgrade ID. In the Windows Update scenario, this will be the Windows Update client ID. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FieldName** Retrieves the data point. +- **FlightData** Specifies a unique identifier for each group of Windows Insider builds. +- **InstanceId** Retrieves a unique identifier for each instance of a setup session. +- **ReportId** Retrieves the report ID. +- **ScenarioId** Retrieves the deployment scenario. +- **Value** Retrieves the value associated with the corresponding FieldName. + + ### Setup360Telemetry.Setup360DynamicUpdate This event helps determine whether the device received supplemental content during an operating system upgrade, to help keep Windows up-to-date. @@ -4381,6 +5227,89 @@ The following fields are available: - **TargetBuild** Build of the target OS. +### Setup360Telemetry.Setup360MitigationResult + +This event sends data indicating the result of each setup mitigation. + +The following fields are available: + +- **Applicable** TRUE if the mitigation is applicable for the current update. +- **ClientId** In the Windows Update scenario, this is the client ID passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **CommandCount** The number of command operations in the mitigation entry. +- **CustomCount** The number of custom operations in the mitigation entry. +- **FileCount** The number of file operations in the mitigation entry. +- **FlightData** The unique identifier for each flight (test release). +- **Index** The mitigation index of this particular mitigation. +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **Name** The friendly (descriptive) name of the mitigation. +- **OperationIndex** The mitigation operation index (in the event of a failure). +- **OperationName** The friendly (descriptive) name of the mitigation operation (in the event of failure). +- **RegistryCount** The number of registry operations in the mitigation entry. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). + + +### Setup360Telemetry.Setup360MitigationSummary + +This event sends a summary of all the setup mitigations available for this update. + +The following fields are available: + +- **Applicable** The count of mitigations that were applicable to the system and scenario. +- **ClientId** The Windows Update client ID passed to Setup. +- **Failed** The count of mitigations that failed. +- **FlightData** The unique identifier for each flight (test release). +- **InstanceId** The GUID (Globally Unique ID) that identifies each instance of SetupHost.EXE. +- **MitigationScenario** The update scenario in which the mitigations were attempted. +- **ReportId** In the Windows Update scenario, the Update ID that is passed to Setup. In media setup, this is the GUID for the INSTALL.WIM. +- **Result** HResult of this operation. +- **ScenarioId** Setup360 flow type. +- **TimeDiff** The amount of time spent performing the mitigation (in 100-nanosecond increments). +- **Total** The total number of mitigations that were available. + + +### Setup360Telemetry.Setup360OneSettings + +This event collects information regarding the post reboot phase of the new UUP (Unified Update Platform) update scenario; which is leveraged by both Mobile and Desktop. + +The following fields are available: + +- **ClientId** The Windows Update client ID passed to Setup. +- **Count** The count of applicable OneSettings for the device. +- **FlightData** The ID for the flight (test instance version). +- **InstanceId** The GUID (Globally-Unique ID) that identifies each instance of setuphost.exe. +- **Parameters** The set of name value pair parameters sent to OneSettings to determine if there are any applicable OneSettings. +- **ReportId** The Update ID passed to Setup. +- **Result** The HResult of the event error. +- **ScenarioId** The update scenario ID. +- **Values** Values sent back to the device, if applicable. + + +### Setup360Telemetry.UnexpectedEvent + +This event sends data indicating that the device has invoked the unexpected event phase of the upgrade, to help keep Windows up to date. + +The following fields are available: + +- **ClientId** With Windows Update, this will be the Windows Update client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **FlightData** Unique value that identifies the flight. +- **HostOSBuildNumber** The build number of the previous OS. +- **HostOsSkuName** The OS edition which is running Setup360 instance (previous OS). +- **InstanceId** A unique GUID that identifies each instance of setuphost.exe +- **ReportId** With Windows Update, this is the updateID that is passed to Setup. In media setup, this is the GUID for the install.wim. +- **Setup360Extended** Detailed information about the phase/action when the potential failure occurred. +- **Setup360Mode** The phase of Setup360. Example: Predownload, Install, Finalize, Rollback. +- **Setup360Result** The result of Setup360. This is an HRESULT error code that can be used used to diagnose errors. +- **Setup360Scenario** The Setup360 flow type. Example: Boot, Media, Update, MCT. +- **SetupVersionBuildNumber** The build number of Setup360 (build number of target OS). +- **State** The exit state of a Setup360 run. Example: succeeded, failed, blocked, cancelled. +- **TestId** A string to uniquely identify a group of events. +- **WuId** This is the Windows Update Client ID. With Windows Update, this is the same as the clientId. + + ## Windows as a Service diagnostic events ### Microsoft.Windows.WaaSMedic.SummaryEvent @@ -4407,6 +5336,50 @@ The following fields are available: - **waasMedicRunMode** Indicates whether this was a background regular run of the medic or whether it was triggered by a user launching Windows Update Troubleshooter. +## Windows Error Reporting events + +### Microsoft.Windows.WERVertical.OSCrash + +This event sends binary data from the collected dump file wheneveer a bug check occurs, to help keep Windows up to date. The is the OneCore version of this event. + +The following fields are available: + +- **BootId** Uint32 identifying the boot number for this device. +- **BugCheckCode** Uint64 "bugcheck code" that identifies a proximate cause of the bug check. +- **BugCheckParameter1** Uint64 parameter providing additional information. +- **BugCheckParameter2** Uint64 parameter providing additional information. +- **BugCheckParameter3** Uint64 parameter providing additional information. +- **BugCheckParameter4** Uint64 parameter providing additional information. +- **DumpFileAttributes** Codes that identify the type of data contained in the dump file +- **DumpFileSize** Size of the dump file +- **IsValidDumpFile** True if the dump file is valid for the debugger, false otherwise +- **ReportId** WER Report Id associated with this bug check (used for finding the corresponding report archive in Watson). + + +## Windows Update Delivery Optimization events + +### Microsoft.OSG.DU.DeliveryOptClient.FailureCdnCommunication + +This event represents a failure to download from a CDN with Delivery Optimization. It's used to understand and address problems regarding downloads. + +The following fields are available: + +- **cdnHeaders** The HTTP headers returned by the CDN. +- **cdnIp** The IP address of the CDN. +- **cdnUrl** The URL of the CDN. +- **errorCode** The error code that was returned. +- **errorCount** The total number of times this error code was seen since the last FailureCdnCommunication event was encountered. +- **experimentId** When running a test, this is used to correlate with other events that are part of the same test. +- **fileID** The ID of the file being downloaded. +- **httpStatusCode** The HTTP status code returned by the CDN. +- **isHeadRequest** The type of HTTP request that was sent to the CDN. Example: HEAD or GET +- **peerType** The type of peer (LAN, Group, Internet, CDN, Cache Host, etc.). +- **requestOffset** The byte offset within the file in the sent request. +- **requestSize** The size of the range requested from the CDN. +- **responseSize** The size of the range response received from the CDN. +- **sessionID** The ID of the download session. + + ## Windows Update events ### Microsoft.Windows.Update.DeviceUpdateAgent.UpdateAgentAnalysisSummary @@ -4525,6 +5498,32 @@ The following fields are available: - **updateId** Unique identifier for each update. +### Microsoft.Windows.Update.NotificationUx.DialogNotificationToBeDisplayed + +This event indicates that a notification dialog box is about to be displayed to user. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before the RebootFailed dialog box is shown. +- **DaysSinceRebootRequired** Number of days since restart was required. +- **DeviceLocalTime** The local time on the device sending the event. +- **EngagedModeLimit** The number of days to switch between DTE dialog boxes. +- **EnterAutoModeLimit** The maximum number of days for a device to enter Auto Reboot mode. +- **ETag** OneSettings versioning value. +- **IsForcedEnabled** Indicates whether Forced Reboot mode is enabled for this device. +- **IsUltimateForcedEnabled** Indicates whether Ultimate Forced Reboot mode is enabled for this device. +- **NotificationUxState** Indicates which dialog box is shown. +- **NotificationUxStateString** Indicates which dialog box is shown. +- **RebootUxState** Indicates the state of the restart (Engaged, Auto, Forced, or UltimateForced). +- **RebootUxStateString** Indicates the state of the restart (Engaged, Auto, Forced, or UltimateForced). +- **RebootVersion** Version of DTE. +- **SkipToAutoModeLimit** The minimum length of time to pass in restart pending before a device can be put into auto mode. +- **UpdateId** The ID of the update that is pending restart to finish installation. +- **UpdateRevision** The revision of the update that is pending restart to finish installation. +- **UtcTime** The time the dialog box notification will be displayed, in Coordinated Universal Time. + + ### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootFirstReminderDialog This event indicates that the Enhanced Engaged restart "first reminder" dialog box was displayed.. @@ -4541,6 +5540,65 @@ The following fields are available: - **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootFailedDialog + +This event indicates that the Enhanced Engaged restart "restart failed" dialog box was displayed. + +The following fields are available: + +- **DeviceLocalTime** The local time of the device sending the event. +- **ETag** OneSettings versioning value. +- **ExitCode** Indicates how users exited the dialog box. +- **RebootVersion** Version of DTE. +- **UpdateId** The ID of the update that is pending restart to finish installation. +- **UpdateRevision** The revision of the update that is pending restart to finish installation. +- **UserResponseString** The option that the user chose in this dialog box. +- **UtcTime** The time that the dialog box was displayed, in Coordinated Universal Time. + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootRebootImminentDialog + +This event indicates that the Enhanced Engaged restart "restart imminent" dialog box was displayed. + +The following fields are available: + +- **DeviceLocalTime** Time the dialog box was shown on the local device. +- **ETag** OneSettings versioning value. +- **ExitCode** Indicates how users exited the dialog box. +- **RebootVersion** Version of DTE. +- **UpdateId** The ID of the update that is pending restart to finish installation. +- **UpdateRevision** The revision of the update that is pending restart to finish installation. +- **UserResponseString** The option that user chose in this dialog box. +- **UtcTime** The time that dialog box was displayed, in Coordinated Universal Time. + + +### Microsoft.Windows.Update.NotificationUx.EnhancedEngagedRebootReminderDialog + +This event returns information relating to the Enhanced Engaged reboot reminder dialog that was displayed. + +The following fields are available: + +- **DeviceLocalTime** The time at which the reboot reminder dialog was shown (based on the local device time settings). +- **ETag** The OneSettings versioning value. +- **ExitCode** Indicates how users exited the reboot reminder dialog box. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. +- **UserResponseString** The option chosen by the user on the reboot dialog box. +- **UtcTime** The time at which the reboot reminder dialog was shown (in UTC). + + +### Microsoft.Windows.Update.Orchestrator.ActivityRestrictedByActiveHoursPolicy + +This event indicates a policy is present that may restrict update activity to outside of active hours. + +The following fields are available: + +- **activeHoursEnd** The end of the active hours window. +- **activeHoursStart** The start of the active hours window. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.BlockedByBatteryLevel This event indicates that Windows Update activity was blocked due to low battery level. @@ -4553,6 +5611,22 @@ The following fields are available: - **wuDeviceid** Device ID. +### Microsoft.Windows.Update.Orchestrator.DisplayNeeded + +This event indicates the reboot was postponed due to needing a display. + +The following fields are available: + +- **displayNeededReason** Reason the display is needed. +- **eventScenario** Indicates the purpose of sending this event - whether because the software distribution just started checking for content, or whether it was cancelled, succeeded, or failed. +- **rebootOutsideOfActiveHours** Indicates whether the reboot was to occur outside of active hours. +- **revisionNumber** Revision number of the update. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated. +- **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue + + ### Microsoft.Windows.Update.Orchestrator.DTUCompletedWhenWuFlightPendingCommit This event indicates that DTU completed installation of the electronic software delivery (ESD), when Windows Update was already in Pending Commit phase of the feature update. @@ -4592,6 +5666,162 @@ The following fields are available: - **wuDeviceid** The Windows Update device ID. +### Microsoft.Windows.Update.Orchestrator.FlightInapplicable + +This event indicates that the update is no longer applicable to this device. + +The following fields are available: + +- **EventPublishedTime** Time when this event was generated. +- **flightID** The specific ID of the Windows Insider build. +- **revisionNumber** Update revision number. +- **updateId** Unique Windows Update ID. +- **updateScenarioType** Update session type. +- **UpdateStatus** Last status of update. +- **UUPFallBackConfigured** Indicates whether UUP fallback is configured. +- **wuDeviceid** Unique Device ID. + + +### Microsoft.Windows.Update.Orchestrator.InitiatingReboot + +This event sends data about an Orchestrator requesting a reboot from power management to help keep Windows up to date. + +The following fields are available: + +- **EventPublishedTime** Time of the event. +- **flightID** Unique update ID +- **interactive** Indicates whether the reboot initiation stage of the update process was entered as a result of user action. +- **rebootOutsideOfActiveHours** Indicates whether the reboot was to occur outside of active hours. +- **revisionNumber** Revision number of the update. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.Install + +This event sends launch data for a Windows Update install to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **errorCode** The error code reppresented by a hexadecimal value. +- **eventScenario** End-to-end update session ID. +- **flightID** Unique update ID +- **flightUpdate** Indicates whether the update is a Windows Insider build. +- **ForcedRebootReminderSet** A boolean value that indicates if a forced reboot will happen for updates. +- **IgnoreReasonsForRestart** The reason(s) a Postpone Restart command was ignored. +- **installCommitfailedtime** The time it took for a reboot to happen but the upgrade failed to progress. +- **installRebootinitiatetime** The time it took for a reboot to be attempted. +- **interactive** Identifies if session is user initiated. +- **minutesToCommit** The time it took to install updates. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.LowUptimes + +This event is sent if a device is identified as not having sufficient uptime to reliably process updates in order to keep secure. + +The following fields are available: + +- **availableHistoryMinutes** The number of minutes available from the local machine activity history. +- **isLowUptimeMachine** Is the machine considered low uptime or not. +- **lowUptimeMinHours** Current setting for the minimum number of hours needed to not be considered low uptime. +- **lowUptimeQueryDays** Current setting for the number of recent days to check for uptime. +- **uptimeMinutes** Number of minutes of uptime measured. +- **wuDeviceid** Unique device ID for Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.OneshotUpdateDetection + +This event returns data about scans initiated through settings UI, or background scans that are urgent; to help keep Windows up to date. + +The following fields are available: + +- **externalOneshotupdate** The last time a task-triggered scan was completed. +- **interactiveOneshotupdate** The last time an interactive scan was completed. +- **oldlastscanOneshotupdate** The last time a scan completed successfully. +- **wuDeviceid** The Windows Update Device GUID (Globally-Unique ID). + + +### Microsoft.Windows.Update.Orchestrator.PreShutdownStart + +This event is generated before the shutdown and commit operations. + +The following fields are available: + +- **wuDeviceid** The unique identifier of a specific device, used to identify how many devices are encountering success or a particular issue. + + +### Microsoft.Windows.Update.Orchestrator.RebootFailed + +This event sends information about whether an update required a reboot and reasons for failure, to help keep Windows up to date. + +The following fields are available: + +- **batteryLevel** Current battery capacity in mWh or percentage left. +- **deferReason** Reason for install not completing. +- **EventPublishedTime** The time that the reboot failure occurred. +- **flightID** Unique update ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot was scheduled outside of active hours. +- **RebootResults** Hex code indicating failure reason. Typically, we expect this to be a specific USO generated hex code. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RefreshSettings + +This event sends basic data about the version of upgrade settings applied to the system to help keep Windows up to date. + +The following fields are available: + +- **errorCode** Hex code for the error message, to allow lookup of the specific error. +- **settingsDownloadTime** Timestamp of the last attempt to acquire settings. +- **settingsETag** Version identifier for the settings. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.RestoreRebootTask + +This event sends data indicating that a reboot task is missing unexpectedly on a device and the task is restored because a reboot is still required, to help keep Windows up to date. + +The following fields are available: + +- **RebootTaskMissedTimeUTC** The time when the reboot task was scheduled to run, but did not. +- **RebootTaskNextTimeUTC** The time when the reboot task was rescheduled for. +- **RebootTaskRestoredTime** Time at which this reboot task was restored. +- **wuDeviceid** Device ID for the device on which the reboot is restored. + + +### Microsoft.Windows.Update.Orchestrator.ScanTriggered + +This event indicates that Update Orchestrator has started a scan operation. + +The following fields are available: + +- **errorCode** The error code returned for the current scan operation. +- **eventScenario** Indicates the purpose of sending this event. +- **interactive** Indicates whether the scan is interactive. +- **isDTUEnabled** Indicates whether DTU (internal abbreviation for Direct Feature Update) channel is enabled on the client system. +- **isScanPastSla** Indicates whether the SLA has elapsed for scanning. +- **isScanPastTriggerSla** Indicates whether the SLA has elapsed for triggering a scan. +- **minutesOverScanSla** Indicates how many minutes the scan exceeded the scan SLA. +- **minutesOverScanTriggerSla** Indicates how many minutes the scan exceeded the scan trigger SLA. +- **scanTriggerSource** Indicates what caused the scan. +- **updateScenarioType** The update session type. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.StickUpdate This event is sent when the update service orchestrator (USO) indicates the update cannot be superseded by a newer update. @@ -4602,6 +5832,22 @@ The following fields are available: - **wuDeviceid** Unique device ID controlled by the software distribution client. +### Microsoft.Windows.Update.Orchestrator.SystemNeeded + +This event sends data about why a device is unable to reboot, to help keep Windows up to date. + +The following fields are available: + +- **eventScenario** End-to-end update session ID. +- **rebootOutsideOfActiveHours** Indicates whether a reboot is scheduled outside of active hours. +- **revisionNumber** Update revision number. +- **systemNeededReason** List of apps or tasks that are preventing the system from restarting. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + ### Microsoft.Windows.Update.Orchestrator.TerminatedByActiveHours This event indicates that update activity was stopped due to active hours starting. @@ -4636,6 +5882,111 @@ The following fields are available: - **wuDeviceid** Unique device ID controlled by the software distribution client. +### Microsoft.Windows.Update.Orchestrator.UpdatePolicyCacheRefresh + +This event sends data on whether Update Management Policies were enabled on a device, to help keep Windows up to date. + +The following fields are available: + +- **configuredPoliciescount** Number of policies on the device. +- **policiesNamevaluesource** Policy name and source of policy (group policy, MDM or flight). +- **policyCacherefreshtime** Time when policy cache was refreshed. +- **updateInstalluxsetting** Indicates whether a user has set policies via a user experience option. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.UpdateRebootRequired + +This event sends data about whether an update required a reboot to help keep Windows up to date. + +The following fields are available: + +- **flightID** The specific ID of the Windows Insider build the device is getting. +- **interactive** Indicates whether the reboot initiation stage of the update process was entered as a result of user action. +- **revisionNumber** Update revision number. +- **updateId** Update ID. +- **updateScenarioType** The update session type. +- **uxRebootstate** Indicates the exact state of the user experience at the time the required reboot was initiated to ensure the correct update process and experience is provided to keep Windows up to date. +- **wuDeviceid** Unique device ID used by Windows Update. + + +### Microsoft.Windows.Update.Orchestrator.updateSettingsFlushFailed + +This event sends information about an update that encountered problems and was not able to complete. + +The following fields are available: + +- **errorCode** The error code encountered. +- **wuDeviceid** The ID of the device in which the error occurred. + + +### Microsoft.Windows.Update.Orchestrator.UsoSession + +This event represents the state of the USO service at start and completion. + +The following fields are available: + +- **activeSessionid** A unique session GUID. +- **eventScenario** The state of the update action. +- **interactive** Is the USO session interactive? +- **lastErrorcode** The last error that was encountered. +- **lastErrorstate** The state of the update when the last error was encountered. +- **sessionType** A GUID that refers to the update session type. +- **updateScenarioType** A descriptive update session type. +- **wuDeviceid** The Windows Update device GUID. + + +### Microsoft.Windows.Update.Ux.MusNotification.EnhancedEngagedRebootUxState + +This event sends information about the configuration of Enhanced Direct-to-Engaged (eDTE), which includes values for the timing of how eDTE will progress through each phase of the reboot. + +The following fields are available: + +- **AcceptAutoModeLimit** The maximum number of days for a device to automatically enter Auto Reboot mode. +- **AutoToAutoFailedLimit** The maximum number of days for Auto Reboot mode to fail before a Reboot Failed dialog will be shown. +- **DeviceLocalTime** The date and time (based on the device date/time settings) the reboot mode changed. +- **EngagedModeLimit** The number of days to switch between DTE (Direct-to-Engaged) dialogs. +- **EnterAutoModeLimit** The maximum number of days a device can enter Auto Reboot mode. +- **ETag** The Entity Tag that represents the OneSettings version. +- **IsForcedEnabled** Identifies whether Forced Reboot mode is enabled for the device. +- **IsUltimateForcedEnabled** Identifies whether Ultimate Forced Reboot mode is enabled for the device. +- **OldestUpdateLocalTime** The date and time (based on the device date/time settings) this update’s reboot began pending. +- **RebootUxState** Identifies the reboot state: Engaged, Auto, Forced, UltimateForced. +- **RebootVersion** The version of the DTE (Direct-to-Engaged). +- **SkipToAutoModeLimit** The maximum number of days to switch to start while in Auto Reboot mode. +- **UpdateId** The ID of the update that is waiting for reboot to finish installation. +- **UpdateRevision** The revision of the update that is waiting for reboot to finish installation. + + +### Microsoft.Windows.Update.Ux.MusNotification.RebootNoLongerNeeded + +This event is sent when a security update has successfully completed. + +The following fields are available: + +- **UtcTime** The Coordinated Universal Time that the restart was no longer needed. + + +### Microsoft.Windows.Update.Ux.MusNotification.RebootScheduled + +This event sends basic information about scheduling an update-related reboot, to get security updates and to help keep Windows up-to-date. + +The following fields are available: + +- **activeHoursApplicable** Indicates whether Active Hours applies on this device. +- **IsEnhancedEngagedReboot** Indicates whether Enhanced reboot was enabled. +- **rebootArgument** Argument for the reboot task. It also represents specific reboot related action. +- **rebootOutsideOfActiveHours** True, if a reboot is scheduled outside of active hours. False, otherwise. +- **rebootScheduledByUser** True, if a reboot is scheduled by user. False, if a reboot is scheduled automatically. +- **rebootState** Current state of the reboot. +- **rebootUsingSmartScheduler** Indicates that the reboot is scheduled by SmartScheduler. +- **revisionNumber** Revision number of the OS. +- **scheduledRebootTime** Time scheduled for the reboot. +- **scheduledRebootTimeInUTC** Time scheduled for the reboot, in UTC. +- **updateId** Identifies which update is being scheduled. +- **wuDeviceid** Unique DeviceID + + ### Microsoft.Windows.Update.Ux.MusNotification.UxBrokerScheduledTask This event is sent when MUSE broker schedules a task. @@ -4646,4 +5997,73 @@ The following fields are available: - **TaskName** Name of the task. +### Microsoft.Windows.Update.Ux.MusUpdateSettings.RebootScheduled + +This event sends basic information for scheduling a device restart to install security updates. It's used to help keep Windows up to date. + +The following fields are available: + +- **activeHoursApplicable** Is the restart respecting Active Hours? +- **IsEnhancedEngagedReboot** TRUE if the reboot path is Enhanced Engaged. Otherwise, FALSE. +- **rebootArgument** The arguments that are passed to the OS for the restarted. +- **rebootOutsideOfActiveHours** Was the restart scheduled outside of Active Hours? +- **rebootScheduledByUser** Was the restart scheduled by the user? If the value is false, the restart was scheduled by the device. +- **rebootState** The state of the restart. +- **rebootUsingSmartScheduler** TRUE if the reboot should be performed by the Smart Scheduler. Otherwise, FALSE. +- **revisionNumber** The revision number of the OS being updated. +- **scheduledRebootTime** Time of the scheduled reboot +- **scheduledRebootTimeInUTC** Time of the scheduled restart, in Coordinated Universal Time. +- **updateId** The Windows Update device GUID. +- **wuDeviceid** The Windows Update device GUID. + + +## Windows Update mitigation events + +### Mitigation360Telemetry.MitigationCustom.CleanupSafeOsImages + +This event sends data specific to the CleanupSafeOsImages mitigation used for OS Updates. + +The following fields are available: + +- **ClientId** Unique identifier for each flight. +- **FlightId** Unique GUID that identifies each instances of setuphost.exe. +- **InstanceId** The update scenario in which the mitigation was executed. +- **MitigationScenario** Number of mounted images. +- **MountedImageCount** Number of mounted images that were under %systemdrive%\$Windows.~BT. +- **MountedImageMatches** Number of mounted images under %systemdrive%\$Windows.~BT that could not be removed. +- **MountedImagesFailed** Number of mounted images under %systemdrive%\$Windows.~BT that were successfully removed. +- **MountedImagesRemoved** Number of mounted images that were not under %systemdrive%\$Windows.~BT. +- **MountedImagesSkipped** Correlation vector value generated from the latest USO scan. +- **RelatedCV** HResult of this operation. +- **Result** ID indicating the mitigation scenario. +- **ScenarioId** Indicates whether the scenario was supported. +- **ScenarioSupported** Unique value for each update attempt. +- **SessionId** Unique ID for each Update. +- **UpdateId** Unique ID for the Windows Update client. +- **WuId** Unique ID for the Windows Update client. + + +### Mitigation360Telemetry.MitigationCustom.FixupEditionId + +This event sends data specific to the FixupEditionId mitigation used for OS updates. + +The following fields are available: + +- **ClientId** In the WU scenario, this will be the WU client ID that is passed to Setup. In Media setup, default value is Media360, but can be overwritten by the caller to a unique value. +- **EditionIdUpdated** Determine whether EditionId was changed. +- **FlightId** Unique identifier for each flight. +- **InstanceId** Unique GUID that identifies each instances of setuphost.exe. +- **MitigationScenario** The update scenario in which the mitigation was executed. +- **ProductEditionId** Expected EditionId value based on GetProductInfo. +- **ProductType** Value returned by GetProductInfo. +- **RegistryEditionId** EditionId value in the registry. +- **RelatedCV** Correlation vector value generated from the latest USO scan. +- **Result** HResult of this operation. +- **ScenarioId** ID indicating the mitigation scenario. +- **ScenarioSupported** Indicates whether the scenario was supported. +- **SessionId** Unique value for each update attempt. +- **UpdateId** Unique ID for each update. +- **WuId** Unique ID for the Windows Update client. + + From 958aa64dbe0b7ab20c74e166962681a83802ca9e Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Wed, 7 Nov 2018 15:45:54 -0800 Subject: [PATCH 154/201] detection --- windows/security/threat-protection/index.md | 4 ++-- .../windows-defender-advanced-threat-protection.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/index.md b/windows/security/threat-protection/index.md index a83dc7afac..028116204e 100644 --- a/windows/security/threat-protection/index.md +++ b/windows/security/threat-protection/index.md @@ -63,8 +63,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT
      -**[Endpoint protection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
      -Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
      +Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. - [Alerts](windows-defender-atp/alerts-queue-windows-defender-advanced-threat-protection.md) - [Historical endpoint data](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#machine-timeline) diff --git a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md index abe99e8194..6d9b834f75 100644 --- a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 10/26/2018 +ms.date: 11/07/2018 --- # Windows Defender Advanced Threat Protection @@ -76,8 +76,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT -**[Endpoint protection and response](overview-endpoint-detection-response.md)**
      -Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](overview-endpoint-detection-response.md)**
      +Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. From 9a85f729b1272874335ba14559dc8d0879dfb639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Thu, 8 Nov 2018 00:24:20 +0000 Subject: [PATCH 155/201] Merged PR 12677: Updates for zero exhaust --- ...system-components-to-microsoft-services.md | 143 ++++++++++++++---- windows/privacy/manage-windows-endpoints.md | 8 +- 2 files changed, 116 insertions(+), 35 deletions(-) diff --git a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md index 865d98939f..3ac0a072a3 100644 --- a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md +++ b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md @@ -18,6 +18,7 @@ ms.date: 06/05/2018 - Windows 10 Enterprise, version 1607 and newer - Windows Server 2016 +- Windows Server 2019 If you're looking for content on what each diagnostic data level means and how to configure it in your organization, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). @@ -43,6 +44,12 @@ Note that **Get Help** and **Give us Feedback** links no longer work after the W We are always striving to improve our documentation and welcome your feedback. You can provide feedback by contacting telmhelp@microsoft.com. +## What's new in Windows 10, version 1809 Enterprise edition + +Here's a list of changes that were made to this article for Windows 10, version 1809: + +- Added a policy to disable Windows Defender SmartScreen + ## What's new in Windows 10, version 1803 Enterprise edition Here's a list of changes that were made to this article for Windows 10, version 1803: @@ -99,19 +106,19 @@ The following table lists management options for each setting, beginning with Wi | Setting | UI | Group Policy | MDM policy | Registry | Command line | | - | :-: | :-: | :-: | :-: | :-: | -| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | | | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [5. Find My Device](#find-my-device) | | ![Check mark](images/checkmark.png) | | | | -| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | -| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | @@ -142,6 +149,7 @@ The following table lists management options for each setting, beginning with Wi | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | | [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | @@ -202,6 +210,63 @@ See the following table for a summary of the management settings for Windows Ser | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | | +### Settings for Windows Server 2019 + +See the following table for a summary of the management settings for Windows Server 2019. + +| Setting | UI | Group Policy | MDM policy | Registry | Command line | +| - | :-: | :-: | :-: | :-: | :-: | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [17. Settings > Privacy](#bkmk-settingssection) | | | | | | +|     [17.1 General](#bkmk-general) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.2 Location](#bkmk-priv-location) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.3 Camera](#bkmk-priv-camera) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.4 Microphone](#bkmk-priv-microphone) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.5 Notifications](#bkmk-priv-notifications) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png)| ![Check mark](images/checkmark.png) | | +|     [17.6 Speech, inking, & typing](#bkmk-priv-speech) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.7 Account info](#bkmk-priv-accounts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.8 Contacts](#bkmk-priv-contacts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.9 Calendar](#bkmk-priv-calendar) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.10 Call history](#bkmk-priv-callhistory) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.11 Email](#bkmk-priv-email) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.12 Messaging](#bkmk-priv-messaging) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.13 Phone calls](#bkmk-priv-phone-calls) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.14 Radios](#bkmk-priv-radios) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.15 Other devices](#bkmk-priv-other-devices) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.16 Feedback & diagnostics](#bkmk-priv-feedback) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.17 Background apps](#bkmk-priv-background) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | +|     [17.18 Motion](#bkmk-priv-motion) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.19 Tasks](#bkmk-priv-tasks) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.20 App Diagnostics](#bkmk-priv-diag) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [18. Software Protection Platform](#bkmk-spp) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [19. Storage Health](#bkmk-storage-health) | | ![Check mark](images/checkmark.png) | | | | +| [20. Sync your settings](#bkmk-syncsettings) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | +| [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +|     [26.1 Apps for websites](#bkmk-apps-for-websites) | | ![Check mark](images/checkmark.png) | | | +| [27. Windows Update Delivery Optimization](#bkmk-updates) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | + ## How to configure each setting Use the following sections for more information about how to configure each setting. @@ -336,9 +401,17 @@ After that, configure the following: ### 4. Device metadata retrieval -To prevent Windows from retrieving device metadata from the Internet, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. +To prevent Windows from retrieving device metadata from the Internet: -You can also create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). +- Apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. + + -or - + +- Create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). + + -or - + +- Apply the DeviceInstallation/PreventDeviceMetadataFromNetwork MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-deviceinstallation#deviceinstallation-preventdevicemetadatafromnetwork). ### 5. Find My Device @@ -608,7 +681,7 @@ You can turn off NCSI by doing one of the following: - Enable the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Internet Communication Management** > **Internet Communication Settings** > **Turn off Windows Network Connectivity Status Indicator active tests** -- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy. +- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-connectivity#connectivity-disallownetworkconnectivityactivetests) with a value of 1. > [!NOTE] > After you apply this policy, you must restart the device for the policy setting to take effect. @@ -879,31 +952,13 @@ To turn off **Turn on SmartScreen Filter to check web content (URLs) that Micros -or- -- In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure SmartScreen Filter**. - In Windows 10, version 1703, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure Windows Defender SmartScreen Filter**. - - In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows SmartScreen**. - In Windows 10, version 1703 , apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows Defender SmartScreen**. - - -or- - -- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. - - -or- - - Create a provisioning package, using: - - - For Internet Explorer: **Runtime settings** > **Policies** > **Browser** > **AllowSmartScreen** - - - For Microsoft Edge: **Runtime settings** > **Policies** > **MicrosoftEdge** > **AllowSmartScreen** + - For Internet Explorer: **Runtime settings > Policies > Browser > AllowSmartScreen** + - For Microsoft Edge: **Runtime settings > Policies > MicrosoftEdge > AllowSmartScreen** -or- -- Create a REG\_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY\_CURRENT\_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AppHost** with a value of 0 (zero). - - -or- - -- Create a REG\_DWORD registry setting named **EnableSmartScreen** in **HKEY\_LOCAL\_MACHINE\\Sofware\\Policies\\Microsoft\\Windows\\System** with a value of 0 (zero). +- Create a REG_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost** with a value of 0 (zero). To turn off **Send Microsoft info about how I write to help us improve typing and writing in the future**: @@ -1793,6 +1848,36 @@ For Windows 10 only, you can stop Enhanced Notifications: You can also use the registry to turn off Malicious Software Reporting Tool diagnostic data by setting the REG\_DWORD value **HKEY\_LOCAL\_MACHINE\\Software\\Policies\\Microsoft\\MRT\\DontReportInfectionInformation** to 1. +### 23.1 Windows Defender SmartScreen + +To disable Windows Defender Smartscreen: + +- In Group Policy, configure - **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -or- + +- **Computer Configuration > Administrative Templates > Windows Components > File Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -and- + +- **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure app install control** : **Enable** + + -or- + +- Create a REG_DWORD registry setting named **EnableSmartScreen** in **HKEY_LOCAL_MACHINE\Sofware\Policies\Microsoft\Windows\System** with a value of 0 (zero). + + -and- + +- Create a REG_DWORD registry setting named **ConfigureAppInstallControlEnabled** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of 1. + + -and- + +- Create a SZ registry setting named **ConfigureAppInstallControl** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of **Anywhere**. + + -or- + +- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. + ### 24. Windows Media Player To remove Windows Media Player on Windows 10: diff --git a/windows/privacy/manage-windows-endpoints.md b/windows/privacy/manage-windows-endpoints.md index 721814aabe..c324f877dd 100644 --- a/windows/privacy/manage-windows-endpoints.md +++ b/windows/privacy/manage-windows-endpoints.md @@ -145,13 +145,9 @@ If you [turn off traffic for this endpoint](manage-connections-from-windows-oper ## Certificates -The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. +The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. -| Source process | Protocol | Destination | Applies from Windows 10 version | -|----------------|----------|------------|----------------------------------| -| svchost | HTTP | ctldl.windowsupdate.com | 1709 | - -The following endpoints are used to download certificates that are publicly known to be fraudulent. +Additionally, it is used to download certificates that are publicly known to be fraudulent. These settings are critical for both Windows security and the overall security of the Internet. We do not recommend blocking this endpoint. If traffic to this endpoint is turned off, Windows no longer automatically downloads certificates known to be fraudulent, which increases the attack vector on the device. From a675e587ef27e741cf6f4fd61f1dcab201d77af8 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 8 Nov 2018 00:25:07 +0000 Subject: [PATCH 156/201] Merged PR 12668: Hybrid AD join for Autopilot New content --- windows/deployment/windows-autopilot/TOC.md | 2 + .../windows-autopilot/user-driven-aad.md | 54 ++++++++++++------- .../windows-autopilot/user-driven-hybrid.md | 25 +++++++-- .../windows-autopilot/user-driven.md | 23 +++----- 4 files changed, 67 insertions(+), 37 deletions(-) diff --git a/windows/deployment/windows-autopilot/TOC.md b/windows/deployment/windows-autopilot/TOC.md index 315115e706..19d3896e66 100644 --- a/windows/deployment/windows-autopilot/TOC.md +++ b/windows/deployment/windows-autopilot/TOC.md @@ -6,6 +6,8 @@ ## [Scenarios and Capabilities](windows-autopilot-scenarios.md) ### [Support for existing devices](existing-devices.md) ### [User-driven mode](user-driven.md) +#### [User-driven mode for AAD](user-driven-aad.md) +#### [User-driven mode for hybrid AAD](user-driven-hybrid.md) ### [Self-deploying mode](self-deploying.md) ### [Enrollment status page](enrollment-status.md) ### [Windows Autopilot Reset](windows-autopilot-reset.md) diff --git a/windows/deployment/windows-autopilot/user-driven-aad.md b/windows/deployment/windows-autopilot/user-driven-aad.md index 6da9e99b33..b63517060d 100644 --- a/windows/deployment/windows-autopilot/user-driven-aad.md +++ b/windows/deployment/windows-autopilot/user-driven-aad.md @@ -1,19 +1,35 @@ ---- -title: User-driven mode for AAD -description: Listing of Autopilot scenarios -keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune -ms.prod: w10 -ms.mktglfcycl: deploy -ms.localizationpriority: low -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay -ms.author: greg-lindsay -ms.date: 10/02/2018 ---- - -# Windows Autopilot user-driven mode for Azure Active Directory - -**Applies to: Windows 10** - -PLACEHOLDER. This topic is a placeholder for the AAD-specific instuctions currently in user-driven.md. +--- +title: User-driven mode for AAD +description: Listing of Autopilot scenarios +keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune +ms.prod: w10 +ms.mktglfcycl: deploy +ms.localizationpriority: low +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +ms.author: greg-lindsay +ms.date: 11/07/2018 +--- + +# Windows Autopilot user-driven mode for Azure Active Directory join + +**Applies to: Windows 10** + +## Procedures + +In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: + +- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. +- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. +- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. + +For each device that will be deployed using user-driven deployment, these additional steps are needed: + +- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. +- Ensure an Autopilot profile has been assigned to the device: + - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. + - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. + - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. diff --git a/windows/deployment/windows-autopilot/user-driven-hybrid.md b/windows/deployment/windows-autopilot/user-driven-hybrid.md index 6f4a760dcc..88e4a87f15 100644 --- a/windows/deployment/windows-autopilot/user-driven-hybrid.md +++ b/windows/deployment/windows-autopilot/user-driven-hybrid.md @@ -9,12 +9,31 @@ ms.sitesec: library ms.pagetype: deploy author: greg-lindsay ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- -# Windows Autopilot user-driven mode for Hybrid Azure Active Directory Join +# Windows Autopilot user-driven mode for hybrid Azure Active Directory join **Applies to: Windows 10** -PLACEHOLDER. This topic is a placeholder for the AD-specific (hybrid) instuctions. +Windows Autopilot requires that devices be Azure Active Directory joined. If you have an on-premises Active Directory environment and want to also join devices to your on-premises domain, you can accomplish this by configuring Autopilot devices to be [hybrid Azure Active Directory (AAD) joined](https://docs.microsoft.com/azure/active-directory/devices/hybrid-azuread-join-plan). + +## Requirements + +To perform a user-driven hybrid AAD joined deployment using Windows Autopilot: + +- Users must be able to join devices to Azure Active Directory. +- A Windows Autopilot profile for user-driven mode must be created and + - **Hybrid Azure AD joined** must be specified as the selected option under **Join to Azure AD as** in the Autopilot profile. +- If using Intune, a device group in Azure Active Directory must exist with the Windows Autopilot profile assigned to that group. +- The device must be running Windows 10, version 1809 or later. +- The device must be connected to the Internet and have access to an Active Directory domain controller. +- The Intune Connector for Active Directory must be installed. + - Note: The Intune Connector will perform an on-prem AD join, therefore users do not need on-prem AD-join permission, assuming the Connector is [configured to perform this action](https://docs.microsoft.com/intune/windows-autopilot-hybrid#increase-the-computer-account-limit-in-the-organizational-unit) on the user's behalf. + +## Step by step instructions + +See [Deploy hybrid Azure AD joined devices using Intune and Windows Autopilot](https://docs.microsoft.com/intune/windows-autopilot-hybrid). + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. \ No newline at end of file diff --git a/windows/deployment/windows-autopilot/user-driven.md b/windows/deployment/windows-autopilot/user-driven.md index 1aa1ad5321..4fd86ef3b5 100644 --- a/windows/deployment/windows-autopilot/user-driven.md +++ b/windows/deployment/windows-autopilot/user-driven.md @@ -8,11 +8,13 @@ ms.localizationpriority: medium ms.sitesec: library ms.pagetype: deploy author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- +# Windows Autopilot user-driven mode + Windows Autopilot user-driven mode is designed to enable new Windows 10 devices to be transformed from their initial state, directly from the factory, into a ready-to-use state without requiring that IT personnel ever touch the device. The process is designed to be simple so that anyone can complete it, enabling devices to be shipped or distributed to the end user directly with simple instructions: - Unbox the device, plug it in, and turn it on. @@ -24,21 +26,12 @@ After completing those simple steps, the remainder of the process is completely Today, Windows Autopilot user-driven mode supports joining devices to Azure Active Directory. Support for Hybrid Azure Active Directory Join (with devices joined to an on-premises Active Directory domain) will be available in a future Windows 10 release. See [Introduction to device management in Azure Active Directory](https://docs.microsoft.com/azure/active-directory/device-management-introduction) for more information about the differences between these two join options. -## Step by step +## Available user-driven modes -In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: +The following options are available for user-driven deployment: -- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. -- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. -- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. - -For each machine that will be deployed using user-driven deployment, these additional steps are needed: - -- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. -- Ensure an Autopilot profile has been assigned to the device: - - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. - - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. - - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. +- [Azure Active Directory join](user-driven-aad.md) is available if devices do not need to be joined to an on-prem Active Directory domain. +- [Hybrid Azure Active Directory join](user-driven-hybrid.md) is available for devices that must be joined to both Azure Active Directory and your on-prem Active Directory domain. ## Validation From 2e17ac9c1505777ca66362f1929813299424f4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Thu, 8 Nov 2018 00:26:43 +0000 Subject: [PATCH 157/201] Merged PR 12678: push to live --- windows/deployment/windows-autopilot/TOC.md | 2 + .../windows-autopilot/user-driven-aad.md | 54 ++++--- .../windows-autopilot/user-driven-hybrid.md | 25 ++- .../windows-autopilot/user-driven.md | 23 +-- ...system-components-to-microsoft-services.md | 143 ++++++++++++++---- windows/privacy/manage-windows-endpoints.md | 8 +- windows/security/threat-protection/index.md | 4 +- ...ows-defender-advanced-threat-protection.md | 6 +- 8 files changed, 188 insertions(+), 77 deletions(-) diff --git a/windows/deployment/windows-autopilot/TOC.md b/windows/deployment/windows-autopilot/TOC.md index 315115e706..19d3896e66 100644 --- a/windows/deployment/windows-autopilot/TOC.md +++ b/windows/deployment/windows-autopilot/TOC.md @@ -6,6 +6,8 @@ ## [Scenarios and Capabilities](windows-autopilot-scenarios.md) ### [Support for existing devices](existing-devices.md) ### [User-driven mode](user-driven.md) +#### [User-driven mode for AAD](user-driven-aad.md) +#### [User-driven mode for hybrid AAD](user-driven-hybrid.md) ### [Self-deploying mode](self-deploying.md) ### [Enrollment status page](enrollment-status.md) ### [Windows Autopilot Reset](windows-autopilot-reset.md) diff --git a/windows/deployment/windows-autopilot/user-driven-aad.md b/windows/deployment/windows-autopilot/user-driven-aad.md index 6da9e99b33..b63517060d 100644 --- a/windows/deployment/windows-autopilot/user-driven-aad.md +++ b/windows/deployment/windows-autopilot/user-driven-aad.md @@ -1,19 +1,35 @@ ---- -title: User-driven mode for AAD -description: Listing of Autopilot scenarios -keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune -ms.prod: w10 -ms.mktglfcycl: deploy -ms.localizationpriority: low -ms.sitesec: library -ms.pagetype: deploy -author: greg-lindsay -ms.author: greg-lindsay -ms.date: 10/02/2018 ---- - -# Windows Autopilot user-driven mode for Azure Active Directory - -**Applies to: Windows 10** - -PLACEHOLDER. This topic is a placeholder for the AAD-specific instuctions currently in user-driven.md. +--- +title: User-driven mode for AAD +description: Listing of Autopilot scenarios +keywords: mdm, setup, windows, windows 10, oobe, manage, deploy, autopilot, ztd, zero-touch, partner, msfb, intune +ms.prod: w10 +ms.mktglfcycl: deploy +ms.localizationpriority: low +ms.sitesec: library +ms.pagetype: deploy +author: greg-lindsay +ms.author: greg-lindsay +ms.date: 11/07/2018 +--- + +# Windows Autopilot user-driven mode for Azure Active Directory join + +**Applies to: Windows 10** + +## Procedures + +In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: + +- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. +- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. +- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. + +For each device that will be deployed using user-driven deployment, these additional steps are needed: + +- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. +- Ensure an Autopilot profile has been assigned to the device: + - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. + - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. + - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. diff --git a/windows/deployment/windows-autopilot/user-driven-hybrid.md b/windows/deployment/windows-autopilot/user-driven-hybrid.md index 6f4a760dcc..88e4a87f15 100644 --- a/windows/deployment/windows-autopilot/user-driven-hybrid.md +++ b/windows/deployment/windows-autopilot/user-driven-hybrid.md @@ -9,12 +9,31 @@ ms.sitesec: library ms.pagetype: deploy author: greg-lindsay ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- -# Windows Autopilot user-driven mode for Hybrid Azure Active Directory Join +# Windows Autopilot user-driven mode for hybrid Azure Active Directory join **Applies to: Windows 10** -PLACEHOLDER. This topic is a placeholder for the AD-specific (hybrid) instuctions. +Windows Autopilot requires that devices be Azure Active Directory joined. If you have an on-premises Active Directory environment and want to also join devices to your on-premises domain, you can accomplish this by configuring Autopilot devices to be [hybrid Azure Active Directory (AAD) joined](https://docs.microsoft.com/azure/active-directory/devices/hybrid-azuread-join-plan). + +## Requirements + +To perform a user-driven hybrid AAD joined deployment using Windows Autopilot: + +- Users must be able to join devices to Azure Active Directory. +- A Windows Autopilot profile for user-driven mode must be created and + - **Hybrid Azure AD joined** must be specified as the selected option under **Join to Azure AD as** in the Autopilot profile. +- If using Intune, a device group in Azure Active Directory must exist with the Windows Autopilot profile assigned to that group. +- The device must be running Windows 10, version 1809 or later. +- The device must be connected to the Internet and have access to an Active Directory domain controller. +- The Intune Connector for Active Directory must be installed. + - Note: The Intune Connector will perform an on-prem AD join, therefore users do not need on-prem AD-join permission, assuming the Connector is [configured to perform this action](https://docs.microsoft.com/intune/windows-autopilot-hybrid#increase-the-computer-account-limit-in-the-organizational-unit) on the user's behalf. + +## Step by step instructions + +See [Deploy hybrid Azure AD joined devices using Intune and Windows Autopilot](https://docs.microsoft.com/intune/windows-autopilot-hybrid). + +Also see the **Validation** section in the [Windows Autopilot user-driven mode](user-driven.md) topic. \ No newline at end of file diff --git a/windows/deployment/windows-autopilot/user-driven.md b/windows/deployment/windows-autopilot/user-driven.md index 1aa1ad5321..4fd86ef3b5 100644 --- a/windows/deployment/windows-autopilot/user-driven.md +++ b/windows/deployment/windows-autopilot/user-driven.md @@ -8,11 +8,13 @@ ms.localizationpriority: medium ms.sitesec: library ms.pagetype: deploy author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 ms.author: greg-lindsay -ms.date: 10/02/2018 +ms.date: 11/07/2018 --- +# Windows Autopilot user-driven mode + Windows Autopilot user-driven mode is designed to enable new Windows 10 devices to be transformed from their initial state, directly from the factory, into a ready-to-use state without requiring that IT personnel ever touch the device. The process is designed to be simple so that anyone can complete it, enabling devices to be shipped or distributed to the end user directly with simple instructions: - Unbox the device, plug it in, and turn it on. @@ -24,21 +26,12 @@ After completing those simple steps, the remainder of the process is completely Today, Windows Autopilot user-driven mode supports joining devices to Azure Active Directory. Support for Hybrid Azure Active Directory Join (with devices joined to an on-premises Active Directory domain) will be available in a future Windows 10 release. See [Introduction to device management in Azure Active Directory](https://docs.microsoft.com/azure/active-directory/device-management-introduction) for more information about the differences between these two join options. -## Step by step +## Available user-driven modes -In order to perform a user-driven deployment using Windows Autopilot, the following preparation steps need to be completed: +The following options are available for user-driven deployment: -- Ensure that the users who will be performing user-driven mode deployments are able to join devices to Azure Active Directory. See [Configure device settings](https://docs.microsoft.com/azure/active-directory/device-management-azure-portal#configure-device-settings) in the Azure Active Directory documentation for more information. -- Create an Autopilot profile for user-driven mode with the desired settings. In Microsoft Intune, this mode is explicitly chosen when creating the profile. With Microsoft Store for Business and Partner Center, user-driven mode is the default and does not need to be selected. -- If using Intune, create a device group in Azure Active Directory and assign the Autopilot profile to that group. - -For each machine that will be deployed using user-driven deployment, these additional steps are needed: - -- Ensure that the device has been added to Windows Autopilot. This can be done automatically by an OEM or partner at the time the device is purchased, or it can be done through a manual harvesting process later. See [Adding devices to Windows Autopilot](add-devices.md) for more information. -- Ensure an Autopilot profile has been assigned to the device: - - If using Intune and Azure Active Directory dynamic device groups, this can be done automatically. - - If using Intune and Azure Active Directory static device groups, manually add the device to the device group. - - If using other methods (e.g. Microsoft Store for Business or Partner Center), manually assign an Autopilot profile to the device. +- [Azure Active Directory join](user-driven-aad.md) is available if devices do not need to be joined to an on-prem Active Directory domain. +- [Hybrid Azure Active Directory join](user-driven-hybrid.md) is available for devices that must be joined to both Azure Active Directory and your on-prem Active Directory domain. ## Validation diff --git a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md index 865d98939f..3ac0a072a3 100644 --- a/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md +++ b/windows/privacy/manage-connections-from-windows-operating-system-components-to-microsoft-services.md @@ -18,6 +18,7 @@ ms.date: 06/05/2018 - Windows 10 Enterprise, version 1607 and newer - Windows Server 2016 +- Windows Server 2019 If you're looking for content on what each diagnostic data level means and how to configure it in your organization, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). @@ -43,6 +44,12 @@ Note that **Get Help** and **Give us Feedback** links no longer work after the W We are always striving to improve our documentation and welcome your feedback. You can provide feedback by contacting telmhelp@microsoft.com. +## What's new in Windows 10, version 1809 Enterprise edition + +Here's a list of changes that were made to this article for Windows 10, version 1809: + +- Added a policy to disable Windows Defender SmartScreen + ## What's new in Windows 10, version 1803 Enterprise edition Here's a list of changes that were made to this article for Windows 10, version 1803: @@ -99,19 +106,19 @@ The following table lists management options for each setting, beginning with Wi | Setting | UI | Group Policy | MDM policy | Registry | Command line | | - | :-: | :-: | :-: | :-: | :-: | -| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | | | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | -| [5. Find My Device](#find-my-device) | | ![Check mark](images/checkmark.png) | | | | -| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | -| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | @@ -142,6 +149,7 @@ The following table lists management options for each setting, beginning with Wi | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | | [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | | [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | @@ -202,6 +210,63 @@ See the following table for a summary of the management settings for Windows Ser | [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | | +### Settings for Windows Server 2019 + +See the following table for a summary of the management settings for Windows Server 2019. + +| Setting | UI | Group Policy | MDM policy | Registry | Command line | +| - | :-: | :-: | :-: | :-: | :-: | +| [1. Automatic Root Certificates Update](#automatic-root-certificates-update) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [2. Cortana and Search](#bkmk-cortana) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [3. Date & Time](#bkmk-datetime) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [4. Device metadata retrieval](#bkmk-devinst) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [5. Find My Device](#find-my-device) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [6. Font streaming](#font-streaming) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [7. Insider Preview builds](#bkmk-previewbuilds) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [8. Internet Explorer](#bkmk-ie) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [9. Live Tiles](#live-tiles) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [10. Mail synchronization](#bkmk-mailsync) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [11. Microsoft Account](#bkmk-microsoft-account) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [12. Microsoft Edge](#bkmk-edge) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [13. Network Connection Status Indicator](#bkmk-ncsi) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [14. Offline maps](#bkmk-offlinemaps) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [15. OneDrive](#bkmk-onedrive) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [16. Preinstalled apps](#bkmk-preinstalledapps) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [17. Settings > Privacy](#bkmk-settingssection) | | | | | | +|     [17.1 General](#bkmk-general) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.2 Location](#bkmk-priv-location) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.3 Camera](#bkmk-priv-camera) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.4 Microphone](#bkmk-priv-microphone) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.5 Notifications](#bkmk-priv-notifications) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png)| ![Check mark](images/checkmark.png) | | +|     [17.6 Speech, inking, & typing](#bkmk-priv-speech) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.7 Account info](#bkmk-priv-accounts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.8 Contacts](#bkmk-priv-contacts) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.9 Calendar](#bkmk-priv-calendar) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.10 Call history](#bkmk-priv-callhistory) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.11 Email](#bkmk-priv-email) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.12 Messaging](#bkmk-priv-messaging) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.13 Phone calls](#bkmk-priv-phone-calls) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.14 Radios](#bkmk-priv-radios) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.15 Other devices](#bkmk-priv-other-devices) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.16 Feedback & diagnostics](#bkmk-priv-feedback) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.17 Background apps](#bkmk-priv-background) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | +|     [17.18 Motion](#bkmk-priv-motion) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.19 Tasks](#bkmk-priv-tasks) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [17.20 App Diagnostics](#bkmk-priv-diag) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [18. Software Protection Platform](#bkmk-spp) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [19. Storage Health](#bkmk-storage-health) | | ![Check mark](images/checkmark.png) | | | | +| [20. Sync your settings](#bkmk-syncsettings) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [21. Teredo](#bkmk-teredo) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | +| [22. Wi-Fi Sense](#bkmk-wifisense) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +| [23. Windows Defender](#bkmk-defender) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +|     [23.1 Windows Defender Smartscreen](#bkmk-defender-smartscreen) | | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [24. Windows Media Player](#bkmk-wmp) | ![Check mark](images/checkmark.png) | | | | ![Check mark](images/checkmark.png) | +| [25. Windows Spotlight](#bkmk-spotlight) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [26. Microsoft Store](#bkmk-windowsstore) | | ![Check mark](images/checkmark.png) | | ![Check mark](images/checkmark.png) | | +|     [26.1 Apps for websites](#bkmk-apps-for-websites) | | ![Check mark](images/checkmark.png) | | | +| [27. Windows Update Delivery Optimization](#bkmk-updates) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | +| [28. Windows Update](#bkmk-wu) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | ![Check mark](images/checkmark.png) | | | + ## How to configure each setting Use the following sections for more information about how to configure each setting. @@ -336,9 +401,17 @@ After that, configure the following: ### 4. Device metadata retrieval -To prevent Windows from retrieving device metadata from the Internet, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. +To prevent Windows from retrieving device metadata from the Internet: -You can also create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). +- Apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Device Installation** > **Prevent device metadata retrieval from the Internet**. + + -or - + +- Create a new REG\_DWORD registry setting named **PreventDeviceMetadataFromNetwork** in **HKEY\_LOCAL\_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\Device Metadata** and set it to 1 (one). + + -or - + +- Apply the DeviceInstallation/PreventDeviceMetadataFromNetwork MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-deviceinstallation#deviceinstallation-preventdevicemetadatafromnetwork). ### 5. Find My Device @@ -608,7 +681,7 @@ You can turn off NCSI by doing one of the following: - Enable the Group Policy: **Computer Configuration** > **Administrative Templates** > **System** > **Internet Communication Management** > **Internet Communication Settings** > **Turn off Windows Network Connectivity Status Indicator active tests** -- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy. +- In Windows 10, version 1703 and later, apply the Connectivity/DisallowNetworkConnectivityActiveTests MDM policy from the [Policy CSP](https://docs.microsoft.com/windows/client-management/mdm/policy-csp-connectivity#connectivity-disallownetworkconnectivityactivetests) with a value of 1. > [!NOTE] > After you apply this policy, you must restart the device for the policy setting to take effect. @@ -879,31 +952,13 @@ To turn off **Turn on SmartScreen Filter to check web content (URLs) that Micros -or- -- In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure SmartScreen Filter**. - In Windows 10, version 1703, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **Microsoft Edge** > **Configure Windows Defender SmartScreen Filter**. - - In Windows Server 2016, apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows SmartScreen**. - In Windows 10, version 1703 , apply the Group Policy: **Computer Configuration** > **Administrative Templates** > **Windows Components** > **File Explorer** > **Configure Windows Defender SmartScreen**. - - -or- - -- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. - - -or- - - Create a provisioning package, using: - - - For Internet Explorer: **Runtime settings** > **Policies** > **Browser** > **AllowSmartScreen** - - - For Microsoft Edge: **Runtime settings** > **Policies** > **MicrosoftEdge** > **AllowSmartScreen** + - For Internet Explorer: **Runtime settings > Policies > Browser > AllowSmartScreen** + - For Microsoft Edge: **Runtime settings > Policies > MicrosoftEdge > AllowSmartScreen** -or- -- Create a REG\_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY\_CURRENT\_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\AppHost** with a value of 0 (zero). - - -or- - -- Create a REG\_DWORD registry setting named **EnableSmartScreen** in **HKEY\_LOCAL\_MACHINE\\Sofware\\Policies\\Microsoft\\Windows\\System** with a value of 0 (zero). +- Create a REG_DWORD registry setting named **EnableWebContentEvaluation** in **HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost** with a value of 0 (zero). To turn off **Send Microsoft info about how I write to help us improve typing and writing in the future**: @@ -1793,6 +1848,36 @@ For Windows 10 only, you can stop Enhanced Notifications: You can also use the registry to turn off Malicious Software Reporting Tool diagnostic data by setting the REG\_DWORD value **HKEY\_LOCAL\_MACHINE\\Software\\Policies\\Microsoft\\MRT\\DontReportInfectionInformation** to 1. +### 23.1 Windows Defender SmartScreen + +To disable Windows Defender Smartscreen: + +- In Group Policy, configure - **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -or- + +- **Computer Configuration > Administrative Templates > Windows Components > File Explorer > Configure Windows Defender SmartScreen** : **Disable** + + -and- + +- **Computer Configuration > Administrative Templates > Windows Components > Windows Defender SmartScreen > Explorer > Configure app install control** : **Enable** + + -or- + +- Create a REG_DWORD registry setting named **EnableSmartScreen** in **HKEY_LOCAL_MACHINE\Sofware\Policies\Microsoft\Windows\System** with a value of 0 (zero). + + -and- + +- Create a REG_DWORD registry setting named **ConfigureAppInstallControlEnabled** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of 1. + + -and- + +- Create a SZ registry setting named **ConfigureAppInstallControl** in **HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\SmartScreen** with a value of **Anywhere**. + + -or- + +- Apply the Browser/AllowSmartScreen MDM policy from the [Policy CSP](https://msdn.microsoft.com/library/windows/hardware/dn904962.aspx) where 0 is turned off and 1 is turned on. + ### 24. Windows Media Player To remove Windows Media Player on Windows 10: diff --git a/windows/privacy/manage-windows-endpoints.md b/windows/privacy/manage-windows-endpoints.md index 721814aabe..c324f877dd 100644 --- a/windows/privacy/manage-windows-endpoints.md +++ b/windows/privacy/manage-windows-endpoints.md @@ -145,13 +145,9 @@ If you [turn off traffic for this endpoint](manage-connections-from-windows-oper ## Certificates -The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. +The following endpoint is used by the Automatic Root Certificates Update component to automatically check the list of trusted authorities on Windows Update to see if an update is available. It is possible to [turn off traffic to this endpoint](manage-connections-from-windows-operating-system-components-to-microsoft-services.md#automatic-root-certificates-update), but that is not recommended because when root certificates are updated over time, applications and websites may stop working because they did not receive an updated root certificate the application uses. -| Source process | Protocol | Destination | Applies from Windows 10 version | -|----------------|----------|------------|----------------------------------| -| svchost | HTTP | ctldl.windowsupdate.com | 1709 | - -The following endpoints are used to download certificates that are publicly known to be fraudulent. +Additionally, it is used to download certificates that are publicly known to be fraudulent. These settings are critical for both Windows security and the overall security of the Internet. We do not recommend blocking this endpoint. If traffic to this endpoint is turned off, Windows no longer automatically downloads certificates known to be fraudulent, which increases the attack vector on the device. diff --git a/windows/security/threat-protection/index.md b/windows/security/threat-protection/index.md index a83dc7afac..028116204e 100644 --- a/windows/security/threat-protection/index.md +++ b/windows/security/threat-protection/index.md @@ -63,8 +63,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT -**[Endpoint protection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
      -Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](windows-defender-atp/overview-endpoint-detection-response.md)**
      +Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. - [Alerts](windows-defender-atp/alerts-queue-windows-defender-advanced-threat-protection.md) - [Historical endpoint data](windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md#machine-timeline) diff --git a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md index abe99e8194..6d9b834f75 100644 --- a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 10/26/2018 +ms.date: 11/07/2018 --- # Windows Defender Advanced Threat Protection @@ -76,8 +76,8 @@ To further reinforce the security perimeter of your network, Windows Defender AT -**[Endpoint protection and response](overview-endpoint-detection-response.md)**
      -Endpoint protection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. +**[Endpoint detection and response](overview-endpoint-detection-response.md)**
      +Endpoint detection and response capabilities are put in place to detect, investigate, and respond to advanced threats that may have made it past the first two security pillars. From a1938d0e7ab01c9eafc8af33ab05e426356952aa Mon Sep 17 00:00:00 2001 From: Adam Gross Date: Wed, 7 Nov 2018 18:52:27 -0600 Subject: [PATCH 158/201] Update upgrade-readiness-deployment-script.md Fixed a typo --- .../deployment/upgrade/upgrade-readiness-deployment-script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/upgrade/upgrade-readiness-deployment-script.md b/windows/deployment/upgrade/upgrade-readiness-deployment-script.md index 76e0198780..e295b3fa32 100644 --- a/windows/deployment/upgrade/upgrade-readiness-deployment-script.md +++ b/windows/deployment/upgrade/upgrade-readiness-deployment-script.md @@ -93,7 +93,7 @@ The deployment script displays the following exit codes to let you know if it wa N/A - 1 - Unexpected error occurred while executiEng the script. + 1 - Unexpected error occurred while executing the script. The files in the deployment script are likely corrupted. Download the [latest script](https://go.microsoft.com/fwlink/?LinkID=822966) from the download center and try again. From fcc1cac35a4ad1f91f7d35b194fb55393b04c403 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 8 Nov 2018 11:25:05 +0200 Subject: [PATCH 159/201] Hide TI Indicators from the navigation bar --- windows/security/threat-protection/TOC.md | 6 ------ .../security/threat-protection/windows-defender-atp/TOC.md | 6 ------ 2 files changed, 12 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index b2568ff5d9..27b8022e11 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -351,12 +351,6 @@ ######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -####### [TI Indicator](windows-defender-atp/ti-indicator-windows-defender-advanced-threat-protection-new.md) -######## [List TI Indicators](windows-defender-atp/get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) -######## [Get TI Indicator by ID](windows-defender-atp/get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) -######## [Submit TI Indicator](windows-defender-atp/post-ti-indicator-windows-defender-advanced-threat-protection-new.md) -######## [Delete TI Indicator](windows-defender-atp/delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) - ###### How to use APIs - Samples ####### Advanced Hunting API ######## [Schedule advanced Hunting using Microsoft Flow](windows-defender-atp/run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 273cc66efe..71c2a82d6f 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -287,12 +287,6 @@ ####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -###### [TI Indicator](ti-indicator-windows-defender-advanced-threat-protection-new.md) -####### [List TI Indicators](get-ti-indicators-collection-windows-defender-advanced-threat-protection-new.md) -####### [Get TI Indicator by ID](get-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) -####### [Submit TI Indicator](post-ti-indicator-windows-defender-advanced-threat-protection-new.md) -####### [Delete TI Indicator](delete-ti-indicator-by-id-windows-defender-advanced-threat-protection-new.md) - ##### How to use APIs - Samples ###### Advanced Hunting API ####### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-sample-ms-flow.md) From a5494b4014c21faded15a3cd69406bf3a69fa2e3 Mon Sep 17 00:00:00 2001 From: James Pearson Date: Thu, 8 Nov 2018 10:20:50 +0000 Subject: [PATCH 160/201] Fix a minor typo Replaced "Nullsoft Scriptable Install System" with "Nullsoft Sciptable Install System" in the Bondat section, and also put commas in the list to make it consistent with the other lists --- .../security/threat-protection/intelligence/worms-malware.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/intelligence/worms-malware.md b/windows/security/threat-protection/intelligence/worms-malware.md index b76c90029c..c9e7ce8541 100644 --- a/windows/security/threat-protection/intelligence/worms-malware.md +++ b/windows/security/threat-protection/intelligence/worms-malware.md @@ -25,7 +25,7 @@ Jenxcus (also known as Dunihi), Gamarue (also known as Androm), and Bondat have * **Gamarue** typically arrives through spam campaigns, exploits, downloaders, social networking sites, and removable drives. When Gamarue infects a device, it becomes a distribution channel for other malware. We’ve seen it distribute other malware such as infostealers, spammers, clickers, downloaders, and rogues. -* **Bondat** typically arrives through fictitious Nullsoft Sciptable Install System (NSIS) Java installers and removable drives. When Bondat infects a system, it gathers information about the machine such as device name, Globally Unique Identifier (GUID), and OS build. It then sends that information to a remote server. +* **Bondat** typically arrives through fictitious Nullsoft Scriptable Install System (NSIS), Java installers, and removable drives. When Bondat infects a system, it gathers information about the machine such as device name, Globally Unique Identifier (GUID), and OS build. It then sends that information to a remote server. Both Bondat and Gamarue have clever ways of obscuring themselves to evade detection. By hiding what they are doing, they try to avoid detection by security software. @@ -45,4 +45,4 @@ Download [Microsoft Security Essentials](https://www.microsoft.com/download/deta In case threat removal is unsuccessful, read about [troubleshooting malware detection and removal problems](https://www.microsoft.com/wdsi/help/troubleshooting-infection). -For more general tips, see [prevent malware infection](prevent-malware-infection.md). \ No newline at end of file +For more general tips, see [prevent malware infection](prevent-malware-infection.md). From afd83cf3acc50c1d41d8ea45a688ac8bd454da57 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Thu, 8 Nov 2018 14:21:40 +0200 Subject: [PATCH 161/201] remove file name --- .../custom-ti-api-windows-defender-advanced-threat-protection.md | 1 - 1 file changed, 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/custom-ti-api-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/custom-ti-api-windows-defender-advanced-threat-protection.md index 229300b01e..c7717dff75 100644 --- a/windows/security/threat-protection/windows-defender-atp/custom-ti-api-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/custom-ti-api-windows-defender-advanced-threat-protection.md @@ -186,7 +186,6 @@ The API currently supports the following IOC types: - Sha1 - Sha256 - Md5 -- FileName - IpAddress - DomainName From 84b86cc5907bc150b48f9b847c05c0a038ed45f7 Mon Sep 17 00:00:00 2001 From: Greg Lindsay Date: Thu, 8 Nov 2018 13:41:55 +0000 Subject: [PATCH 162/201] Merged PR 12682: Change toc Change toc --- windows/deployment/windows-autopilot/TOC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/deployment/windows-autopilot/TOC.md b/windows/deployment/windows-autopilot/TOC.md index 19d3896e66..dab69519b0 100644 --- a/windows/deployment/windows-autopilot/TOC.md +++ b/windows/deployment/windows-autopilot/TOC.md @@ -6,8 +6,8 @@ ## [Scenarios and Capabilities](windows-autopilot-scenarios.md) ### [Support for existing devices](existing-devices.md) ### [User-driven mode](user-driven.md) -#### [User-driven mode for AAD](user-driven-aad.md) -#### [User-driven mode for hybrid AAD](user-driven-hybrid.md) +#### [Azure Active Directory joined](user-driven-aad.md) +#### [Hybrid Azure Active Directory joined](user-driven-hybrid.md) ### [Self-deploying mode](self-deploying.md) ### [Enrollment status page](enrollment-status.md) ### [Windows Autopilot Reset](windows-autopilot-reset.md) From 78c4b52b311ce3dd29b27cac41136b0be08a928f Mon Sep 17 00:00:00 2001 From: Louie Mayor Date: Thu, 8 Nov 2018 14:41:34 +0000 Subject: [PATCH 163/201] Updated investigate-alerts-windows-defender-advanced-threat-protection.md --- ...e-alerts-windows-defender-advanced-threat-protection.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md index 87f2d65c02..31561fac5b 100644 --- a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md @@ -54,14 +54,11 @@ Some actor profiles include a link to download a more comprehensive threat intel The detailed alert profile helps you understand who the attackers are, who they target, what techniques, tools, and procedures (TTPs) they use, which geolocations they are active in, and finally, what recommended actions you may take. In many cases, you can download a more detailed Threat Intelligence report about this attacker or campaign for offline reading. ## Alert process tree -The **Alert process tree** takes alert triage and investigation to the next level, displaying the alert and related evidence, together with other events that occurred within the same execution context and time. This rich triage context of the alert and surrounding events is available on the alert page. +The **Alert process tree** takes alert triage and investigation to the next level, displaying the aggregated alert and surrounding evidence that occurred within the same execution context and time period. This rich triage and investigation context is available on the alert page. ![Image of the alert process tree](images/atp-alert-process-tree.png) -The **Alert process tree** expands to display the execution path of the alert, its evidence, and related events that occurred in the minutes - before and after - the alert. - -The alert and related events or evidence have circles with thunderbolt icons inside them. - +The **Alert process tree** expands to display the execution path of the alert and related evidence that occurred around the same period. Evidence items that are marked with a thunderbolt icon should be given priority during investigation. >[!NOTE] >The alert process tree might not be available in some alerts. From f1cfa3c9576b81975897b5d873db139330261b78 Mon Sep 17 00:00:00 2001 From: Louie Mayor Date: Thu, 8 Nov 2018 15:04:17 +0000 Subject: [PATCH 164/201] Updated investigate-alerts-windows-defender-advanced-threat-protection.md --- ...tigate-alerts-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md index 31561fac5b..55f697cb46 100644 --- a/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/investigate-alerts-windows-defender-advanced-threat-protection.md @@ -58,7 +58,7 @@ The **Alert process tree** takes alert triage and investigation to the next leve ![Image of the alert process tree](images/atp-alert-process-tree.png) -The **Alert process tree** expands to display the execution path of the alert and related evidence that occurred around the same period. Evidence items that are marked with a thunderbolt icon should be given priority during investigation. +The **Alert process tree** expands to display the execution path of the alert and related evidence that occurred around the same period. Items marked with a thunderbolt icon should be given priority during investigation. >[!NOTE] >The alert process tree might not be available in some alerts. From 9e947c97eaa6873f650df3461bfbd3e82f341a96 Mon Sep 17 00:00:00 2001 From: Beth Levin Date: Thu, 8 Nov 2018 09:20:10 -0800 Subject: [PATCH 165/201] updated date --- .../intelligence/top-scoring-industry-antivirus-tests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md index ed1a13c200..34297ac109 100644 --- a/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md +++ b/windows/security/threat-protection/intelligence/top-scoring-industry-antivirus-tests.md @@ -1,14 +1,14 @@ --- title: Top scoring in industry antivirus tests description: Windows Defender Antivirus consistently achieves high scores in independent tests. View the latest scores and analysis. -keywords: security, malware, av-comparatives, av-test, av, antivirus +keywords: security, malware, av-comparatives, av-test, av, antivirus, windows, defender, scores ms.prod: w10 ms.mktglfcycl: secure ms.sitesec: library ms.localizationpriority: medium ms.author: ellevin author: levinec -ms.date: 09/05/2018 +ms.date: 11/07/2018 --- # Top scoring in industry antivirus tests From b66d9b7d3c6c965fbb08fd611b84de112d455333 Mon Sep 17 00:00:00 2001 From: Daniel Niccoli Date: Thu, 8 Nov 2018 22:45:46 +0100 Subject: [PATCH 166/201] Update windows/application-management/apps-in-windows-10.md --- .../apps-in-windows-10.md | 115 +++++++++--------- 1 file changed, 60 insertions(+), 55 deletions(-) diff --git a/windows/application-management/apps-in-windows-10.md b/windows/application-management/apps-in-windows-10.md index 5ee9f992a3..c333ae5b64 100644 --- a/windows/application-management/apps-in-windows-10.md +++ b/windows/application-management/apps-in-windows-10.md @@ -18,8 +18,8 @@ The following types of apps run on Windows 10: - "Win32" apps - traditional Windows applications. Digging into the Windows apps, there are two categories: -- System apps - Apps that are installed in the c:\Windows\* directory. These apps are integral to the OS. -- Apps - All other apps, installed in c:\Program Files\WindowsApps. There are two classes of apps: +- System apps - Apps that are installed in the C:\Windows\* directory. These apps are integral to the OS. +- Apps - All other apps, installed in C:\Program Files\WindowsApps. There are two classes of apps: - Provisioned: Installed in user account the first time you sign in with a new user account. - Installed: Installed as part of the OS. @@ -38,57 +38,62 @@ Some of the apps show up in multiple tables - that's because their status change System apps are integral to the operating system. Here are the typical system apps in Windows 10 versions 1703, 1709, and 1803. -| Name | Full name |1703 | 1709 | 1803 |Uninstall through UI? | -|------------------|-------------------------------------------|:------:|:------:|:------:|-------------------------------------------------------| -| Cortana UI | CortanaListenUIApp | x | | |No | -| | Desktop Learning | x | | |No | -| | DesktopView | x | | |No | -| | EnvironmentsApp | x | | |No | -| Mixed Reality + | HoloCamera | x | | |No | -| Mixed Reality + | HoloItemPlayerApp | x | | |No | -| Mixed Reality + | HoloShell | x | | |No | -| | InputApp | | x | x |No | -| | Microsoft.AAD.Broker.Plugin | x | x | x |No | -| | Microsoft.AccountsControl | x | x | x |No | -| Hello setup UI | Microsoft.BioEnrollment | x | x | x |No | -| | Microsoft.CredDialogHost | x | x | x |No | -| | Microsoft.ECApp | | x | x |No | -| | Microsoft.LockApp | x | x | x |No | -| Microsoft Edge | Microsoft.Microsoft.Edge | x | x | x |No | -| | Microsoft.PPIProjection | x | x | x |No | -| | Microsoft.Windows. Apprep.ChxApp | x | x | x |No | -| | Microsoft.Windows. AssignedAccessLockApp | x | x | x |No | -| | Microsoft.Windows. CloudExperienceHost | x | x | x |No | -| | Microsoft.Windows. ContentDeliveryManager | x | x | x |No | -| Cortana | Microsoft.Windows.Cortana | x | x | x |No | -| | Microsoft.Windows. Holographic.FirstRun | x | x | x |No | -| | Microsoft.Windows. ModalSharePickerHost | x | | |No | -| | Microsoft.Windows. OOBENetworkCaptivePort | x | x | x |No | -| | Microsoft.Windows. OOBENetworkConnectionFlow | x | x | x |No | -| | Microsoft.Windows. ParentalControls | x | x | x |No | -| People Hub | Microsoft.Windows. PeopleExperienceHost | | x | x |No | -| | Microsoft.Windows. PinningConfirmationDialog | | x | x |No | -| | Microsoft.Windows. SecHealthUI | x | x | x |No | -| | Microsoft.Windows. SecondaryTileExperience | x | x | |No | -| | Microsoft.Windows. SecureAssessmentBrowser | x | x | x |No | -| Start | Microsoft.Windows. ShellExperienceHost | x | x | x |No | -| Windows Feedback | Microsoft.WindowsFeedback | * | * | |No | -| | Microsoft.XboxGameCallableUI | x | x | x |No | -| Contact Support* | Windows.ContactSupport | x | * | |Via Optional Features app | -| Settings | Windows.ImmersiveControlPanel | x | x | |No | -| Connect | Windows.MiracastView | x | | |No | -| Print 3D | Windows.Print3D | | x | |Yes | -| Print UI | Windows.PrintDialog | x | x | x |No | -| Purchase UI | Windows.PurchaseDialog | | | x |No | -| | Microsoft.AsyncTextService | | | x |No | -| | Microsoft.MicrosoftEdgeDevToolsClient | | | x |No | -| | Microsoft.Win32WebViewHost | | | x |No | -| | Microsoft.Windows.CapturePicker | | | x |No | -| | Windows.CBSPreview | | | x |No | -|File Picker | 1527c705-839a-4832-9118-54d4Bd6a0c89 | | | x |No | -|File Explorer | c5e2524a-ea46-4f67-841f-6a9465d9d515 | | | x |No | -|App Resolver | E2A4F912-2574-4A75-9BB0-0D023378592B | | | x |No | -|Add Suggested folder Dialog box| F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE|| | x |No | +``` +> Get-AppxPackage -PackageTypeFilter Main | ? { $_.SignatureKind -eq "System" } | Sort Name | Format-Table Name, InstallLocation +``` + +| Name | Package Name | 1703 | 1709 | 1803 | Uninstall through UI? | +|----------------------------------|---------------------------------------------|:-----:|:----:|:----:|-----------------------| +| File Picker | 1527c705-839a-4832-9118-54d4Bd6a0c89 | | | x | No | +| File Explorer | c5e2524a-ea46-4f67-841f-6a9465d9d515 | | | x | No | +| App Resolver UX | E2A4F912-2574-4A75-9BB0-0D023378592B | | | x | No | +| Add Suggested Folders To Library | F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE | | | x | No | +| | InputApp | | x | x | No | +| Cortana UI | CortanaListenUIApp | x | | | No | +| | Desktop Learning | x | | | No | +| | DesktopView | x | | | No | +| | EnvironmentsApp | x | | | No | +| Mixed Reality + | HoloCamera | x | | | No | +| Mixed Reality + | HoloItemPlayerApp | x | | | No | +| Mixed Reality + | HoloShell | x | | | No | +| | Microsoft.AAD.Broker.Plugin | x | x | x | No | +| | Microsoft.AccountsControl | x | x | x | No | +| | Microsoft.AsyncTextService | | | x | No | +| Hello setup UI | Microsoft.BioEnrollment | x | x | x | No | +| | Microsoft.CredDialogHost | x | x | x | No | +| | Microsoft.ECApp | | x | x | No | +| | Microsoft.LockApp | x | x | x | No | +| Microsoft Edge | Microsoft.MicrosoftEdge | x | x | x | No | +| | Microsoft.MicrosoftEdgeDevToolsClient | | | x | No | +| | Microsoft.PPIProjection | x | x | | No | +| | Microsoft.Win32WebViewHost | | | x | No | +| | Microsoft.Windows.Apprep.ChxApp | x | x | x | No | +| | Microsoft.Windows.AssignedAccessLockApp | x | x | x | No | +| | Microsoft.Windows.CapturePicker | | | x | No | +| | Microsoft.Windows.CloudExperienceHost | x | x | x | No | +| | Microsoft.Windows.ContentDeliveryManager | x | x | x | No | +| Cortana | Microsoft.Windows.Cortana | x | x | x | No | +| | Microsoft.Windows.Holographic.FirstRun | x | x | | No | +| | Microsoft.Windows.ModalSharePickerHost | x | | | No | +| | Microsoft.Windows.OOBENetworkCaptivePort | x | x | x | No | +| | Microsoft.Windows.OOBENetworkConnectionFlow | x | x | x | No | +| | Microsoft.Windows.ParentalControls | x | x | x | No | +| People Hub | Microsoft.Windows.PeopleExperienceHost | | x | x | No | +| | Microsoft.Windows.PinningConfirmationDialog | | x | x | No | +| | Microsoft.Windows.SecHealthUI | x | x | x | No | +| | Microsoft.Windows.SecondaryTileExperience | x | x | | No | +| | Microsoft.Windows.SecureAssessmentBrowser | x | x | x | No | +| Start | Microsoft.Windows.ShellExperienceHost | x | x | x | No | +| Windows Feedback | Microsoft.WindowsFeedback | * | * | | No | +| | Microsoft.XboxGameCallableUI | x | x | x | No | +| | Windows.CBSPreview | | | x | No | +| Contact Support* | Windows.ContactSupport | x | * | | Via Settings App | +| Settings | Windows.immersivecontrolpanel | x | x | x | No | +| Connect | Windows.MiracastView | x | | | No | +| Print 3D | Windows.Print3D | | x | | Yes | +| Print UI | Windows.PrintDialog | x | x | x | No | +| Purchase UI | Windows.PurchaseDialog | | | | No | + > [!NOTE] > - The Contact Support app changed to Get Help in version 1709. Get Help is a provisioned app (instead of system app like Contact Support). @@ -98,7 +103,7 @@ System apps are integral to the operating system. Here are the typical system ap Here are the typical installed Windows apps in Windows 10 versions 1703, 1709, and 1803. | Name | Full name | 1703 | 1709 | 1803 |Uninstall through UI? | -|--------------------|------------------------------------------|:----:|:----:|:----:|:----------------------:| +|--------------------|------------------------------------------|:----:|:----:|:----:|:---------------------:| | Remote Desktop | Microsoft.RemoteDesktop | x | x | | Yes | | PowerBI | Microsoft.Microsoft PowerBIforWindows | x | | | Yes | | Code Writer | ActiproSoftwareLLC.562882FEEB491 | x | x | x | Yes | @@ -152,7 +157,7 @@ Here are the provisioned Windows apps in Windows 10 versions 1703, 1709, 1803 an | Microsoft.MicrosoftStickyNotes | [Microsoft Sticky Notes](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe) | x | x | x | x | No | | Microsoft.MixedReality.Portal | [Mixed Reality Portal](ms-windows-store://pdp/?PFN=Microsoft.MixedReality.Portal_8wekyb3d8bbwe) | | | | x | No | | Microsoft.MSPaint | [Paint 3D](ms-windows-store://pdp/?PFN=Microsoft.MSPaint_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | | Microsoft.OneConnect | [Paid Wi-Fi & Cellular](ms-windows-store://pdp/?PFN=Microsoft.OneConnect_8wekyb3d8bbwe) | x | x | x | x | No | | Microsoft.People | [Microsoft People](ms-windows-store://pdp/?PFN=Microsoft.People_8wekyb3d8bbwe) | x | x | x | x | No | | Microsoft.Print3D | [Print 3D](ms-windows-store://pdp/?PFN=Microsoft.Print3D_8wekyb3d8bbwe) | | x | x | x | No | From 350b732b00d8b8758ad64f5d85b3694f4c8ed37a Mon Sep 17 00:00:00 2001 From: Daniel Niccoli Date: Thu, 8 Nov 2018 22:57:50 +0100 Subject: [PATCH 167/201] Update windows/application-management/apps-in-windows-10.md --- .../apps-in-windows-10.md | 128 +++++++++--------- 1 file changed, 63 insertions(+), 65 deletions(-) diff --git a/windows/application-management/apps-in-windows-10.md b/windows/application-management/apps-in-windows-10.md index c333ae5b64..02aa19ebf0 100644 --- a/windows/application-management/apps-in-windows-10.md +++ b/windows/application-management/apps-in-windows-10.md @@ -18,29 +18,85 @@ The following types of apps run on Windows 10: - "Win32" apps - traditional Windows applications. Digging into the Windows apps, there are two categories: -- System apps - Apps that are installed in the C:\Windows\* directory. These apps are integral to the OS. - Apps - All other apps, installed in C:\Program Files\WindowsApps. There are two classes of apps: - Provisioned: Installed in user account the first time you sign in with a new user account. - Installed: Installed as part of the OS. +- System apps - Apps that are installed in the C:\Windows\* directory. These apps are integral to the OS. The following tables list the system apps, installed Windows apps, and provisioned Windows apps in a standard Windows 10 Enterprise installation. (If you have a custom image, your specific apps might differ.) The tables list the app, the full name, show the app's status in Windows 10 version 1607, 1703, and 1709, and indicate whether an app can be uninstalled through the UI. Some of the apps show up in multiple tables - that's because their status changed between versions. Make sure to check the version column for the version you are currently running. + +## Provisioned Windows apps + +Here are the provisioned Windows apps in Windows 10 versions 1703, 1709, 1803 and 1809. + > [!TIP] -> Want to see a list of the apps installed on your specific image? You can run the following PowerShell cmdlet: -> ```powershell -> Get-AppxPackage | select Name,PackageFamilyName -> Get-AppxProvisionedPackage -Online | select DisplayName,PackageName +> You can list all provisioned Windows apps with this PowerShell command: > ``` +> Get-AppxProvisionedPackage -Online | Format-Table DisplayName, PackageName +> ``` + +| Package name | App name | 1703 | 1709 | 1803 | 1809 | Uninstall through UI? | +|----------------------------------------|--------------------------------------------------------------------------------------------------------------------|:----:|:----:|:----:|:----:|:---------------------:| +| Microsoft.3DBuilder | [3D Builder](ms-windows-store://pdp/?PFN=Microsoft.3DBuilder_8wekyb3d8bbwe) | x | | | | Yes | +| Microsoft.BingWeather | [MSN Weather](ms-windows-store://pdp/?PFN=Microsoft.BingWeather_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.DesktopAppInstaller | [App Installer](ms-windows-store://pdp/?PFN=Microsoft.DesktopAppInstaller_8wekyb3d8bbwe) | x | x | x | x | Via Settings App | +| Microsoft.GetHelp | [Get Help](ms-windows-store://pdp/?PFN=Microsoft.Gethelp_8wekyb3d8bbwe) | | x | x | x | No | +| Microsoft.Getstarted | [Microsoft Tips](ms-windows-store://pdp/?PFN=Microsoft.Getstarted_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.HEIFImageExtension | [HEIF Image Extensions](ms-windows-store://pdp/?PFN=Microsoft.HEIFImageExtension_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.Messaging | [Microsoft Messaging](ms-windows-store://pdp/?PFN=Microsoft.Messaging_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Microsoft3DViewer | [Mixed Reality Viewer](ms-windows-store://pdp/?PFN=Microsoft.Microsoft3DViewer_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.MicrosoftOfficeHub | [My Office](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftOfficeHub_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.MicrosoftSolitaireCollection | [Microsoft Solitaire Collection](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.MicrosoftStickyNotes | [Microsoft Sticky Notes](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.MixedReality.Portal | [Mixed Reality Portal](ms-windows-store://pdp/?PFN=Microsoft.MixedReality.Portal_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.MSPaint | [Paint 3D](ms-windows-store://pdp/?PFN=Microsoft.MSPaint_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | +| Microsoft.OneConnect | [Paid Wi-Fi & Cellular](ms-windows-store://pdp/?PFN=Microsoft.OneConnect_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.People | [Microsoft People](ms-windows-store://pdp/?PFN=Microsoft.People_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Print3D | [Print 3D](ms-windows-store://pdp/?PFN=Microsoft.Print3D_8wekyb3d8bbwe) | | x | x | x | No | +| Microsoft.SkreenSketch | [Snip & Sketch](ms-windows-store://pdp/?PFN=Microsoft.ScreenSketch_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.SkypeApp | [Skype](ms-windows-store://pdp/?PFN=Microsoft.SkypeApp_kzf8qxf38zg5c) | x | x | x | x | No | +| Microsoft.StorePurchaseApp | [Store Purchase App](ms-windows-store://pdp/?PFN=Microsoft.StorePurchaseApp_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.VP9VideoExtensions | | | | | x | No | +| Microsoft.Wallet | [Microsoft Pay](ms-windows-store://pdp/?PFN=Microsoft.Wallet_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WebMediaExtensions | [Web Media Extensions](ms-windows-store://pdp/?PFN=Microsoft.WebMediaExtensions_8wekyb3d8bbwe) | | | x | x | No | +| Microsoft.WebpImageExtension | [Webp Image Extension](ms-windows-store://pdp/?PFN=Microsoft.WebpImageExtension_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.Windows.Photos | [Microsoft Photos](ms-windows-store://pdp/?PFN=Microsoft.Windows.Photos_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsAlarms | [Windows Alarms & Clock](ms-windows-store://pdp/?PFN=Microsoft.WindowsAlarms_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsCalculator | [Windows Calculator](ms-windows-store://pdp/?PFN=Microsoft.WindowsCalculator_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsCamera | [Windows Camera](ms-windows-store://pdp/?PFN=Microsoft.WindowsCamera_8wekyb3d8bbwe) | x | x | x | x | No | +| microsoft.windowscommunicationsapps | [Mail and Calendar](ms-windows-store://pdp/?PFN=microsoft.windowscommunicationsapps_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsFeedbackHub | [Feedback Hub](ms-windows-store://pdp/?PFN=Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsMaps | [Windows Maps](ms-windows-store://pdp/?PFN=Microsoft.WindowsMaps_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsSoundRecorder | [Windows Voice Recorder](ms-windows-store://pdp/?PFN=Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.WindowsStore | [Microsoft Store](ms-windows-store://pdp/?PFN=Microsoft.WindowsStore_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.Xbox.TCUI | [Xbox TCUI](ms-windows-store://pdp/?PFN=Microsoft.Xbox.TCUI_8wekyb3d8bbwe) | | x | x | x | No | +| Microsoft.XboxApp | [Xbox](ms-windows-store://pdp/?PFN=Microsoft.XboxApp_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.XboxGameOverlay | [Xbox Game Bar](ms-windows-store://pdp/?PFN=Microsoft.XboxGameOverlay_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.XboxGamingOverlay | [Xbox Gaming Overlay](ms-windows-store://pdp/?PFN=Microsoft.XboxGamingOverlay_8wekyb3d8bbwe) | | | x | x | No | +| Microsoft.XboxIdentityProvider | [Xbox Identity Provider](ms-windows-store://pdp/?PFN=Microsoft.XboxIdentityProvider_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.XboxSpeechToTextOverlay | | x | x | x | x | No | +| Microsoft.YourPhone | [Your Phone](ms-windows-store://pdp/?PFN=Microsoft.YourPhone_8wekyb3d8bbwe) | | | | x | No | +| Microsoft.ZuneMusic | [Groove Music](ms-windows-store://pdp/?PFN=Microsoft.ZuneMusic_8wekyb3d8bbwe) | x | x | x | x | No | +| Microsoft.ZuneVideo | [Movies & TV](ms-windows-store://pdp/?PFN=Microsoft.ZuneVideo_8wekyb3d8bbwe) | x | x | x | x | No | + +--- +>[!NOTE] +>The Store app can't be removed. If you want to remove and reinstall the Store app, you can only bring Store back by either restoring your system from a backup or resetting your system. Instead of removing the Store app, you should use group policies to hide or disable it. +--- ## System apps System apps are integral to the operating system. Here are the typical system apps in Windows 10 versions 1703, 1709, and 1803. -``` +> [!TIP] +> You can list all system apps with this PowerShell command: +> ``` > Get-AppxPackage -PackageTypeFilter Main | ? { $_.SignatureKind -eq "System" } | Sort Name | Format-Table Name, InstallLocation -``` +> ``` | Name | Package Name | 1703 | 1709 | 1803 | Uninstall through UI? | |----------------------------------|---------------------------------------------|:-----:|:----:|:----:|-----------------------| @@ -132,62 +188,4 @@ Here are the typical installed Windows apps in Windows 10 versions 1703, 1709, a | | Microsoft.VCLibs.120.00.Universal | | x | | Yes | | | Microsoft.VCLibs.140.00.UWPDesktop | | | x | Yes | | | Microsoft.WinJS.2.0 | x | | | Yes | ---- - -## Provisioned Windows apps - -Here are the provisioned Windows apps in Windows 10 versions 1703, 1709, 1803 and 1809. - -``` -> Get-AppxProvisionedPackage -Online | Select-Object DisplayName, PackageName -``` - -| Package name | App name | 1703 | 1709 | 1803 | 1809 | Uninstall through UI? | -|----------------------------------------|--------------------------------------------------------------------------------------------------------------------|:----:|:----:|:----:|:----:|:---------------------:| -| Microsoft.3DBuilder | [3D Builder](ms-windows-store://pdp/?PFN=Microsoft.3DBuilder_8wekyb3d8bbwe) | x | | | | Yes | -| Microsoft.BingWeather | [MSN Weather](ms-windows-store://pdp/?PFN=Microsoft.BingWeather_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.DesktopAppInstaller | [App Installer](ms-windows-store://pdp/?PFN=Microsoft.DesktopAppInstaller_8wekyb3d8bbwe) | x | x | x | x | Via Settings App | -| Microsoft.GetHelp | [Get Help](ms-windows-store://pdp/?PFN=Microsoft.Gethelp_8wekyb3d8bbwe) | | x | x | x | No | -| Microsoft.Getstarted | [Microsoft Tips](ms-windows-store://pdp/?PFN=Microsoft.Getstarted_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.HEIFImageExtension | [HEIF Image Extensions](ms-windows-store://pdp/?PFN=Microsoft.HEIFImageExtension_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.Messaging | [Microsoft Messaging](ms-windows-store://pdp/?PFN=Microsoft.Messaging_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Microsoft3DViewer | [Mixed Reality Viewer](ms-windows-store://pdp/?PFN=Microsoft.Microsoft3DViewer_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.MicrosoftOfficeHub | [My Office](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftOfficeHub_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.MicrosoftSolitaireCollection | [Microsoft Solitaire Collection](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftSolitaireCollection_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.MicrosoftStickyNotes | [Microsoft Sticky Notes](ms-windows-store://pdp/?PFN=Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.MixedReality.Portal | [Mixed Reality Portal](ms-windows-store://pdp/?PFN=Microsoft.MixedReality.Portal_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.MSPaint | [Paint 3D](ms-windows-store://pdp/?PFN=Microsoft.MSPaint_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Office.OneNote | [OneNote](ms-windows-store://pdp/?PFN=Microsoft.Office.OneNote_8wekyb3d8bbwe) | x | x | x | x | Yes | -| Microsoft.OneConnect | [Paid Wi-Fi & Cellular](ms-windows-store://pdp/?PFN=Microsoft.OneConnect_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.People | [Microsoft People](ms-windows-store://pdp/?PFN=Microsoft.People_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Print3D | [Print 3D](ms-windows-store://pdp/?PFN=Microsoft.Print3D_8wekyb3d8bbwe) | | x | x | x | No | -| Microsoft.SkreenSketch | [Snip & Sketch](ms-windows-store://pdp/?PFN=Microsoft.ScreenSketch_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.SkypeApp | [Skype](ms-windows-store://pdp/?PFN=Microsoft.SkypeApp_kzf8qxf38zg5c) | x | x | x | x | No | -| Microsoft.StorePurchaseApp | [Store Purchase App](ms-windows-store://pdp/?PFN=Microsoft.StorePurchaseApp_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.VP9VideoExtensions | | | | | x | No | -| Microsoft.Wallet | [Microsoft Pay](ms-windows-store://pdp/?PFN=Microsoft.Wallet_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WebMediaExtensions | [Web Media Extensions](ms-windows-store://pdp/?PFN=Microsoft.WebMediaExtensions_8wekyb3d8bbwe) | | | x | x | No | -| Microsoft.WebpImageExtension | [Webp Image Extension](ms-windows-store://pdp/?PFN=Microsoft.WebpImageExtension_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.Windows.Photos | [Microsoft Photos](ms-windows-store://pdp/?PFN=Microsoft.Windows.Photos_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsAlarms | [Windows Alarms & Clock](ms-windows-store://pdp/?PFN=Microsoft.WindowsAlarms_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsCalculator | [Windows Calculator](ms-windows-store://pdp/?PFN=Microsoft.WindowsCalculator_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsCamera | [Windows Camera](ms-windows-store://pdp/?PFN=Microsoft.WindowsCamera_8wekyb3d8bbwe) | x | x | x | x | No | -| microsoft.windowscommunicationsapps | [Mail and Calendar](ms-windows-store://pdp/?PFN=microsoft.windowscommunicationsapps_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsFeedbackHub | [Feedback Hub](ms-windows-store://pdp/?PFN=Microsoft.WindowsFeedbackHub_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsMaps | [Windows Maps](ms-windows-store://pdp/?PFN=Microsoft.WindowsMaps_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsSoundRecorder | [Windows Voice Recorder](ms-windows-store://pdp/?PFN=Microsoft.WindowsSoundRecorder_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.WindowsStore | [Microsoft Store](ms-windows-store://pdp/?PFN=Microsoft.WindowsStore_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.Xbox.TCUI | [Xbox TCUI](ms-windows-store://pdp/?PFN=Microsoft.Xbox.TCUI_8wekyb3d8bbwe) | | x | x | x | No | -| Microsoft.XboxApp | [Xbox](ms-windows-store://pdp/?PFN=Microsoft.XboxApp_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.XboxGameOverlay | [Xbox Game Bar](ms-windows-store://pdp/?PFN=Microsoft.XboxGameOverlay_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.XboxGamingOverlay | [Xbox Gaming Overlay](ms-windows-store://pdp/?PFN=Microsoft.XboxGamingOverlay_8wekyb3d8bbwe) | | | x | x | No | -| Microsoft.XboxIdentityProvider | [Xbox Identity Provider](ms-windows-store://pdp/?PFN=Microsoft.XboxIdentityProvider_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.XboxSpeechToTextOverlay | | x | x | x | x | No | -| Microsoft.YourPhone | [Your Phone](ms-windows-store://pdp/?PFN=Microsoft.YourPhone_8wekyb3d8bbwe) | | | | x | No | -| Microsoft.ZuneMusic | [Groove Music](ms-windows-store://pdp/?PFN=Microsoft.ZuneMusic_8wekyb3d8bbwe) | x | x | x | x | No | -| Microsoft.ZuneVideo | [Movies & TV](ms-windows-store://pdp/?PFN=Microsoft.ZuneVideo_8wekyb3d8bbwe) | x | x | x | x | No | - ---- ->[!NOTE] ->The Store app can't be removed. If you want to remove and reinstall the Store app, you can only bring Store back by either restoring your system from a backup or resetting your system. Instead of removing the Store app, you should use group policies to hide or disable it. --- \ No newline at end of file From 90f10fedbe9bb132885d83e3b3ff03a048611fad Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Thu, 8 Nov 2018 14:44:44 -0800 Subject: [PATCH 168/201] add troubleshooting for pop-up blocker --- ...ot-siem-windows-defender-advanced-threat-protection.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md index ec2722306c..8c7c0f5e5f 100644 --- a/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/troubleshoot-siem-windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 02/13/2018 +ms.date: 11/08/2018 --- # Troubleshoot SIEM tool integration issues @@ -67,6 +67,12 @@ If you encounter an error when trying to get a refresh token when using the thre 6. Click **Save**. +## Error while enabling the SIEM connector application +If you encounter an error when trying to enable the SIEM connector application, check the pop-up blocker settings of your browser. It might be blocking the new window being opened when you enable the capability. + + + + >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-troubleshootsiem-belowfoldlink) ## Related topics From 7c414418c39e1307299925e5abcf88072890fb7e Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Fri, 9 Nov 2018 00:41:00 -0500 Subject: [PATCH 169/201] typo: Dyanamic -> Dynamic Also added code fence language --- windows/client-management/mdm/passportforwork-ddf.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/windows/client-management/mdm/passportforwork-ddf.md b/windows/client-management/mdm/passportforwork-ddf.md index 6f65055513..79bf2a8409 100644 --- a/windows/client-management/mdm/passportforwork-ddf.md +++ b/windows/client-management/mdm/passportforwork-ddf.md @@ -21,7 +21,7 @@ Looking for the DDF XML files? See [CSP DDF files download](configuration-servic The XML below is for Windows 10, version 1809. -``` syntax +```xml False - Enables/Disables Dyanamic Lock + Enables/Disables Dynamic Lock @@ -1304,4 +1304,4 @@ Note that enhanced anti-spoofing for Windows Hello face authentication is not re -``` \ No newline at end of file +``` From af31678826a3be5ef17f00ebdb6f341523236154 Mon Sep 17 00:00:00 2001 From: Justin Hall Date: Fri, 9 Nov 2018 09:30:21 -0800 Subject: [PATCH 170/201] edit --- .../protect-enterprise-data-using-wip.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md index ed41a8ef23..33ec5598fe 100644 --- a/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md +++ b/windows/security/information-protection/windows-information-protection/protect-enterprise-data-using-wip.md @@ -8,7 +8,7 @@ ms.mktglfcycl: explore ms.sitesec: library ms.pagetype: security ms.author: justinha -ms.date: 11/06/2018 +ms.date: 11/08/2018 ms.localizationpriority: medium --- @@ -26,7 +26,7 @@ Windows Information Protection (WIP), previously known as enterprise data protec ## Video: Protect enterprise data from being accidentally copied to the wrong place -> [!Video https://www.youtube.com/embed/1s09SrwxccM] +> [!Video https://www.microsoft.com/en-us/videoplayer/embed/RE2IGhh] ## Prerequisites You’ll need this software to run WIP in your enterprise: From 851ab5ff05ef995e86326fe51f1ab4b5724e0cd3 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 9 Nov 2018 10:34:43 -0800 Subject: [PATCH 171/201] fix link --- ...ing-reference-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md index dcda5f43d8..9366ed298f 100644 --- a/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/advanced-hunting-reference-windows-defender-advanced-threat-protection.md @@ -113,4 +113,4 @@ To effectively build queries that span multiple tables, you need to understand t ## Related topic - [Query data using Advanced hunting](advanced-hunting-windows-defender-advanced-threat-protection.md) -- [Advanced hunting query language best practices](/advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) \ No newline at end of file +- [Advanced hunting query language best practices](advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) \ No newline at end of file From d1b4f83c1b26cd5105e7812387884f1274146193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Fri, 9 Nov 2018 19:40:18 +0000 Subject: [PATCH 172/201] Merged PR 12726: Sediment updates --- ...ndows-diagnostic-events-and-fields-1703.md | 283 ++--------------- ...ndows-diagnostic-events-and-fields-1709.md | 186 ++--------- ...ndows-diagnostic-events-and-fields-1803.md | 298 ++++++++++++++++++ 3 files changed, 336 insertions(+), 431 deletions(-) diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md index ada643a31a..c0acd3cd73 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1703.md @@ -2791,7 +2791,7 @@ The following fields are available: ### Microsoft.Windows.Remediation.Applicable -This event indicates a remedial plug-in is applicable if/when such a plug-in is detected. This is used to ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -2814,7 +2814,7 @@ The following fields are available: - **HResult** The HRESULT for detection or perform action phases of the plugin. - **IsAppraiserLatestResult** The HRESULT from the appraiser task. - **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. -- **LastHresult** The HRESULT for detection or perform action phases of the plugin. +- **LastHresult** The HResult of the operation. - **LastRun** The date of the most recent SIH run. - **NextRun** Date of the next scheduled SIH run. - **PackageVersion** The version of the current remediation package. @@ -2875,7 +2875,7 @@ The following fields are available: ### Microsoft.Windows.Remediation.Completed -This event enables completion tracking of a process that remediates issues preventing security and quality updates. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -2964,123 +2964,9 @@ The following fields are available: - **WindowsSxsTempFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) Temp folder, measured in Megabytes. -### Microsoft.Windows.Remediation.DiskCleanUnExpectedErrorEvent - -This event indicates that an unexpected error occurred during an update and provides information to help address the issue. - -The following fields are available: - -- **CV** The Correlation vector. -- **ErrorMessage** A description of any errors encountered while the plug-in was running. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **Hresult** The result of the event execution. -- **PackageVersion** The version number of the current remediation package. -- **SessionGuid** GUID associated with a given execution of sediment pack. - - -### Microsoft.Windows.Remediation.Error - -This event indicates a Sediment Pack error (update stack failure) has been detected and provides information to help address the issue. - -The following fields are available: - -- **HResult** The result of the event execution. -- **Message** A message containing information about the error that occurred. -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.Remediation.FallbackError - -This event indicates an error when Self Update results in a Fallback and provides information to help address the issue. - -The following fields are available: - -- **s0** Indicates the Fallback error level. See [Microsoft.Windows.Remediation.wilResult](#microsoftwindowsremediationwilresult). -- **wilResult** The result of the Windows Installer Logging. See [wilResult](#wilresult). - - -### Microsoft.Windows.Remediation.RemediationNotifyUserFixIssuesInvokeUIEvent - -This event occurs when the Notify User task executes and provides information about the cause of the notification. - -The following fields are available: - -- **CV** The Correlation vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **PackageVersion** The version number of the current remediation package. -- **RemediationNotifyUserFixIssuesCallResult** The result of calling the USO (Update Session Orchestrator) sequence steps. -- **RemediationNotifyUserFixIssuesUsoDownloadCalledHr** The error code from the USO (Update Session Orchestrator) download call. -- **RemediationNotifyUserFixIssuesUsoInitializedHr** The error code from the USO (Update Session Orchestrator) initialize call. -- **RemediationNotifyUserFixIssuesUsoProxyBlanketHr** The error code from the USO (Update Session Orchestrator) proxy blanket call. -- **RemediationNotifyUserFixIssuesUsoSetSessionHr** The error code from the USO (Update Session Orchestrator) session call. - - -### Microsoft.Windows.Remediation.RemediationShellFailedAutomaticAppUpdateModifyEventId - -This event provides the modification of the date on which an Automatic App Update scheduled task failed and provides information about the failure. - -The following fields are available: - -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **hResult** The result of the event execution. -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.Remediation.RemediationShellUnexpectedExceptionId - -This event identifies the remediation plug-in that returned an unexpected exception and provides information about the exception. - -The following fields are available: - -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **PackageVersion** The version number of the current remediation package. -- **RemediationShellUnexpectedExceptionId** The ID of the remediation plug-in that caused the exception. - - -### Microsoft.Windows.Remediation.RemediationUHEnableServiceFailed - -This event tracks the health of key update (Remediation) services and whether they are enabled. - -The following fields are available: - -- **CV** The Correlation Vector. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **hResult** The result of the event execution. -- **PackageVersion** The version number of the current remediation package. -- **serviceName** The name associated with the operation. - - -### Microsoft.Windows.Remediation.RemediationUpgradeSucceededDataEventId - -This event returns information about the upgrade upon success to help ensure Windows is up to date. - -The following fields are available: - -- **AppraiserPlugin** TRUE / FALSE depending on whether the Appraiser plug-in task fix was successful. -- **ClearAUOptionsPlugin** TRUE / FALSE depending on whether the AU (Auto Updater) Options registry keys were successfully deleted. -- **CV** The Correlation Vector. -- **DatetimeSyncPlugin** TRUE / FALSE depending on whether the DateTimeSync plug-in ran successfully. -- **DiskCleanupPlugin** TRUE / FALSE depending on whether the DiskCleanup plug-in ran successfully. -- **GlobalEventCounter** The client-side counter that indicates ordering of events. -- **NoisyHammerPlugin** TRUE / FALSE depending on whether the NoisyHammer plug-in ran successfully. -- **PackageVersion** The version number of the current remediation package. -- **RebootRequiredPlugin** TRUE / FALSE depending on whether the Reboot plug-in ran successfully. -- **RemediationNotifyUserFixIssuesPlugin** TRUE / FALSE depending on whether the User Fix Issues plug-in ran successfully -- **RemediationPostUpgradeDiskSpace** The amount of disk space available after the upgrade. -- **RemediationPostUpgradeHibernationSize** The size of the Hibernation file after the upgrade. -- **ServiceHealthPlugin** A list of services updated by the plug-in. -- **SIHHealthPlugin** TRUE / FALSE depending on whether the SIH Health plug-in ran successfully. -- **StackDataResetPlugin** TRUE / FALSE depending on whether the update stack completed successfully. -- **TaskHealthPlugin** A list of tasks updated by the plug-in. -- **UpdateApplicabilityFixerPlugin** TRUE / FALSE depending on whether the update applicability fixer plug-in completed successfully. -- **WindowsUpdateEndpointPlugin** TRUE / FALSE depending on whether the Windows Update Endpoint was successful. - - ### Microsoft.Windows.Remediation.Started -This event reports whether a plug-in started, to help ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -3091,31 +2977,6 @@ The following fields are available: - **Result** This is the HRESULT for detection or perform action phases of the plugin. -### Microsoft.Windows.Remediation.wilResult - -This event provides Self Update information to help keep Windows up to date. - -The following fields are available: - -- **callContext** A list of diagnostic activities containing this error. -- **currentContextId** An identifier for the newest diagnostic activity containing this error. -- **currentContextMessage** A message associated with the most recent diagnostic activity containing this error (if any). -- **currentContextName** Name of the most recent diagnostic activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** The identifier assigned to this failure. -- **failureType** Indicates the type of failure observed (exception, returned, error, logged error, or fail fast). -- **fileName** The source code file name where the error occurred. -- **function** The name of the function where the error occurred. -- **hresult** The failure error code. -- **lineNumber** The Line Number within the source code file where the error occurred. -- **message** A message associated with the failure (if any). -- **module** The name of the binary module in which the error occurred. -- **originatingContextId** The identifier for the oldest diagnostic activity containing this error. -- **originatingContextMessage** A message associated with the oldest diagnostic activity containing this error (if any). -- **originatingContextName** The name of the oldest diagnostic activity containing this error. -- **threadId** The identifier of the thread the error occurred on. - - ## Sediment events ### Microsoft.Windows.Sediment.Info.AppraiserData @@ -3465,15 +3326,17 @@ The following fields are available: - **Time** The system time at which the event occurred. +## Sediment Launcher events + ### Microsoft.Windows.SedimentLauncher.Applicable -Indicates whether a given plugin is applicable. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Boolean true if detect condition is true and perform action will be run. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** True if self update enabled in Settings. - **IsSelfUpdateNeeded** True if self update needed by device. - **PackageVersion** Current package version of Remediation. @@ -3483,97 +3346,43 @@ The following fields are available: ### Microsoft.Windows.SedimentLauncher.Completed -Indicates whether a given plugin has completed its work. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **FailedReasons** Concatenated list of failure reasons. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. - **SedLauncherExecutionResult** HRESULT for one execution of the Sediment Launcher. -### Microsoft.Windows.SedimentLauncher.Error - -This event indicates an error occurred during the execution of the plug-in. The information provided helps ensure future upgrade/update attempts are more successful. - -The following fields are available: - -- **HResult** The result for the Detection or Perform Action phases of the plug-in. -- **Message** A message containing information about the error that occurred (if any). -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.SedimentLauncher.FallbackError - -This event indicates that an error occurred during execution of the plug-in fallback. - -The following fields are available: - -- **s0** Error occurred during execution of the plugin fallback. See [Microsoft.Windows.SedimentLauncher.wilResult](#microsoftwindowssedimentlauncherwilresult). - - -### Microsoft.Windows.SedimentLauncher.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Information message returned from a plugin containing only information internal to the plugins execution. -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentLauncher.Started -This event indicates that a given plug-in has started. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. -### Microsoft.Windows.SedimentLauncher.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - +## Sediment Service events ### Microsoft.Windows.SedimentService.Applicable -This event indicates whether a given plug-in is applicable. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Determine whether action needs to run based on device properties. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. - **IsSelfUpdateNeeded** Indicates if self update is needed. - **PackageVersion** Current package version of Remediation. @@ -3583,13 +3392,13 @@ The following fields are available: ### Microsoft.Windows.SedimentService.Completed -This event indicates whether a given plug-in has completed its work. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **FailedReasons** List of reasons when the plugin action failed. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. @@ -3603,40 +3412,9 @@ The following fields are available: - **SedimentServiceTotalIterations** Number of 5 second iterations service will wait before running again. -### Microsoft.Windows.SedimentService.Error - -This event indicates whether an error condition occurred in the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - -### Microsoft.Windows.SedimentService.FallbackError - -This event indicates whether an error occurred for a fallback in the plug-in. - -The following fields are available: - -- **s0** Event returned when an error occurs for a fallback in the plugin. See [Microsoft.Windows.SedimentService.wilResult](#microsoftwindowssedimentservicewilresult). - - -### Microsoft.Windows.SedimentService.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentService.Started -This event indicates a specified plug-in has started. This information helps ensure Windows is up to date. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: @@ -3647,31 +3425,6 @@ The following fields are available: - **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. -### Microsoft.Windows.SedimentService.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - - ## Setup events ### SetupPlatformTel.SetupPlatformTelActivityEvent diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md index e6b7d5cbc6..7ed5621811 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1709.md @@ -3004,7 +3004,7 @@ This event is triggered whenever the current app state is changed by: launch, sw ### Microsoft.Windows.Remediation.Applicable -This event indicates a remedial plug-in is applicable if/when such a plug-in is detected. This is used to ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -3022,7 +3022,7 @@ The following fields are available: - **EvalAndReportAppraiserBinariesFailed** Indicates the EvalAndReportAppraiserBinaries event failed. - **EvalAndReportAppraiserRegEntries** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. - **EvalAndReportAppraiserRegEntriesFailed** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. -- **GlobalEventCounter** Client side counter that indicates ordering of events sent by the remediation system. +- **GlobalEventCounter** Client side counter that indicates ordering of events. - **HResult** The HRESULT for detection or perform action phases of the plugin. - **IsAppraiserLatestResult** The HRESULT from the appraiser task. - **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. @@ -3085,29 +3085,9 @@ The following fields are available: - **TimeServiceSyncType** Type of sync behavior for Date & Time service on device. -### Microsoft.Windows.Remediation.ChangePowerProfileDetection - -Indicates whether the remediation system can put in a request to defer a system-initiated sleep to enable installation of security or quality updates. - -The following fields are available: - -- **ActionName** A descriptive name for the plugin action -- **CurrentPowerPlanGUID** The ID of the current power plan configured on the device -- **CV** Correlation vector -- **GlobalEventCounter** Counter that indicates the ordering of events on the device -- **PackageVersion** Current package version of remediation service -- **RemediationBatteryPowerBatteryLevel** Integer between 0 and 100 indicating % battery power remaining (if not on battery, expect 0) -- **RemediationFUInProcess** Result that shows whether the device is currently installing a feature update -- **RemediationFURebootRequred** Indicates that a feature update reboot required was detected so the plugin will exit. -- **RemediationScanInProcess** Result that shows whether the device is currently scanning for updates -- **RemediationTargetMachine** Result that shows whether this device is a candidate for remediation(s) that will fix update issues -- **SetupMutexAvailable** Result that shows whether setup mutex is available or not -- **SysPowerStatusAC** Result that shows whether system is on AC power or not - - ### Microsoft.Windows.Remediation.Completed -This event enables completion tracking of a process that remediates issues preventing security and quality updates. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: @@ -3129,7 +3109,7 @@ The following fields are available: - **DiskMbFreeAfterCleanup** The amount of free hard disk space after cleanup, measured in Megabytes. - **DiskMbFreeBeforeCleanup** The amount of free hard disk space before cleanup, measured in Megabytes. - **ForcedAppraiserTaskTriggered** TRUE if Appraiser task ran from the plug-in. -- **GlobalEventCounter** Client-side counter that indicates ordering of events sent by the active user. +- **GlobalEventCounter** Client-side counter that indicates ordering of events. - **HandlerCleanupFreeDiskInMegabytes** The amount of hard disk space cleaned by the storage sense handlers, measured in Megabytes. - **hasRolledBack** Indicates whether the client machine has rolled back. - **hasUninstalled** Indicates whether the client machine has uninstalled a later version of the OS. @@ -3222,30 +3202,14 @@ The following fields are available: - **windowsUpgradeRecoveredFromRs4** Event to report the value of the Windows Upgrade Recovered key. -### Microsoft.Windows.Remediation.RemediationShellMainExeEventId - -Enables tracking of completion of process that remediates issues preventing security and quality updates. - -The following fields are available: - -- **CV** Client side counter which indicates ordering of events sent by the remediation system. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by the remediation system. -- **PackageVersion** Current package version of Remediation. -- **RemediationShellCanAcquireSedimentMutex** True if the remediation was able to acquire the sediment mutex. False if it is already running. -- **RemediationShellExecuteShellResult** Indicates if the remediation system completed without errors. -- **RemediationShellFoundDriverDll** Result whether the remediation system found its component files to run properly. -- **RemediationShellLoadedShellDriver** Result whether the remediation system loaded its component files to run properly. -- **RemediationShellLoadedShellFunction** Result whether the remediation system loaded the functions from its component files to run properly. - - ### Microsoft.Windows.Remediation.Started -This event reports whether a plug-in started, to help ensure Windows is up to date. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. @@ -3315,15 +3279,17 @@ The following fields are available: - **Time** System timestamp the event was fired +## Sediment Launcher events + ### Microsoft.Windows.SedimentLauncher.Applicable -Indicates whether a given plugin is applicable. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Boolean true if detect condition is true and perform action will be run. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** True if self update enabled in Settings. - **IsSelfUpdateNeeded** True if self update needed by device. - **PackageVersion** Current package version of Remediation. @@ -3333,98 +3299,43 @@ The following fields are available: ### Microsoft.Windows.SedimentLauncher.Completed -Indicates whether a given plugin has completed its work. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. The following fields are available: - **CV** Correlation vector. - **FailedReasons** Concatenated list of failure reasons. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. - **SedLauncherExecutionResult** HRESULT for one execution of the Sediment Launcher. -### Microsoft.Windows.SedimentLauncher.Error - -Error occurred during execution of the plugin. - -The following fields are available: - -- **HResult** The result for the Detection or Perform Action phases of the plug-in. -- **Message** A message containing information about the error that occurred (if any). -- **PackageVersion** The version number of the current remediation package. - - -### Microsoft.Windows.SedimentLauncher.FallbackError - -This event indicates that an error occurred during execution of the plug-in fallback. - -The following fields are available: - -- **s0** Error occurred during execution of the plugin fallback. See [Microsoft.Windows.SedimentLauncher.wilResult](#microsoftwindowssedimentlauncherwilresult). -- **wilResult** Result from executing wil based function. See [wilResult](#wilresult). - - -### Microsoft.Windows.SedimentLauncher.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Information message returned from a plugin containing only information internal to the plugins execution. -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentLauncher.Started -This event indicates that a given plug-in has started. +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. -### Microsoft.Windows.SedimentLauncher.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - +## Sediment Service events ### Microsoft.Windows.SedimentService.Applicable -This event indicates whether a given plug-in is applicable. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **DetectedCondition** Determine whether action needs to run based on device properties. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **IsSelfUpdateEnabledInOneSettings** Indicates if self update is enabled in One Settings. - **IsSelfUpdateNeeded** Indicates if self update is needed. - **PackageVersion** Current package version of Remediation. @@ -3434,13 +3345,13 @@ The following fields are available: ### Microsoft.Windows.SedimentService.Completed -This event indicates whether a given plug-in has completed its work. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: - **CV** Correlation vector. - **FailedReasons** List of reasons when the plugin action failed. -- **GlobalEventCounter** Client side counter which indicates ordering of events sent by this user. +- **GlobalEventCounter** Client side counter which indicates ordering of events. - **PackageVersion** Current package version of Remediation. - **PluginName** Name of the plugin specified for each generic plugin event. - **Result** This is the HRESULT for detection or perform action phases of the plugin. @@ -3454,41 +3365,9 @@ The following fields are available: - **SedimentServiceTotalIterations** Number of 5 second iterations service will wait before running again. -### Microsoft.Windows.SedimentService.Error - -This event indicates whether an error condition occurred in the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - -### Microsoft.Windows.SedimentService.FallbackError - -This event indicates whether an error occurred for a fallback in the plug-in. - -The following fields are available: - -- **s0** Event returned when an error occurs for a fallback in the plugin. See [Microsoft.Windows.SedimentService.wilResult](#microsoftwindowssedimentservicewilresult). -- **wilResult** Result for wil based function. See [wilResult](#wilresult). - - -### Microsoft.Windows.SedimentService.Information - -This event provides general information returned from the plug-in. - -The following fields are available: - -- **HResult** This is the HRESULT for detection or perform action phases of the plugin. -- **Message** Custom message associated with the failure (if any). -- **PackageVersion** Current package version of Remediation. - - ### Microsoft.Windows.SedimentService.Started -This event indicates a specified plug-in has started. This information helps ensure Windows is up to date. +This event sends simple device connectivity and configuration data about a service on the system that helps keep Windows up to date. The following fields are available: @@ -3499,31 +3378,6 @@ The following fields are available: - **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. -### Microsoft.Windows.SedimentService.wilResult - -This event provides the result from the Windows internal library. - -The following fields are available: - -- **callContext** List of telemetry activities containing this error. -- **currentContextId** Identifier for the newest telemetry activity containing this error. -- **currentContextMessage** Custom message associated with the newest telemetry activity containing this error (if any). -- **currentContextName** Name of the newest telemetry activity containing this error. -- **failureCount** Number of failures seen within the binary where the error occurred. -- **failureId** Identifier assigned to this failure. -- **failureType** Indicates what type of failure was observed (exception, returned error, logged error or fail fast). -- **fileName** Source code file name where the error occurred. -- **function** Name of the function where the error occurred. -- **hresult** Failure error code. -- **lineNumber** Line number within the source code file where the error occurred. -- **message** Custom message associated with the failure (if any). -- **module** Name of the binary where the error occurred. -- **originatingContextId** Identifier for the oldest telemetry activity containing this error. -- **originatingContextMessage** Custom message associated with the oldest telemetry activity containing this error (if any). -- **originatingContextName** Name of the oldest telemetry activity containing this error. -- **threadId** Identifier of the thread the error occurred on. - - ## Setup events ### SetupPlatformTel.SetupPlatformTelActivityEvent diff --git a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md index 945ae68322..1a5a1aa9c7 100644 --- a/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md +++ b/windows/privacy/basic-level-windows-diagnostic-events-and-fields-1803.md @@ -4208,6 +4208,222 @@ The following fields are available: - **userRegionCode** The current user's region setting +## Remediation events + +### Microsoft.Windows.Remediation.Applicable + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. + +The following fields are available: + +- **ActionName** The name of the action to be taken by the plug-in. +- **AppraiserBinariesValidResult** Indicates whether plug-in was appraised as valid. +- **AppraiserDetectCondition** Indicates whether the plug-in passed the appraiser's check. +- **AppraiserRegistryValidResult** Indicates whether the registry entry checks out as valid. +- **AppraiserTaskDisabled** Indicates the appraiser task is disabled. +- **AppraiserTaskValidFailed** Indicates the Appraiser task did not function and requires intervention. +- **CV** Correlation vector +- **DateTimeDifference** The difference between local and reference clock times. +- **DateTimeSyncEnabled** Indicates whether the datetime sync plug-in is enabled. +- **DaysSinceLastSIH** The number of days since the most recent SIH executed. +- **DaysToNextSIH** The number of days until the next scheduled SIH execution. +- **DetectedCondition** Indicates whether detect condition is true and the perform action will be run. +- **EvalAndReportAppraiserBinariesFailed** Indicates the EvalAndReportAppraiserBinaries event failed. +- **EvalAndReportAppraiserRegEntries** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **EvalAndReportAppraiserRegEntriesFailed** Indicates the EvalAndReportAppraiserRegEntriesFailed event failed. +- **GlobalEventCounter** Client side counter that indicates ordering of events. +- **HResult** The HRESULT for detection or perform action phases of the plugin. +- **IsAppraiserLatestResult** The HRESULT from the appraiser task. +- **IsConfigurationCorrected** Indicates whether the configuration of SIH task was successfully corrected. +- **LastHresult** The HRESULT for detection or perform action phases of the plugin. +- **LastRun** The date of the most recent SIH run. +- **NextRun** Date of the next scheduled SIH run. +- **PackageVersion** The version of the current remediation package. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Reload** True if SIH reload is required. +- **RemediationNoisyHammerAcLineStatus** Event that indicates the AC Line Status of the machine. +- **RemediationNoisyHammerAutoStartCount** The number of times hammer auto-started. +- **RemediationNoisyHammerCalendarTaskEnabled** Event that indicates Update Assistant Calendar Task is enabled. +- **RemediationNoisyHammerCalendarTaskExists** Event that indicates an Update Assistant Calendar Task exists. +- **RemediationNoisyHammerCalendarTaskTriggerEnabledCount** Event that indicates calendar triggers are enabled in the task. +- **RemediationNoisyHammerDaysSinceLastTaskRunTime** The number of days since the most recent hammer task ran. +- **RemediationNoisyHammerGetCurrentSize** Size in MB of the $GetCurrent folder. +- **RemediationNoisyHammerIsInstalled** TRUE if the noisy hammer is installed. +- **RemediationNoisyHammerLastTaskRunResult** The result of the last hammer task run. +- **RemediationNoisyHammerMeteredNetwork** TRUE if the machine is on a metered network. +- **RemediationNoisyHammerTaskEnabled** Indicates whether the Update Assistant Task (Noisy Hammer) is enabled. +- **RemediationNoisyHammerTaskExists** Indicates whether the Update Assistant Task (Noisy Hammer) exists. +- **RemediationNoisyHammerTaskTriggerEnabledCount** Indicates whether counting is enabled for the Update Assistant (Noisy Hammer) task trigger. +- **RemediationNoisyHammerUAExitCode** The exit code of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUAExitState** The code for the exit state of the Update Assistant (Noisy Hammer) task. +- **RemediationNoisyHammerUserLoggedIn** TRUE if there is a user logged in. +- **RemediationNoisyHammerUserLoggedInAdmin** TRUE if there is the user currently logged in is an Admin. +- **RemediationShellDeviceManaged** TRUE if the device is WSUS managed or Windows Updated disabled. +- **RemediationShellDeviceNewOS** TRUE if the device has a recently installed OS. +- **RemediationShellDeviceSccm** TRUE if the device is managed by SCCM (Microsoft System Center Configuration Manager). +- **RemediationShellDeviceZeroExhaust** TRUE if the device has opted out of Windows Updates completely. +- **RemediationTargetMachine** Indicates whether the device is a target of the specified fix. +- **RemediationTaskHealthAutochkProxy** True/False based on the health of the AutochkProxy task. +- **RemediationTaskHealthChkdskProactiveScan** True/False based on the health of the Check Disk task. +- **RemediationTaskHealthDiskCleanup_SilentCleanup** True/False based on the health of the Disk Cleanup task. +- **RemediationTaskHealthMaintenance_WinSAT** True/False based on the health of the Health Maintenance task. +- **RemediationTaskHealthServicing_ComponentCleanupTask** True/False based on the health of the Health Servicing Component task. +- **RemediationTaskHealthUSO_ScheduleScanTask** True/False based on the health of the USO (Update Session Orchestrator) Schedule task. +- **RemediationTaskHealthWindowsUpdate_ScheduledStartTask** True/False based on the health of the Windows Update Scheduled Start task. +- **RemediationTaskHealthWindowsUpdate_SihbootTask** True/False based on the health of the Sihboot task. +- **RemediationUHServiceBitsServiceEnabled** Indicates whether BITS service is enabled. +- **RemediationUHServiceDeviceInstallEnabled** Indicates whether Device Install service is enabled. +- **RemediationUHServiceDoSvcServiceEnabled** Indicates whether DO service is enabled. +- **RemediationUHServiceDsmsvcEnabled** Indicates whether DSMSVC service is enabled. +- **RemediationUHServiceLicensemanagerEnabled** Indicates whether License Manager service is enabled. +- **RemediationUHServiceMpssvcEnabled** Indicates whether MPSSVC service is enabled. +- **RemediationUHServiceTokenBrokerEnabled** Indicates whether Token Broker service is enabled. +- **RemediationUHServiceTrustedInstallerServiceEnabled** Indicates whether Trusted Installer service is enabled. +- **RemediationUHServiceUsoServiceEnabled** Indicates whether USO (Update Session Orchestrator) service is enabled. +- **RemediationUHServicew32timeServiceEnabled** Indicates whether W32 Time service is enabled. +- **RemediationUHServiceWecsvcEnabled** Indicates whether WECSVC service is enabled. +- **RemediationUHServiceWinmgmtEnabled** Indicates whether WMI service is enabled. +- **RemediationUHServiceWpnServiceEnabled** Indicates whether WPN service is enabled. +- **RemediationUHServiceWuauservServiceEnabled** Indicates whether WUAUSERV service is enabled. +- **Result** This is the HRESULT for Detection or Perform Action phases of the plugin. +- **RunAppraiserFailed** Indicates RunAppraiser failed to run correctly. +- **RunTask** TRUE if SIH task should be run by the plug-in. +- **TimeServiceNTPServer** The URL for the NTP time server used by device. +- **TimeServiceStartType** The startup type for the NTP time service. +- **TimeServiceSyncDomainJoined** True if device domain joined and hence uses DC for clock. +- **TimeServiceSyncType** Type of sync behavior for Date & Time service on device. + + +### Microsoft.Windows.Remediation.Completed + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep the Windows Update stack healthy. + +The following fields are available: + +- **ActionName** Name of the action to be completed by the plug-in. +- **AppraiserTaskCreationFailed** TRUE if the appraiser task creation failed to complete successfully. +- **AppraiserTaskDeleteFailed** TRUE if deletion of appraiser task failed to complete successfully. +- **AppraiserTaskExistFailed** TRUE if detection of the appraiser task failed to complete successfully. +- **AppraiserTaskLoadXmlFailed** TRUE if the Appraiser XML Loader failed to complete successfully. +- **AppraiserTaskMissing** TRUE if the Appraiser task is missing. +- **AppraiserTaskTimeTriggerUpdateFailedId** TRUE if the Appraiser Task Time Trigger failed to update successfully. +- **AppraiserTaskValidateTaskXmlFailed** TRUE if the Appraiser Task XML failed to complete successfully. +- **branchReadinessLevel** Branch readiness level policy. +- **cloudControlState** Value indicating whether the shell is enabled on the cloud control settings. +- **CrossedDiskSpaceThreshold** Indicates if cleanup resulted in hard drive usage threshold required for feature update to be exceeded. +- **CV** The Correlation Vector. +- **DateTimeDifference** The difference between the local and reference clocks. +- **DaysSinceOsInstallation** The number of days since the installation of the Operating System. +- **DiskMbCleaned** The amount of space cleaned on the hard disk, measured in Megabytes. +- **DiskMbFreeAfterCleanup** The amount of free hard disk space after cleanup, measured in Megabytes. +- **DiskMbFreeBeforeCleanup** The amount of free hard disk space before cleanup, measured in Megabytes. +- **ForcedAppraiserTaskTriggered** TRUE if Appraiser task ran from the plug-in. +- **GlobalEventCounter** Client-side counter that indicates ordering of events. +- **HandlerCleanupFreeDiskInMegabytes** The amount of hard disk space cleaned by the storage sense handlers, measured in Megabytes. +- **hasRolledBack** Indicates whether the client machine has rolled back. +- **hasUninstalled** Indicates whether the client machine has uninstalled a later version of the OS. +- **hResult** The result of the event execution. +- **HResult** The result of the event execution. +- **installDate** The value of installDate registry key. Indicates the install date. +- **isNetworkMetered** Indicates whether the client machine has uninstalled a later version of the OS. +- **LatestState** The final state of the plug-in component. +- **MicrosoftCompatibilityAppraiser** The name of the component targeted by the Appraiser plug-in. +- **PackageVersion** The package version for the current Remediation. +- **PageFileCount** The number of Windows Page files. +- **PageFileCurrentSize** The size of the Windows Page file, measured in Megabytes. +- **PageFileLocation** The storage location (directory path) of the Windows Page file. +- **PageFilePeakSize** The maximum amount of hard disk space used by the Windows Page file, measured in Megabytes. +- **PluginName** The name of the plug-in specified for each generic plug-in event. +- **RanCleanup** TRUE if the plug-in ran disk cleanup. +- **RemediationBatteryPowerBatteryLevel** Indicates the battery level at which it is acceptable to continue operation. +- **RemediationBatteryPowerExitDueToLowBattery** True when we exit due to low battery power. +- **RemediationBatteryPowerOnBattery** True if we allow execution on battery. +- **RemediationConfigurationTroubleshooterExecuted** True/False based on whether the Remediation Configuration Troubleshooter executed successfully. +- **RemediationConfigurationTroubleshooterIpconfigFix** TRUE if IPConfig Fix completed successfully. +- **RemediationConfigurationTroubleshooterNetShFix** TRUE if network card cache reset ran successfully. +- **RemediationDiskCleanSizeBtWindowsFolderInMegabytes** The size of the Windows BT folder (used to store Windows upgrade files), measured in Megabytes. +- **RemediationDiskCleanupBTFolderEsdSizeInMB** The size of the Windows BT folder (used to store Windows upgrade files) ESD (Electronic Software Delivery), measured in Megabytes. +- **RemediationDiskCleanupGetCurrentEsdSizeInMB** The size of any existing ESD (Electronic Software Delivery) folder, measured in Megabytes. +- **RemediationDiskCleanupSearchFileSizeInMegabytes** The size of the Cleanup Search index file, measured in Megabytes. +- **RemediationDiskCleanupUpdateAssistantSizeInMB** The size of the Update Assistant folder, measured in Megabytes. +- **RemediationDoorstopChangeSucceeded** TRUE if Doorstop registry key was successfully modified. +- **RemediationDoorstopExists** TRUE if there is a One Settings Doorstop value. +- **RemediationDoorstopRegkeyError** TRUE if an error occurred accessing the Doorstop registry key. +- **RemediationDRFKeyDeleteSucceeded** TRUE if the RecoveredFrom (Doorstop) registry key was successfully deleted. +- **RemediationDUABuildNumber** The build number of the DUA. +- **RemediationDUAKeyDeleteSucceeded** TRUE if the UninstallActive registry key was successfully deleted. +- **RemediationDuplicateTokenSucceeded** TRUE if the user token was successfully duplicated. +- **remediationExecution** Remediation shell is in "applying remediation" state. +- **RemediationHibernationMigrated** TRUE if hibernation was migrated. +- **RemediationHibernationMigrationSucceeded** TRUE if hibernation migration succeeded. +- **RemediationImpersonateUserSucceeded** TRUE if the user was successfully impersonated. +- **RemediationNoisyHammerTaskKickOffIsSuccess** TRUE if the NoisyHammer task started successfully. +- **RemediationQueryTokenSucceeded** TRUE if the user token was successfully queried. +- **RemediationRanHibernation** TRUE if the system entered Hibernation. +- **RemediationRevertToSystemSucceeded** TRUE if reversion to the system context succeeded. +- **RemediationShellHasUpgraded** TRUE if the device upgraded. +- **RemediationShellMinimumTimeBetweenShellRuns** Indicates the time between shell runs exceeded the minimum required to execute plugins. +- **RemediationShellRunFromService** TRUE if the shell driver was run from the service. +- **RemediationShellSessionIdentifier** Unique identifier tracking a shell session. +- **RemediationShellSessionTimeInSeconds** Indicates the time the shell session took in seconds. +- **RemediationShellTaskDeleted** Indicates that the shell task has been deleted so no additional sediment pack runs occur for this installation. +- **RemediationUpdateServiceHealthRemediationResult** The result of the Update Service Health plug-in. +- **RemediationUpdateTaskHealthRemediationResult** The result of the Update Task Health plug-in. +- **RemediationUpdateTaskHealthTaskList** A list of tasks fixed by the Update Task Health plug-in. +- **RemediationWindowsLogSpaceFound** The size of the Windows log files found, measured in Megabytes. +- **RemediationWindowsLogSpaceFreed** The amount of disk space freed by deleting the Windows log files, measured in Megabytes. +- **RemediationWindowsSecondaryDriveFreeSpace** The amount of free space on the secondary drive, measured in Megabytes. +- **RemediationWindowsSecondaryDriveLetter** The letter designation of the first secondary drive with a total capacity of 10GB or more. +- **RemediationWindowsSecondaryDriveTotalSpace** The total storage capacity of the secondary drive, measured in Megabytes. +- **RemediationWindowsTotalSystemDiskSize** The total storage capacity of the System Disk Drive, measured in Megabytes. +- **Result** The HRESULT for Detection or Perform Action phases of the plug-in. +- **RunResult** The HRESULT for Detection or Perform Action phases of the plug-in. +- **ServiceHealthPlugin** The nae of the Service Health plug-in. +- **StartComponentCleanupTask** TRUE if the Component Cleanup task started successfully. +- **systemDriveFreeDiskSpace** Indicates the free disk space on system drive in MBs. +- **systemUptimeInHours** Indicates the amount of time the system in hours has been on since the last boot. +- **TotalSizeofOrphanedInstallerFilesInMegabytes** The size of any orphaned Windows Installer files, measured in Megabytes. +- **TotalSizeofStoreCacheAfterCleanupInMegabytes** The size of the Windows Store cache after cleanup, measured in Megabytes. +- **TotalSizeofStoreCacheBeforeCleanupInMegabytes** The size of the Windows Store cache (prior to cleanup), measured in Megabytes. +- **uninstallActive** TRUE if previous uninstall has occurred for current OS +- **usoScanDaysSinceLastScan** The number of days since the last USO (Update Session Orchestrator) scan. +- **usoScanInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsAllowAutoUpdateKeyPresent** TRUE if the AllowAutoUpdate registry key is set. +- **usoScanIsAllowAutoUpdateProviderSetKeyPresent** TRUE if AllowAutoUpdateProviderSet registry key is set. +- **usoScanIsAuOptionsPresent** TRUE if Auto Update Options registry key is set. +- **usoScanIsFeatureUpdateInProgress** TRUE if a USO (Update Session Orchestrator) scan is in progress, to prevent multiple simultaneous scans. +- **usoScanIsNetworkMetered** TRUE if the device is currently connected to a metered network. +- **usoScanIsNoAutoUpdateKeyPresent** TRUE if no Auto Update registry key is set/present. +- **usoScanIsUserLoggedOn** TRUE if the user is logged on. +- **usoScanPastThreshold** TRUE if the most recent USO (Update Session Orchestrator) scan is past the threshold (late). +- **usoScanType** The type of USO (Update Session Orchestrator) scan (Interactive or Background). +- **windows10UpgraderBlockWuUpdates** Event to report the value of Windows 10 Upgrader BlockWuUpdates Key. +- **windowsEditionId** Event to report the value of Windows Edition ID. +- **WindowsHyberFilSysSizeInMegabytes** The size of the Windows Hibernation file, measured in Megabytes. +- **WindowsInstallerFolderSizeInMegabytes** The size of the Windows Installer folder, measured in Megabytes. +- **WindowsOldFolderSizeInMegabytes** The size of the Windows.OLD folder, measured in Megabytes. +- **WindowsOldSpaceCleanedInMB** The amount of disk space freed by removing the Windows.OLD folder, measured in Megabytes. +- **WindowsPageFileSysSizeInMegabytes** The size of the Windows Page file, measured in Megabytes. +- **WindowsSoftwareDistributionFolderSizeInMegabytes** The size of the SoftwareDistribution folder, measured in Megabytes. +- **WindowsSwapFileSysSizeInMegabytes** The size of the Windows Swap file, measured in Megabytes. +- **WindowsSxsFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) folder, measured in Megabytes. +- **WindowsSxsTempFolderSizeInMegabytes** The size of the WinSxS (Windows Side-by-Side) Temp folder, measured in Megabytes. +- **windowsUpgradeRecoveredFromRs4** Event to report the value of the Windows Upgrade Recovered key. + + +### Microsoft.Windows.Remediation.Started + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + ## Sediment events ### Microsoft.Windows.Sediment.Info.DetailedState @@ -4272,6 +4488,88 @@ The following fields are available: - **Time** System timestamp when the event was started. +## Sediment Service events + +### Microsoft.Windows.SedimentService.Applicable + +This event sends simple device connectivity and configuration data about a service installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Completed + +This event sends simple device connectivity and configuration data about a service installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentService.Started + +This event sends simple device connectivity and configuration data about a service installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +## Sediment Launcher events + +### Microsoft.Windows.SedimentLauncher.Applicable + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Completed + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + +### Microsoft.Windows.SedimentLauncher.Started + +This event sends simple device connectivity and configuration data about an application installed on the system that helps keep Windows up to date. + +The following fields are available: + +- **CV** Correlation vector. +- **GlobalEventCounter** Client side counter which indicates ordering of events within Remediation application. +- **PackageVersion** Current package version of Remediation application. +- **PluginName** Name of the plugin specified for each generic plugin event. +- **Result** This is the HRESULT for detection or perform action phases of the plugin. + + ## Setup events ### SetupPlatformTel.SetupPlatformTelActivityEvent From e5308a70cf1f24846d5d2100682168f870f8afdd Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 9 Nov 2018 12:58:48 -0800 Subject: [PATCH 173/201] update azure image and steps --- ...dows-defender-advanced-threat-protection.md | 7 ++++--- .../images/atp-azure-assign-role.png | Bin 0 -> 105224 bytes 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/atp-azure-assign-role.png diff --git a/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md index 11611c7741..f5f0d320e5 100644 --- a/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/basic-permissions-windows-defender-advanced-threat-protection.md @@ -11,7 +11,7 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 09/13/2018 +ms.date: 11/09/2018 --- # Use basic permissions to access the portal @@ -79,9 +79,10 @@ For more information see, [Manage Azure AD group and role membership](https://te 6. Select **Manage** > **Directory role**. -7. Under **Directory role**, select **Limited administrator**, then **Security Reader** or **Security Administrator**. +7. Select **Add role** and choose the role you'd like to assign, then click **Select**. - ![Image of Microsoft Azure portal](images/atp-azure-ui-user-access.png) + + ![Image of Microsoft Azure portal](images/atp-azure-assign-role.png) ## Related topic - [Manage portal access using RBAC](rbac-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/images/atp-azure-assign-role.png b/windows/security/threat-protection/windows-defender-atp/images/atp-azure-assign-role.png new file mode 100644 index 0000000000000000000000000000000000000000..93e294ec2ba894b9798f36df8b06138d8c6c2195 GIT binary patch literal 105224 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

      !WWVHdF7}x|nbuE!e6S)~hle=(;1Xl& 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Ξ; zy!>|tj5gF7>$tFEcj--&Ly&X6X$F+JS|Loo!g&|6%l0~Z%f#^9a7j3lXEMqo?(z}* zVSy6VnB?!_cD{?ml2h@w7*nEBk+2Q9fiY$&Q@(9^kIZPJIkWrE?m`j_Nd%+>t(R`^ zS++I(?vBKWMKb~-2*1i4C;;#cNrEY&Sg(eADl`LVFTT_{U%#seRZY#8aEAfx>)FpW z=7$<#p^|DPx|22}0IKUtYxHdR6D_1O4N4;9ll_M80vUG|(|>!qwCQ&d3fQgw4QX#m zPlDhUe1B{)V-fMEkK{9u)iL;CJd7irWwuom(66Do-yU{~>-_vS;FPQAEysh!9mkv(cq@hJxyTJ_S-?)86~P9`iLr zTL0COVc{tjeV5CZ`B3~&7WL8{D*1^U=QITQ`T*mCIoC-y3a3@Ti#U3XFN z)xM-}4bG;Umsq6eOBJ_gP7#>MIen_8m8MqqRpb*l``z4ZK0d2XcAIULgQ^-Lr3C&b z!$XzyxwbyKN?D{TZE04h2ynHh5ZJ|b#5`sz0L!^(uD5uiyVs!QDu(L?n9sqfcG#)i zfDS?@7}jADVAS4)2Hu!HecLMG)!cM@PQ!-6)AQN4D$q4>{pUv;3P&d=fAsD&6l;Tc zk5K`%OAm;OpHn zP_zK017CoiT$C!W>Di;AA8#b;^VG4P4bi8`)V{b&SDK@&;4sJ`~pQaqAF5`kONZ@joQmMA!g zL+7!t7>O{dWC}E(ZshlI?5}F6CDjgO(p9eS6`aVbDNo|?Y$5Z3$DdI12F;vA^j0^Cn@Fu8+2XH2K*9CXdCn(URmXP-8=;%N! zP+DfpwE>gc1hpW9adSvK&U&2Q^M*m5u$A!WY1{Uc>`4BAJWw2rTA*I|iwL26@DCA^ z7Hp)2;@^^!abOmX=6WGl*3f=o6yh}r96AH+rG>E6vfUXfFSWdK?|TSFLZ%O$FpuOA z^+M16KO9J~XU%loYv{t=0j~^i|7a6cNIH z%l?i&T)X>hxDu-eps;|Ie)k=a%tco+zOCO>jW#dSX=!+kzlkimvIj<@(JE_OrraL9 zNVz-FKwq$)Nx~B&O`k@;M$uXh?~-7HeyiyDEm%{5U`QxeMJ+YXk4u}V^$yc_o;?kk z<%Yhe{HCCg@#SZX`l6yt6uvth%GJ4_dg@v{iXZz&d!4)70jvl9>+o1|x`WsrZHt#X4dL21hIU7!Y>d`6x@;*hd_Cbt)HCo$>r7U!2y zkX=ANtejwNnh-~dkKY|_A29&wE8RqYM~~0H`66`$d|ErN06V@K%b)#TTtqh^eqZ5V zn0AmQE)-TVK4$;|AW=C*H{p?Dn}oCgdc%KrEn8gu|Bs}T{!i$6`~QTV|DWK!f<^vh zmV%jxE7AqgM2G#xj0|D_kqg(Kgt$lZ1L^_#>)?&}rgN=!b4Ockt2+V>(cgwYdCW3? zY(#dxt{qHTcT3{~r2YPV^m%fdN-T2J`w;OKpZKn1kW$BPZZJQXPEH{!Kwsgk&V_S)xNwRu@S>W}|E=F8$S z(z2?}gHD#8-#QM*60;*LZ)I7u&LE{iJ6~%pa?NmJ^|bq7v`d9I-Ed50bQGea`QJ2v z&ft>ZAlhP|_|Vk)C)uqm94X(cMqjW}uM*i*zf8x8Lm*TdcT-(=sEn3|pUoVXtThdV z_VFA4I6D!hnF4IrVQGYAJ;?CIMsXunfo*W&ip4*t4{jadzOa|!jY@>Rn7&*->-j$8 zL038SUshiaEw$}t`N4>j@z@@_PG8~nagNaIhQ6RI9|O$R3F0;WZ~56Np@&iv=7^>s zj+wO`ZHL@7|2wwV|9$DcQzETv?o0D_%?E0!1n}~OSf_b{*O(<5T!N90f6>(qe8T8K z?kgXjZm_m4rY=uB1eXHG%C}wMn=;TJA$dawErFO*$|J)t0%(j!c{&Ih> zK1`-o#ma!U+Q|^Tyh#4bN2caI3ZLN(E|L$7A_wiS5y1=Q@Fe|xbl2t5<dmN%53Dm*CD5Df?-HDcE!3vYAuz6sl%e0&sB1ys3>ix zI)$;4vaEgK9lUUAGSTolmM+v1?5`t%LJe<%%5BYXQh1n*D9HPs4^Ha&;H~q+c7oIN z{b%O21ioU!HIu*iW&IWu31)RoGZVAFwADZg&A>8w?psYs(Tp%$PAWC9y|RGZLp zi)w)0ZGH8KR$Kv5J<0qd#lA~?3I9~+j|mokyVxE zGGF*+_U5icC3^UXI4Q|W`a(<^K3OtJv9XZ@ff>y$$L7H1!$Gp*A#u7pI=HLl zg_&RBoI8SB{Njb#WX-_X$Y3T|f84-aYO`=f_Jup|T7P2Xba6XcoRTAhvw4hT*>4uv)(<($M1 z$1pEK{lnlKm^7fbb&&!C0&D_o2Bde;<3e`@DXwAy3zFE)pY^OgVRQ}FL;z?wjo^Ox zB}QZA7@0H*^Bz=^#y*th^)R7+Nxg@*XR}oXp_pU}*kS93SiL89Qi2D|T1lT~&dCbP zh}!Pd+b3vo(N{j~3sNUq;LYI3_bp}Pld~#gv)je6ew{V{M^twYKw(r%0zh5>=TM5c z-pZb9gv2rwi@s7+W%6)c5ru>F_?+*=bHo92u!eZRyVBp?Y;+6Z%Y8Td!-trKZ}9-{ zpu99LJS~o&#yYnWLtth3rJPdj$QSt=Qbto9Mf=pT2tknX2j-tCtn#1#AuXVdZigZ5 zZmZJfT*8z7i~oYe;*p28P^_%yIrI>JF>ehs_-rx(jdsbQ>C!g$apbofuc{VR%D)n| z5z&&>?QoxMPJQsXUpM=q0ND?DCvzC{L<|hcR!zCcIb<~aFD9Gke|()aZdu6`p~8M) zRWzLCV;oFgmisQw&IrWnGhviY2euWcim%)36K32Jv2*dS6_cz0rPnSo2>a>?I@{yQ zQT*;&=NZVR_(NCpKH-Ig4Z-+ifIGEU{Q%d9*w1 zu>SFb4!5ICLRN4k>2fMlbhwiC;~y+Gmt!31?a!zMw-N7&lsY#|6@=W|Uv#6bA4iOiPD{B#XTE#i7@Yilck z=sEzGK!8c)-Tn&lBSwZM{-H6j(1=^(qJNN{O2U4p-a zq6yf1fs?4e5^Xbr^E!P_>jq@!;^eE;>)F^8saG+`gYZr3BP4FIb%AdQ0^R?ZG<>B3 zaUnhp@MbWeut#(UKCA-N&Z>k(E>i%TBhJ7PutlXu zgTpzwQuQ=U3f(t8irUwx+GxfVq;LX+3CnxX#k}{*wtdX99GPqqZ8a$bFegCMuw&8a zH-dr!rNqG#D1Ko*(X8JX?9lY$kTE1HR_w#=Tsq!@O*z;0ci&TBX@qD(W z9q)qaB;Pb_)O{YkwC}j{+u@z%s7(E`SKc`1o*4FX9)UrZ%=1y=!#nndd0jZav6jUc z`knGn8R*pcB^Q8t16UIULYZTPKYXxJpz1RW-`Y_GeROuqRnp+`@_ERTj-{CKH6e6Z zwtU7D$bRBY8Sy*9kT`3mz(*I;X^v~F7wLur#YVETIlsk*yHPA~`YnJhKth9q0E`o^ zm^ykA02}{@Cqv?nthp|#hVl*66TW^A;zX1@?Q%2_sW9evLW{U8N-3fe$>(3htDk~ZrX#fodm>F^jyh$t9p*p#5a1f&jdGR@r1JHKb2JBS} zCL@?VpxXgeBZ)Zdi|{6@{08j~`g#qXx@7S;WW6u=wwXwPLaqEMWWE5n-8()W4iQOd z(BD|jF$1+2#GurQJ|nBP1yltAJl6G+hGRAme3gP>lN*7QhFi7FS&*_*2)2ct`(Pn~ghb2m2$-f&mYaQd z;#4VpxwrTy_hZe0RSZ~VhEMC`(^x(hnW7*UPT7|fxV+MD$(s(B0vj8fcGMb-V&`(P zbMG6iVW$q`Tswf;{Y)<6yFX1M0_wiQtdXWyVWOXY~ z6VO|;v$H!ufDo$q0XUFsL!UDj&^*GoB9xMn67<+FEKfP^S^(z&#KxhDTu2OD(crBm z(9%%<2EPNNj|_mqFjPanW9Hr^u#%xH5Rfd*%gPR@4gh!<;A4btNq{QfyR1DE1`atS zBm|YC3~t8H0NTTiZR}3~T?qiC!hRg~?$S^k+RF{~Iq-12`f8TIi)Z8Q-M}QUyuUUY z3AP7tG;z@Y4FEFzR;aBt<|Q}geh2TAi7_Y@qaYv_Da%Z>$07@+ym!xmp+%hERR#R` zXJ0nm;iW@=|9_nfI>Gp<%SI;uI2p#P>XsmJCx6%?g2afLl^MiUCFUW@Ry&QQRaBb+mylRA`Q?c>7W9 z^%I<-6nn6rfiPHH+^7GpRptr|jaf8=f0H(IPLo^sXj*0AKYbu1{l~7~a$i*>D0<>s?rHewU-+)kDc1Bi~Ooh*2 zYYpoN=Xa_yA9x!4k40!fGdiGx-%av&_NG!^U7g;MBs*|J-CuZI?lJ?3aC8PyQqq!= z=qOzQCFpb`#Lrz-kD&i)*prx5n5h73(`V^7uxZfxgo%mC+nk&Cu*NZK-l^J1jsbu_ zK$H4)*E=F;w11>>y3{z&bbbH+;6;faw0T-&rvJfu zM|gwJBg0_91s9XdFBiN7wLx9oJw3xBBV4lg@_i)7%vd2i9rDi*J~!;xxTdbG+GQUT zNmTQLi^_b^wQ_h*@jg^HKk))fFt6nES|;)#8WbI!VPmc`&082l$j=8Vxb2xLp%ZaW9EMbgFP19wXaEb11aLmW`*YCWX5$8(zTR=4?3r10G) z+}^r-cdwRF4q$3uE}~}^{6M&wck$Dk5i1HLu6h?Of%d+=iv#WcE9!)?;>sUO*@=Wf zIC)+VM+zBrlo_9;B~I(tx?~Z5Nhp#p6y##bW*vNn(_ALi;(_q+_KANSAIYfu(d_Bu zNe!odFfUKf&bJIQva#9)Y8vS6*&5VP!FkAuJ^)D8;^Ly}GA~nqM78HW82e;ci2C)) zA%qaZ{UJE>+9eF$u3}L5gaGvj*`!LcbKuP}v2}tjPsSjcn;wc!VUPlYYN^AFZ1=e+ z;K8ipS8CN@)`v_prBeCmTD14SqdAE#w|%<|jVyhnJf(~;JeH&QfwfAw@u;x;@(V~p z>sgS379WDwp%22D69AHnhx(rAXaGWSpL!N}#Ri3@$`kK8HdQM0!t*>x5+5HJDo=W1Vsaq*-^Y7wKwR_$|2OtC$j@b_X{>IVwzUrFwYdBw>3pyOr z6%Gt%;m~gtnw`{%3L%ZTPhO1jaGaEIb|CcFJ+A3ew=6lQXJ$(8q~KNYZ}9YpWKf0z zFpX_4$?PtID@V8ClnM8V`PJz_I-|{_taAxQ$JIXDpQI}yjx~Cn9z-_9Fqh;+mqH&_ z|7rL7>Z;~Q<>*?%2?2vUM=-)+HVpeB+>CrqqcdAKKs!HwRANAVIRF}jcufg9^udnS zaFoF^A;U|350=q!1%@NMKW2jRU>txpp?o>0h%ZLP)@mOg_YS#u76#svp3#A#oL^b* zq@A5Y>I%ym8x7rZkvLI{=A|fXfR}eK?5bQSgZ%BT2cXX4<>%+Vr@)K;`Q`@kC5(9N ze^I&N2$rzO5Jy&NXH%p9Bu>c2e4bM6ln&}A{Ti!4n@-V@Sw@XO?YB|K*l!W)p4`~+ zAf^YbxQNfi14`0gjhX%{gyR3bK$6LvFO69_DX67IZtG`Dfa?u`E8CgWyDIA#2*v8? z;PbB3W)HjMrnLEqDS^f#oa5tT^&!5$-Wm1JFb!60NuPbE)X&*UTvJ~H7VOUl8s$2& zu$veW3m;aLzAkm7di4cufABu-c2Y)p!LE<}2M_BLjEQojRA@Yki$8p4TJ3psi%BKk zm;FrJetp|5slgdDhby_crfb2W2D#l--epsrH2$Kb=wV_=@xLfXkR_#p{Iz2_}Q9Q-^}ZFn%zzd z=dLE4A5v$gMBL`Pp8Q|msXC^df)KsQ4rx!`c=p+<+j_?$Gpqc{KL8yaU9Ddx?`$H-yL}JnS(6VK15!oMyhVZF9Mj+zL`zE+%cxawY`QwR^7EHl4>cg?E zJNJ+LgBr7tvEoRI3qEFB#p`MEp%(V{aVsDRzsO@$gT%$~Mq($NyJ8|&x|}xOB87rA zNQyJdM^`LbsCaIe`_L|z2P2@wp=9H~w9f4{*m+M^=Sm)D>>b`Y-5Sg}d@#i!a`uIT z_jyX&K^&P;QcQSOY9nElin3K4(J-3e{Jr=Y!COBr(Ef8i(jRHwr*9E{DAtPC5Owiv zP~Nrm7FEgVI>Y%)eZ*FK>i6k1kDRRXg2ZokOLd|uBU%#7M)fbL#J%Rkv)26gwDPF8E z(^H=sA&!*ia%`XK<+a|+7t1y`lQv};h{P7elKfiTM={pyV$&Akkid`F%9XMyS)MJo{ znr~`0`p;#?(SY|L>mYyQy|02@^8Zlw7Eo1XfBfhLloF+-823)@X+)4xQb1Z!DFNy3hW9->GydLN@4wc2tUI&D<#6vg=kBx5-k;=7l??y1 zdL&MIXME%Wp1Bl<(&zGJWw!I{b2Uj6cS>tfSngkcHgbeDM&+5sd=8HNVtD_}ucsdT zca~i7{m?R^Rpm7Gv>quky}msgrS~FEvl&S47m8 zr@t&J$GFg?|LdCWg8^y#*(d5|IJG4$%8EsL;g18vN++;Oe$87m%stwmF-l&r47`AK z!SHid5hpccZC5`cBKq^gj~=b{{o7WAf5bf9sbs8bI0vz$Fs{#il6bB=vX1KbFuh|I z$80VWzLnGJk;<9iO zohQ+e!z?MWks3=W$BxqReDL{u$?EE3ER08MQ(0BE6trWBFaF`Jf`gwjz#zZf0(lnM zSQ%(Y+1Z&ZT!DEiPp#Uw*?XDs*>`;GZK6f3ecz1kEjBNX2XJ}LY5q4r2wS4ysZoW5 zz7l$V9v-(16 z%Gq-lp@x8ke+-mWnpC%5Ms_12H}pr1FBb2t9%m*8w3zm#NRgz1qGWg(ljlCy;qeJC zZQmS(qT|rvgJ(UnXBcTz=}(7;b1Q7)qHTrJ+NX@R#0CYk_p9t)9{EWzD=8oN(q~bT z1@tzRSbnCgUHfdWYpdecrlFx>G@!&t; z1^Hmj&q+C+8aC9|)54BUt_X?%gbF^q$UK@;l#-Q`YkIMGzEbLUbJkVP z3^uC{f)bGkx3zC?a`#Z1lKM`Ap9G|Z(06WRSiHK>21)L_YO>36yC_@A-zx>Xk zqro%Uquq_>LfZq02uLaiZsfaNy@M~5OMG>dsOy_(I*d)uKgNw^m$gz*6yv@gD`0hoom)vp>I4pa=e;3K(WiG!GrVh#+kf|nd zdV`t<@|fHLvYaNM0=50qr)me^*tj_Mp0P{ZV!sIGxhRurOZm#)zxotxs$O7Hv1p@HCWzxK((H)68JJN?_Sx! zV7y7l2E%08eMohHI!0jaJ?e}sQmqf)ntVW?j&dla;dvo&x%D1j;{BZ^eG4khB)P6< z?OY^gr21i#eE0esUppzRAm(FGgJ`8SukJQkmZPCy;~MpfOr&jLxtUsVSa&PaPfDJR zfOiHCO~yrSDhOD9(9@W4k*&Tt0BY*}=n6w8ISk0pUeJ`FjV_~6oGtkk?7dni^nLd7 z4GX2O+KN`jO-toz-1$Iirh@To1A8)sU{?9{vG%Is>(T-hi|bK=2t)%=E2K?>?t0k` z-{3Okc0#k8=?N^t?F5H2mTb5Aw!bhym-90(@%-^Ty<5?c4GlX6?o1KVP2zh?j7%d? zDm>$v&x;Lm%bPn_e+Vw%S!t%RY)}*WLy5EFAQ44h_}MjsXHuzJ* zoSl1LtLo3jcM9a&>&Njrj)?7xX`bzrYO(+de`2A7}LAoPcct#1^s%Q5YZE z+U=X`VJC(MAOO%+FyZLEce5X~hi{B8etCHr+5u!h{&wjnbOJmAZK~zha5E@Y3#opc zm#3)BDB~**od`KTL3@#xlHhFs!9)_iEz2|W^ReN80l3DQ5lL0cp#%48K>@qP;qO-D z*fl}ZYQ3)`Bd;r_q0l2Sk-{ZCP?|pDwOQ40&^FWawkgfGZwd-N9&9h7p`fV%(kp;5 zgDCZ9HU6+w>L8^qZKcG00{gtY3YJd3KYfW4btf4~aN$sFen93F zbO;Lj?C}7C2Ys~}{lp6v3&+83;(Nz_pUD9uBzwRGm>Kd{bYdvhTN%OogsbJOQVa(p zWfmc2s!-Dbg;?t9>L1OZTNi|$tWXCB5Hyngp{k^$)TMQKvM$VHtGD=ns_8QIww zaEczYsqQ7N^I8^(eb&v8=?A&xys)uP5p!45f9thv3;8Or^~JN*J`*bBIEH6J-*`od z$Zd5@B3~ZJJ;3nMQAZo`4LWZ@p%37*Ub*FYICm)OAbx<9r~=NfoUsqo6wb0c%w{0M z1q2|5cmLRLYiGw4+WX*ll%)->h>1~w0T^D;bphfk*uX1OM8AFe7B)xbIby#%f0#vD;tObjr@tckjAiD!QcT}7g;Z6@#~0`X zlo!n;!w1@0LOkX8HL2<=Do7x#Z2wU%XuY+^u9@En3H8o|K_t>m{5`k2TAw&Z`_v!s zl&Dm8B_e2Q-dPzHv+i2pob*83(QAIYP!HXW*_MX|yXsx4tR&AxzDjuSWW0Ol(f*?W zgmGZ;;vJ8-UJiC9VIo}iKxW^l)GIS`$Jq~)u-Rv!*@Mp=oEaP6wG0fNg9O|nv0XPj zQAFXnvgOQf!d4&Wwv#N>=!lIPv;HuR|GW4ki%KVxBS>Rp)`ZmFM zs|{?Y&uyQ49yc)yMZo?2kHf>m7cU+`4ND*(9td7?j*P3(nm_#A z8z?Zomv))*OoTZPc`r1X0-s_E)QSffp`RMkk+-9+KoKuAEI{FN6q=-#Xe!sMWgFM& z*;&Lnrx_1+IaN#>zP4=*NQQBKB3IG#aKeF@`~B@Y^)gQUj()PlR%jue043Zf!JAmD z*W4a3vM|V-c;uJ1GVztgbL#WGj$+KBzE%)yXR=Pdkn0D{Ghi~HF4GAF@127sYf%x! zC-Om|OQE;UiN>Z|l!iZ%A72Hq#%`>Z0sv%M61#B4yn*uvho7h@h(^W#Sdz1DE6@`> z1keSVea2T6q3&fa_tUI zH6Y>YzHsQxLf!NC#sjS>TJqFVKMuaqb~-)Yh3*NCNA8hfwa{;>IzANg!9@DO0|DJ4 zLy@_sk4qiOShQjeRi0MuWqt#gr5}ID$Q74i zCDBSlMBK$;JEa`xZKaPVpE*QFMrOt|qAC&#VEiS`mgY-UWu;=sX<|h(J)`TE$F$`k z*NFptSyzh4)fGJz6%_y{u`EiuA@w4fg%e@};ak0cyP$ASF(#W_83d!U6bvZN=@o$vKIT=! zn%dd{;1PRA@&1pJ5@~>7R?;go|McP!8ptRCD257j#1{zZ_dt>=SBJ>IF{~y62MB<7 z0Xs@(YRb#XN}&9c#cU7=Hs~rtQgvV<0Z^=hK(fvi0&LcJL&x#@J2(!o41zPys;w2b z?Uji+tN%avp#HD7@Bu)hBL&sSZ{uM?yjz04dqAXxzDQoP=k&S<^s>Vl#11KJeuIQ3 z&5kq7?^XYlHk3)h7tz5NsZY7w`sgt$8FL)I(4L;5;cGjN$9oTVE=6ResQo&C2lA)> zFacdyzoqx&u@%xAku8QKe|gnLm^e-KhDI~oloh5!m=WYGU2nh9{kFW5FGLV(r(UPV zI7Q%Z#jNz4YDv`<&-Rft3J@rbuZ|85YIB#~*)q1%Et7}1aWXsG;ZBl=J+On>4&Y$C z8s58RX4zVP%m&Byj5Vc7|38qqdI#g&XLGG2p5Lv2aNE#0r3#E+0{NmfuQ zJk;a?k(Y#Fsl=Dn@a`Q;(>MNEZ36mI3Xzoj6vwcI5@PyKmsms$@d<1;AiK@}iV(y# zi8qw5G1*jMkoDwc{bL)>N{%0xuf6-YTc|_$S+MnyiYT#HzkTDtxP|QhU})##bhh+_ z&g~`1eN3^-804A=f3GdT`QP@Nv4(>AW;oNV4354C5z1s`_EAwbk->#_)WhMGlt)VL zpHZkS-wi@8-z~ID>S>{hwEILWo%Q%N?;ilc$NAQNbFx22<T*1*1 zAD)onWA=M9LUwH5DgGWLrEyd}@5E&~v|*!#wwBFC*Quu7+ja@!9NPMRvoT8Tsl22$ z6=G{APs;bImZjwO#*a}C6=^-sj33?}oBInW%~{4qiQ&?o!yq2WHT_ClD1bJn$d}t> z`VOO};*s9&uPvLsg;Nhoiu9}KsQUHKj+0dl$Exg4@B4nb)q9#})w{bxy;UWFxj!%- zvHjn6GdQ?4C+18h+RyM>ZnMb>v6xw6790v~N2-yDK%Dl|1)-9SS9$lxeZPM@n4-(G z#U2XsIeSbq{@CZ>R>F%-W9b8oxzna-Jo&#U&9z8ZkqaN*&Gqoe#fPg)E;p^0$M;_D z6dv(L6LHTo+c=|C?l2!u_K_!tpzw6o_$TaBUr~OXBSxE3-$6yMU>-=K{ZfC#F^arz z!rJ%I7r7%+U$g(3`zeLAhyuUPyC#TjUN9f?6+``$9RgAHP4p!b z)fI_%?g!?tjci)zAS6%6)qk{|P6sW03GF40^myBxzyGI3bQ|=S@HtX7)WlN$*e|p$ z4*%5()?~8KT=@cJZU@onrl;#J9rw~3#Ar~xz9)PSAN|}+w;FxcHaqqtLaOfZsAJXm zeKc#-3-wb>K8FB)-}RqQtR6Q`Prcx-#hBm0QXFYRYoq4eu*@`YkiAA^1~)(!RnPw` zXvscLzm*$b;Iy~)es46=fkf)$49Y~|!2X^04)f7Q1l`nRte?+zxx1Oo&K-}{>`jl; z!D~koqg7F~dwMTc^e}z)%&td6d~Y-_q1KPtXk2LwK$Skr%6yPndX2_T{si);YjQ$| z{CWP!d0CiVQ4#wsFB-QYW!nL>>1|Y}H8fU|buT%SS(R98cCY52I1AFIUZp8Mp64Hv zdO&!LGQc>ETYA^_)KB34u2A22`GZ~zZMs1I!~I`BioZV#INRA*@f#E}^ge!w;lhj) zb->&92m@t{%R=%sf0#9p*(jeakiQL0G4qU45=I*uN*L9aa&OuC?M;!N2^g<>ogR$J z;=R@lkhQ?elIZ(VDL9*dG2gi1Yq+(_vEh4efhR;W!qgbYcSdj7pB9wfn^7FKG(G%N zB#GcS*_U6@yF$_q<<8Ov5QjMJZ?P@CIc4zbHg1*Bc5I3|Txs_2ti?F*zlVJ&sy;QP zUi|Yp=hV30+w&5uPqYM17L}9uF^E^bKg2mWedX(G!0rroi%XX2^vN&hijHl- zCrT_Tv~)au2idb18hP`G^6N#zk5zi#S=0aYZsf&^&9DEF8_Lzw*nUBHCIir;W78#o zUx_r-%;ywK4C5HwJpmtNjTt;1=5;jrs_`zLP-O>yMecnuUs8g;+8_K%Ufy+-hBjbG`jPg>M!#T?N!lcO$@cwIrFY{aGW?4_#Z*xmkEYMY zdaTD{G|JlNSLc=xE$$0~o=D&!7&;tU$Pdm9Etn21HGg<) z+pc^{>v0hsi<*1VRBaK>KSchUW@~7paAl9D^Kd~VuXJn#H>?Ub*IP}wE8Cas9!{7Y;GwE?*>(&p*CI)-{0>m&UQS>PAGF> zy5#dM@yN)~v7cEw3B4M>Q65Ei%=BWtA=-8WFiv5kH5!&VgZ0NW+&_#ypmEk-lzqcS z-7dVtOspdjtgIxPvk?1zvtnW@A>6z4`i89$y9b8!HR7EH5v&kqoCN!}6D~rJ?vDXU zmSmG3UQd+Yw&X{9mJmg~{La)RhSKq<(YV8Uo|7a0X_wCLRXuWwSubmk zcZQqBF1@1P0-CvGyG<&*W@+-7)Fk|K!RtW$s0whHdc-y6|t z`#q?IX(?`;6&&;^ii^ybxeF-vWs2)x&O8fZQ=@m!%sW?Rm2svm>my~mDylbJNML;# z!=v0+(6l8gh=`-m^Q~`#7CN)mwdhdXV9Ejf7Q=}Do*fE`S^}Ahwv(&3U+i#GF{B=v zbJnPf>`xwk5};SU!}=f{i}rB2JeG>&D~T@p7u8@qG%0?^w+ok^3b4KwCx4&*4^YdA zPJ?`{)UT;GX8g|4b)o+lZ${HG@%-TAVP8PmD?s(Lg-E=P07d(;_B)o7{oIpasV$a- zH!G(PF~XtcWTLXA=$`MF%Kw3KT_wVl2q;l&^G|peMZdh{xE%GP-f~u^%V=XOgL?c? z<6_AD*HqZOw6A06m2T19a;&fF-K2p7s69AP<1FS19vG1Is40k?2C$sQ=I6{~xkBjy zKd~R#p%V|yx+{m+A1xF;y0Q5D62%vNBTk}Dqm;akk4D%%?zlzE1KrcXQm*(lgU8&q zXJ~5%4QtELoMbFnnw5{%f>sBu6<;!8hLuMr+*xmz-96VeI zk~9eR)iR@0y%1z3?*ddWSa=i5w&xB2BS@M`&MMdAgas%HQ*z+Q@02{kdMi*iGcW?H z&L~2IHAcrDV({mC0IoKJtSqHUF``LF1-{i{i1SO)HceL$O*4N>=cwgWOVDTXFE+vi zyE{mzICqirA!sV>?U(iNaR3?uQ2>4qEZ;C*!N?^Z33<104V`gFW3kSU-Q~ zZ6-V8g|k!*hmDLFwwI+0T8X1b$jCSj2YY*YCPfyZ->+>-$(B>-T-EUTkQTnLP4txU z|884b0T)Ig8IN#K2nGYv8-ZN2h2`ZI41DnyWjpm-Io!|>FbPG5(vFU+!NVdDdkvWq zF=b9+WbkY6?oY@nf4%46&$s_Q>y^$fXnTM=X=PoH7&Gp8J5*!xPi{IYj;8GMyya6&C6pzMR+1j+Uw4xYvjRr0yBJ@Yn zUG;-dFUyy{;JFAoogV{>+t7jGE-;)wehxAYpg|Z|4A#XEmBKF;x0+8u9DaU5z0Rn@ zmpAbS*z@4k;eA<&2o4#>B;Z%FnHpXF+>yhW=x7$TSv0(DrktjDRYU+gg8HJ(kgJ>5 z$*{oqRyytz7) zYo1B@hWxP9wqG-4VT}&JYaSC%$Y5(6V>b31noerxlUvYY0#=Pad>eB7!~ttEQg`?=QQEJB#J&b-ntJfz5#e$c*#n&!bRafkm$BBS{7V?8a&53D|-+ z3DvKkC%Jf${d+&O9)OwoW5LbBm~F^F?gRAb`Ey)EK?+bl+o9&|+vlLvK}UyVyUfN( zziQM00@yp;T3TAH9Ua?pRg;lZk$D0`qN1|0rK=f4?SMmm`~ypGFw8d3yE2mFWdVi_ zz%a=A7LbI-CJ+>ZGzF3;V^5%N5#+<5pG9zLfVF`&g3y^s5F&Quj6wNwW_{e1+eo%L zWCwv07h*&&q7X4A5{{6Qb2cn2OcyPL#`6&hBXF+S8Ra#02DTkOm8egHe;^<(gK{q_YdiePi z@*xc;+r=PDE)eMkh~AKEC?Ou5{M`Qn;xt?9`##G1h`h2q?Eip>XZ$}9@%&n$XLd|+ zAr??Os(c&rh@!jBk>`uK}^xAg~2Mdhocg zpa2Z&o+G7CWf@?UvDtqr3x!a=MrihHs~wm}=(U(#)*ntF;es*CzYIo<&mzAds@cKu7$N2aHLmMyYYN8KEMKi-~Ep6XY;1h@h3g zg(+-o%!q|U{fu@vwa8_3ruEBtZUsqV}vF871Tlo=;w=-RdNN+nbgjF~JjZ!WF;B;bt zHa+N*`NzqY5Hkm+87BnFPyP(gWVj5P=nE*|T0A>3`Q<56tp^i>;j)+8K?W8Iv%?+I z&=O`J=btzJ-DjGYatLpkG^JpE2bu^z@4#_&ct^JjBE`5Si3g|2$;q*sN>R)pgay;s6L}6Fcl-lD#l$h<2 zBR43Jxw||p^ech_=!uE@9_>kOeKTGlbevmWzPZx_6cof)QM?y@N4H#Q9jcJc7xbIP z(8OsB>2U)zv<%dH72JNT!6{&A0TT&Xm9fdspzreNyYjB*|A9hPoJCVR$ZRVqu3G+l zQ#GcQ2E;Oyx0r%E;#;{@#H9otlJ#lHSfO&th0fA^NVT0@NB3xKB!i-uix38lD6W&D z7@uib5j|hxjugR0LEaDOXh&c80vnBJ$l)k~M5Kuvj01Y9I1Kvegc3v&68CZ7wj>s%dDyG!*6Rx{6EV!c+yPVZv-}Zbr%GqwvTHDa#iI( zw+^9U{Am3Rdm#;ta0jlzU4V~!DVTd=vH?C441T!k+hX4$Nni2Dk4u39Q?`FCmo zJ*Kyn25-R8^!sB@Y5kAZV^-V3pe>0WPHBdl1edMnDj#3W&{LPC@Ic`R)3YtaqnAK~ z&h`jRni#tq5qC#iJFXUpa*?6g3T5`=A*ASl&Kmt0NP?yM)GBahgML&UL zb+uen+wBX1OFMh}u)`z+VQSqU zF7HRdtN>dvx_!wYSq8YH;llm;^~*XA7Kqb95F``|^H>i41N}Up4UocS4P#)uljtN` zByfXSKhe7y7*GNZuW$sUVFI6pa>33MWWT{$^nSIT3aaK|3WrxYh(xxgdreDCU;x1U zT1BLBUzmDttqC8VyjZ>;K(`#~i~+IM>^Uj2@Tdc(0(K*DocfPPMn)LgtOS!`0TKe` z-q1ny0Ti^*8KQk+#+r4>6=)3zdyL&6MdI*)<_0Qrtq}vCb@7(2E_=LUy0|A1cf*nM zM_)7yv=R^?G6F>bC-4rQ5@^!ZpNyb~1~SUPniI67VyITmZjGuN}tPgCox0Q6*DR(WFT7O(3z(#`hzNf6iBkdinsCjV7*%yo<=D2N?g^-ugGpoIG=eS01eA(@uLw9^+ zByax6jS4p)v0qq7K754Ag!XB^>|uCVI8?ROmZsN8Y>W1_GVr-y!@+U#QQ#QoOW6;- zoG5}`^d<0OTRwRc5{uDKzu=zk|;}Gah zXHVP$BOa`|G>6I!-XL1!3bqvt0#Cf9;VSh_rif98Tdl9VN!&$K;mOlClAuv>S-F;H z@5W0OkU88b^0OHT7Cb539{)h&K0@LB8VJ z2c0xfw(unz1j@I1hlYYUe0}E@L?yFIiTmDwxIAKkjEJ#j{aTy~q#50!UGNWJ)}nji zU<9)Q2yQ;O^ho3lrh|70X#1*PVUxkENT?A=sD;ey)=PQP+T56651N$BQdEpV zALy>>UpZ3)#Xx419`(#@!}arG#OHlH+T=|NAE(x3)WfuMx7O0{pljUaJ-xh#A_N zkG?-nqutx%<@pzGsEUahYI^6=AwMFh`EmDjQC-h@oMvw%)n@Ozw}kM6b=;Ly$+L9% zoz8##(|xM;I?ws6{4br?AISUZ4lw3ys)M*s5C4d-6=k>a3SHRBf523*b&9g5$c3D{ zN*^(5TyG=_qs>QS*1%y=zWLw(iCWo{;6N+=^{ZpfSCidV+`Bn7V#v4g=ZCUQi#AZw z_Z9x|1^?iktLf~;cUI#2cKXg%_<3-B8U0Hc^$82I3uJn88MaDQZJTt++4Zfrn?$Z9s_$DOf2f#7=B(7t{c!@Xt?{6T5}X zocp-vIU8-FPPh8K`4*iA-ZXX3%ih;N9ks&M@GZb09SC~w%VB$RxVt|8)W7*@keTC% z!RGk-vAWPtIwA4UyY4do4HN$Emz>z62Q$g9Y;Aph=mz<>8FrSwlGP@mt5Y|8fE@2*t{Gn3e9hSXy>FLUoz@noU;DaDG<;cWh` zYni8OJr@$Ja?PTc@0OkL9yJMK&2Vl^3O@{pC3^Xh^5<`=Z&T*x=G6t|VKe?K*;ERTSvj$sz1==kh<@weUr< zI^oG){@K-i8kAdMD!zRa6)}9bdei>MP(D*GR_`FpUv~B5X~_5kw@I=%zuNd^nIS(h zOAOZhI0hk`5F7FBF5=#8%%8{Zs5$xLp7B=uYvT$QGnEf6dexMSOHxUr63A&u-n^gICFk6q95_ny=TI=9AyuUs*x|al6H1ck@TZr?y*8K0|_JZB)iGYq6=;^_w{2hg-e-T?6TU7uDy+ zJ{C%eJWLm?jp&hBkLS5u?fu`Nk)nTUHSOrDPglDCcIg3CySn!|Dew6^ z;v1Fdb3mTl>lF8xQuqIOoA&a8AJ$Jvj4hPp3ZCMd?{OS80u3Ec}n4)mX zlVYiI9^2K#ott{X$Jj7Uob3zrY{KnI}TQYI#(PnSV|ytlIc^;Z~DD1L&Nh6>K>9alOK6<(sY+{~Ya#-DCJ4 zblMfeL?oO_;e6Vj9fK}i*GJ>kvB0^r;>dxr(t_<@DGF19`a+u?{&@%zfHh=C0_Vj} zJ$##Q@DL=#KBLvI3tq^Dg{+uLDi-kC0t5-``QZ0ypUfYFV$<#LS@-Adu~jM%E1;H#n3K8P1FT(nIsO{YLUaK-I$zw>pI6TfCix*Cl%k0hHeNfjdRy5+^-qm1# zDVlA*!TUlG(|p71`iUyyT;&Z9+EhGBZe4b3GXxl1@z}j5Y|k;&qiEJsg{h5x>wGr4 zYFVg?gz9}Mao@Qw$TVX80$DG@rU`b-C{%h60-#u>d0O6RgOVo5zzqlR4RD!EsBTeJ zRW%dMjYQ1tfly#bXb(qPg6MQTVQaLoxTq~q@lL+i9Y6{Q>d5X_%yPLp=m)EFa=fR6 zzI|$z!==oRqq6L@R8%_O?M=)nK=vQlYp#B6A}0gk77?~!@@J59>J~oGIfSK8$?!7# z$+Fy2emJ6SQ`*=u)pCSDt39uESp2jflToq@gGQ&4~_`ar^+~+=3N1;kUy^g z0+;D>?Yx0Zz`x2k^Omrt)+fDEt753*rV!Ik*6pWzWi{@rMksPJV_h&9f-x5C_Zr|x zul0iy;HCc3Zusv0-R5CIA)$L|bfT`T-zS*uhKlaM0vR0z5Dk`E-qmSeW>F!z<=y`g zQZMU)Q5w36de7Vdh$;VAPujH(Fc9{1G5&f$;G1CGdvX!FNpJ3>d5eQ@7=kfdVaQtR z{o^{Tss%}@;nyU9oz01#b!j^7+d?kHBvhXlDo%e&(T9G&U^JxZz zo)N)xbIoNTor`W^`8PWwJ!pT8&h!+K?~Od?1>7964t%@#xBy*)7+o5dYV!A9^(~8# z_R<~&8FfnKY2&LyF((9ri}~X!kl42DY&$fl*6c_~H67LG}!2tZq^Eg`vGP2uQ}wav0~r+6s)AC03})^TPl z?W(U%&o%REAV?nnRsiS3xN58>*K`Hc;IG$!uy1Jb3DQ4FmM#TCbC+$&e5oMDUA7I0 z(3cL{uQ`IJWT{mquPXW!6^;j4won*L`vuh&*50 z_vzRK^cdPiKSy9j>VNACzp`yre&Fa-ajZpWwlI|K+j?!q8;tqR;@7;#O`mP+6W)%?JjXe#hT}2dk#iOeJqa8 z`fNLLnS7ls3e^?*{eV$|y%3aTA z%wTbC!}nXmfFX^5;=o+(P2l@uqdHtPb+6Qtw@dqqQI@d5FnK^V#^6 zA5Yh|0g6(%ldsua=4&JZU+8_|`yhlwq~);V1^dJGu6^-8N@(Fr%;&IG`k7A zv~1w+z~F&|E`Vy0Vh*HfbV$g99a-Y{#ofb+Z7;+$0?0mCEPxSXe?*wxBV6qhFWZnijV|F1sN|jcl~Jxrb`g5&GiZJ*t7ODbLNB7Q?Rt1KG6= zDE>{P&uD{YJ$&{5fW~V<&Oi>GCZ8g~hjjTW!p;^xSaSUb!o%KBugW2{ENx(3hf9$x zVj^W=eW%HskIjN!Dt+<|=z`Mq?G(?8(;2_xQuljE1YQX$7_uKK5(OUDzRa zI3Y4~mJ*tK>Df?s1i+B)!3fxT5MbZMcfIOb1w7*vrLbQ}t%Vu>udf%-m9K=U&t{UzucH zQ_2k*+S^VP>E6FKtX+RMvB!{T&T5*+JcCx;aB9fKYTE3P!UsDHNQLo#xWUW-ShyZo zg}97rgTeI=B6@I*WWxdm^&&kzqPts7k28+&iwPJ$0JL}n!O93u|E1z4MB@Mo1}f#Q z1YS9u>kyA|uY(&NLHCp?d=7`lpMEfD+?eh}qo3e51Nt}!{s@CMrdkVdVk+dbr0G#m z@e5hxbK3_DvsV*EkT`L2Jcud7ipkJqbZLM*cM#sQCu)KqT-mKgSg`rz`NIkWH#b4R z#Nh?EA|#JM;TZDBKw-q+P=vlIbO;wcqsHhT3fbe*fWZO82SL0qgl_2g>#zRb_=UC+ zg)_lO+9`BkQ5cHy? zL5t-ono7jU!Oq^FBE>kRZXR{z5|W_zBtB1pw*`h;nU%1mgMqd zb@wuVRbQz263j;M<~T#foK(kIIlW{fogQxn(KRa zNZkoO{Sv=pFBHb3We29LRQ{Byrw(e>A-qOlM))by*nUR$ zb={#4m_%Y&VG3p=$$|=EQivzt+)X9wOz}{N@8OQk4h^|*t7Uh}D?7+u!>SYV-dzbh z5cvYPfO$wr1I6U3#2q>|d|4}rJ+?06NS@2uL6;j!Xw?1gidkCBnfMvD*3AsOS_%KX zNM;%QZp>I%0P7486F0)tPSnArg|*mBCKS<@ZJq%mOpnc-{xxW=QHTm7>Nr8rK51tE z8S!P)qC$wX=^;Ljl8R~f`U+Im#Sn{cn~AS8XX*j5f>mgKe!hl-mcFJYZ$5L|{Tt~; zbR_W7wtiOGQwkF~px5t4S2W+8y|N&>yS2rN*6(5A0bfI6S$%dYKERmKk>XJe zNQ<3GLp^VPYpe})wE6~+r1T~=nbPS~UbjWQdCtjFNK@(4a`vl1z z0m7;EI4TK`Q0M!5cWy8=m|D8GFrhF0NjP~3X@29Ybk34rw&T7;B?fr7tgd_9hYS;> z&GdU0Xh^QBsK`NLOVn?Z!yg{SLF4VRHIe==sJEq#xk8?pdI@L*6pGe&OLLlN^}6Y8 z&EiU6Ti}Tb5Iy{UleW4~-)nCO_-%?{=;H-rn$5xu z*vx<;fc1NKWZMSV%giv5eEOj6Y^&N$Bs;3Hvhb0DY|QMl-RjqpQZVPn^oz(5N)dot zP8Elo;p;xhqOY?sb@q-Udw)_)!PBx$uBnjDqMt?H=36P}rpCuO+HOf2hp<)oVm1iZ zQqFQcm~uN7>AKyIg_^Uiznn2UE^c;4uPy=KdINc_eP>F^g;F!#3(}e2*Q7WDFd*3r`Z9^@(C=dJv3$|%9v{+ z{UYSHE4yG46YzEe5)D#)cIn1-d{^<09%M*&;s^0R%n{6CZ8=l%Qn|8D)=G}lQmi4~ zfq7Tdv1zn*B?otzrn`F8;r%afp{imN4&{dK&%-*ccP5{@>jh)-{i_AAy&RsTmd`=_ zvh)JgaG~|>Obr9+{hQX&o5xHkO-e~GZKC@h7tc;b23?v>>6vwrOjnoP?4GUt9V7|X zM&uHCOg_8(A|(a!^n}gX-ew7EVn}y{FhXih5IzMeWXou3YBnBK!*mCfdS^U${6N5U z8R$m=g$anO0$2S{4`J^q3zd!VY;_gAGpO657{L16+29=X#Aub=sd+6bDd{KQhAu*adD{%vYs4&Rv{hZ)evG8XI7m!XcYXW*q;-tf0@jcVvWfoLRS^ zQ)*Z8zDQ$ydOAMJd5x#HzQ30A3Pb8>P(+p%GF7PW7fl$`84qX$(U-ti(YrYshsjb?Q_n7U?Qya<+18Xqv_jtR=<>cBats_`n_Qh$Bsp0aFNEieWY?PtIt#=KU!X#zpKy8O!osLd^$dRQeDy{GbJTx|fDVM2C*_9d8FW|sG&!O5= zxnfJH$e7hfps6ei#LOs;NDkum!pA^eYQE9x@B1ytJtD1jmTaWARlT)UEH|ral>}wtHDZ`j z?Ll%{?awCZQ+#f+?*cPAQZ zLknu~z(TFXelx!jrqo(3i4Qi0C65&0UBa4f>N6h`e{!L|=vZLvh;Egp=yHo;(4oV=ME8#WS%@nMJKp2AlI%7V$3-RZ z?pq$^IBfdtw8rizvXvIckqqpk#>t7<8S*r@v}zvMA9{xS;n%vnT%m=D!=+A@n*NoKg+ z%@%I_d>e?x>vW`ZgIbEzePmB!$<}u(30wMf;wR40bo7A7YP)`l=xXboPuh`!R(zo$ zHxoo{j;w|L%C@aVkx1&rRxH|bMP+-pqy zi-%{o-Nm|5sJC_A)Z_Iof+zFgiP?SPzrS?kUs=3t1v1ts;StxmU4Lh(=G<}|)I)AB z@mmj22j$vi>)T|K@{SEysQcyY7u{LZo3`Gq@7)`wsCD1t+@Tf?lL%6qYOeMp;Z`A^ zzWCQc6n1_}A*;7Zbtrp&S82|HE+|?Nm3L*o;5-zRCWbg{?RfJ%==Tuc+;v&6Qq*4S z8gDb%9I`U?Uw@PD@4?`p+k%dwJv9@PToR?L>sVC1PC|6IAi^k8nN%M=@b&XZHl)D) z&rkhURy~n{^W*?qzW=2MFP}GLIV6$>h5I+q3{16}ExcS8c9~%Hn=-^f@r<5Wjl}w3 zoE#OOb6U*3lp;DFp?GpgJm{w`R-wG0dfiYrjH!RK%Q^UbOQROYg^)gRD&v;(jL#K| zJm5l6KE}Yh5b8$!`(x+W-42(lBHW14DNE_MDrZ{fiKkD~MdvYnRH}#@#?o;XA98O=d;C7<~a%OSNs%KGK-tzoD zUS8IupFg!!krK|D7Ji|6SR}-t+5T}lkb<*q^A619;o%GeTo_JfJ`;VUXwo%u4g(nmGxQllQr&-sF_%FPL&J13iY=VXt zQ;jXwtUX(!R%#4(T51uKU)trV#tN}~ZfOMRF{J8WV7pMiHC&zG@{$w_#d#+Muc8jC z$p1ekG%M4Dz$;-8hTOP}7f@X2703I2CE8Kv-KgEGgNCZ%kp z0v`C29Y`?N^!NpTOPJqlebW$&(d+2rf!iZMeHL}3@^vYAfy3cjfb8Jp6X{5!hA-{g ztCiPuhBP=UX`iw_A2Zo9`IP&2x@n|$)f-zD4)FKS#<*ukHEku2Fd|V!65_x! zIX5pUeqcbgVZ29xy5IR)IA+v)s+T>#eM1$L7U;GSXTBAC2=GPdO!0b-F7JQh@+ z>0QFAy{gG&pjfZ<-_@#FzyY{|xHJ8S_>X1mj;ZxV0HbLE_&tV=+MN4)u-e7m#yMJa z51;58`r(V-gCe-9*4SYFxs}*h8<_!ay_R?=By1OWKIqMa)$>aSd=LiFYt5fM3a*PL z`4$OcdCkDKsYtqx2ARpJDaH4%{>=N?4*xC{LO3#mCdJ&lTisVu!U7a~ChD53oEChf zR+Q78Uc-qFsy`5+Tu|lF#i;g%;_-hEJgXE~#=Cm1P2j1yyTLkW_=q#}j5leqd0fa( z#=p7(%0lwM`T~+{8BW?|g}-8nC-x-H*Z=;pFaGQwLE=_U<`-KA?2ivY;z_xjn^{&y zWLs(A5N%XUw+zAx5R6h^P}J!Fq(B~)DmopMuW2nB$Vf;+JyQEj!ObffU#!!BA8S;+ zE7DV{R`>;!L0BWXLyOR^^VBf6#k87TicBE@cs1pm=gRu*v9`^pVZFAMw?2P+x-hKa z;+j8eU8>i*)G#ywYZT-!YK`8HO0sWXxHLFx%D)EH@*%7=2sy&z*%5P>W_Wlw1e7}| zqMk&cYK!FmO>whwBKkf^x+=BQHQ&$SSZ-gp`j39vJUgW33Nv6>`{kxd3l#@Wwxx>SL3B& zZ|yX6#~m%$hs*exA07J}-H^b*Gr?KdjbaX9aDf)z$+Db>y8InAl;4-#Anlu9NGQTh zJBvMPeJh>#7Ne1qz;;8KV-TPJQ?GDXA4BNJSrqnTdT2PlWVSpWUAka!Or7jq`1|`4=m6Z(KWCKJY)&8hMxk`|_w(W-<5@*m)}I_hWw1iI2&xvX5^{Y2J_JnM z(C-+$o7vwACPe&Cj!GgRB_h3NQ$uFR+Q#1gEDAKDa&L4o$ZvnRWn$8B#u-lMn*Hyy z!38D-&L-U?TrKagA2SSQfg;^o;xvkmj@*)`M=txfUKdViu_NQL<}Cyah}={(G)(b% z1(I;QgaR4m0Dx-IW0hIx%=i+2@x6?}>?k`cLtetS0NI@wsB~1thNri;7%)nclaut= z=oJQU44>+xgK*o>kXnbG6jGBxnujh!kfHSo%=T!~4h@5G(C7x?)g9Byg{LoFqPY@p zO72RnO8aJst1XDVqWN&34I^&a`NOpHr*ZrkdrD6`bZA4s87(H$z+_pW|ghcU$*+_U(uI1PZlL!txJX)$1<13(Jr(X)qMZ{rhVgMBn$ zyC>xcMRnf<{X29pPFBTEMURJx)r`*!TSDU$Kjrj3sWslQc0HbM{2*4p;PhTI0YnN38i|P^`I9h>Sl&<*&e;ce%z;|juf<$Yp0&L+d8ViO% ziHQ(e4|i1@{rn_hGwlSiRN}{50~>yDd$$3gs;Q?Jj4T$=hk+1c)|^UO#qYwr;M#h0;$6&k6Y;>S;1gn zflaIkX)x>a_Rh|8VnYjX3O+wBvJw<&y#khrb@dj+l%tTj&-hku01_1s95?I>)YQTa zb9D=^85yM+s>#YeRxc6g6$Fo8^5;uE+-%#AANZTrh&%>pQZ zO2{E**QMGJvDUFZpIcavb#QQKU&jTrm?GD>onVulApSQ++vGu``L_I-8O!}jK(2r} z$#9VsF@jKQ$)fV|0V~5;Gb6ASg50`zCf;aw)ruu=;28`8H2c^C9g>z3t&4aMjFg}Q z{1=@>a%cpl1w;kuR8pi{1e69vLAtv;2JUz3Ip=xqz5n&z_pX=aVI70nGdq6q$%0Q{ zjzG^$Ls~ElFmOgZXWluGaL#@O#+(VJz)JsZbor+XtkaTUMBJE-?XixLDu7P`dUR|C zFfnj3+7%B>?b}{`4Z&>l-`IV2-$f-P&?PbcfO?fFZFb*Q>>J*lN=b*Q9EhR9wye#D zN}e3(o48%@)i7>VV|TEgZ1Tr%S4Q6hQ`I8=e3~7EE?AOi7xoN*Ud~?12XPx96 zs}wIIsV4@@bFsnBENnihsClbv@7K=_`?f0B8G-4GQA$3y0t3@zecNl{zA5N@oW*Ze8)%(RcJ2#Ags zk)$!8!2AhFk)A}evWMUr+1SU5`&JFem%mz;KP2bCf#IQLKVf1jaYh(CYe9!@0u)HA z325u$3>Kfp!f1Sm0^~a=)2(U71SG1mUJ;n-$X9i~t z-y9ZXjftaLW0Y(7Bj5?UC{?DPCxat*46M$=?M&|n=irV4L>TVNwpmcW;J|O;PK4i* zatN@qD>8(DX=WdjcjSvg!H)-IW@gHi1%7}48p`wMNnFu|8|kJmzpLFJg^VOb`lTq@+xahwf}J%06@0z7OV&WM}1NO?-1q%N@}fnlOC0 zoWS@)T)UB;@b~DE!(%BYYr!{#b{|C&+%DaPzF39MMTBj&%UOND{9JkkV5{nLn`MF0An#mdlML!O(eN~&*pr6#P} zgPTQvFGS^URhTPK$^$I~(LBk}Sq+CJeRwG>Mwhz0dZYD0NvjDej@N`IYd%t9t6LW3 z11-1N2`!Mbgihr4mpq1RiB44H4xUTuf);Wx6_Zv-v0l>~<%T%KPo{hU^rm#2{&}}Z ztA zS^vx@QA94r7l`oP0&SrO02sj{yHUxdp$ZBRWBC8@$l%a*<1WxwQc-zsJ^e7bmh`7a zi_-l<(Tkcn+Tg=^U+sREv;Q1x?<*DVnhYj~><>>>Djn**FS(Y_p3B#e>OQaoIS83N zIWQ2nTKJ#J(FHv57%B&U!Izf6GgR1;2g8^i5dvh1mTCq#ZE#pv6U-Y>X2LVei0@Nu z)n(oq!wD3=S)TcsJ77va2Pcsr_v!b=Z4kDDsSOW&uW&zsOm3RD2pkR2tKth<8ZiAK zNO4Sz;1utd@fWpUfP$fbEI%w=G7^Q;xv(EdhLsfvH^5uieJlZdfBgo_yuSu|)m~&u zvTSe}W|3%|P>>Jcj1lW7n~Y$TXPGcAjZcX;gzihiQW+E;;BIoOg0&T_5#jJ)It60- zP2?FKy|WXX!u#&ZkTS*I_=@!09kDC)lNlg;mXP(q?7 z&z0eU#X}&Ppf+3RB@G$)#@(@Rd|XOWuLeS3*bChN=y^7S^3)BXlfI9wV{V$7Jw8l{ zl!B+u#l-mC_YZrokhVUb2IMRYE2~Af4RjS@>5}4%RGj6wqL96za05sI_1a%4$kTh( zKA*12)RCpz^>xQgp?@*h!R{3gSasrBKvG(N|6K7W!_)U}Zc6kYg*X|*a=+n`P@C=n zY9uxXC`Oze;%nXtDuwH~Jl?j7FVZA6M!DN`kHsfWR{c(>1EG|_%sz(ZfdLcjk6^q6 zT?gn*$T3$Gqe4Uop)d5gQHdSCXZ3oPk?Vfl2`V0w;X|6WS!11mgUl;{{ylhL51q{y z+1V{X681_GErznId=8^D3lERlv4gmFuPSzQbTrb@ves4v*`8)*%~z!A#N1mNO;q{po9LYTc-cFc_)YPIS?zFj(-Z2<$;G435NsEj_`}<=pxIu^H5gy zbO}bw;K`N<0>dJ~AxY}oRjc+_zQAC@odLhv6R#VPJb|7VYe5>s2?vH8EM9pj^ufo3 zpn*q1hq<3CS1K0~#UuP}u6~J%TGR)~U_;{kMMW)g1R zb2dh}<2Dd?b4yDxi_n&ml<-UbbmYxJ?7Ym_QaBu5JD#C|!D6(&^ufBa+oTldB^3_v zI!dB1me>{AXjS;?%+V0xzv`I565c(1XG959BsB@U5(%h$sT2N~4Ko*KXFR$p4aXZ5 zS~_I7Fm(sCuM_QMhH?Ve_WGr=n?MO@2}Laf9f;CVhS~d6U#nYTb=5ZgqTo@amnq># zyX<`dEzr`y0tvsp4OC98vl0nzXLDC$LEVL(3ELPAl(wKGfrhN&fy-Iyuq=_0YC{%J zn3$u(&nJp0h~;=%y}DghHVRnF!-^8!32CcD^Ki>W0rw0mLBkPPLQeJd zrId1V+9kh=jO1g{UFh!q7iY=!?>L#w3XWgLVnb)x)C-X_Y#A>#HywBRGkDipVRbSX z_+2@tjyK%$KY=k(W+iWfYw5rleXdF{`Zq!I{vU#-JkEror=;bttI*0IHg;*Ww_^w> zjyvl>4>`38M^w`Mx+&+BcRNQL*46YI7_8v@ba3+#-#>xc=Ff8a^X0G3P&0b8?#gS* z*?Ch*P^dB8yRl}`qF(N>-}(m+{!*o7q*DCh$+G_E=H`Q;Zir=82#VqH!?LbC4;cQF zT~*o9*K$ce-FXw`R-5KgH%wmid7Dk~3?O4LjKaRPdlP3w^OS)Ygr_8bj+ppa@Z43{ zC6BgK*B9F5Dhd98m#MX1U^5hnWs#B^^U3a@f)0@C=Fbp1;lZw9KJuXR^4zQs2Kq zfGx~^@y}^MzBiW!`*)+QW|DVrNOhWs;6<=ouHjG~bX}Cw#{_$9daI>iAbYB)kN(H; zfm^iwAdy*s!EX)K?~mc+9LzyD{9}g`iCrtUvXY^+B6%O`I2*3e8^AsB?KWm_OWRxT zFw;}s$DPa3=s(y$7CC;($>z_x=Q`r~r;GR}*XnHF`u08afT4b7Bf-qU7uHAK)m!v^{n9=Z z633-b$@Aw*BNsagMBHRYfa~TKp#{g*3&cs}v;3aN6$(3EqtUT4FEF93WVtD=6WDcz zEQa@cd?W`U87|h1)KdgU;i`gt9uaqeG3XCDJKp=yzm&7hU?xLRC-CInbm{58PTh@s zk|TV{Sn|h-^uNbD&;n4IQ0?t%kn_npR)nym#JSiFZsT7e?R`zs>ks}~L7yG}9L!7q zEZ4H+%P{K=O8H=+v9AlPI4<0_KIK_tj*-tCG(Vdy_I5Y@h>z6keR?Cuu!xRBIcD&V zoyykCoAWh;x^>!qH4f1q3Uh_1Ja}v@!teic^i*E8PfM38UuexFd9 zN!#ea4)NB!Rj*X_j}{=9J&ZS*;b!CMiB4tu*QZ`q_m}NtghW4{x-@^r;p%yUheN={ z#ChCyi(wLYC#(<5NTp6#pA_|<%goZ?L}zj1x^eb(?4>Ie39@c?uZ7d)G+UTuYDxAk zR5>h2KlE{;YwX@hv{Q>b*!@L`wJNmtDBqjZruA(IZFP=FtM3cB+uFbW<0#Ul!cS@O zd)}fE_Ni?@n)mt+WoML~hO5T{T~o(t?#MeVRwm88cC+T;SA(2tPN}cRe}1lOHKA0Z z85LiN9dQSzV$}GwU27z3wvOCaZie>?_1(J}-~W?Qzct;+v_-A4-fP_c6|>{>k+yYg zLu)bZON_2cT|nRT>*w@&B8G{f3zl&@nzX)(XJ&EpALX2jxVIwzj0qG1;*95orL|vj zOFa92J!qP)r-|4@qyLH9_Rh`sZOmowSZ)@*t2$rdLG!dn;NR!Ssf6Nh=G_g-CS(35 zhJ7ymEn#zI-5H<^f@)5rctQh@XYT8vtxjjE(Mb7Sq4fuPOc1-YQD-DHvY9BZ4KGYV z;8zDzD*vsmsL*;3H~1GkZ)hX{quR^Gw0rBWnkKHD1Qz-e$TG%I^7eM z3(apI^w{=B#zF$bxV>CPF4Xe@7OIeu+pwUy;~^u{5d8CkDxl7QVfryK@$is9 zpvi(W?7SiVQ?6zx1=f9%s{{WH$_HIjJ0CLr?#Pguxc88SMw_cI_=FY^#ez3Q#C-r7 z&S`Y@m=}c(co#Hg{9J^;NYepJ%=6a$n`n=Wb%D@S3gYw4%xt@Z^#jrN!ZjD1gm($5 ze2dv@4#Oj!sr3E+wBzoOk_)jQAe_QMfvyjJ^%t5oW|y`>5;a74-+X!57ceT&qd*k@ zKR`SZJiVv~NIZg_bwU1!25e38GV!LI#Lx$5SShmVkJ|6;hP(i@7_e6)vjn#NEsWlD z5cePIjubYo4LNqn*9_S!%g||3GCyYlFfZ+V@N*rF*$0-uQ_x(bMO3e_Ukh^1JxKr+ z^3%QtVQP(j*0#3czertKRR_vsUrWheZvlL4|2nCm*Ga^do*dLNNdq2dEo_0xv1@eB z^HS@MrEAu2|1d*fh08YAJKHoyRq+S1J5y>_Lpe$K6k#g>4wzW5FRI z{!D~G-8fv(Lc!n;8b7FVd2&e8ZCbnJ zb0RVvGPa1cE`Td(%ymC0YikJBr#V-T4!cf1cu#xA8Iua;H_QZVY|0EUwu&K)LdBuo z?VV>*(?gnx5!z2b80ORw#CyxW)$J|kYT@Yij5`qeesoGuF?RV(pYFKEOWuxi(?{#x zMxyHJj;FO8p!zo?~mXIE_yeT?b zC*`~UfN^H%$>}zskEUOx(Af2~!ROT(Hede1{Gb1SWBwuI|C^XU@1>pp1?GQx1u*~C zd2xU(0Bh;#?+*ryV`4rl>E-TVowpRY6~m$Ur21&1&2?wM3h}gnzz^9hEFHUp;sSnv zBW{ur1rhB~NQ~G~AQL0D z-vd!}FvRJSDs|#^*!FDH*Z;B zaVhJ%blA!dgR;Xxxb!AOIUw+SU|=9@bwR-C5CUH?%^8X*Z>R# zhub*XFwx}2OG=+i-z2<4g{nY|35wO>VK0SAa$OGaYs&7wZo@W1LIrJ!-4ci9)fbOH{Xyx# zMWf*7Vf)<^QJW$?&*o3w#<(tlQqpq$)lij1@45)4wuOpwUzqe!xA;Y$c5V>Eyp?dIP zg!GUO=$%7AmBq^vBXs2Egj0xXa^mp{_A z43rnN?Be?r`lEo~2>^5-QuC*4wcOX6sDN_-{{>cwei-lx+1l@94h3FF0)&F_2IclC zboPWUexn(TmDr7?+GjmgjH{&){;zATF-eN`^NvK3o=)MRU!58 z;_j--$vFkROD~cP@_s~Ov0SnYUx#=ateiW*{{lY`5?Y=l=szHZ-vShmWVa-@12eQw z@ai{Tu@JCTYQeom+96HOsAE7O>^G%)`BQj&dMsQI!Pfd3MUQ{ z6%kXBPfD0Bz>S8GaaDU%@qS9`>Dg(OcDR5ti!Xkq5q&<0c<<1DjfNQfCD6GHV*koQ zhlrc2=o3aUpep;{%LfS*Ttwuy9rtihUz{jmL-7TW7$9@6w=I(eP6K_9k2<->+V3T>iyUQr zC!0$8%=vVa@M+<7@Qm)(fK70}hAJO?EBl^mDyye}-FArocXl~kG{!wRtmYIAcx;_l zg9U=&JdvGo=e4bfMg#RL(#z^4bK+7AMtR=~H%ILnJ?b`R^h5Tm?4%PYXRrL0d|1aQ zzmH4@Ta>hn3>K8M7QulEZ6{c#Vf$WC{Xsu(Bkll>NpLYl4UjL<;e z%Wfsx{VYI9lgN1-v~UWYA-f*u?YmGnH++86WfYZZ7;*fI3e`iQ`DbOz0;h(r-HdE*$vA&n+#agl8AF-CwZixE7LtLk{1fw|-0~bKV95}PBMQ4QAvBTm99+8NPfL|5{Q}oO&K2ZI` zEG^01o?%)l*yZ0*r!)&ut~5|V>zP41X0#9be<{;ZjZLd`Tw3+9joBv`D;7W&^1*Yu zj`jG2XD>oiMC$vxb(+}kjZD#PUO z!df49!gz7F4`#Zl-P_qVz8teiGxeO^6`DhqGdFO2=GO6}AB&RFpT_yU>lXY0mwybJ zsg%^znh|jqq|>2BoX!!DGRT3Z=xF*$c6vN68#_BIcyY(#EP@(+VHt)VQDp)Le*X8R0Xa#O}fHmL3J{{Hqct5^sPw&vs(lj^(cwAX#V*6;s^I>5SCa%d`)ULn+~k0(p+L=>QY(hA633 zBJQF`25h~P+|rI*n7gS1Ayp5d%aU54T7JsvuD<>oL-pIYqa~8ky<2c)*7nKeU#F%Q z7dzH_f`1(}DaK#oaStMj{}2+M?Fb~8(1WK)h3_mAZBH%#+?0%!f5jrs=&qv8J(1^ovH>j^d^ z6H9l0brz5CQ@x^&{KtiC>6c7QJ=%=b$K%>Mb~ntm2QSFo#;e`$Fc};E#%ice$avC; zJDe->nGieRl}P(Rrp*@3f6!A&bA>7_i$U|Fph>&_eo|8pW?PKtT4UXvNf}hM9rbc) zSU73v%*1hv1c&6LG`~-{aOq^MZYOIAhJUEYo|0zja>H})Jz^e-wTIv1SL;8r7ML3K zJ=3&S;$t*@xPozQza1(NKG9=K1kA`|1Z+mA75M78v$Qj42Sf|*XC^15Z}yW{LhM;l z?TNUkS2fn;=ffVvEBt(h>97`$zbvKh{z!^PQs_DHFARyKL)Jvl$dUr^eucqTQC#q|22Q-6~|vG*m1o#vf12kKe?qX zV|73;xwEnqPt$lJirVUb?42r{@%eMW;rgc*EUxPq9oZkxfPU^SI39`)t>>DewsSf0}73(^tP1lWblkI>UFz9aDQriR>&n z-F?n;21ktlgV$dET}( z?y^2sLeHw^y(s+a!c0pOQ_sh9nV&7!p4|O9?e*s#g6{`s;l^P}O6JXCxNeT~eDUW* zB3w6joul)Nj8fs5v&B7|@!s{qm+8%7o&G8~v%9iX-;>ETB)sD6xk`I}kHL+G*K6|q zp49BmwDt60-s2sM_8brD6TK1N)@!4Ui_ymyR=t>SQ1X6SA8u2mKN=J~TJV-^>LjqM zU;o*$*CdX*QBsn2cGr75$d!G+#WibEL~P`8bFPb5@VQYp`kQ${MOpSFKDS~*SZJ{C z#fd!4{6?Cxq9Kr2WyK=tI>X+NpPV+qeDv+6m3`Nys)*N?&7%ZYT*aV)MadUG#v|-7 zbT>647*B?Y%WXAJEqv-wN2in9j1D~uPgBjVw4*aV84oqE!9O9?x1ey+vrA$e}lZvCL;G+7fqA2Y$92M(lQ1AK(^W^%O4JG8OB-4Gt}uu#;y)baK3l+aM7-+~Z@SEM+>O1|vgcdH1Sy^_hx zohumTk3Ub9s~uWY4=yVFOi_<=)8%6OC>eCrAF4cTo5c}T2lr_9gP4`x@TYLM; z(B6H#6{8u(deTpI*H?Jx4zx#t`=o@&g$XDP?PmRcx;bLAr11wZD|FYOg7zICh<6{zbbrjX%aQ)Q%$dKhl#qQ$Ew&hM< z(_gATF6a|gZs@0evSH&s-m)uez>LuL`(7ybDpVsKV6bG|YOqqeu|xmQ)gtE%(<5_# zuyI9i?@QO?#k%W(IbX{{wXaz;za^bE?aa|#`%?B~Ov6QZr0jg-K?CJq7dCwZH>3C% ztTB@Ut|!G^YYV)K_U)^C7S87iYfmmndMrNnJRw!&w_HDcd3%7BvCWP?BEoCi=x7UL zJGN!zy7(B!OM?^zLzph3?{>+u-rMg%Kk8QKy$m*WnOS$x5|(?MB%VLQx<=gTr1rnv zznJGr=z{&~y$+U0Ac=0dC~vjH>JQT+0v$?&(H5&D`g(QmqoBF;$?PM7%ly~H zcs{A5T|L=q*=y|K)T=hXKUaIkny1?6hcELJ7%2aI^;|QP^XnF{ZM&h;pnpsCO~hB> zi<4}Pjj!B1c9gWQJ-Lj=w>z#o&=2yK#KJDl6WpxDDV?1-c-004C z;CVTZX2cU3yO0{w>|Q(i@L+gt@Qrq;?nxElrqluH&}%^o<=x}cvpUCTy}d?g->PyM z`e%I8Uys>wzxe2+J!|Er*Aw{%{-)77n4?J#X=${ukX1$W1^cvrB(UY?7LF2S> z(zAgUZ`|c=fv9`7O-B>DW&$L=E?AdR>^rn>Jw%`WwHRkcX!N(a6qXXIWdC?%AK)2# zFB)l#K9pX1bZvqywDI#}Y{|N@<|Yco^{<^LpK>zmh;k(U$2Cyuk0+IW#?_>c19>F2 zem;@#o{cT21tLw^fO&_m^dL_pNSNJOnfA9Cr(U7*7ihUauGnLXPabC0DyR!$*#9M= zcWyWqxyGNuD&CWe8-x|yqKQy+RxFZSCY!nSHhBGKS97RG?XyMOj_3Dcol3G#uvUcc z)^JLa=xMH55V+4yjiqQ3O8+Yt=!vB$VcH5E{191wMElB9_9|*@X1=Jr`{&a$=%6U4 zVL3x54?bo|taVW$Id9I6SH4{)C%SgeBgB80y9|v^p49BO*WdZ_XNiO?##Em@Q(!*E zn#-YRF*``7zLl`GyM}rtvf>D4OA@Lf+gsWlGM=5nSSXXDJZ74{Z+)iYr0Y+9k}6i6 z`!Ipe@0ve9fgj8aJLi9HYRz&M<5Tn;DD*7xx9%ZF5~JAz`iV_)^Fx2RQctqo`jn7E!Otp$U(Bv9?bs#il(;NA6!6$SgeCm# zVxzCch_qA7{F%A=sx3q?Abx7&>#E%<^Q2R+oLk~c^Z#e*zD|tg~eJ; zVAA+QWjpgvu2^ra4k5UKoJ@YTc6j#i@j)u>iR-uc{_=7>0dosJTl32kb(LHb(Z89a z(-46k$V7<4z!rU9d+^TPyQg4BT$Yub%=B(L?hkR9ClS(gR;LbxTZDdmQycVOTpvHV|;3@BP@2I4AF`fiD zG5kDze+i_0*200o9O6eSy8AVvfTOs?cs2JHDHc844_2khXVHXcVYzp&tR|EPZjC0)HmUtCnQ zep8AEPK?|EMEH}sE(0yG<2EuhMAyey^0d{w2x;Ypr^A#Fm$)86B;0CYbKkZJfi_N* z`qv$RLjfZh#3L?el92~eYKn!2{~DEvPHl)1sQ0dXVc!<2JtVv<_Ax;uB0_!p#s$Ab zNlyITt||s^(OgBiFX+Sv&vZ2zJDs>G24qPicQhr#{p}I3L}R(uRY#OU*a=G7%}o>_ zER-pTt2Of`kM=h;x!WKK8-iQ_KtRIj8pneV-hBZO7qr}pmUS+pXeua%rPC2-5q+83 z2%mwOxq*Ey=i9t#iN0ci=1-0=1%H6YAvYz-=box+*iqxKp8X&0GVBSMm#l-~W=3Z& z%X%Jc@b(N2KP%6kBx3Y+aNNl(t}$j0S5mAmq&B+c zaqf)NYtr9wlnQTuGnSv5n!d(86bI7s{?+uhq?;-#U>=&XNN=l~oR|QrQ8f9H3>khd zQ~Q4mK|b&Ifh+=w=C=ju3Lwza2Y@n>QBe^ch^lGKe=2?PsS{j5a#&2c#JRH?EJ=y^A$rx553 z!-esdk@2lg`X1DZ!QL)*>a&FGlEe$IdddLoq<>tKqJp{t zkfbFM*zXGnXs8fP@2gBsjozDgK5_i{pyUsN2Jcj+t1Zc4ghOf-r;qb(#MTA2K8oxD zoVOt_J}|~C6AR89V>mkQO!tEY!A)v<(RYDRi0WBzeoU|qq*SltRAHeUw?^f1xv&ny z6C3uuNWGk9!|Y8|TA1;YN9QGoQFG#Mbi>}q^tJXY;U5pksg@$_Se}#IZ=!mV*;o=|5&fh)Oh?<{X{E2j)4&2nqnVI;|Zi9F#;AfG5EK!c1 zBO~E}pSX>JwEkmR8F=U{Ktv4hiB@A2nwL;0Ylzc;>Ip>e4I6NRT=wouyAXa=?^3%- zkCFyI5+vQR*de|p!08cn@a?$XuhHy1&?NMsjyR0NHv9Z&-P+0?q zJKAfJQh;O{ubtu~V!}?m1uIZE5Mm=r%vPHR4-k04NsJzXCy!2$=sIq0S>O-qEr{`P z09t}01w)||h!FO+qCXfuPXz2Jc@WX9pTzZERnisde$VlM?Kk zpy&lSar)fxZ)4**pn)7{2*5A^YSEv!!G;6Y3+OHR!LMbn_2zvm>LYOGT3RovRpFjW zpg<*UY8=-&!CYoq3}lSEd*u<(&7b{AC4*;XW_-{^W{vn$Gc&DSHbS%rNegmo{2`O~ zeW1B+%#!$H!T@Z$@i#&Ys2nutXnNTZ`a#(Ac@zo&f2g$21d|5(wBfNPb9V(`p9s;3 zwhRIK3m`vqE6;E1%I5tbCPD{#$jC!gTd?5`V-71Ja%-%D1KNc5w{XZj+iwHVd7$}5 zwl@K!0C4U$IYHdI*N*c{C1WE;H$yAz8MklnT-&7yCc!acxvJ|dFIEMT?S9=_y6!;3 zY4WTofm&b)GAId6&E3~K?rb?j|EsO z&H%{<9~}93klzZoBVcI`wNqeF08bi7q$d@n4m9gy!+M|pIvE`qZjpaHdWd}zn(Q~m zit9$0te}~FosdmX!xwi-Fw<3?)*w#kT2`yJvWCxfcO7p3()}Q?89!=w z&q`sZYIHvw6w;7-7lAO$P;`9*bRpmdB4cD+wO>NaP2SxQ?uI;^nwsRb2Ym&|>;b-% zkA^Eag_avaV1on6K4>&RC?YE@jRKyYU|EqRb^?CnHl9?vj}h1oK=MF02eDAMmv5sS z_Cw)hAp&izSP;mh<>Y)dtLy3Maj3t@!9fV-7@U_EI=x|n`{yio_biame=>^=ByJ$ z9Tg-`f(|c3CX@&WgJBN;A~VqtJ`WLqL0HQ^J}5V-mC-szcn;rf!+1z1VvhpK9LlR+ zc+cTHntij8K;Q$H{@u=d?)3Kg+}z7j*B2Mm3T3CU7!%P ziWD$jsG}i;Y4R!26vygX6t+6Ne?3U}gTA>yqyZkzwc0~TfS@P99&`tf6|On~u3LJ2 z)>SijC2aWQFssRdT;A}i?1ccGdtoYIpoD8rzhkjF9cQB8>M8=TIhXn%*dKxO5q($L zeSCcUZa3Vot?}9mj07+O`zH{jwGMS2764?6xNl{1@men|Wa@%?2w zpWu)6T;)Kn;!bW%)PhQU!-pz*qYy*>1V;l-adBGkS`b1%#k?nVD^Lw6>CPK*D-!Tg zVjHK2?-KmdEOmh4iHp^(+}Go9o2#rz^3eFS+8I9|xQhF4mgWRpw1wpF@-#{IOHf;y z$jMnWWxVO$$v>*0p+8sG61H?ekJC`D_Jvv9b+u-9%7G=k^qQ0uBLq^x5Df@$KSqg^8dbdU=LQJ!(d4R+_O4)>w{NNo_Y4oWdRg11)hnUe?cR`4cZtC;z#7MT71 z4g(n#xZFsP-&=36UwSc~JuIxJr3i^ugY!@%e-5I%YAwf+^iCV|U14JkO z_f~EKuf8zE0H!iT<^r6`*SqDNa*B$iZZ?KB?j@c^k>JhfyT&CfOa(I)n2R2Z%mCFc zPOKIb5HPki|E;nALrTkKyyn=FI7O9;E1eu|X+*mM1dpb*z_g&LufMQXtgNbfCsqmj zKwyC0CK~+~1j*_S56NieNab8iteaCZ+eE%QUARs)_$N9c_3?Y)N07pmzy7*-p4T|^ zZt*=Vl-E`o<9H*fR6s#N0bK$$=e*35sHiB={~Y`99y!jmBlTXM9(z#oHa&I|7-mF! zv+t`HFKqWjZ}#p7n7sD(_rb|>M$KPQ%Tz>Ck^#gsa0fOnWC4Ez$}=2n8E9OCOv46P zZ?6M8H3rx}vYvq0yFi$M$yW<{97>ZI;dPM~SGD55VBZ82Iyoa_#5r!A?3sbGYtVBD zMp;i!iK_wvQE%RG#ZfVLk;{|AM7$x}2bSuoH*IinHv}!85xKO%0vD#9;13pWOE`IX z!8`c2`g&_GiPp@L2I<)t>?+yo)?|g21NST~i4O{8JwUKQx24Z2>bwxMQ2dy3C=AAC zW#wnpytp!vH?cVxzeCFNr8te8yu3SMZV-#9R@?}KVpLq5@Dc$A8a>Zw;-V`B3eeGh_iYi>a& zN)JDw>K{13DFjw5?^>mmula&l+}7&9d5@?Ts7uARtJyy9iAIB-0D^Sqoho46H8$)r zS`*01`saA?ohC_Q$Mn-+Pg(8u6?h7fo!8p#ZcA~Oq`2v8T@&=VuIsyW5Kc}V3h(Ui zFKbUTwkW9bG#}Wxd&PsGgNJbfZ`?V{ytpDH)PcW%yU%tE#e);S!x-Se*)I?0(jwLx8IQ>jO^ljaryh|r;hpZlQ%YP;LIy#6 z%%?i<>3u5jG^0I#Z{)pX+5%f2W$fB<9Xqp#=Vq|0lD<`TDFIl(1 zIBa6V95HFJuEN>} zn#kH38t~?`f0%r~j2IV!N(kjyPRk7*&ZPe3LX`B+nF+RThZ9c(j~)nX!CGGKzRi`0 z-nna7?Me>Pti2y)wSgd`vjB(j%4#{^sT;3IDlcOBk>MMdJH?7Qirpd*HK|ky;+yu+ zmZ4%RiPn97QFPF~aD%pW`uifsEr*wRXhVLXDz7uq+IL5GUU#%Q??k*OQ@(LJ^h&*E zjg7&-r^VXbjLbdY2!nwkd~GJ)ZUV?{@E$UN0`T$F7xFHre)G?-OIYNJF35kCHq$yC z8iiNdeqZzRc<9yi&}5w^O^k7F?5_v3$+~!Xm*6VQ`(ks-isM*vme$+H@({Ui?H08E zu;sVKQ+f35%vl4|AqPjpJ7NLzw8_^!9nt1k$*ZJVy7Qls?Ybw{I-GyqThs`o(+&wr zA;vpJH(Coq=cp%Tx?aR(~MpgFE6YR~B;Q1=NC#j$dI|C)QARSP%mf!4%hlxUxbCkqj$ zA1dI%=e0w+*8MJsoQ!M?@)usimh=wlV8mm!328vR zY*0!Br~nfRu{I;A7T{!`t?>Pr;47xMAkz7o=z=k&4MqxOCNt5+F5gRZ0D4&rzi7{9E7?|aH;3)$3ycnFt(00*U( zC;?T4K_G}6!r&--(OpPUOwq;ldhcZLSnzRP-e-l4t8%3=Ew|^;*P0UXBJ*L#eh($m2?sI~3=gmXNzqm?VkS6)TR$Bim zBU{x7Zk4~r9^aGscMMQl_vOC4&y&foDxtooQtn5l^fZ`lc>4HC&3?z24 zR#xmI?u%DIc=xp)>_jtq{`+>(SBEcJv;+6E|_Ih{V5vjRSs zWu(v87biSTQ|T4Wmh{9n{>)3Y+t_BTem?dJ(sB0On4+D%$+CD~s-Z5Vh-W>gN7<4z~474~p=xZhyIz_88> z-MtN9A=rGI+D?aLkb>eKeg4dwcmsT!RT5B+0H{PrLeiWf8&vq$*Rw%w=&c^by`8eU zFwmXCHl%*uLC$IM`_G@OVq)&OK{9fauh9FP@B6swV!ZutO?@!`GfJ#Dtc^90Um5-J zW5%7$$-#lk)6=uaw82xZMQ+?KY_R8tbFa{CTwA^TiJ?A<@+WEZ4c}Jf*Q#^$Jef}? zdF_bmpwZWk_jU~ONg5^rULBj9^e13&HSMn70IBraZrusye0b=8260bEPQvSO8+cyg zU%z)M{MMGfJD>B$EmS?62*OVnFAhPFYmEcZ861Wi(^*nY18ps91ML(Y$XDsk7#tFf+dFeH)Y?s#2FMk;^K^lml@s?fTJ#mU)uVx_9l=)!+nFfDj2 zZyX+~E1D$Xp}MW+@lClKnJa3qkQu+^E>zpVL4D@_wbQ=G>*{u&oQ7tmmF(a16l_iB zn8&u&{(5e484q>&)B(QSdqSBx_54~_R+5@4jAjmNpRjDQZW*0^m=(+&$6Iyv_qOiO z$U)O$c>0FPBfFONfnqGwvJqp-q5`dFwH2%DffN=Q*@m5^e<_uT8{W^#s{iNP?F+EA zepC;85BrTN&Rg+xDAe416>dn0-Ir1-UgLm*RYCZimH)4Ud9TUP-(}=3$lv!I( zBxYP4cy*EJttqBO>WKVy=BaN1^#T2|ppXzr zMJ~wE-Q4y$6cq(ap;(-m(C>()1^x$wh$s|4KR-^sa~VbPfTsZiDQtz{4=k<|#hvnF zVhmx;kO)^~;o~C%WB&AUOZ1?n_>fH2x3Ia@ivah^kdaYS&uP{5KE7n+sNilyOhn|g zZ+8ol^}$;m_k*9IoHD?+&K~PzZ^~kC|8TPIq>9Ed%liWS=k~=LmxhMcS2_feG!^T!XN{HR4*T* zF`Am}Qu9}EVDzHT99?dh=B>3a@%VjPmi5j%t!-}uhg7~=dx+|9HRfo;LUy^*CwYlT zNpeBKs?X9b2#SHH0Bad#V6VEMC~Bmi1$Tt0DHDvOa1Vg&6wrKRRE1g1Ew|SwcxRa| z?Au>giTlq(aT8eF(|QP#>kO4|-3mQ=aey3Y>IvK>4x(g-rCN-=J58TIf02>9-`?wO zH|u~kRSDq+fIf=9<)vTjeVmzK3(8x!&Z}7#=H}XMKxFmpGi&msN!Vr>q-SjYC1R8A z6>D)j+-RV#c(A~TQ=R3lNAFE86DA|}n6d)#Uy{>LL}=fC(0$+tvsorA%zu!&MSvn8eMLP{C zTWG9!SRJm{`{JlciCdn))qA%=(Yk$eQ72q}f1hJ;pf0YoPg8taB&d?stk9WDK<4f8 z;dtmBH_!eg?#AU&ulR)FzDes7u82$b-*$#SoVMbn7jK;u;p4NfKa6@5I7VnE_Rb+lnSi)4#0O9|>O~6!1Ry40 z0|Dd=Trcp2^9#M!K!D@~!f}3Q2!h-nUJUUA8KbxFWDVNG5*~!uH{SP6ESHVypxp=% z%pM?0D9Xix$2d6|f%kyPK_yrAeS~@*czK7?ZAgPhoQO0uNSYb^K#JN=QMlaa&#V$Nj%@Mq_^>E)6?a6Mwu}h6JKD}2(JN8K0*t8|E>)m z8kG2=!LX<1-i68zqy@a9hEki_miB(FU_oZ)iKsGw5#!_IYGuk=#>PCnX?+hAwG-1p zX>J=2E&)(&W1*nBM;ZA*l=6Mci>=FTpeTo2GSNA`j(Y+S2{Y~dEHxO)ZIS`GMUYoF zU!>XiIFxR<2RH$ECmH(cpniu-q4riR5CBoIoQ^>-PvgiFSW5x|>xPCLBdCJ9h9LXz zcC3I2l(=_aDmZnn&}9AzdOky9CA~^M9g{7=0OkdH2GX5FR$gB95k`nx!C8^M|KP!k zGHyOT4IW*V=Pd9qg3t*_4&XAhfc*i;v?uB2hY5SdfbuIuA3i~qjwLxA4=}pO7D-9c zEk}%Rnds`W?~Z=|E@++9ilK!k4A`A7HW|)hV)?}Q{zE#H@_-@&E0P^P3379+)u1Z+ z-cg>;&PyJx>yYI0)w@fiDqlowWjPCAJaAlnMI&%l%Lkx2Kz58Gax>)WDtq;cx^MrT zL{frL!9{RG5)u+h0~rHA9zlW?z>e?6oB`VgU95uBbeE76BSM;NQ2 z>PUvh)g4NUQG+_gF0wN0-{pB>fuBFi0oup}&>DcEUSlS3O|Ds+`Q0XTE*?4jkk^nwGp@H=jVrIQ(Rn3PDK@ji2Jj$2oQi0 zjQD5Ip4B$lTCxEP3p_9g4vZRWe=YECzjq600j19DCxDL|p1YWzlOuEM77+k#5_54F z&@F?cnFZv)BTpf3?2dAvcm*3vSSW@+H@zK71qyUK1_5P88JO}hF_}tBOMkFvAwksx zLJ3-Ue>7}i;(8K{ynu#zG0eGEcmE~l#rA+Tm?Qb-y=^}l2U0)sw4EFc0@ZqLFX>+rPnqk4?5>9pkY@Nk9?$2DoU-0OE%eVsZ? z5J;1ramiKV!zd#}#K7g(xKeC0D1?gK&H3=M5c7ms!7cCQP6gnrXf!69F`O;$HkfBl zyx?9o2UIN$T+KTzN{4YfNdm3=TFoD}?z%WR)&F%>R3e}Ix2-Ql%nJTTv9?F8bQ0dn zMnnVZ>5;E=r4V*KB)d%){kcc!RYStU0>SqLH|M>3nbn;D(K3sRd+4=fZ0rHVscRGB zK>OCHAfZUAE9U1_RAc46f!m4Sz)JFNT^`Wc1G~8IWifeq65;Ll1i(zU!Nx-GctOHoq-}6xE7}cdG!iW@CPF3 z13{qRf&kb>aF-1SV8LU@Gmp%tmO@tFTzl9JY#7wyl^?BLwu~H%J!pfW0-iW1H)$5= zl1SsiGw&K5H97W%nHx+Sy2fsJkaPln%dkz25+V9UF>q5!2`PA|>jZ1zyHH8ph_4N} z`1q}NBLGw8DZ6mF%Ai6u{Hj{UEep%$2_=YEwHo0RsLZ&mWK~wit=#Y?rCE%clT{q3 z#{2UqMNsndEm?n$p?+|}@)+u@Ts_RiiY`<(ppjaN}u)8EqnY+W+Zq`c$n5tfjR|V2ABhgS84{dkqkcl0+CpyBcRSH(3S2S4gt6OHI&uBFOWniyS%^- z?DU&xw4ng9Ag&&jd>R*stn3l-G@{PX86g`>vVlZOiP(G>1hkfbX(Bl}S*E4ZefvRB zS*oJEyl8a@QoaV$4NiVe_zw#~nj-h@1?DoxV3 zj@hs7P{Y%wU+r4-AOYCudD0jES6^2i4(0pxN7<)riOQNS%NRmg!i+s%OIae3v1BR2 zplHaNeHq#)WJ?N#?7JvCW68en%D#+jGu|8hzV&;r_j;e}^8CT$S?>GX=bZa|&iS0q z*-Ta?0Jekr6%q(gxP71s7-IZ^bQjM*&oa2Y4y-V+RVS`wVnl(daaO0YiH~@|vs?RW zWyPtRXy8So6apk|W7J_9E!X!j@CcRA9;K}Z(2@Q;$4^Jb)2nBE`k9pB7vZ*QlsfRG<1{m;?l9aOFG@*Z@42YCztkf5L6^Mi>JL2T z5eqI6fjwASkQ|3$8B$VGPBF1ga~}doQ6h%`lVPzuQjw9Rw_A9i{{fZm0lVWUd^a6I z_`zh)HXI33{5#QcfJPG30GCvjNVGnC)eZoUwe975ap3(9Oy%ISs3=a{GqI2tv>Bgi zKOLm%;MK?!koNWq!G*lS!decQEl7QN2uxgDk0y#gM)F*Q^UIvP+`4by0AQ^AAgn~< z_N@_MpxH}Lg9XQ_*V%yqnPY)3*Z{NS^uwk#{-&TJK=qdbYBzxf0ZOKTt?gJtlNBpj z7_ec}L6IkmhHA{}{htz~fDWZ-WxVg`7*o&n(NIt!3d|r5I6WLW>;ihSz&rwD4d7`# zIZC*YkOut6*gs65w+b8pFBFff;!dw|IQ-Ca+ZRbFg2p zm+iOSCldT$>c-k0bdMb5ngrn~4z^V`2IZn-sqeVkyKGb(9&pd#;zP^7I^7YbQeGmA z$I5?$ZmY$$+dWtoi8_i;xq5(V`3&R!f?FTE20KEYKd;vUJesjK3n05hd(P6($U<3A z;o{REyGUk$Uly=I9O4#SODl3%>nWedI|Ox8KiSf%W8oR6`6!l2`ag}Dhh;!ro9h;`2cYzjH0mYO8=T+Lge-@5L* z`!8tBo3aLLcqkPas9!9zy*tIsr4Bdcc$hb;$RjX#j9>F7P8F`nK=)24-^w9#K>dDg zlF;|_EneY~bt3Qc;_uJ*^w%-I^hx`TqD;cj0)sbW-m+bJ#8%;GWYAGf=SDoln z+uZ%qQRzH{0tkp7k-yzSIaE|ZyyRcdMHLAUA&MlDYLD^oC&voE?oDq+MM1(%>K*Za~{~K zOmkx`sC}MFpEdNV`YrNYnc0~wfXTp8_|Hc9_cQ~JYl>UpHaSL&I>OkCWHy(>-aout z$Hd)c&vf2Eqm2Iqh7rl=GPS85z?I>$P*g;x?#F)B(#?MusK4EV8R9S8 z4J?LH)%5VQIy_vF{#UYw0~h>p4AzRYT|tYzD;vqUgP$Bc!CK;W1qsAI9YBxT_8{hW8Q|}eUUaAx(E#L(qH{2^uG&K0^5tWs= zdT1yo_$-Zh+MO(>rV)w-yw2@s08Yb#Vf2``AH8m?v2#3ITEvzf<0?Wuy(%=oMImCF zhW=-MX|&RuhFqlKB(?dV${Ksk>&7+|Qe5l1e$z?vMM5v;fK=>A%-ln9wkQ zJ6g}+tPO-v^L7OR|K=KMp^oTnLJE2Ag`wgoM7h|Zq`TXio%7G=?KB&`J=4+YOkPhi zm8GTJ{Av=}JK^DCHr|T-`q4Zo5iJ-$|8B~V}N9?YWOuYRWJ0sVgcuAa$r&7sBdF$L49 zOwU`N4UaFlDqG4NP>`EmSq{ z593vIs2W$zc`87uyx$)gRm`(RMm~A2yn{`O){U_4M!)@aJyz^O->G5D^U*umBwd0y z3>V~aSLxY{0f}A=leaB)!oSHVBMF! z{F;8m_n03{lT43J+$e>eiS{MJZ& zt;)Lu%c{>I@0;^HZZJTZk&$QOeZG04N?$xb(%Yqs0ZJXkkIQ$2a(=(eK35afS#@gn zmr5J7-9bws)J)mp3n#4s(CWHUUPB4I8Hb8_PCL)DydT({O{#E(8AqK1dWIQ4DyFQ1aD424|x05~J18%t`w zJV112b2ZM$&Q^1E-2m;+gX=EtI%^nY-tZFGCkH&CmU6#Y*{EhghRi1$MUh*CGfV3G zGd{O)20Bkv7;n&S=)Jy-u)e7=DCZvAo7IZ~mvOL5m+wmb^@CI)41!?YSkT*^|&2Q^EUO7s!55$IhEM5-IhmGoQFKp`3f_;_iwKc0`Hz)N39;>L50jdelr+It z;sjIXtqHS^@x;?JBM;cb{e1;03wv9997wl4{aSt{*5;F;6#LvH%|nM}{xz_{bDQJ3 zbUQyw__}xHGb!n-?=(MvZA~o4(!Y=GAEYv|tIgsRT9P)5XzZC^!B*0e2#mT~9bw;x zicuo61RxNy&Pe>o{LFy0=@r`S52gh1ol@UVElpWXBV{m_V0+~U&B^kLZ8EA*E0Dm*^?^^L6VAC<{00lT4H$2 z3MM*p-AqO(|MUF^*(xR&(en_`%_VsW{fgtGV@{fDZ;t7Z!ctBHGKS-$r)20v%g&mP z6hiXTm~9czy&nT|ww~M^k7M9Tzrvt!$HPhsuxkNF#5FiYGD$V2g5~x}8~v_LNbET$ zHWY1Pja%vcTfc53rSQ@@-ah7|_dC*iG=_B-i%63b1RN`%D4FA$2^~;Kv6q$D2p&r6 zDcdh}bmPODGqaymyjBo8S1}VYVn-O(#GjVy=l$#N+;F*ACw@H@+gbSH)^c4;EHKw}yXKZN^XKV&k~%-*5<*;- zWjQNEJIXhsVd~F(s)G&UWv8%pwCTyS88KyL|GKkWDd;9)g*jdU)L8S~-mys`i;P4m zGcV+OG6Ae9xzpKM+$ggCkq|s_{aYgXR&@W|Ma z0LZ?t@4Y`#TuN}y=gaSWpdnI<@!$+S@uysjepo=3>B(jyL#Vgu9(g6ZrD8+)>A9sv z)x-jv-td9=L~HPkqrB)sdU}~_Zk1E^3`18NyDI$)-4`xE&4k|s-7d0ya`ep?AHgUS zq?Xg?3S5(a=#q)0c#(yydL8;o9#wOjNEJIV zjWyf9dF`mbxx-3a)d+I%`3LuRD-N z>Q^1t%`oQifk?`7XBRo*s>|wlCbUDZoU+0ZRy`i%=Tz#>$3#MDBFo&9;5M0SoO6_M zBym}m;YsE4QY*yAv7UH=-PqK3>__uTwHyMkYp30X|XS#}2IZMA+JwKx=vQWaUq z0QH?8R^q5-H`EMDZ;i{;1f5xUq&e!2V@Z>RQ>^B! zV4l|xf~FnCU0q?rRrbj14RY@C4g1zeqpzbH2!$;5iaAR}uARpRD6NCNLYnjI%M97a z=gN7siv31eR~s4*wT*4Ovj$Hwo*S{fpN-!fTbMrQ>GdN!qc@#-^oErJ>R$Xz5z*ffYGV_GOr#5RQAb`g%*kO-to%gVN$g9zlj}i)IbMrU%s?Q>J^;eN! z=0*1wT+XoOJ6`DvC!<(QzqLA_=pBl}I+q_URdn%3Q5T!~JKq^`O2&i}>CK+#hv!<} zT{YPo!u=3Cyyo!ay6a>ov-S-~aN2WQrz==vWy&gsnCp5QxDLKLyR|#$HaUWCw?D|FLi#QnR@= zEiuNPIu&-w=?2&SJpGi9AZ5ka5Die`TQ1D`tU6aWAK literal 0 HcmV?d00001 From 0a4a0f8a78b1cca36767a9580a854704bbb3599c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=20Halfin=20=F0=9F=93=AC=F0=9F=94=A8?= Date: Fri, 9 Nov 2018 21:44:11 +0000 Subject: [PATCH 174/201] Merged PR 12735: Update to ITDM --- windows/privacy/TOC.md | 2 +- windows/privacy/gdpr-it-guidance.md | 81 +++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 17 deletions(-) diff --git a/windows/privacy/TOC.md b/windows/privacy/TOC.md index a229e2df1a..6148d1201c 100644 --- a/windows/privacy/TOC.md +++ b/windows/privacy/TOC.md @@ -1,6 +1,6 @@ # [Privacy](index.yml) ## [Beginning your General Data Protection Regulation (GDPR) journey for Windows 10](gdpr-win10-whitepaper.md) -## [Windows 10 and the GDPR for IT Decision Makers](gdpr-it-guidance.md) +## [Windows and the GDPR: Information for IT Administrators and Decision Makers](gdpr-it-guidance.md) ## [Windows 10 personal data services configuration](windows-personal-data-services-configuration.md) ## [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md) ## [Diagnostic Data Viewer Overview](diagnostic-data-viewer-overview.md) diff --git a/windows/privacy/gdpr-it-guidance.md b/windows/privacy/gdpr-it-guidance.md index dd46e67249..d7673c5f3d 100644 --- a/windows/privacy/gdpr-it-guidance.md +++ b/windows/privacy/gdpr-it-guidance.md @@ -1,5 +1,5 @@ --- -title: Windows 10 and the GDPR for IT Decision Makers +title: Windows and the GDPR-Information for IT Administrators and Decision Makers description: Use this topic to understand the relationship between users in your organization and Microsoft in the context of the GDPR (General Data Protection Regulation). keywords: privacy, GDPR, windows, IT ms.prod: w10 @@ -11,12 +11,17 @@ author: danihalfin ms.author: daniha ms.date: 05/11/2018 --- -# Windows 10 and the GDPR for IT Decision Makers +# Windows and the GDPR: Information for IT Administrators and Decision Makers Applies to: +- Windows 10, version 1809 - Windows 10, version 1803 - Windows 10, version 1709 - Windows 10, version 1703 +- Windows 10 Team Edition, version 1703 for Surface Hub +- Windows Server 2019 +- Windows Server 2016 +- Windows Analytics This topic provides IT Decision Makers with a basic understanding of the relationship between users in an organization and Microsoft in the context of the GDPR (General Data Protection Regulation). You will also learn what role an IT organization plays for that relationship. @@ -35,7 +40,7 @@ Here are some GDPR fundamentals: * The European law establishes strict global data privacy requirements governing how organizations manage and protect personal data while respecting individual choice – no matter where data is sent, processed, or stored. * A request by an individual to an organization to take an action on their personal data is referred to here as a *data subject request*, or *DSR*. -Microsoft believes data privacy is a fundamental right, and that the GDPR is an important step forward for clarifying and enabling individual privacy rights. We also recognize that the GDPR requires significant changes by organizations all over the world with regard to the discovery, management, protection, and reporting of personal data that is collected, processed, and stored within an organization. +Microsoft believes data privacy is a fundamental right, and that the GDPR is an important step forward for clarifying and enabling individual privacy rights. We also recognize that the GDPR required significant changes by organizations all over the world with regard to the discovery, management, protection, and reporting of personal data that is collected, processed, and stored within an organization. ### What is personal data under the GDPR? @@ -87,7 +92,7 @@ It is important to differentiate between two distinct types of data Windows serv A user action, such as performing a Skype call, usually triggers the collection and transmission of Windows *functional data*. Some Windows components and applications connecting to Microsoft services also exchange Windows functional data to provide user functionality. Some other examples of Windows functional data: -* The Weather app which uses the device’s location to retrieve local weather or community news. +* The Weather app which can use the device’s location to retrieve local weather or community news. * Wallpaper and desktop settings that are synchronized across multiple devices. For more info on how IT Professionals can manage Windows functional data sent from an organization to Microsoft, see [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md). @@ -100,10 +105,10 @@ Some examples of diagnostic data include: * The type of hardware being used, information about installed apps and usage details, and reliability data on drivers running on the device. * For users who have turned on “Tailored experiences”, it can be used to offer personalized tips, ads, and recommendations to enhance Microsoft products and services for the needs of the user. -To find more about what information is collected, how it is handled, and the available Windows diagnostic data levels, see [Understanding Windows diagnostic data](configure-windows-diagnostic-data-in-your-organization.md#understanding-windows-diagnostic-data) and [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). +Diagnostic data is categorized into the levels "Security", "Basic", "Enhanced", and "Full". For a detailed discussion about these diagnostic data levels please see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). To find more about what information is collected and how it is handled, see [Understanding Windows diagnostic data](configure-windows-diagnostic-data-in-your-organization.md#understanding-windows-diagnostic-data). >[!IMPORTANT] ->Other Microsoft services as well as 3rd party applications and drivers running on Windows devices may implement their own functionality, independently from Windows, to transport their diagnostic data to the respective publisher. Please contact them for further guidance on how to control the diagnostic data collection level and transmission of these publishers. +>Other Microsoft services as well as 3rd party applications and drivers running on Windows devices may implement their own functionality, independently from Windows, to transport their diagnostic data. Please contact the publisher for further guidance on how to control the diagnostic data collection level and transmission of these applications and services. ### Windows services where Microsoft is the processor under the GDPR @@ -123,7 +128,7 @@ As a result, in terms of the GDPR, the organization that has subscribed to Windo >The IT organization must explicitly enable Windows Analytics for a device after the organization subscribes. >[!IMPORTANT] ->Windows Analytics does not collect Windows Diagnostic data by itself. Instead, Windows Analytics only uses a subset of Windows Diagnostic data that is collected by Windows for a particular device. The Windows Diagnostic data collection is controlled by the IT department of an organization or the user of a device. +>Windows Analytics does not collect Windows Diagnostic data by itself. Instead, Windows Analytics only uses a subset of Windows Diagnostic data that is collected by Windows for an enrolled device. The Windows Diagnostic data collection is controlled by the IT department of an organization or the user of a device. #### Windows Defender ATP @@ -140,27 +145,43 @@ The following table lists in what GDPR mode – controller or processor – Wind | Service | Microsoft GDPR mode of operation | | --- | --- | -| Windows Functional data | Controller | +| Windows Functional data | Controller or Processor* | | Windows Diagnostic data | Controller | | Windows Analytics | Processor | | Windows Defender Advanced Threat Detection (ATP) | Processor | *Table 1: Windows 10 GDPR modes of operations for different Windows 10 services* -## Recommended diagnostic data level settings +*/*Depending on which application/feature this is referring to.* -Windows diagnostic data collection level can be set by a user in Windows (*Start > Settings > Privacy > Diagnostics & feedback*) or by the IT department of an organization, using Group Policy or Mobile Device Management (MDM) techniques. +## Windows diagnostic data and Windows 10 -* For Windows 10, version 1803, Microsoft recommends setting the Windows diagnostic level to “Enhanced”. This enables organizations to get the full functionality of [Windows Analytics](#windows-analytics). Those organizations who wish to share the smallest set of events for Windows Analytics can use the “Limit Enhanced diagnostic data to the minimum required by Windows Analytics” filtering mechanism that Microsoft introduced in Windows 10, version 1709. When enabled, this feature limits the operating system diagnostic data events included in the Enhanced level to the smallest set of data required by Windows Analytics. + +### Recommended Windows 10 settings + +Windows diagnostic data collection level for Windows 10 can be set by a user in Windows (*Start > Settings > Privacy > Diagnostics & feedback*) or by the IT department of an organization, using Group Policy or Mobile Device Management (MDM) techniques. + +* For Windows 10, version 1803 and version 1809, Microsoft recommends setting the Windows diagnostic level to “Enhanced”. This enables organizations to get the full functionality of [Windows Analytics](#windows-analytics). >[!NOTE] >For more information on the Enhanced level, see [Configure Windows diagnostic data in your organization](configure-windows-diagnostic-data-in-your-organization.md). * For Windows 10, version 1709, and Windows 10, version 1703, the recommended Windows diagnostic level configuration for EEA and Switzerland commercial users is “Basic”. -* For Windows 7, Microsoft recommends configuring enterprise devices for Windows Analytics to facilitate upgrade planning to Windows 10. +>[!NOTE] +>For Windows 7, Microsoft recommends [configuring enterprise devices for Windows Analytics](/windows/deployment/update/windows-analytics-get-started) to facilitate upgrade planning to Windows 10. -## Controlling the data collection and notification about it +### Additional information for Windows Analytics + +Some Windows Analytics solutions and functionality, such as Update Compliance, works with “Basic” as minimum Windows diagnostic level. Other solutions and functionality of Windows Analytics, such as Device Health, require “Enhanced”. + +Those organizations who wish to share the smallest set of events for Windows Analytics and have set the Windows diagnostic level to “Enhanced” can use the “Limit Enhanced diagnostic data to the minimum required by Windows Analytics” setting. This filtering mechanism was that Microsoft introduced in Windows 10, version 1709. When enabled, this feature limits the operating system diagnostic data events included in the Enhanced level to the smallest set of data required by Windows Analytics. + +>[!NOTE] +>Additional information can be found at [Windows Analytics and privacy](/windows/deployment/update/windows-analytics-privacy +). + +## Controlling Windows 10 data collection and notification about it Windows 10 sends diagnostic data to Microsoft services, and some of that data can contain personal data. Both the user and the IT organization have the ability to control the transmission of that data to Microsoft. @@ -200,10 +221,38 @@ IT Professionals that are interested in this configuration, see [Windows 10 pers To find out more about the network connections that Windows components make to Microsoft as well as the privacy settings that affect data shared with either Microsoft or apps, see [Manage connections from Windows operating system components to Microsoft services](manage-connections-from-windows-operating-system-components-to-microsoft-services.md) and [Manage Windows 10 connection endpoints](manage-windows-endpoints.md). These articles describe how these settings can be managed by an IT Professional. -## At-a-glance: the relationship between an IT organization and the GDPR +### At-a-glance: the relationship between an IT organization and the GDPR Because Microsoft is a controller for data collected by Windows 10, the user can work with Microsoft to satisfy GDPR requirements. While this relationship between Microsoft and a user is evident in a consumer scenario, an IT organization can influence that relationship in an enterprise scenario. For example, the IT organization has the ability to centrally configure the Windows diagnostic data level by using Group Policy or MDM settings. +## Windows Server + +Windows Server follows the same mechanisms as Windows 10 for handling of personal data – for example, when collecting Windows diagnostic data. + +More detailed information about Windows Server and the GDPR is available at Beginning your General Data Protection Regulation (GDPR) journey for Windows Server. + +### Windows diagnostic data and Windows Server + +The lowest diagnostic data setting level supported on Windows Server 2016 and Windows Server 2019 through management policies is “Security”. The lowest diagnostic data setting supported through the Settings UI is “Basic”. The default diagnostic data level for all Windows Server 2016 and Windows Server 2019 editions is “Enhanced”. + +IT administrators can configure the Windows Server diagnostic data settings using familiar management tools, such as Group Policy, MDM, or Windows Provisioning. IT administrators can also manually change settings using Registry Editor. Setting the Windows Server diagnostic data levels through a management policy overrides any device-level settings. + +### Backups and Windows Server + +Backups, including live backups and backups that are stored locally within an organization or in the cloud, can contain personal data. + +- Backups an organizations creates, for example by using Windows Server Backup (WSB), are under its control. For example, for exporting personal data contained in a backup, the organization needs to restore the appropriate backup sets to facilitate the respective data subject request (DSR). +- The GDPR also applies when storing backups in the cloud. For example, an organization can use Microsoft Azure Backup to backup files and folders from physical or virtual Windows Server machines (located on-premises or in Azure) to the cloud. The organization that is subscribed to this backup service also has the obligation to restore the data in order to exercise the respective DSR. + +## Windows 10 Team Edition, Version 1703 for Surface Hub + +Surface Hub is a shared device used within an organization. The device identifier collected as part of diagnostic data is not connected to a user. For removing Windows diagnostic data sent to Microsoft for a Surface Hub, Microsoft created the Surface Hub Delete Diagnostic Data tool available in the Microsoft Store. + +>[!NOTE] +>Additional apps running on the device, that are not delivered as part of the in-box experience of Surface Hub, may implement their own diagnostic data collection and transmission functionality independently to collect and process personal data. Please contact the app publisher for further guidance on how to control this. + +An IT administrator can configure privacy- related settings, such as setting the Windows diagnostic data level to Basic. Surface Hub does not support group policy for centralized management; however, IT administrators can use MDM to apply these settings to Surface Hub. For more information about Surface Hub and MDM, please see [Manage settings with an MDM provider](https://docs.microsoft.com/surface-hub/manage-settings-with-mdm-for-surface-hub). + ## Further reading ### Optional settings / features that further improve the protection of personal data @@ -215,11 +264,11 @@ Personal data protection is one of the goals of the GDPR. One way of improving p ### Windows Security Baselines -Microsoft has created Windows Security Baselines to efficiently configure Windows 10. For more information, please visit [Windows Security Baselines](/windows/security/threat-protection/windows-security-baselines). +Microsoft has created Windows Security Baselines to efficiently configure Windows 10 and Windows Server. For more information, please visit [Windows Security Baselines](/windows/security/threat-protection/windows-security-baselines). ### Windows Restricted Traffic Limited Functionality Baseline -To make it easier to deploy settings that restrict connections from Windows 10 to Microsoft, IT Professionals can apply the Windows Restricted Traffic Limited Functionality Baseline, available [here](https://go.microsoft.com/fwlink/?linkid=828887). +To make it easier to deploy settings that restrict connections from Windows 10 and Windows Server to Microsoft, IT Professionals can apply the Windows Restricted Traffic Limited Functionality Baseline, available [here](https://go.microsoft.com/fwlink/?linkid=828887). >[!IMPORTANT] >Some of the settings of the Windows Restricted Traffic Limited Functionality Baseline will reduce the functionality and security configuration of a device in the organization and are therefore not recommended. From a0f6a05599161ecf6160573cf1e724535e52cce8 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Fri, 9 Nov 2018 15:56:18 -0800 Subject: [PATCH 175/201] add deprecated --- .../exposed-apis-windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md index 82d6912c6d..67ec69e0e1 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md @@ -14,7 +14,7 @@ ms.localizationpriority: medium ms.date: 10/23/2017 --- -# Use the Windows Defender ATP exposed APIs +# Use the Windows Defender ATP exposed APIs (deprecated) **Applies to:** From ec1d8ca0e63ed5c664710a2d839da635ee294d79 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Sat, 10 Nov 2018 00:06:25 +0000 Subject: [PATCH 176/201] Merged PR 12741: WaaS servicing white paper from marcom --- windows/deployment/TOC.md | 1 + .../update/images/servicing-cadence.png | Bin 0 -> 54411 bytes .../update/images/servicing-previews.png | Bin 0 -> 78290 bytes .../update/waas-servicing-differences.md | 106 ++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 windows/deployment/update/images/servicing-cadence.png create mode 100644 windows/deployment/update/images/servicing-previews.png create mode 100644 windows/deployment/update/waas-servicing-differences.md diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index aa375d690f..00acdc9318 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -215,6 +215,7 @@ ### [Quick guide to Windows as a service](update/waas-quick-start.md) #### [Servicing stack updates](update/servicing-stack-updates.md) ### [Overview of Windows as a service](update/waas-overview.md) +### [Understand how servicing differs in Windows 10](update/waas-servicing-differences.md) ### [Prepare servicing strategy for Windows 10 updates](update/waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](update/waas-deployment-rings-windows-10-updates.md) ### [Assign devices to servicing channels for Windows 10 updates](update/waas-servicing-channels-windows-10-updates.md) diff --git a/windows/deployment/update/images/servicing-cadence.png b/windows/deployment/update/images/servicing-cadence.png new file mode 100644 index 0000000000000000000000000000000000000000..cb79ff70be87615b9d11ac3e3b2b69c9f5209705 GIT binary patch literal 54411 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 Ht%6$|j(^(?xrFa#||x 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 z z2Tc#1(jt9_n&%%qFOsLpz)XMx-ZNtA$WlQI?|QQ4n0QT49rkJ09bWKNJl z+&RhWNuTNW|8{1Q4)lP%W{dQA1#i_jU{KhzK8~7+Iu$k^)`!1jN-5HkqZM|58f8US z>H1z^o-QiJbwpn0<&40(=zxpYa?_r6~%f0}j1gaI!L`AU#>V0(sMA1$Ygraiu zK)nyQ*ClSG@2J(6Io&c9@Q%UC=^gP!g&`IO$6=3Ig+7)h#IU_2ZcQ%>ZM=w>#LpdX ztmQ1dNtHSs7xHh&`A+IErIkLD+x^i0imitY`g|Rqwo{#a0W;r56;g^68CAp)ybf^j zk}=iGuK8%gB%A>$NM3j&NTsd-jWHN1Wo^u+qY(~XJfJ}Hb?3ZIRjoZmii~q7Jr31{ z*ejAsRty-Hj2VOethN#l6G2WFmjh?|8XUyK-{R?T1_o^vJ5rPs*rc*Fr#(3-|0PI1 zv2{n;uou$mdlGliSd zA5?IN{$!5-yKJ>}s0UkEL(+jZd5UC7_vnWb3KF!p4oO7Lyt#BsOd|XJ!?xX^<*tHH z8XO4Ya_xEc^KINt-!%|DKr{zq!n4ifK-bWI*1wEs%Ke4s&nnVtvC{SGw=xE#ze3i* zx4$QzOoNwY9Q&*L;q}n zkY!9rhcPJRk@HKVv7^D87y~0o!v; zv@zUzH&kMn;Zgl53wB~3M4kPmki1dk-Wl8dcOwe@aAPf5uHaE903O8QBmVqRAgfJ| z)b48eej%6TV+=4p;I~>OY`2#+zh3NDU1o@aKfdq`ao3PG`czKwlx^#|9+$r6CtV^z z@ANxq<-ajW#M%Tg9`K6iJQVlpWHD%o42F3>Okb$=nOXZ`*Yjf*6#dv))VK$J@!Bav z0I6^^2e!WX&nSSt1RLmb{o6b_qkhkn_WbM;nrL|GZ~WfeusFvFm~ER9dYR4+iEfjB zsjZ5^&Qg(SLw0W}z0u5640 z2vB$)K`kuWp=@fI(wA;QOVjG7lU77&{z@{LF-H{q_D>_r`5Qr@XdTBMw4X|C3yhB2 zu)n}4$e(rtM4d2rTt4EQt*Ld1>)CZMy#i3(u)`WCSAk3|h=wzxJ(2xw zl4v?AL7rRSixLWm$iR+qD-tf4uxe%~F-pqAU?!M;+?7;C(Ld@(b;7hoXTnJ4f~C*GrF#&q_tlcyc?hTH7wz|Ngg;(J@BHN0!!#7vyO6rK%a> zCrj01dpbK5U*&-Vm9nf<)}dJJbDYf7XUg)H2$9xH{0)w98!X#>Cv3vSCMA`Yg?JKt z5X`2%1~!d37rV_-olDL)z5XxC3l?J0oveNg9Siox9wg3wJ#5{P5-n9sWc*axW<$C`uf8GeOz#jq!1pulESby9s8A@OX%K8?5Mu;}4nK zWhB`@6$)8z1kv4Z!P*+|3Lc}G=dp?*{VPo2K*{$akbLrrkN7wA+lZ+oS5@^sSs^Dd! zDc9@@99Y2lPMFYXeCYu@0fLY)xhn{%fi295Z>-ng%aG*h$Dg5Ya39^5VU7@2X^bUq zkkju}C+iH`s&UFM{}CK(3%ZTm*^g)~kXO3UZ7j;h9dL%JDjG$4S+CF1M&PskL;RdG{@DC_zKWeLp)8}8ozVi(P>~OQa&*ONZaXBnnNhR2s zzXx49Wcezu$aIhiKw;Y+H%`ba=$w|Hs`nf70*A*+tObAx1}fgKWj`pvArgA|+QE-? zChVow$Go@8<^uOkM&Bsb$)m-7*-5=+rirg;`cGTUm-Q{vlam(w~1*FE&Tf35F5nvwR9OU4M{w>MZ%FCUqdGr9;-}T*d zlx7CC9kT}Kc92Ez+$8EC(EJEud%BF{@l!GXar>VTMO7ewbCl~Bs3F{0PLFB5F95$) zMutxjg8E>nF*cxrw2#BbstK$rcz;Pjuk@7UzFK+7zFN;ddZpen`r4`ISzypP7Ngu` zvGq;zM;-ouj9|%A^9H$1rYQ@OV(u5_3^tak1B0BnxP=?n2=9+M3!c{!igz$&uu282 z`KD_l$V?6DJAGR7+Wf;nVdt+UAzJjX_2!eHD0!Z1-T!btfmy9#aZiIv(<}m_x4Uo4O z6^w(=i9ONyE!c!Si}PAV&fcUsZ%-#>drXd1G@&4D&?V zX*ZLk&=;QT12i*0G(-1Qef0>4pPY&1!8=;z>ZqBv`Rojo8nphpVtKrSqxv6J;~m-o z*%oH?(TAyVo(fWx!#9f2yc}<^dP?>qxYnQUJQ=E!`K#vZ)2Lj%d2OHX^pfPLTx7MlH$8UGwFi39Uz``?81E5({{Z3W` zuYg2Z$g&>4cL@5*RI%`K@xW>Xf260uP<6$Lm;5j4s}o-~Hcud@r{#Q9Ni~KR3?Xlz z&!Rhy-I$~kd;k=Ro$KLu!r+BRd=1=BN+hkHy)C3by78XaArN%GM|%|yVO##53e>0z z@mhvj-BLuoDp6t}2Ygk#uUfCAt)pzP;YAaK!);E*e9|E?wZwSKx_VO^aBgf2i?1#tAyt0W|4pC12M&o2K2l8wC08>bFSee zzk;4uyk_xxQv-g?qT(Tt|4MP<5CTCnA+>j4yuicmKjqYYwv(NR{&%%BLptIFyU4yO z&MN9*vwE4EeE+Pde58e76T3S5aRN~214ks}glWrwocGbO@%Cnp77NW+O%t1aK^ux1$U)Isg!tu0gV~{7s;<;U?O>Y>>@AG$OQ09 z>7A`(7Gn2w2*^spwBG9xwYozdvq*LDK=xN7`3Z>mq++ZKRKmDZi^}Yn%{Et~&>@LIA%J@7@bviy zncqNF>#I5z=FS8XNaK+cb{k|aXDjTTXak`4u&2xNbiA8u;5GO=dOdASM4OAxxKM~? zns~R9`=~$1H{y=S;=kPDQb;iT^UV-cmsfFTo^`y>+6{M?;n1MPLP(lew)0yBSV&^x>*A0}&BDV_j03Bt-sVQ1! zA@dO${Kefv(T!ZiwgnUIG?*}Ze4*$=Z5KWvL;*(GFt5krB;i;F3! zg4msf!*<$8la=fras}C#4vMshsFiJ0#AvLLCJ>|$)zuZtpUrch*kx=C9ufHE<7AfP zXj27{52m*l>R%Hk7)Y)Qq2?NDPQBIGV45WzrSLUVBLn*2|l ztA8ek5$Fe%a>?U%Zhe4XReI-rc#N!znvU4&lG0J|~2<>CKc|_35u`R*cY> zbA%ij|EjWjFd1zF;F%pq+{z8e{CbAPUB0?@5!VefaflXh*(&*A?D4R_zWmZ5R9im- z!&JB36Y&H6SuocXEUNa#KGGV3T&2zrMvAJD=gs+GKkkv_?f^>z0#gX);#&Mb=zZqO zhShM=3At&UEko{`)1}|HWZ8Wni^9_mA$Vbb-mQ7)h@1bDgL|$@z($v|8EP86ymV!- zRKdx*A6XsK8vZO*s5@MJ@6b&IBJTo5L@eoohUuZquE&vm+{zmj5#E#d~}h7V2iR0FRUYaObs7|)2;Ya z!b~rwGL8gKRhui)-c*?PerL3vo}_0khHr?CNm^rk1!>d)_$P?jNXMVoyoms_03G;7 z87gRVe6G+JJZ(7V=mGMTY2in%MA|z9&|8Iz8I)xxlgcELs$6M(FJ9N~`ZMoXZ_#x9 z5{RPPt_CYGFmLiAY+M(8GXX{3bZ67iJB4b)FJMOJ%*uKhu9VBVVbig)YVCeWn>`VJ zGK$Ko358oZUs|J0YQa*b8fI($0N{u#JQ2>A;};LtV{&2zMdZ2q<~Bnf-Q%=o?Eg|N zOgGvdfi%~5IREQZq0a{FamX@^?_7}fLRHhPLpsPq`_RfbX$TNyz29iVkY1Y%(|W$) zF}>BBS|{W;8?<9*y&U8`PW6-*2a`#Kfnz8SvaTC|!;{reDEhQ#c2`Am$Ht}3NhhDK z^9}>8E!lv>5f72gGWIXBT>=Fj^NmPiH~3g@U?=vI`BK^U&{v?tqW1K0U&iGzHr<*I zOv)H{5U5GW`RfBA-KL;JtBdv~3Dx8;I{3(nHd1p@bbjf;_TkDFTE{7|@+2Lf4{hc^HZzZ^<@HH?;VPX`)SVwK zj|lx`E`b?(`rWhcpW+0zxgroOn#+9;myl(xBBG)&M-Dk!XeEc0gMo;QQJ7n<;{R4O zTyy6fP=;Dz=MWbc3M_J}h_$V|X9r^u@X-Rv4IW&H|Hr@JX&4JUZmHDz0IQGx@yI@_ zHfhYN{@j=FPwL*8{%h3>>6>nxd(}sL;fCxCR1!aJ&&r1EGf3YA=7Z&h5s_|gO1@dX zUw%qy9wKHx^i^F=Yd~IRb5VoEa2XpGlsRd==bmBx zc?ls|Umnb!&Wq1rbn{Rw;4>ZSVs*GhKnBD5*7tudzk{KUOf-fFvNrK34xUQ{<+=9p zy}Hxcf}v4<9J@gmJE``2dKe?NyTkp%S4Vv%fz4B;r?b07)3LeM0)teY0G^=J?|2h zHS4wB1`9}y2h0#l7YXSYYomhDu$8FSwk+>$svB zn~E@kY?@nmeCLz#k2wKTsTCr@)~hb9?J0_=g6E*J&n(5632aG>Wf*X1^HGhUKUBsT z!)Vbqvhk%w2%CT%cL1*ajP^OZ6Zn-)C4&H!UJw6nKD!eUSCxlD*&1} zPO6KIPc5^}Q`0J|cg}i+fzhnJ$#lhfscM#I@qV2-C`if zph`7Pqh?UiRtj@-0po*ziabf@E@i6fpptC7A-zD)$lIr2Nhqa-2_ZLTkNWq=hq?)I zHDrKY@+(pffAIi{yN}R%8+M68my^ooNJ_{A82g~O zH9i2`@qFF|Wv~9pT@cAq+ngr^9K&dKv=l63Rj}7104*9sQ zCG^_&9-%KCj4e+;0kP-fXMa4i0E*e(uqZ;58tZvj$0JsRYonwRWi<-b%dkkLU+U)S*#b#cQXmUDXs!d#RScf9~?Bu5iuBg!!J+*k70 z`K6$8YEqGA3Q&Pf`pZ&cmDq1rdsDHL!PQ_519E^dI4^(>%Yv7nY->*as>;Sxz#(8A z_-powhi5r~ssKGSFYg`9^(R+1UF_e@=E=9tlF`p;dS!-qbcufx6y<5DUxO4vi9S9c zJ1?YOVLK*#n@&hQ{`Y!886W57&?8~vW<#|{2ia|#MY)d&kP;P#Pn ztT(o+LnWOV>^k+FtggbbE4l9$_?9T`o+A7sI-1V)l$}3nHjiW~l7NRpoN9uO)aHK} z$Tw=CT!fk&+&6*QeZ*-|nc#-dcox`Yf<1wymMaw>`3LJi*H66HxtZGA#0U~8Roh}M zAlWoxC$A9Wi^;DTnEcjYa42m3)>>0nqVcvn?FG5Xw8~mj1NPq&nW`ig2{`jrta-aa zpt`A%7o>0MOR?WT^cqQU4sq!PyKFnxY-?o5Mng3>LLmlNHL(fGw!NnR0ugtIQKfo+ zAmwA2`KfP(qpn-d-vXb}mMfTs?(3)JK6bbNq!X>$vQjx|bq7JFpevuG^@Ns2a+$^z zYVn>)^LZUi7|@L$AP--AxMn>gX30T)>)s9l#XWc*a<4VHu0Y0bRGs-@AKvlU!#*v$ zE-N4e<+_gqIlfq1nJI+BpLIC|3PYx{eO?n^?NleFzIiA80c0hX3Jw)#bY!bL8hj&{ zzBG(s`CX6UHE{=`A3+E)`f_P%i1S@X0hc94nADIM*ye-x7ch{|N$+&TsiQ58|KR0g zYozBuAJVlwZIvTC!p|WJalm4N9k1|39ZqOJg5Eu>PqW$A@4ZI#^CTNGPSWO5%uu7e zcR1A?ua?HZ&Im(sIPQ(#1|;8Ry3#<^M301pe2Q7l3Tr0W zGo;YH1shH2oO2Z`*5}h}z%hQdA9U60zJjk-eRMM*=LNk)gOkA_NI0BY&>GQ)Qm`#FFcWoa^%rs20;48gZi2eC2~LT z002MM?*Y>&_`q8fEn_0VbrnFbe5zA(m;Z%Y<9f*LbSmY>9e?u&D$z9UrAMepJeM9bd z0X{$L>D!{LTv2_DW3;uam(gGq@D@>wduE7p1&!bGy1LE}&ulN4^h_0+N9P2nyr#~g zr7@CDavWM=BuHbC*VeET$kLCrB0YRMfxoZoVBJ`~FaBA^<+9S(yytx)jfNC)}>>v1X73eL2k9ZB2_B{g&*!Dk-|TCT)l z3s8Ho;nq#?sZh(_8GQw@Od|+2L|Q=Y-fYY|dNF{A)L=j%a0Oh;V5=rkdjW&Sl3N5& zYTHTiG@(F-+5Dg=0JqPxlZxHh}=E=8V zhXH9aG`egCJC#Y_Rjbe;2A6Pt5HCDDA0#)j<_|c&Gy?{R#g? zl1=(lju`^X?zZRDwD`~c&dVAUI4JmWRF0_BG20A)P^ek(22}2-8VSL}^)n$9FU>+z z(2)YM#2&Ns(3lQ3BzF}oT7Ys$tQ}Nr4(Jj!4f!YVf)7v)+k#yBEk4y= z_%6s;T-P}Y)!uxl>P-9%&*7EhLuIDE+G*|;>r3@4J;%u1?V)!$od0lgK>I%j${&de>N9j}7Vu|7&sdnpxkx5&h58nG0433B}shY>SZ2EeBJXj@mMq|K;ACnHNo^_>{yI zI=6dxc?^_azCtX@jc1jJEpJLcd<$Cuw+0{MNmYKb-*A5iG`)4d;;S^eXd7`x(Tf3orTrd4{80E>1LhUn{e+3r zzs>HKY&Yl`ER6`l^+?e@FsIEYpbP`BUDa`Evk52*9PR2!4-f3r?D(f$un(*L3h>mQ zK7Yaf&&7WgrJc!s7acKc#|Dgs*X# zHHt)glTp-S-@uF(C^C|&{vUezZ{GIcj(rX{?O6orzF;^H7qP|vq9n|mv(D1Bb?au~4+th2CYV1E3!x#QMmxNy zMl%pnKkBTX_Kqy;u*OvGj$|AtNq;6}jKkpR3qUJ2O$gLx_ltxZXF$ZtHP{U#xyoYH z@#-HGj5YowC%zX;jmiUcpNZpQ^SAne_232EW*x;g1P&L`U_{cPu!|7FZ=bm1A#H{n zLx?mO_6dpw-c)7bHQ626|DBgsQ{A_1ft)r8gqBgft|L=t_d!tu}$UpO)J=c3# zoarc|Q~5m=d+^}~YU(okeqwKezU!li0HTi%(QCcJ0p^`&g^H;wJ)xWsUYx~o9ZIBk zbT?Uk(_dxRj3_(m+DENw6Yaah*Rg$QNoD38%TwXJUnuPmO|hM93h%NPHEyH|eO&Rg z=wH>T8Kh1ay)7|5H<7!*xOHz3^KcXzPBREpLCeYt!y2YhPOzX_lB27OMIpF$DW znI3cb1sw;s7$~hZXv_eh&lK5a>LE`nz+g5P>N_o*ELpY`;qrs zZ{^q1(Euih{%eUniMR2Y9Gq(!jo8eya|0GbB>4euROzti@YRU6iiYORo* z0GZuJJ#RJNv(RTS!TF=R>L0NL{h1sH5$pp54_OoVNC1_$0M7$j7#6R()~Eb>RXsJh zP%o^xInQfri6{G~wGCbC1v|vq*yjXi^YVOrc9r^OsdHHr;RkFTw2P@fty83g7Mt zIzKcyjH;ETB3L~9MW(SMkf3AmF7#jhueq)>a#JPf@bz-dp@VwaH{>%Aofi}q4p{6~ zGl7h@sZ0gI&ph#X~j+YW>gOWhJR9x?{DO&-K<~z%>b89VvW(-j+id#^$ z7f%Jrv)e#GN+BP@<}WM7kmq!ltm*A+p1F-S}Qr7t4+*3f1U8id;xcQa% zZah1dH%E%|+ znXqqUcfPY$MCAH4^67^axbJx`z)u=-+T;OXpkS=Sd(N~6TH;#*!5I6K7s_LJ(}!4H z^%aXZ?d|?iV?IK4%Y~?YA>w>td0E=1HYe&~rdE(I`2y#g~kF6DM;`&c;#0ZONX>}GMy`2=NhkOfO4rX zo6)~twdf5z{eSN%B|&!Jj|~i_u{Q?+D9XYb(62k&Dscc^4?mYF6IdNWkE3u>$?@dwehC1l^wMiD8kopEq}G~ zDTf;U&mAC}6(%uV14nzEj44szBN$d1jEr~r#;JtMhu#mMUbqLmZ+@;KxaQ23(&>6f za;+J55^5`d^I)>6+Hf${JMvMyORH%e7Ml0!VH~9j-auvUBTOfTk3@wWWq$IT z(nW&&8&J2x=%VROp}|d_0~J+ih8IbU`_$ltbPwAr(tsksR|tFrk#Xb-2Y|;|$ovaz zsCGHdd^#HH)Yc}^dl`)EuL0iq7Wx7C?oOffgW9s=MriiAklr;&vUT>R=U$U%Q=!0&P`xK#nZLbJ{I3z*Bs{auHbL+-GRhir&sB(?^G*l_>Ecjdo@lMLZkO0=7v=8;slEht_=}kNn7Hp2k3sjpd*$zNilGCA zKu98Q>v087QUIz0tH?tt4zv!h3#>V4q--3@=aV%LT9@rf-YfUNbx%Z~u-KUnT; z(t+5ei`RA_`l4%e`D~myC*r>S)E{gAM0y`Sxb0~y$> zPKR_Dw1;UfmhohoDvj5J&TBE+bc)6KKp)r;TEmy|XPG0CF$y@)X;4iB533qhL>J99 za+7q(^`dhOUBb|)qQc`{$5`N<_Y)b`fd zW6+`v%Ywos^0ut9?997qwz-=q9gneX#5Oj1mavM&Isk(|8(^BgZYM&Lz^Q~TzDKCE!rzN36>00}#qc%SkKlT=My5>!`^akpKr&F-kKQV|3)Gp8@!Z6XV|DejRQ z)`5bO?Of@HE41E|&xdloN#AmhPH^#AgQhkC{ObjoE)1S!Y%n*wJxM^gV97=aNLSfp zMd^$%NKIj6svNf7kY+&*^<9OYwG$&7`(`|?03AOd7Nj0j5$)yLYVTUq*&@_PhPxbM zj*ZH|XwsHhr4OS)VTtIgfH?wES3)W=&6M-twS7BpYHu5aXaI{f!_6V_YQ!oUl}8?t zx8vFKHuUpUhe6peN+VF;Oe`VP4PY9tFO0hMU2tE{;~+0!>Yh+Aeuiv(+@(TI;~nY~ z0!4+u=b0(6$iH`tOt?J498?B)i0SGanZfgoZOo8!V_OPnR=lz0>>cxFQll{8<(R&I zl9S=#V`fZ_{oxu;?#!`u+JO2muO8H;txiy-s44qndwiI%=w4B;KxWL`ZG~dZ+=bZF50eh3nmoD@pnWI=;dXO)4vDh%Z;vVBRnV1un;T)7^R_)bg8mQW%+cN=)q zulKXk0T5}^Cu8AVtjK!k9;OxfV|sd;mg4Lo1ZiQX03S2bPxNE1ZAE8E!_85|#IhI9 z{})Gbc7o{yg|9eNO2kEk=)D)rT(wf8AyWz4eWLzar|8|JqXPGEiQn*>18owP;NYLA z7aF+|*)Hts!2T~>{-Te7Fb9`D{Ksem$o2QjwU=P*$Tru7K1x`RFjGeU1$CPOkH4`d zBjp2>@g%gZCu!RA^x~%l4|$n;*s#L|iN;$vB#^af{x!kuXWx790JowV1C8OoVH0R} z7q54k?;^Xl0H*^S(D=(ye7pqU(>#>9I)RbjORL>VSJoV?jSS&qaxN&8SPnt7vKHXk zD*+KVAIrWp-=bAudR&a+Bo|i~H@^8ggk0MOWeET4&T~rD5rYr9vbmR}>I5}hxgeAZ zD(Z^%_*BQ&1k?TXmNMbUrlXZ9Nwe1M?_R|gXM1okt-`RZ?d=9z`0o(xVopuvbf4W+ zF8y|x#V*eqYye^_z3T~?$eV%8Ar6OdJAkn7`bIRe=jK7M8r2a$PXgQ+XeZYcXlT@d zXD5y66?TU@DZGUvKp$)+@1o*Jl~cgxLQ zHMTu}Rj;QggG{kIx`SVHz4^ym)}-~*+||cARl9n$&MQCs-6V44MyEL|XOeb9gsf?Q zLU*$7;l1rxK>bxXb5+?{64pWdWgFz}HZi=`F938f2bae%vp!bVDEh8RQ1M>!_O%8r z=DpLCDid33KL2u9U|!AVrpNI72uDgZ=tr4vax=Q?c|G#j0GKKrybISCxpq%=R}ipl zn&nI+LzVT{=UzC)yrm{}59$&ZGO3 z>8H0xf&a4d87N~=2n4~uR5faB&U;hi`^`?A`svp6PbG{EA?L-KyTvr8Vq-R2I~|zC zOvFDYt=UzPwi^lysKSVt&@%)K8-F5ZU;i;<0bs;sszb(J{*5%e^Q2Ap=^^fy*V!Jt z9wXsbtV};D71Z>9DQa;8<0oqq3=(;``K0aPH0S%OT0||aDb=p}qU^YD*Kr^x=Jw*G zp*rXeq_v8ACpn&c+W_&df&K6;Mo_wQU>C=*7}pH%{~IBa zC=z&7Ke(QdN<<$al7$(&Y~>t6`co`)2c8JYXeFpLR){`4FRH=WP%qpqWVR1g8XDE) zW1P{`28ob+-?whlC1Cam4Cl6#4sj!`;?dQZZ-fYkTy1zKuy)*tdag+hzpT&>HWwwM zek^pjL_8vw!0j$V9M}4li0rar_RuXL+3YhNl{)O&-#d|8(Oht|G8_(k)`%RDarc*% z&0CKDOBA;yF7-kDGHLMzvuvPRi_I1d4d{koJDB`w1m+n>xkbh4n`w<%M zFVG7ID?lH{@Oy4FlU>!8kKRATjEO~M_2LbvQFym}UPYCHW%f%rG@pFFmK~0+>wxwK zm9xBEgssD@;0IiT5MGdfJmoaFuV!p|5)X<3V5RVO-?F`$9zUOO>G#J5+QoH`oj(+x zjF-p-hQho|AI}TA9K=pvOk%*-?_aDpSJK#NIO(LwJR!8e){qc8V%3rjs<5aV!6v+s z5fQ_`#>0F@!(os-rGV)a#)qtsBMNY!l!QyGoJ?Qjf5Y(?*@h!dhm*^W8G8B|`ah5w zA1zz#t%qSkwGl>J51ZX>YiWGH3BHQj69STS?@-<)hffj{zzJ4MC3mwzLGr1Xj`vs@ z7jR)*oD`10Y69?JngS&{rt?T2Zp8-ADIMh3Lw%+l@6fO=+AJ*1R0KZ8?R{|kH2IVQ zbc9GP$QshjduP)rZasL<9~55M8sFc8>GwU_?#`Dm@VqNwe4zaE$7m`gGStO>^BUu)Pv+FQ*bVJDhJTP_&ThROeki^3g9*ci0a5@|!Gi~HazlU9?Ap&!kLXE%Cpaq*42RvVM?H_2=iHda zXd|Bs?yv92MuT}S#q8v&MeQD9h&3Z@xZ5aYqu(<&E6b+biLE`hNL{y8CqrtrtR0Nn zgv*a4NrFqy4!TU;i6kB>HNPU`nFb0NjNrPb4~wTl+f%L5wpn=8p8Dm{I4IcMx!K-D zme=;*Ij*zlOqYo#=9D)Odm8zOAFf3c7I>+U2jn8~bxaGKaSl>`p@08>Iy11`@XWXDXQ+}advpEsEGs2uni0+wT$|;C3sBtZBGX;B*&B|wiPkG;AK>66Lv}v-mWmLV zj+VU|y5(1Ou$L*}Z%t?6O=`y_WYCk3=t=Jj($TF>o!hVlm^qu8nkx_@zaE=LJ4ozU**5dAM_k#a^LM$&|n z-QT0yVSH-wo^w=CKOc;FJ91yGgesl{{ovQyAZTcmANiT`vhh(ziAKd#0dD+FN&ZmH<3*!}U(#um z{&mTF*|$%OQj+fH7VfuOZX<(jeFmmusr_~oCT)b8h&tGGaZ9vC5g!*Cu%lvbU>Ki^ zMF!j7a!!%()Ii>QHX2%39K5a(COT|2uzF^bfVuIj7$e?+e5HT1)%|T--M>X$NeK%J zzvUfP)K%LtIOkq66hRS6g!m;|owAp>25!EzcRy^lYSN#g_UGzr38F7(F_JZm1jj$; z_=F1WXQnqM1T|#LnEG=~253{pw6#>0BoU|`@plW0Cx@dJ7DwJmQ)Iqccrzi>$Zb4X4xTNsoN6&wmLSdt1Y&Bg_dgeOY6y!>Mxu105d0q~ z3&gvbzSO$*FP4QAfD0P4W_f-U_vy`t0y-M4P{zO<=Wusu`@SUgvyRbdmpZaLZqui+ ztAweES}*vZ=Pk*NF|^?l@9`rH_OzTJ*L4obpfjP~TI0Q4K9}Cp83cAB5#hfmk8vkR z5@j*JEbe74w-+n6n}5eKwppe1jju}xt58%=bARF@)mwY!_)EDZK#|HUq-?t*e=x_{ z>^Dpm31eWS!p>pVOO)nV6Y)bwiyNor#0ha4qh!Oo*ZWlj2@C49avu9~_>1!FvkC1S z-~#p!sEWpH_}uJ4RQ4rqecYahlZ{RT3IJ@-kINf1*SnOvJkP8K~_BO8&DaSi?)D-!IUM4UuLHzxJ8uGL_RApPEzb=sz`ga-K*`ieZ*ZA z^TG*W6Ov&3|N2HmF;*N47oXnhqp%M^BuM?>eoUPOoy?}>G_P%LH(;TM-c#5SoMmRPP!KRH&z$St*%YYZU|V3zxdo_5+-T3Jy$67=QNC2Oa>CK0y+P|vJq>QF zy!Eum8_}gL9699GPE*ZOp`YuRA-N%cZA&C4B`qXwALzwcP4waO%_AaXFx=PYv%Xi# zX1!3h-sBDB9uo6e{@zBm5m*aQj;xj9G8wS(D0rRaE2m(d8F08`TOP6{#Z`b{A5y8P z`{rl!_o55gfN<4=v8XRo6z6}Yk%vP{Uuvb?+JB*m3>G=;A*vqq*xb$cPwaLLdWSS3 zzd655{$w39n?!%8$1K(bC)A4y$Y8yZ)CpJ6_1#(C`Y$G7A;eYWcD0I%XISit0>u@@ zsP-cZ8)%swYiRwjvx5*L+(db~DSNv){oIO$EXNv*1*oH!SbjP*#AnI3H}OwHXTO;r zfAiBwg`ocb^XY>deX7MX=Q=Nb6jtDp!FRq&?NKEUi>%bhNolD^c8BP1$iyYoe2|MT!4cnB@icf}Zv$2jKU_U~Fk8aLS>`3LpiiN_GO z0vRGq#c^Z6YM{6YH}>Usx0Fw}m`U^MK&hPiyX34BPR~c1orE0Bo!%iH#Tg|1uF69t znaQpw^DmqVUC73X+DzYFkV6~6+oM``8eV)|Ak6iEedtm0TclvxW8w1Gu*l}mMIoy{ z(?fiCEKk1qrrBa1(o4$g*m&1kzg>U}m%Gn~Of#f+qi<h;b!h=bH^BhnlXDoqn;Ut^{d+-~kc9m77#qc6X72go&LysT6VvXN-2@OT5270! z9Dbzn!2{+8HhFQb0D=$LD&{8b<#&cUOtDJKd9RyeD= z0tQmrjgwt(UgNr@)v__JtQgS<>lcZjrYhxOO*XO!YwD*!1df!A zgmr0qid2F=EP1LTyE5Q z*g@E`Mz&yQl6P^K@wUQ$0bd=*|2yb8wM_YE#$Avo-4BJ)K@A8`2GJM($^L6ZMs!))%JNJMP4?)I&!G6tynq2@JvSeiiP+a-3iy3bG9q( z#70J#PTDkEr2O;FO@10Afk9l&K5k6w`aZaEl+jUO8)+?KG`V1r>t)V0rZV=#NzqEk zUI9~rz1A?G{Og2Pw67{2N%3ooiRq>;#4t7NlO)>P=$x}Tp1W_T$o2`e>{jFpnRsi`jB|78GM3mb%(1cOQoT#icz}j=M|v01fR$Kj*y}DX6bZ!!xgy| z59j^7=c}mf-!fJMOtfh4mmIF#BEtJls1#O(I;w65C`U2WdvB!sQ2~Nf>h1E?M0@zx zpuN1kjR^<+XQwB+*CnuR$4m9w2QhOfctFI~hXt6q2Z-Qz^L(K{`e<>H#cUz{Cv;hi zGvxB__1*BfFIAYVV|#)QBw_i$t0kIj5*JC#=G&iAETJi*qq7e!2$%uaUKI79#1e{E zGgCj1_(s{`-`?{0P7F1xZ|5rBX&ZED*fZ1*u&M29Vdm&LY3a25PNSkS2fjk4$2*PI zO>aFi>2lGFIztsO=D_}zz}s6cq6lHI(P&lURc2q9W!1r5TZP{eCL`-!cQunGyD%TBwL_kYcP$FCFT z-C|2%n~Kd7Pgwjx$M|5&gSTJy!`(D{)+bvW;Uncj_x&ZcKZSZ}UD4lC2gXf-PcHfU zIPy5|45n8bR^L(d=g#%;nL`*b4vmbig>`PUFzmXH9YG%EbHl@Qmc&E{qc@8#5CrBJv_Cx&}*Pi2=%nIjVE@dp{5oNS}vq&?iT` z!{gukb?CuW{%kJ&YDKcLvG*uCf2T7i)SChK?|H&iIs3Wx(9||t&7j2NZ%so_!sa5* z{zg#IgnskQM|v3gh_>Pp=^H%6F}JnPt>d5w6VH%p#lMYUUV;sg_XcOqvoNh#fVNV& zNzwPulqW5MPmv|2vwcD+suZ7g-#(44>i2TcT!<2)5}v3C$7z=g@+}7zG@^qe#S#Y! zcIIVmTILO+1}4K&iSFhaPAGZ@H0GnL!gjR)f*+f&l6|qZovv#k!YWd1{vHe((?+Ao zdZS#=-BPKW-mfpevV@c-dQC_sPTfIa+`ELNb+d)@P3R%vdhi`G3_Tu^2sY*mRS$Um zq$oPHO%ENy2v4ry#Eova2CX_|@mW^O+RlbHcg(b)@$0id8REz&gqhC~nUKn zet^8fY%MVWr6~$KaDNhx{oU|gDw)!C%DlL{E&`m>QjZOv4^(!*AbMqhgP~`kbRkA8 z$`!(JRNEilkxH$vMLEUT^foI`!{2)Gn?8J01T70<59UU6;Y>Cfblincf*wDIM2&!w zR(_R0E2NU6P5)mp*RWASzjqp!<_js>2gfFMw@4H&MU`Jm(kv6*Oi3IT1(Py2KV|bS zB|_v)7Z(5rl@T1N7+|O0=F?jRTf2AI{iJ;p^QvAMsy`N2JYVjChr!v?n}wj^=g))< zYJ+MvZy8%bo;N2u=+h$P4g3!ePNlC}PW$q<245#d#Sl{9-+C6f4EBfZOVg1e2Q@C^ z>7;C{51u5Dch2qIJPcSH)gaY2 zE_Zb&?U@&9k+hmv92ia@H>~8%jd z{}UJ2e=Jj*9R53pi7wfbVzXpR#gV*Iq54JM#5kGsS#IgV2s}^?{~jm-gvOU@)j8Kq zyP5ozFW{C=8T-MlvBg=-i4Xk{y5p~3?N=(B&1i?mIT&sQsEvC9o~#_q;;Wy_2mk7Q z-d>SsHC`Hxx~=?%DG~#zm5)cljz!4(aS4bb;Qbs@jh0evxr+jsc_|+y=wHJQIPCj@A)p#N9`fGkSW#pkF z7Y_5Md;PWN08Doj@i`e>6zzF+*SmSMH;(>I4BTOr6=31j)G|&U4a==#eg~xv(x8aw z(ce;3c)SZ*zu3;FK`gCAd5^SR_sPC$!s24Z!?fdUNY!9wcuoxViBP?618x1`CEbwM zHI#R!rK6eY5k!^8Y1xE?WpusAFAT0%;p{y;;S$82Uh8!o=sQX>WVAWjC+}v{Zfl-< z1x|$*zRI|$N%D$jnuaF9jgX0tH_3Bu%LKaX__>}fN9ehhZrk_}TsH<$L1 z^lL7)0VAa$JKYHWA@-6170nrdRaeq9aS)q)sT1P|{Y3`X_7V%{I?E-sY*$a|b)Cfi zgqm#ZaT7EbblMY>bkUY?COzEOA~JP}tP75Fs|-B>W{b`b8ew>GcvfvoeX(=vpLx=S zzWsJ9`L0%Rv}w7ze`@%Kt(;#kIP)au0=4_>G#`wt>%<=+b)7cGaPLa z|K4njVA1o))&IwKM~^^3 zHgf!Gb=kic6#rvh;j|TH3wFx4p06*Ew71%P@Te#-j%RpB!T6rxeZWv5SZyFfvsq^} zKW~tZi7$cZpP5myf?1go_({INRMX@cK=BL= z?*ka$GmHpyxPr zJ1#U_D>b*;!UMf%rfG4XxZAW~N7a;6vL`Qii1qWo4#QnVUNt5`FgaE9$BwF#_nPaP zT=Xg6-xh24RiSC~In9w<29e6n58MF3U?0`}6!^KR&6_VUF3(Zn=}%oDp1x9?c1V5h zL5p15Wp_Tw_9&Q+XL!%R_@3c?#-JhF-}_jlcc1^un0cx$agSo|X4#Sh)o1UwRMtBp zC4LlK-MtEJ*DbNRL}^p#x-9l^_drh|B&qA%ov)j>wQ_uta12)!fXwV;-2W1WyN7#- zJBdVUT%r*7c2}OZqOOy#vS70Ls<{$_aBJhLj`fLhtBM~FR|{s(g+&JJf%5wLl2o~b@)BL z;Gjo2y}i|q&KiRY`9Y(}!wblEhadC<;zt4j#+sN+3bv0MY^Q%_L)oWGN^!@yN=l?y z{hTc6&WjDjRW^Rs1vEPDc|~m}QZA*=$q%wb0uK$(4u_N|?YYa9h`m;uzpSS7PFdTjd(D>xCYi?3)aJEx`1sZQk#Kr?y}n?F zE6~>AkL)+52?5TKlB=4PDS=2O3%Wr3O!NINRn{JmgT5U+-X*5oqSz9 zAk^1q?(iY00+$a;^N{`~yRXICtFkCu8^|Pt!Z)FyLyba?zRpe-=91X$O#5A2-1Z+WtQwqy0~mP1S?;ijrRFRG2aL= z5IpUxr?+BUBH5@0_h(PO?rwP-KLw8m?kaBkQ0(jvgpiQo=^z!TZE~v&9*bkhK^eyJ z3?mtg?->|k0yv~6NS5zIzFQrBs`x=40~uscPU&#<)HS*C1;%y9>*j2deZ8g(^glXY z00ZZZ1n!53AI}x4gW=b&SC{|1QMUR>4YYWz!4)~3p2xr&$=~pvK&Y+L@AUKrLu5k6 zpab!PKM4kgkqXB53=D4?z8+G;wV;Ab8b~{+p1WBF?jOZfY#pCOR`-GaY3KjDxXcgV z8Q&b=AO8!of-Xt;aU!Wii$BiJlBFF|@4wo3r@XDM+3ocWDa2nGOu;iS3Yh}_t<;K&RllPh*O08-=sbuHz^}Y&< ze>K?^1H(uL<9h~%SB!zo^pafVa0fIkZjs6km3;W7VcYqJ)kkZV<*0t$ESr@n0V|K^ zCIEtl@dGS85AJCr8wU?-QSGVG6Vk*2KYX_Q(aa19uDd)}h3~NaLc^gO`pW{-BbB|b zdGIm#*b#M?7{N0zyjn26XJB~k7?iqRhR^(gkh?qB?(m!KKAp)^+vE}|ZFkGt&J?s9 zx@pKbS-19B?YiS(TYsW1agTCNmTd0kA#HY+Z1G+t4&;x*8Sv|oTZYpG&37x>gi1TE zf@_)V;YD%y4&iU}LSS^x!0?8__@05`tpMe}fh>r>4E*C;h+)2DDD+a90RscWD*@ws z28Op9!;?Li47`DC;MtdWBVU7of#Jo$_@04*fq{YHeaGX+{}1+e6`9T?^@bI&`m zW9_x}iBSC{i-Jgq2mt|sA}=SU4gmoTf`EYh0uKfJXC2)b75D?`qAn`|Q8h_?419q3 zDy}RJ0r4vi>CN;5@EO5T?z0O71WDMxU&y%qYjX&Qzs2%W;+mdDXB}ZWn(|$j?|--- zg)ciivRy8{a?;fxF-S;Uh`$ocl3?*G!q&l?P4YAHA0m?+(H>^GOir)620!YzW#H-$ zvFA_EJNV&MEVsFzE3}=|F`obZ8cM)vF`g2j>{9Z6c)INSG!hN`18EeWiQ~(l?aXq) zA*XQv8=Dgcsrg{^@*_8F)OZ^ED=zF#y66$O;%m~JRQYi_#)zv;Zb8T27y;O%iH@7M z6?UfuOZ)q!q*80_jm8}oXovM*mB!yq$l16w5o36=jMpv8d+YylegTFQ!Vi+R7*F%# zezmpkF^6D?@b#7`AxJJQU!|>Bp;aIp#B_O0ynUs57Jf9-yBw_FxeWTf$e15<@mL{5 zX1VX%*1O|eMzfGS+w~UZFQ|33dd&Os?%GpLcl*r=r_v3h^0hoL>?&o$?1Ch}>n#!; z->#G;l`_5+!e_0zm3YNdG({?GkWpbeF=-PGhdWxU;nRG*N~}_OJhmJ<_1IzYv8@qX zEC`rrD&c<AE8_(by+NNss=F_Z z*;S>S3*~eTFnUzzT)=ue(FjdX>_(YVW6cW_+47U}?c zl^JvoOh(m9b=V_kbHSX9B9{NXffLBis|mli#zuuGkQ$Ch*?gdjdKZ-mk0E;phL?-X zrn{-EN}_OzU9S?8plGp|;ej)Eh5hO_2=C*}5O!-L3$8JcrIkNnWnUBqj<>Fh^M9x4 zn^zccG<9&aSh~L|8Ox6uB3o+StgdZ0@V=6`p4{~!67H8F-m9$H zuCAehVsr9_)-6E|)QXjWhmqN%hLOhLM-q>5`4DI@KO2QgDfdO;7^~no049G6DNjmb z2D`8<3?yX+CCTd*4sM5gj{>IKx?Ul4U3B0qMMD0>*MbyVKGeTkJq{!p zy5;eT1Wx|DLjbp^F6ggidPmmjE%e$}I6a(L9;L8_*^2~)Jh(>AD3-PX<~him2c}=j z{ig>OMureL%vQpJVhq?uzQ45>roN1|2|7Hw3j#CjHd9KN7ITl)VD0eMZN z@zHvad)8@XqW0_0>q0X1#8%+hJ9* z=<^bx8Uz?D$TJ%Xdr>?~_3MegAmR~jI787Yi1gQ?bcxIg^NqN2@bR!WHUxH1@5}W8 z>GKtJI`4CwOccRsG-z;~Jf??|(*oAqvQl)-M1}q<>`>DF1eR3@boHzN3k*;5MrD1g zdh1``8Ndm6o1>ISLW*prBb%~__F;4b7>2{I*1&U3Ex}e!5#w=L6AB)R`-)7Q&d!PdrDixf z-IS2<#B}yEpO!9fM$*!wP|LZQW6*77WXB;QZ)?<2TLc731#!q0w7~sDus&WORYi7) zOHZJc72*Iy$oD%+7e+TriXM!t0?AdMDcnGE=s?1pAN7R+IE%47k4h*i)=`^bF;3K+ z7ExpW*#Z0+8Iex1MM<%Pf+{;^#)2Pb?eX}nzz=<#Z_hXmx08}SD*E1E>_1ew59>BL z?vW^%n0Z&LY93AV0JBFwkEX_=;ZKs9kua46yL1{l9eABj3?In($JIC&eNnyM4&nZ{ zH2tSR6EH#Dz}MZ{^c2$1{u6R?7Ki)OGLGB1hln1eQ~H;*5?FrPk~$cKS=h4FT=R=(XRvYd7Y9WeYG82-ao zWZZQ2*FO*2lgU5?Rc_;Ib3Jm?8)~SbZSqM5ykx00{D|;Ft7A`pZ06@-Sa3RSv?{h5 z`G^>gj+9k3&!6`JE!Xbq;a%|sz-PC{C&zbsR#2Bq_sHMFlHx4;!{^Ybdtd#!^%l^ z6x{Y(#mmLmN? zQSL^nwv_m(^dsE7ngu!~MI~1h6hpBfxbH&PYmfeoUWcEJnFX(#VdIqaw#D2sK_{2X z;O|tN7RKxUtm&cQJiF0aNnm}NKRsdd8(qo3vGza?XUMAG%_83+Q{BOPzaK5WGS#02 z8@}|kG;$$APqFA`H%?E`V(Xsm?d1EeZT{H$sNl@RaR{{XdICcF!)Ko{i(IMDI3T0t zv+Dx;b9)XQqw3Qop(;Y0w&8SPzApaPtlo?9*bMvPl>o#ZiFL{cGJE0L2KNL74aqiH z!a|9VB7E!#dSIxORAry%f9k=o`IjGC{~Imwyd#>Azqsr&sXx;D-Dqjmh;h}W1j24L zE@kg^*k!43-0nFoEv-}PF1@$!1E@dfp%CZTW6h-z0?kCs#82sygWW4NsnR)>z>uyn zun)PQ|7;NMwas0cTX=4bbAXY=H{tiebInQ9+=o*`>5A+T&t*i20^wu9d7D*W=mRa! zqpPEBNUp}+UDLM#<-6B(sJK@xmBf_~`;yAS9Q&KTM;Y6|&}3}?vP{S3pQ>xi3-CaM zH){wN-`dAbH_C4jZ>^Fy`leO)zxn>Mj4QMsCq$#)*m2JpuIn=Lr!QjX`GJR4 z`vA58lCLPiKP$Ua%Eh3$Nk6ccR}kME*b1eBq*?WK))7P+p;NbgvJAr~D?*SV7oLQPqiV@Ur^9El1wmsGQg@PY-PUMHgYW zfmZRDMK9J@)0<-J7aEGA&URdsaI_*$=(Z%LyF7 z7%7qT+?-!F07}2gmju`45ML9(z(%MAWy|XW@aw|s?vD{Vs56kbiel~Hat3q zAGQ3vx5f0UmEJ!MQJ&g>EIff2n*M!tt2sl5=ZU=P{&%**{7ozU`5BTAu(!DknuMhS z^$X$I5SLjj9*ksk^$3iiVRZLP18mkH3$}kRLlT~xJ^U#HqVrN;xu_qK+Q45+Y4^{Z zyNhMxl`nuprirMODji`T=Kl0NHE?-&#`PBd8H@4Yit=e9L@G3T9Jw3ta!z86sqrM< zH~*FciK6@D^&ZSmZZwz!s|*1^sG zvkknw^KTz|YwEqXB!6wpb4u)m6KE*17M>WyzZx*Qs6jH*+K{hsuawcxU_? z;U|nnYfGZ#U65#nG8RaSz>@VHA2tYG9F@|uHoxsSO*s6xi8&vRc5bxd!NQu`!7OLe zG`MS1{g%Zn^rxA&($U0ohuIo5JZua3&!&-908B_Q0R5->^qX+H!yvPe6wMeuI3mJI z&8ER6cH}G&U(^22_xtn#Xvxc;VWwNdw%`9@c%xHOaiC_vBw=a---`7F59%ms+V5sM&0E&}-V2Q6653pFWG#PIzU_}a)SHCDA zBFDQ;xc?-(ent9xC3Bhe9x2iHd^+OWcDmn{&Cu=8QD>}Jk?q3c9qyF+ei-GLDmsa~ z_2`}}MEnDFBa)SFz2T{&#}MRGdB!U0e17?3q(LyYtHr(Qu4>` zM`&}s7`2$JgQa(iEeCI2Rafecl13B5!+UF;GU{5joiY}i1OKLo`e5&;qs!|qSpK{f zV%82S95k?+;*m8#mv9GgfAskV{ND_Lah*k`rfowc2MI4v^d)Q1*plFDL-0pp)Q>%e z98qv7`nM7sg4eH4yM+CyUv&h#u*?Oe(z61!1>k`R^>&mx!&CTX{0`kbG@75WIYhJ* zefz#KVDt2_>>y6A`H{X0?UB37AdpUa3Uba2uUrJgSS~K)2gi!N9%;?;lSI;;^M5#@ z&H*GKmZccE9;9Jeer})S;EFdVzxneAXdB)n*tZ3LUUh?SagomMGq;7Cu+J%!{-BjaYip6b)|m$*Y8ju+ida=)W=J2@~X1i zJL0Wwengu*J0r}Zyf0bQ#iOco_=mXskmgPmh!ZVq6=D617Xip9T^A|i(RocL;LV{!kBtf5 z(U7PSHty~K*@q}O_u&`oWgsYkerDY-vVO{c+j0_HUOh=ZeXV7waCKA~l>;yH{;SqI z%e3m10-$4IlJe3GdMdv>$wiyIq)61=t(FB2R>^~w$L3?1javS4OhM_`-A|%Sob>i& zJRlIy$H)drM4t^G^tsYw9yx}fpw;kkl^l_Psj7RlTz(Bk+q{MQ5Q+F732Yqn?r<=Y z`WB+zX**Aorh2f3IpTT4+=bRTmIxMOg$&S#2n24vJ4BtGZYw({4_YnON(+T=257a1eLsdCs;E%e)TnoW=gb1yetRSc&B-T*b*f;|wao2d|Ryz9&t#Cfckq;~&VtR^3Uu+`Hd`}tGY)YVDF5%?J6a`}c+39MV zoAy$kkj(E>&kD1|ANY2p{rFBj))T*oLDPxU97L@AT@KI0dj+Ln4gP42rQXbsWqHR? zZzLVMJDzoG58lf%XbA&d*`tqMnscI*mjpRbiu`L#qFXvroFoA^Q5C}{3iNBc&CkV{ z-8Ay|J0eqq+Fiocnp zO8Ce)y5i0PrOFxG_I6}~h2+jp3l8eRQ#Dy%IC>G!qo}4-U4`!8Va6&X9ElH895V^+ z&yI|J{W2$Shvk-;BecoPv%9p>MEF872T874&$4VUCA!^II#i~OdGiu28pn#<9L!|* z4%cW&tb~E3Q+iR_ee$du3xBr(3_=aOWAI@(hM58uOhn^4U0io=onzFG-w%2OfCtC2 zhVf8(#PfxJIOK;kHV9E92a!Pq5dF$O31QV^qQJ%ndDqwca51^K;sRj!CJ-kxW#`7n zug1cre_n`a1(c(Ve-Dkpgq{mrV4$P8swlPBtjuw5HT>0kP`PbVvwQrtVc38iUJP!p zY1h*zt5m0Wwvz&TG3Jb4-;pX%=^)c)izo@Q`R`m)ys^wx2;neOWzDzCWr-T35a}2T z0iGXpb)I5}pa2J7!)hL1n%dYg*&2F#k94XH2^<7aBZn!Cm-49hN@ z2+%@S3uw*Y5F8flp&0qNp*H* zYAYdWeEc=cgsq0XVn}zZHc?Bz=D&0O zaeZcEqbCzO1 zedLUUYxLZ2-Kabv1ACw;_jKGZaC9evv$vKsJ~W(z&X{E6*4j2I$E#_Ble9P>uAnvz z5Ur&6)on^D^y%8kwAMLFCP?&;Ss1#P0I`KC^B2N2_VDtlgzfv%2`g#g_Fy-`cSICED z+SwLx%`Ym`cjhcuKF~`a*jJA{_FCvWHISN~iK4-tV1-$vLJVWUhPK1Vv4kYZjKy}< zH>PiBRaf}ymondZ;&(O%rCWMY?k^PmW7T5{#KR>-i9iXfnv9Q<>2Zaq? zX#UBi`kX2`%;x%O|B4o^R_xCv?y@XPiV{6nrQhsCj@dL3M18p%l+pVXGyys>2pdI- zegVJ%e@)U!7*C|Z(R&`yV|TO){?QOolTD14tl3Ic+T~nDN>k(1`}dVDINK%O7k@uB zU()qZ+Jm)!cP-L{$t+)MhbV9w&IrL$zuy{c7ili=llO7nv)(clQDZ`OqfnQ);5y-S zT#2H6{qqfuBjxigK4-SzeTbtB&uefU8Y z%w35kw`#Z1;>|xEl&x^Q7QJD$sSzNzY-k!DB`UU z110RzA{`Na@@_0$i@2j08zv%x9Bk+Lhj0;8b=}}Y+6Sm8#p3VB*&|+l)7_i(6%t6I6c6DlMSU^}0isN1EA=cr$F$YWLkSzB z?bAk_b^Ij+_tje6p8H!Tx^9;(YF2)WH!IVQru{v<>e=uBrU`-5$ho&CXP_%D6v5xq za9rG;ygYTj?hwG=0&6MAw>IiN*guvhl^@Hem$&H8u29*X(@3aB5y`~CB)x%(L!?s$ zlf@_r(^N1+q#L{mxgK)EIR4s!--DzdXwiPvn8D|_Vr&FYpTOpclC!Nj{6G|d1qFS% z@$kVNNbchZ$*|4lgu{IgIyt^mn@L`awlFgnVk zr;-@~`I$b{b{*>J2ErWqzg0w%pG9=*w>Kkc5kxrhZBJ6Ro{Q<1r};-1iProWzTx1> zl?<>1M)L?Ir2ra)aZw{x6!^FfAg`By{NovN9RhDCx|Z(s+nr~s3YQB}DCW$TtnI&K z06`CQon2}HF=tJ8POkySvCdqVc83ZJ!@D(4f+|Q#Q$L#{Jw2`fS4%(!%n;anRhkr&<*9&eVh`wgMpt*Wt?hk*2zW+ z>wEOb%tdIBt7pGqPSPq|Ej7_8AN-TKq@C9g2GKzlum@Nmhvb2fIWw*o;YmhV(c zMJdXVyb?7ifR~g7Sp?Ou{5|&HD+(gra`mcy0w@xfO)m)DX97i zh6%V84V3jf)dt4#)H!YNFcR zjs#`qGI`-a$y0vCMI-OQn4@ojMfmf23{`}7G`*v4by-6!g`_KmOFrs&=2`b9iV7lE z?uKzA)<3;x0%(svqG6o$gh1Vu@~Nz1b+F0%aMnQb3Vj#|{2k$J1ktJ+s(Onpk!Mw@ zL-0N_bYD}a>TuY`MSB0$sW3JtDI%Y2*Ih~iI?HPZ7(*Exp)*oa%SeV@%M9KHI(7kS zR zb|1~x=}`%)pRmAyO_u@eGq45gNDYO{cmip4&X)rhuP}KEoPpt`zX((78cmJvve3n2 zxd?gbhG-3`_yEc23SIXQ+28LXLR6mW4En>AL2Kovp8JojIS=p;s466U#xQV>u)4nJ zn~@(2N9>QmMyOUm{mi0c336^2TUVgc?{&x4s?ZyJH(nA|wk68cR94VJOg=a&R(H%1 zl}&kWprXrN%<(glP34YOObU>urdLOfj-vX|KoveV5nd8QY9@sx78exaMm5acj!&-D zQ-aXa5rA;DzXlvb!j)!$T$%v<-#cbs@a)XS6ptn7K@H%#mN!?{w3xW<5-pbieZkmX zvXiWPupHT_qS>!zsuD5S^Hs0V4V&)dJ^8hp zWHe$SS-n*a^~_0v2>%1h!sS=QZl%%XkU`~j%mC~)XkqbBA1x$zM+3HC1(eYjx%u4K zo56gJw5#^JIQwrEt*xjMStd+xc1Kw-(vT|K{1>RL!tSq}rWmf~ehs!JcN4U+HS+0* z&7p%h%0F{n(JYz8RXAMOvzB7W)vEUp-KcZDiU9q0TiZht?j zyiJSK9eE-HB&VLTQv+vvS?-`=r+CSQ+r^1B{Pxbs}kpJ6O_7cf1Ue_7s_mm!0JWN$FAi| zbgS5a8SGHBCyx#ydE&R?uiN-TkI%T27pDf&!yIp7Qj6q42E$D1#6==h4OXLD4Ag=N zrz$K2+x#5x{IBdmXG*YCNh+FWo`Jr`i^)8(GuF8TbsqnyW?r7hZ1u8qc}8N#Hl2t@ z0%dr+syhZk+914X$j@lu;)PHXG-)jo6#4d7ITSDIFYr6uE{Zma*xVn*^J4(3y zmL%{-t{-7>drLY#JgSKZeC+s=j)C+a%#@?iL^QnXN2ARfXwO)XrY`@ za0kAyq4yjdbN>j+7akTZ*{in7>Xd?OU5km=1oza4h~vIqs)xu-B5#_XPA&I`$l09i zemL7Pf!a@tI%5EFPYYUU!5UBN0pgv{7b;9QzUo)jzdOlm?$o7%ch*<{OJB{1<@4uy zi2GRjJ+^67r`C#8X;Z)SA?ECl{i2k831;2nsE%c!c@PqHBn@Z44qRC z_4nWHQ@S9Ye-PCJzhhkMUov6MdCXXUAD#s3$GriqcYPm1>613v*t_@RA}xJ4I}@r)pG{DFhR$iREh#0g>9Kqgpz zpK~UVG)j>M6#9DRtoh#?wAs^Kc`Dmj!hX$NGMk ztd=n``}cTPPlF%`bodb~t5RqW?nkg!QbN*ui2i*|*@ySWrBO?V9qYx+;eOz`JJvgA z;%dZ7`+aLyoobG2BP!TGUK7(((6h3JI?&sy*5spQ@u?Swr(5d(-;kEjs15Wb7a6)0 z*Rl$_IAtwbPhWju<3#>aW4X0BO@HlU*fl8)0*yT=1KI(C9x^vsr2RJ|E@KWC?1Fr87Z=vX;%}OQi5M{$+%K$k z(ssZr(?vJw@J363R@B}yE+|~92Fj6fNuu|Z;QG! z_qXO0MIcv+MXcT($Z-T@((Cd)3~xf)#5>H^y^?EpV89Gm zckaG++;1bs!il(zx#9l$y!wM|dr^2H(C9Up>InQBsL$A9BFMjf?|qe$s8`(k+}q<{ z3xr4Z_}_Ea9stqGLMg-=F*&trZ9D%+7=3mh0NkCIGQ&ZJXZJG3@rLSSAt%odR@xtU zk+^r%2M;(4F+jjf<{D4k;{1cIF+DZ!I?OB=)3*VdS9rK!9J5ksO%xg7VF?sBdd1hYjfqR_Wt=xLwl3L z<`^8OJgGElQKYf*wTBIPM!blYnsZ`ZBb+u#pF6TylKj&aE#@B3@`8D2ZMoZ$>c--M zU{3kpoD*^coQ{7gx@REqLGca~g3xOb(u-65l$17&EZe7p^C{Y}*QU8Gb>r%{fw=R* zZf&^kA(@fB+TpULcb`W{^WA%j6l=~GDNEc3Mr~~FqMM9a-k7`@2D^4cxqexr{S*cO z*N6H*C&TYu|Awi;j0#ibILsBJA0D)akLI{&np|;94Jz(;j4!g9R9Kvd`_T&WijQzg z!kmTa>1qt~SkCuPN#4Gii=x!W1St>dZgJc?j|V#U2U=MByVcFy^mQU!6(Y!^_V6l| zD9H4kgu1TurAIeH2syjB$8J5JQMT_o;RBj!zK6npto zLoNu27n^74QOFVx6m@_!Azq(|`B`2qL7aN72@i1tk!WM1E(8FEt^U%B1I;Et#DHpO znNpJNI$Mj<hXKOw z(N`4!x1>x@91T=5zZrkx(^ru>T;>uIYD~Sk*rBl{C?*B<)lP0i3=a0}4E7|f{CNv} zs9#&$YhO&-%h36S6Su>d8;ou2!zA*~^?3G9oEzY(_}A6t?_DA3uhlH7C9-cf)7I1@og!qy0vlA&q?A3y1=l8q#XEw~m>3J!!u93zD| zhunm6xIakS`E)7iJEk+s0Rd~8nZ4;Ujx%Jea#;emq`HuM5~P~2MZP54Jf86tG&Iy@ z64=1Pf4VLOROM)fAKg3j3DD=SsLPm{Dx!1*(sYFN))}l$wUFafR3J4s9JZv2z4b)O z@GnRmtjWsgFLALwKo-2gbPMg_3~jH}kK?;*bG*+iOSReE@?R6th*h4}X}l9{#x2-# zrNhBq(;T;3`zaJMDHMb8TBQ+grDbkM3Yn@J(`h7huUEM}rVcje2K<UTA%{N+x*Yj zaagM?Fx)`D*vnY8XJVLVP#e576gOIASYzq$8#UW2)<|^31fv-s;Ueb;FxMUY^=~ET z?^4khNM{xTHo3;uKFsWI_!}ViGR)==d!<*5P=qJmliQ|bfV*8_{=uf4f8-j_~*UCNT``<^J9)CeLx2ooDDml$G zfZs9|+&x4=b+t)M-Ij&*d=t6u@*2Fj3SYm#Y{1BaW~)UqMj?fI*M+HuK>H45*W3NA z!f`F9kG9z<@-5`pufVTZ%6*%BOiNClnmhp`0%6;jn#u%Q9_2=+mg+i=?kzO>N`+Up zq@CdkuI%f4Shzl>%?qM_D8nnQzU&Wg?2PMlf)JiBhxoNd0^FP&`4XmL;Bbrwpi+MH z(fW4wsdztG9h(T76q^FO2GYy0{M3-mTR5hn_1|1?Jt9>!`oOiu)Sci8NO3sgq{5Gz; zpj3Z0i-?-!PGrsK&VGQ0$s&o|@4tTl=j#e1o4p_wWM{PIC}!LYLuKG`8OMuLXY!5q z(^oeeeoa6#n5dNv6`2skGxA3IJnj(5bS7s*%tR1hpATUf)w^1vxkIBJ(;Gw?9C*jk z039-VYnlwSyi{(i1!guaE$5-nZrft3bx4f$7tysl{H)pDwS$?+ZR}qzdx6 z8DybX$ZS$qqNbuqhtnsSa54D3w)bKDu665bHWN*Hh}A+jS4G&D;~FjQw;coq#L&$0 zjHykPY^>NZxPC7oD*A(f5kCWPpCdSKp{+esIgj zUowqvWXyGH25OdSt^|S{@7bynszUZsTroWjRf70?~i$M4aUZbjnK-gLwP#oj^&t%KiXs+k!W`|86}s6`p{)q zzarhNs%zLl_bJ$mj0n4MuWoD38rgpzW<|xYfkfYuSb6S`!AQg*Ld6gjl=+zrO{@gV zXrHh@^T*YVd|2o&fIifWO1eV2?J$x5IOit#{mF|>jzs8n( z^^FC{Mb|yG*}Az?Qh-N(Y|=oZf=fd(p{n(dgp-Y#??U3?^Wi1@8uTo)3hkfogBu*b z!zT&rQ4OuelnHz}m59ZCa_$HMt>}@Y%_hxAI3BSFU_*u??_>+e34pW}t`i$Yu;>9p zT8+q(H@x3eJdcKrrs&gx!}CJ2(ziS3Mxu_r8NLxht1m_fkfC76Lp5xJ(qZP&D&rud80WqosQ=j(%i0>xB6QH71&)o~FFzpRqh_P2#bSQR z8lgLtK*~8`-2kWkVS3R!uh&puR8`S@dja%vP=b4lx01duzedGZ+Tx59()1cLKDNR! z(V7jQx6$~|K-;IiLXNkY1m78qIN0oaxw}cpeo!}u8+Brhicr~ciH`@T?wkLh$#q-$ z1&zEed;L_ZZERm-fi9w+vQELYgRLVY#Pmn|>+yyb?a-7PX$2pk?aMFB7G%(+Xkj74 zNqzqFlog$4NG5sRFXhmOzVAS4hjeA`OQE58?>VdF0ru=4iA9a!JLM2cIA3ZP%03+% zj}JSGi_;<8bXboDBemahzKOK%be7VPhInZ%zS>{zPN%gt8fNIRU2zomUAlD)?9VFa zn6+9U#YM9}niC31c_!VFve5R;S%1BeK8E&}-eEY8=Q=feV*ys-lOe(V&h^UU{62UL=KA1$(!buCTNl^IbQFB`=bt6~dhsl_D$17>^q z=rT`F(VtK4rH z&s5hV&7-oQL^`+t%B1SvZ+{-byfin4pY}f`C_9L$xvPlkrF`5Z*-E4g$D-tuaZ~t^`!_nQ}l( zRF%y>L>0ytmO_6N-gP$`bML2$*Cx_j8E_!0RBNw`Q~4XtP;G%7H(Q(s`(h_4{@PYY_!V=7iXLiS7J3#OC@gth|!5+y;ty$ z&Q_k+)y-!XkRUb(GmaCZ)i4JkiFgKFbqx~lZS1BSd*6%rs3!s1k^w=iP2%vi!Xp(Af;MhBr0`^w2B0G4@&hvGuif0<8>Ob40k~|#s2vpE6i)$WyztcFd5OK$rcEylUaxXnz}tX0_erSTd3U4~@ys z`JVJ^i8S@z0dQYrY#w!A)R!cCd5H@)YIFWY76;h-=~TlGxB#o|sM-9Hvmf;F5dh)Q zvRU1VH;2i3!R(NQpX+oF{Vnx6JY z-gTdwlt75jbv;_E6d^WCncq?6h(OI-f0}rXN4+w`-{$7>_nxctEez?@s@epgIyJrS zr3*Nc3GC#UjmCP%@z3?*ofvTy{>WWIjj4-i>jJauW_irv>;M83fceIjr*F;XtnIx< zRo1kB10DwiTGtN!XO7~IX8(F0)v7GcXVo$=vb=Y>w=-5nt|&Umqq6WGP7{`0rq`8o z1v*w68|R|aaQ_|7KK?JCqhg_Uz*9nS}8L+Y-!dM8^G(8Z4VeXwt7xel?;^Ha|Bsqc#E zV_IcO&k9MzdCTSQFH$MmlFN@m0iMX`ecuMDBH*x`qn3A4-S3QIb!_(wPc{t7%xo|I z#J*FNCxrf*{#m6lW&Myv|1_WlI`{}Qj>U=F<>{!gF@M}n_OJVD-`=c~nL2(jgwHft zO|Llz+|AM!1RHAJMe@yg;JpVR;$s9nCE}n3cpgbyr+;lQT{Z;7jl|lPic}mwtjdLs z=LoGS`)k9F-EVFY8CG9s~<7S?2)GS!s;!KbI%E2+@r+5hDfvtxwL|Isl2tMh$S zc}_c|{LuJ#W>XJBdP%uCC12rfe_{p@@c|vVl=!L~%~#5;M+CSeWNxN{+YS^O8g<`~ zynx$Ix0Zca3h{7;fj@Mb(>n{b1rsSOur37AOU)af_W-c%mAnYn5$51|UVPw@OqlF_ zxI4Oe_4q(Kgyp}>BgnN-rM&$RJZBT1*7^Miy=(Uk?P6*p+?OMhXxX6haH~%OUd^N# zFXDc_!ahAm}7;RR8kp0FHWLEf+cUJrm`>OkVCvYTqU?#sG^G2 zkG{GM1B^?-t3zN^tvaWZ4>Vl0mezpw6!*!xC0E(>trbWDj6{eZnG2N-F<*)HZTZJ~ zF*tgEf4WMW%RKac*z#8Y|JGfPG@2kLB@il#Ro>NS1=EwA6$Q9f|Zb)E_^q09dbTtJZ?g zD||19|JWj6bso4UPVG*>)i|c6gLHlbp!|R8s6v~%sJe_Fuau#V%r7T(vOYh3<=@D0 z53^uo+oTrroFaBA_;rU z|D@L&v*qO^+o;am6>slE=@h3>$Z|X`g4^&t1+EBRx#KfI-}~AULZ<2*<7fAedT%B8 zQSmsvC48EwO;1%krl7j+7AOTuqzxiG;(qmAr3Jgun;vlR73o!~K%?WO5O^r1&Q~^nl;;;#-lFb4_1YFoV~6&GP)kRt zy{qHdgoMR?eSyzU`U;92`3r)-^@Wpar@#s2dCAl%XqV#Kt01Qx7>xFug@zA)zbWat zsb%RIgZdUQkcxIjIRnAlt=h3`tcZ<^B*-yOxPX!~<^y?J5#DPi52sSB27%kL<1U|! zwQnfVO(`4P6`Z{G^9+L*If(~Fn+r8%=?+IKWnCCtGsLnMOX7|<(R}F zGbjCm(8ijmiX;)G?8idWhYJ9ad&i2(2OwWfC~y2aUH&u)K0OR-q-XLE%8`c8LCW|t zSOTj;^XC}IXrckG;dts1r@zJ|O(i%eAy;KjXiH?SE`QHYkNJvbs?I9gU^R}4P8d`r z(Jr*}5!N%c926VSbo98$JRNQf(7NsqAS+JPTbLBgaeLQQq3?w0kEe8AyQe$fxZdQF zYp&Cfm8qP3E=vE0lB%YW9?jcJ=|FI!&G1cj=T^{!)q zoUQGo+Lyxm;SBIN80A!&3bww-t7E@E1%&FVib%PHEvEwVM75RtvtL(pgsSopjzP&Y z7K2$U1tkfrz@D)$b31*pN#55h6bgphw|aE;t+V5E@F#S;9;ewMrqWIufeWi;S}Fm4c(cqcd7UjtP>vMq1_k(+ z_+{VlaK#JyW;-?HeXJCASmh&!-QaJ13I`2KV^V33Hw~-dq6{Xj6GNz9&(7n=u38H8 zg9Du?P2&Jq!&mqt4~_aj9SakkK0-?D4<&cJ_M>zA4nwZyedM7(e~FJOSWnD?_s_nu zQd6(khY;&XwcVzqUmYfiVSF7|l@r|QevRz9Z`Qayr$#bKr7p)TylO##ve=Y03j`+4`ZlIfE(?eX@IYmoXbzG8#>;7~bvfFs&MCdZz9DJFp=clKrem-pVg34;+YoG3!1*P#CP^78TJT)i@xC46*LHFp;{R`C{uftLLk z#xGkb%NAe^&*s0yH2WQ?$Y1YsSh`HgI;1E?u&P%R+pm*nV%>3Y1?XR%657&ylO}}4 zF%a=H0`9w1k*Ql@!um7mPUBs%bcYku*P5mmct~P0gedr{k$&M$dbsOV zZVOH`6big}g*qK@I92i%?6p94I~m+qD-2?CbT8%P4(kSrqihi}R8Y9;lO(N?TwUoo zBg}e2rKAQL6<&P86{L>%n$}B1OMi%2P?1lL)(MjQRg0?x9XxG8`Pf2K~easjX7zPEr zfDS^Hj#-`q$@FuB^c$RWw%i((wLA>h^!!=wk#B}iiejG@M7aF3rHr4h?lE(jS)f4a zDJ!a66BNUMworkrYsxx0Jor^XKStD_g8p6xb+wySr)l&yT-g%btQhQ6don0#iC+$0jqGZ*IZr)^2o)n)tNt^oeVV$G~V+Uy~{>uT^HVo9T4EuAp-S% z@xI1lfK}yKOmIz0RrJ5bx*hzPAAtbRGS-7-bYl5eQy-?&=GKj@uRW z?Pj;;K~DEJz|p5}-v@t$hEfYZy7)pU9jc=Ss|*Tq(HJ7H@r6V)Yg9I08bw^ z=4o7?P@^!mC1eVGi_H0B=ezi{f-lX|e>=7*rVS?RTjI&%(WXqEV}j9~eZWFmR>oC_ z2ql|N^|fIW7c)dyhOQiVIJw^iYRv@-)hf>zC1FC%LaY}#G?}s9XMTR<85fH+qi#mY zYbLp4XrM1upFZQfK+QtN6`29zXkrB?heu(y*auIUMaFzZLzXW0Y(9k8HrBrmH`7Ay zox9d*Urp0BD&|YyicRV(X<57OmooSN>dTBWRG|+*2^oFiDb%qOaJ>k9of^m!CJFV81J?e}Gk`(lDWHZ^K^s z67xreb5bTaO{{>LXB!Ce;)X|jJ09*5`vuEy|L%t0{`_5eL&79Xdu)kcq`a(U%MLUb zt&N!1vzo&gRc2=Phl@rxP&HvB-MgH_L8D{(S0s#p>lLedt^bQS-t36tAJ$Y|(nr#1 zSTpVS1_58et0~;@E#UQC1SJ7=6k8uf#4K>&zxHcp zO-t`-q%JZ?ZA3+GhiPIIm7((o-zNXm2iLtxVcwm*oe{LUNb(0PLmibrbj-4MD-&~t zW#kW$Mz01SGF0E=GE~Whx{rm*b1f`V`{u4+x`K|7B}=P0rGGQlna%4T-H8XT>L$GW z-}#X<=NvKpyGI$9KcS1;2Eu#=@6V!RxYiP9s=y8(h!M=rKat&B6!jt0yP-Oo?2|KA zdEh5>C6a%ICnlds$S8|3F9Lx#i*hXHEsv9|>@uSZOB9)fb?spMRa)&K8WoYq$$Kypmeze7wXXYFGFXB-@jK&MQ0fchxvYWk=7L=?Do zX1TGStb8Jd2Tci`5Nb~C{vGY&LYj+-!w1{CX9=lb-T4yBP{;K%YV8NiqO-^d+$9!6 z-n*;W`+2@-E%pm0@tEyiw{khrFls?-!fJ@z9~y!ork8^;Gfth0S$#2oKFnq)@|_U0 zLiH^QEzJuoof32oro{*+FZON4rUZwRJkDNDQS2zH{A5J4`8A^CI7nM#Yb7{-!D}NAO$_if+hru9G;biJ z_)#VeOWWDK=T5l+kzbPI)3>{_59KH~n5Oc8?f1^fH4?!wg@MLV{p$I1-uQ}w`Y6&q zP5N_jmiV9W)OB(fxt|U+Gbx-gy|NdMZ8|+mp+4=Xnq+6b&!@TvvV_G$9Z$`;RD;wK_x_kwzO#R4($FoOx_6ezMa z4l&tLeaA`48@Xq6WpCWAzC!ymVqV_lE`Qn8WvbAorCiXu^v?L<3cu zvca#xZJJoS3!Lx#eX(|J1SWF=n_<8BWL_~p|AT0atMP>QhRr{=%Lyj(8hK-|m&;0s zj~NR~z$St9Dj!-b6Sj^rDswveNpp>*%`gqH zK*HmXFmN*agIsgi(`aHg!PBz$c3|jASx8^!Eh+SpYEkh8n%UR$gn27P;?ZmivEf$` zmqs2fr`LWa4hX&?}a$6(W`8}yW*PnWSHsUt~wIO`= z;yz&AmtEFw9MltvmcF`Yx)f8hocyQ;O|mNuh6~-W%ESlndQW~ZykiKHvtm}|?InTZ z_lkz*@6^4QxT<6v`AT9ESbGY`ue2VcaK2n@N6Jg}oICP083R9`Qb0K5H1Xp0uO^6{ zNe+_qUzN&Do$rAp%aL|O;OZ)D~hD3CP(jCrE+nH?ezga!5Pf4i8o}ltwV%O-C#JJ^B zcwirdzavE8uQ(~Y{CZwCE+*BOt?l-J*zGvp>zaIWk}+-oTZsjw`o-(VKiJ9z2qAQ@6Yh-gA&kOwMh^r-k(44Mo#Mtt-(Z% zC-#v!vD%wZyzi<*idJW!_q?1v^QSb3i1<3W1l~IKIl4rnIE(QNCGb=xl3M%ZLE9oO zEPdPsjHc~3t_Bh*cDySV@b#ldhfKGGMUDj^0aDMNgT`PLCFM@8e%;wpH_PSCf#*~- zq2q3(66q5o$?bzeXIP>d$conW$_o8rwoCRm`EzhmZhJkiP)&P=u`lm6T$TqolCQCD zoZ;Ve(lhiCZ8M0FN@s9%#6n%AEBR$=&_?T{=sFiTwQFC*fwzFExm!`jwbpf~NYbXP z_Wd%F6;}<@AF#BnC^%j~Nap#w^dY^oI*vNxpXClKB;ti5>sXG=th;0!heny&yNf7* zl&S5f&zi2Eo`by}KS0)N8n@z_3wnpNSz(zetb;uaX2?5T_1weUZrb}Ox^5vFqIVP! zSb^_I+17~QCK6#F>auLV<5QgbDNv`*VujKi!ZFos z<4MuU@{uG^V46ZHxaDv{C z((ujoCpDHZ!F4xF2xgXR{Vh9bDmxkU=nBC$AK2aEEA?JTb*|t;nW^Q10IW1$Z689k+*bR^+>A#iUt z8-#mfZ9#tX191{t{V~PU&9U+$ZemAu@5)I=VKr{JVeiXFAr!yHPn@CPmyg{5% z+pz6H+^bx0NG}Kp?qn;!I$Wc??P3RoM*!y__QwFNAJ2O!JM7VLMe+o!*msv_q>VW1 zP;fw%#-QBNz@$I@*Vu$Q8B0FbDRDguH746b@|vk`-5&&@R80GTJ{DaD0cS~KWsITW zEwqNgQo(_`(2Nm&y~gEz7wYPA3WW)|9y8<`xhXsC{NWV{!2dHhM3T9)rK zdZhZmU8k>6S*}aK?iV(ja&S|j*>TppRt&l;?+AMx;4ZXXbd7vMq|Y*UNS z-3Sc!Pz~w4(3f==DmT92E(xn8YyTx?PKNTzgpEr;n>zWKp=kISg3t(Z8%n%N1n)9JfUw;`xrJvGwcOix6)dgrn#EkH2Mz9>uvcn?cnYvo3cP6mpy+ zgROa?JoTQ+$8MaS1a8v59pX5|@fWc$W$f9o{{3v9+XyO_8=7hRw)e~74i$0UD8*l8W5fC6Dqe*U19(7O7(v3AFrPFGTRf8 z(d4EBGVWXd@tX9^>>`L*GunE3OU0gCh44>|qSkc!Y>?)u=11&OP5*qj&}OL|D$itO9? zDaYD6f+@5gDL`rzai)zVeux&B6{Q-wLj;8C=Bdb_0k^sTUOLsrY{F8ZOvC^f0cq(9 zFVg#*Y?*&^fKqCi{ITMOn5EUC_*qq4D0Fpv$lyBN|0Xu#@N|iX?BI;hPO-xGAlrMC z%_K)NVr+ervJ{4;^O}nm)1UQZ@?#Ck{trhTvg_7G{yuNdlPO?DPGoWign1BuV8$s} zZ9?R7iqQTl{NQNvaQBFD%dC_k&9U%{x*c!LnJPboDF>Flp-##t1W?8DokVVmr7J83 zXUPB|$lpdkkAhwZgwU_IYmBeHyiwWTAbM4}b!lSIUJk#oD9KGVb(K@zN%iDut+Qyj z0KvA}@C#cMxv-AOz+sgySs>m`)Uc4i*~3RRX08JKe2U?_W75tGr^}O|N6u8~&M$WQ zg>v-A9=%$j{41kz%DDYq>RKFAID{UQdjJ0Z`jizgxoLxpyXDZ)UYpoO%0b%@TV`-$ zl2w(8y5Go{E#wj}Qj4pFGO@q9NR)B@u@0&In{n{!6#J0Xr6e6_%_!q#*Yw|~osaS3 zQ;v)pzME$TBk_G)u;=JU7{mibqyM}6$rOJ6LpD;pbM52Tt;MtZX;Ar9wXUn*Y5d;sG(MWvJJVWT zl*efqgZB{AU)VE8!Ooz%vPEY}bkOx*>*9dBi))%Mu9cw>S_n(+;xx4VY48lKN#^2wue@Q}QnCyaj&0Z&uf6yD zdrgPKmn%^Sdr(p2%!%@a)nKdvi*qDb;rGO2V~^Qj({(7GV5egP-8ikEhvQtT#ic^- zhggd+E$(Bd-Y?BqD^}<@od%k{DN=ZyfD55wtv$1=2mWJ1xcyf@D2Mn@-Ne=Y!|m-d z+-xLAN69pt(dJBta?3YCn(hQ>6vX_CXix zji)3PJ~B0!MEY1dOr7lerV8y2RazSIGQ>_O(_GS@?3ew7E#UnQc^RK*x~~gHi(%%- z(Uc>vqm%O{q?1D~-%z0Kjq*T=d9fc8@7Z{q*QFOQ5LpT8G1^HRsD` z*RpOJ)z;wgzLmRx<-y1jQD4#;P%;2HAo|R#9Q)>dur=yE(tS^@-JE6QQINNY8!+d7 z1t2|0F_cv1)eXnuaaC1?UGSAQsV%KPLEWE{(@5aR?rMrbjQ2(R_!C`LjRU1INB$p{ z3`3_BoZ;J<)pk6vW~bNr5sadgGAe-Q#&8+Ci_-Qhtfm3pKumeg3+b?bqHE7z(?$c# zk}~i7x4U$ux`UvEMy?jT*WXQxet$Lwk-lB`TE8lv-D>j)3?ZZ~ba6t4b@+o!Qn5QZ zd%PxO|2L{HT2j1$HnZpmkgS_yR^~a3d z+@2(B8MXt>{^2N6aJmRFT};?0iJ7`+9V0x8u0e6OQ##@`Q(-ri?JX{>H|A5nz&8*G z5QESr+!S_G2||_$i@EmR=$+u!ElYuX5pgm~KiP5OF%?~SwuWW$20p^bz+qdJ&Li=C z7Y;W$;U&JdCw&deD6R2Rw2z4QLSLam?OgW7Abm+qBPy3rY7d-MRFiF)g(89bd!cl`>= z&c1=2H7KEcHf{M8hIPL$?Kc(R+NJ=+(@zpZAVJ1mP=&q%vLyP%B)sVn*eg%aVDtUv zh`;B$;4ge&#q;ZVM3!fmT6OT0$xK&QqxnOIvkp;^!)VZ?)6^H&&9XB0?NOB`NN)+@KC6GA3k7 z(C}_C=v|QpBh5h(FP&;k6;~w?j;)fb#kDqPZW0-2%*My2=YHH&6#R=sC08(-J9sb0 zDyvbODOOSzR2(4L~!0AOl~v3#$-Qk>?~OrAvY%{EWYr zem(z0MJbM{?}IZ3O+fizCOp*D1x=h!)SV;j+L z@WGbr(-=Cv(nXI70zuW10fD*l&9B}qSmrXN)O3O}bRXS~t8N4lvrVWGFV^o1|EPl6 zlFheJ07g-8Z?X$z-g;F#Ii^~Z3-70}B%GQA-GR$QZD$8nz(J;Y3`%_*0OK*tL2-BB z*w12~Ii3e}U2IP0Y96OC#E>1FRu>KKS$+-R><0VQV;DIJUwj}hYD$jZayK^XrF!+$ z*^VDbUQRnDZtfTK(~3f(mCdBYd$f+3co;T(0>1gqn;b{4A|_O#=h^;b^Ml>??VdK?|%tmU*_tT&=8 z#VC8esT+6>bEft5sCi4PF*ja#`kttWUm=-77S>+O;pA_npX039;ljm4;A%1zMj8c)LYB#`O(SWVmhx={WKA(gRkEr$(Knz)ljF zw9nA7!msn>JX9l`fL7a0uZ{kGMCbLZ-nR6MRbo7-FFHbRqo#bzZc$WFr{kv6r3=(* zB#9PiC@qtV&ywUO0dU`AaW+CE(@yHv$Kgpic=>4->R?QT73~=cf&k%TLuA`|Mv5?I zb+~?Kn_KH5fS`_y@$n?xkD;SSW+0(UD6esK}U`jEfAV=7tRNGNKqA@$6(#%PPy;Fb2Ho7P7x2nCZE%a zVboCPo#)h!t3q7m;9SVc?lOgkz)N}vFr{LJi&ow_hpLBH%hQP2k>*~tk&70_!^Jow z613DGu!(sGAM{C1Q9@QxlhE9n7LCbMaHlnJtTrwYmYmfJ6E$Iar=)c>Hp-C_Hd;}) z;KKsVcI|9cODj4xGyppE%AY;&+3v90{9_m?35}6w^2+wOOde|4G_DnJvM6=RKexWr;WVSZD5 z%8%KN*g}J)>eCOHm4`o!>TSx_r8+)ZQ-^-K1cDhLq_v7QpH1ogp@x$#und;5?Bs8-sSTLb_8rilkYDu%YX;)k4NwynOtjQM)xo9&9 zK2(?XNOWG;Sa!iE(G#fbWtFt2!eC()^gSDnlu7@gSrz-puMOQ+z8KZO@;(lt{v2M! z4)(f&i-C9T?N($eI4$sJ9Q41ow*!ACa&c*?_Y(;?V7lAm6CD2nKT^?14_6!&+40W= zTf`Hl2l7m11h=0tPRarNEa69j4z=wQ{!C?0iVPHj$-P63s!I49>h=I+(0xb3IW(1R z)B=h`FW!H_)S#-#;C2)b3!a01Unk1fe4^R)nVV0QIG;^pL6rIU!~N%ikRgEo*{YFHOyV^eG>uS?!w}gM=V!i6HoBpC!)Mvy zksgfoeYPdDE4S7jLm`$S1Ub5Q2M8`R-tV;c69Z39WD1jQrzsY`hVF(p?2vY%#A9BZ zhyQF*F2sOjV#)Et#roPGx96p_vFh%EunOp9v0=zv44MnHd5cVqyC*nEgA0WA>t0|? zxRtlIxPed#F_z=WLT`$&vZaImz;=R=BJoKgesLlN6R5TUn8Zy;dcG_N+bL>@LH7|G zalwvIeu(t%%|89g-N9_0V;_Rg-^1)a0r7vJ<6g3@ft8FTehbA);Q5ash(~R+gY1je z&iV7=bwtw^?GBG)jNUzNlcJ*!g)y2NGTAo1ZHU?*x%!9?&t)W1ypTo8&dNno!QomB z=iVc0r71~gD{+17uP+|;$G{(bJGC$CJdv1-RLJCp{|!ftS596##)UYwF3G0{p=m?29jZae(q6o0g#CV- z81e7zQyz`)ZE{D&KsE%JN5sS#=jX(BKAMjG?4B^%W#yE~0>5B-D$W=|QkXRDesi1T zE@BO}f%w~b0S;FTLvK7KSY+(l{t{wvx67Aiej2=cOyqxsbigk((p;w5{-#aZHRY=Q7|W*ekz z(Va$C;xHO0m4O@nfs6%@dt{fXzRs-{u)`*D%u4b z9A*_O^P$6XnSl6NVO)2SMdC5dch}WYp#GAn!1-SS+lr{IG@aSq;!i?=A$LKk>t6@8 z2c)$R9K`)j?=%s5cT%A~X#Gs~;9I~gQz`#e#4R`@Vz`mKHEXE5Wr&>L-tSU+$y%&; z*g`WXBv0PUw#sur4uk#eHfk;PCwid5mp_R1W&%((U=WVd#Vj}du+;f-C<-45LLs1p zR+971{>&Pan;4Q7((DReaGS#lq05tPL3cd~y32-;36G0*c6K+#?$?*C#o)fF@`kSv zV(^Ox1f3F#Nf{sykK2gzcDjMB^}b2&=gip)M$7y>OF!@o?L+hizxxgmlDj!sa)12! zl%C>x8xYJgM^rI03--(Azfu9cg>g)T$j_0z!U(e*1wAcYxs)Licq- z(BprGs){o06(DN$LttfxVjI>RPY2SvGSGh3%3V&2!j>opU69gTz0fR>-wQ|$FYczb z6uCfwR0GvE4MKA#nKV1P6}fOyOOrqK)q|s}Z=K@GDV(dNi_OZp-nxyea%=0yToPea zlma~$&FmFE^tG-!9re#l6)44RtBwkf@^FFQNw#*?5FFg6-V%xhy6)2y?rECHtOD;V zA!tgU#%Wwr9Zm}ne$!n?P%_w!i3J1O(S*RnjKCyj>pt6g`~5XaoJv1rLTC{DhftRp z692D$-Hm($GrrT>VgP%v2_Uw53x_4uD0 zq0;^c_ziSBej?(wS0JQ95(*va@8x}d)Uk`ga7K~Zoi)Oz)acMl82Y9J2@U(U3x{We zNv{v{)b@@4P*NBZo@YIyfqQod%h_Fn3muqXsf=EwpB710>I-=y-B49NsP2 zB4?ebhZIIw4sm(AX#Cz#)e*5X1OWHh^@NLG$Q~#V0gxETW9Nmc25K!}vZ&Cz1#Eh( zuY*hro~?SugIni`FQBF>F25O=@+C8${!#H(Sa7F9IwkVN6uJwddY^NoiZg0LXVs6X zRO&r>k;`Hj_^C`z-j^WTeBOj)i* zhlg?|YXDIQ_3s#|-uS8FbsExs;kLvKv_9%Wxc`~iWt{0MlE6r}_>Ab`n8&WN>MlLt zIWXvVL_)UjZb$w9?xEP=O|2*Qp6ZnGYt zq`ah>?&*p$#suT{I^vq5dTBsjL4l$!?#|4lw;}ZC&=kY%!9RA70TxYbQMR>N`m}s{ z2~0Gnp#W^zf0xp*w_O$09SZNZ1G<`*^9xn$%wvcTZ{dBM!oBoTABS(IisurDbLvkw z9sFR^(a|M#j?q5D>V5HxiwE)Y%Lwj0$5)N{JdaQV@B(auJmX0R?di(dw){w^=oMle zcgrBZBK=aY-1(kig&3N#>qGAvSM*E4#N|z8emnvu!UjOb=WfBm*QRZ+2u4qI?$8Nr z$J_COfWhuWOt}jwqoZl`P(IJ5&8>T^qh>oEF%PG)yVQ=+x-Ss3!o#* zmdO&+?n{74`CHMFzfqF#f7mFj1ug8%En3BGA#1s&2@1Wh<;;FJ3VOCSKhFzcqAv5HqtjF|qnTuiDWM9XQLx z6Kvo2_C|uAKV^RFT8U9Y2}$1^X#B$Q;-pPeN==RZ((b(Nj-AKIX=?b{yR}d0A*cXP zmIeUjqJ*;EzruqpCJbRJS);a{Y`J4eYR#4)05o)gl?Y$Hy*+SkXWhSB)r8u$4$*k; z>^o=OoQz(_^>qg4cB1Jk-6z-R*M<09-)Z4*N?Mleih+YFUHz6o;%zam8odlIph++X zpp|RH*JdQ1g)uPf{}sV)?$@b$7%AlL7_kRE=pBsCzl_#!f+4Nf-!@@dDfO7AQKU06 z0iQ(*{Iik*sd@}g;v?Y1A4*64B;30~U1b z%(yiYItTolOQ(O{Ae5o&2PSO?KIw$lF53CnVITtWh?#Is*WOm&V(v`r_Slxjbkb=7i#QM_$92i%(b-6w|cJ$T?bZm zg-&SjN0tMa;iEqBRQ`#l!+y;)zjgOL@U85=yheR&^Ok4PJTg3`nM4vF1gs*s?{X|-JRpqB_oNO>PR+9C$ z4Ci@OxIe6L(VgU`#9NngMO(S^i6a3)2j1t+%yPlVOX#<@No^Z7#&?Ap6wuno*L1(q z*=(n6w@iRPT0ng%BYB8fiyRWeEZC58J}D_?9!XhEF@qj!A`iW_CNXhVJ`RONLK{di z`2&s}(7QGvJJ!2Ud_0cBdzyz^ueYl}mZ;)d0HkfER-K_n>Q4el82=>x4Fj4Er&{Pm zW?9m|CS*2~Sm=c(9C>opA%5oZgqej*K&JssE@aW*J#ZYw(Z2ez9MlE4PJo2}%&kw+ z_?0FfM z;bz|1t=xe+if)U=$8*BlW4FmY3jV_N#7Xqna9r{(+I$L&Xni=kb!!duSLY2JK`?Lz z{deVjiZey!d9KU8H__t-SE&P?{bEKOUR@~`7|_M+|Bx?Fm>&{!?%CcN0#$@G>LWC+ z0az9@bjZ@S(mpL~tqUy)z9%c0+1px4QDab-1!3<_>1>d41kdkyXJ}#CP)tWc%%9oO zhE5Qx-MRQ2I6@Nma-g`zG4?Y1+9qiSU63TECzObO8VUVub5^7G`dJo~V{_y-;~@;k zo5Z%S5QPl!3=rvi!erlnIdOZxyF|s(!x!QCWW@oXp%Kt?G*d6gqI}$3i)`~M8+r+A zS>HYpVSjeN(iH3aOMJzc*;1DD_>RIFj_Mc2N-+|1(2$$-zZe>Q*67TPLuI-U&##g6 zy{uYtDggp7Wgmqr*jlidHcM9~<=QrtG?v8*O@Fm$7~MFDpRu0}uhv+Z$Q6Mw_n4Rujf|o zqq>h&Yq@oOp=Fnw1~<7@_uF6vL$i2g27cNj7uu&Z_gfexw(mG-hB&Ygx%NowwPq`y zWm~V6IYd&QN5IMqR&Qq{nI*mOEK-y|k@uNSRoWJo4~ga!*u!-9T{2C*E^+rJPnyLZ zNEF>hj^gCjRv5O>q^jE%bV<#u5vxG9oQpDgSjuC28iRhTMur= zqWTA>e(J73uM*{>xPVitG47LL_u;3P)^5%5SFxuns zVg||_I#+y&VQN9*ksv>kj*UF2ibj?T&)W97BDND1)1-Zkh0II=rAh=$>`U2EM>P~}m-lon}(4~zM){}5r!-i->2((Bl*Q2CBjm7jkFZY9+Eqn?Y4IohkBXkybf zD~>(9%`J*f$bZM|ZRdQC)&pJ-pwL8%`4mu37O5PHYp7i7Mg8R?L<0|+=7Um`^0*8a z;pM?CiMox(_Gs9@`SrBop;OD5+vyG5Hn?KFT-jexy3OzgaXvBz`S_0A@vE9#F2UnN z_tfH%4TxMfk#8ue2+YZ2zkRd2hkmp~H%P!`*!WdQR&ZZ)u_(O5l}a51OZ3((W8Ov#EYg&r} zn=G1&vohATW10;hc?TAjfw;-Zu=?_b&N{?*r2EhM6Ylp40=p!=YxK_DAQs##K4^q; zx${HRNgY*ev--k(;Y3)i(Kl`NVNX`NHczed7fd8_eiPz*MrFuE$P-*phuI$OE1YN& z!Q9>y)Zk+}$?+pQP}tuSGOYnRG}u$Or-6H2XD;CRW*0Cr{31rJg)j2olRGFNOt&($z2b#-t$r_=lceQo*PWZXZt}9 zf0dtHveNgU$D4bQ(}=(&rBw4Y%Esm!0-q50VfI(>=45dCUhCJ%7I4gn;Q$TBl#vv- z+0r$J8;nog0uA(J4aYfD8t|j2(nxfW~%BOK<`a z`48qzRH%h6B+*E-JaYkixbgghZCPU1$kk&o+ei*v0TW<-w-X5MAFEIpY-c1((d50& z#^vlRX0p_3@KaG*(3U9|_NsCN1fb??KyWae_7THoGB`~q6u*eqseLjc?}Vc%7khD5 zvt0T3%<60JIk>cq)2Av2S7!zl|H^r zq`>0K?}rMREuY?(->e`BEyzU1S?~TFNJF+t;-V{_q5q;T+HqidQvtv@;F)^(OI^f% zaUa&sEzE_?0_1LmDkMb4?i=!vBa;psbVx3N4fCu&2s`i>G_F+C$vXq@aAXo}E-ZOI z6ncd#QuPkX8P}-{#;=fJo5hXbFgPN7bJqU0(9%Bh_ zm-Ug!a0k6M=)9uKEs69yr=>VMSzi^+puP0H_J0>s{;4WO0%~g{35?tN1j1=61$#!ucLhPDomj$gM~fmr^EC zg{N64jERlN=WB-Nlw`>}Npu{$r@?Q)R~>a@n@?m$Bu|$}dx`q^;FIMUim~#jOkgTC zN!QTn5t`(PGWFj`3Ylf9Ik~j!-#IVrY$r%12e!9?t3Be_49ymYQt~gl>EER8VNe<- zhr{wR)@1UKf;k7nhZ|W>{Tg;p%rAm)WSttzc$@3ac524s3m90X7@2bXs<` zOlMqD*mBZ}nAuWnw`6EF?OrfoCny?`A%=lheEPAHQU97xD<~YSpkM$T2vl;8e6zS- zJ+FFYS%-8s;u;5-jW#B3dJ-&lz=#USUqtoXjmsZ3%vp&PuP_+Mx~%s(X=fW!QkGjc zKQ~2$fug}RxV2@Wk7z&33MzaUBl1sx;hc$=7~6MBq`XiZ3HWvk-B85zJqV8O@F;8g z2{vaE>(O?%2CLz@KZRl4V;+%Aos{-+w#0OK2{uo*W!yp>8zL(R{EC%cV(!j|e1WKe z!JesQpTmgpPIaA@5;#ueI*Vb;!wU!8M3Yi)pMCkQw;pWE!1)50G^rj(0VK`l_DkSk z$cANb)=Q$4cQBlCc8p(<{>rB6+MjX=X7x|SuR$Ib?7sxeN!0VD zr~}}Nx?;rnhiN0H8y(|~@`_-iDHHr)1E3W6GW6!BHQfUn+HHqgW84-!JQA^nYt@>c z?i>`XSRY0u=Hxi%fBM2uHvDVf2$ydz^e=4e;1Ox&zShaDb2xpU_iXsNhzAP2eL_i= za?0Byqern%xND@4GYgJYW(?$N_etKWz*imZ^VZa1RJ--v#{RoT`2jGLx|)g?d;9>a zN%*1Oavc@GHoW3Zij3(0k$UV#%gxc%FO=dAp?D@8GKyRgnA-Zm@L={j`8K^U#6na0U26{2TQI8a~fw9=UL%p;OfAWRY_Z`QeKLS-Z78wh-}8e>!8;BIPmWEHF{ad@esZnH>I6brbBiRK=4W-IL@wxOn-*FVkV#+k@ZyUa~= z$;H1*(!;P9=I_GAc@Eikrd{BFzR7Rn=(MTU;rM%~z;SA=c_a%}$98Ic$p`ZPW`-UO zO=QE_wlhPU{%LUu8=l5(wD+XRD1}CxuJT}?tkwRtH%H_C>e~}Kn0)o-Ja57?7$U{r z&Dm+|Sc8-)m!DpQBr{R-dr51&1GWr(b@OJaY6Uf|TG`1OzJ0Pef4!Cy!$#1gbqmM4 zbg`@Ya;l7Vf&Yxe0k4%NG)=#^-{mpx4Tp8z%GIsN4H-QXH&I33?T)c}^xs7(aQb@3 zToCAcXzb;R1ujl(eZJtwOE^ze0h-C`hSeZ*-TN!4>LmSl;?`op5#A0)4M+zC9@_SP z70|Jz1{@uZfS2?-tVvZ(PLx8pNr)$LsnbRB)7GrhQLA;E`eZaTsl|XkXq98r`~3zn ztC}reW&ecmt7XSjtmS!J^vS2d&~&8Lh47N@(-qd=A7>Pwlw4EXZX^`!^(X6rDt$0| zA;G=IHYg9D92n8VUSL$@xyKXb4N90%zB=jk{)G~)Wt2~BXFY|FlUgv4c=MBxah^WM zme%)zX6zpdG_*r&k!4%YNo~aBtWJ|&544&FEOstKpOSH|JD3#8N@O~AIhG-f%`;eD+^Sc4*p2}_Zee(mn?SK6IRbcQYe&dcyQyOV{TpveIQyHc5liR`!J@xCO+=oT zD-M()X-I>+84E$!r8DpYwpcBQ+W@;qTf`UV-E0JM8Im2`{K`I!fAf zPQd0Gh!@LRs)r`up$c)jN(*kf)viA)3M2*?%|+NYm$>%>6c_(4NK^sfr0s)NEB@Mz zM;-&61EB;j_#@mt z5n*$0u^P-PF#CfaV~Y~_J^;P@A0kQQkSlWgZEQ#c?Db(=U^@nH;uDa*HiZ?nrd|DKc+(AE#tZ>A&%{WG*L%56VOX>vpge_av0fbC2^y*@4D?Bs*^@zl zCa+Bs!pyW#0nZerpq1x3E)p?^ZxlT1<~CpK=;#px;+eF^^L_!rPaAE#|K9`pf{UWu z^H4xJ_#rrS`1WutmUI{9*;fu&kGQN(_9!dLPHMv53fmSKw)fMG{Y~1T?s1Qa5HIJH zOTgyy1&8cb8b7zxqiz{D4N>Je#)zhHN7}_PVdKjCZ`A>%$=~mNvT5HZ0Ikg`aw<4o z0={yCV&#QIZXc(&%Cf83tqoR`+y8HLTcXT*+^*Mds_mmA z90bC8V6wp9QO?Pwun56L%gRDto_vtP+_5{APx~zXbK!LJwLPyEoEwMDG`*uwcM3w{ zWJ0gzNG8Z~qw<1=PcB{N^6bR4mBgFp^acT29y%A2rOe#!$t&it7T{-|NgWJ=2BF-> z7alSsfI^wR}ECq*;};B4@@^p>$xkf1kH^{{kB z(4Z)hp9Fo|MH5$NMv0<|8P=j5)OBoxWAGq)4e|(3Fn#Qcymibl zm+doYw!;F(c7{8h^$|Wm*?eDn>tt_p3wXcRj*q-2T3^#VYV(;<{+)q~YOQcbGz2B_ zb0cPakePN_^wS@MNG1=sQMO^1ZnpC?ewUC87o{v`v5(iJmB0ouUF?IDw@7jqSsdiL zC)EmkvoZWks9QNgE>e3`zP7X9mabM}#o)jx+B;|bH3aAbhYnceAIR?0K&y=leU!6O zm)QZ4b2+bly*>G6;;a7h91_Zv{IOkJLW|mTd%o31z-|Uz=%xEZ1)NpiSMa4xCrXQ{ zPj(YK^u)@{@0sx2_(3z%h1no?}z@XR-}Z$EiWw@_iFc^*&9glqk+N zYcsb>i7LfILJSx&J^uznSjq(ZjhCZkYQ+35{XYne>ZIRh@OyczH(i)sUo!AiQ<5h# zTUv~DizV3KJv_&%@}kNfTs|LG#$$v^k{btf7F_hEIf8qa_I;()Hx^@fG-6`E&(k&elN_UHt zNH<8Aba$6@OLv#FAl=>FaOU@4oqgq%;%2QG;~nD}>hudz2x&(YiQ|pU$r2D$hX#B6 zHWh+p*y8|Wdz!speELU*6?j=nxJU3GUi*aaJYrO?kl2BY*_pOuL}C_(?+Yx>c6tl( z0DQ&R&I%LM&AWr);A2-?mLm*(mzhp@jmHOsU#QKt6yqQ)@n|X`dPaa2J127w^t6u> zNw{1@?hZALM9?M&W<(WqJbS!@oK}rwTC~`2EdG&Q-FDAhXT%(66se=?EoFG(kaO76 z7`fuUv9Q1!5~D|OlRJdd7er{V1Z)V<$ZXk)tI7>Pqf{!7^H?74TG>n+D^gQ1whwD;Y+lQ4{BsMmF!P4i8I`>LxMDi^_LKhEcY zlk;@1${1b#Q{v_<(u;@{$U7WYdS)nub&7ik^V~1WM9$SaIL)N>Fu?b|jAo8$eafuO zzcB*a3#|bQ6_YRNVlRnF zHp$zOYQQlqQF`QqmosqR+>086pt`Q5%8YfPB@|f<{^~_5AcpqZOD=pjCAJClor*Qw zhN=|k)$iZA(Ge6+wNRK!O(!(HT~%|ewkC2(v*^S z_jP#dNdZ}G$O31#;1GXEqtM|Ia3yzmyp+-m(x2L4w49n%KgwtR_xs*#vi3Mz=n1+y zN!n@f0w98y{B2}SV92izoA-oB!E2C}wkoBW>Lc_T9MH!9zl*MDh$+@$_4>X+| z7wM-*p*KJ=yA?X~vieS*Ni0;DVEQ-2(fUGOJ2}PxDm`ni_}Aa%LnQ2bcka>LS~^Wn z8?&M&D&)Q|MAFYFEX@?Ea+IT|+rQ)7y{jvyioPvG?Ww#no{kmCfFG^WY>Db)Y=dwA z>+pEgRPcHp(+})|GSXm(Y(@SqNP5{Roc9ScSXED4vRg(EiOimoeu30W26-tE?S2*q z3v`<^IX?PGW4P~dn1kT)=ut4725hIT_*S zRwZ(vWiIk}^fY6x42zzZnJ8Ly5nICYoPHD@Mxu3YX`p3XhA!C`>=5rSr8>w8$L2QDfHA*ZToKF>3ccdhUa%Si-Vn}HtS7<9&c>Bx333uzabyta zz+fcY5@-1fnp>DcrCt!D-*=b!RY0ba&1xd>O*XQ#6{8TA^}zNyCu<*ZP=pjOdpGlM zQCsMTzdb zahMt2Dh9?6AP=BR(cLSuw}?T!GoZjK&DNLYbq&>%8Gd&$eHCcgjg*L6im!$|G;+Cn zQL);LY-(R$5@7dq(N>wuYbe5t!l|G&Rz;$HLLGSRaIq9V-u{P~K(rVF54_TI1xzN8 zXq)d3kRv0x=kc8>jVG?2uM&k#RucLEY7Ni~M*WeCD~_AlYMJvWSYYn8t_Oe!RBx_U zlyFW+^#jW#-xNxaK2`ru?c3JF+w#-1&x!jhS&lR@Wc|y{;oFBT=~R%5_fkazij4^I zeQ!U?5ksP>QSFsmk1a?)-4&t`@yV7U27dY8_;tHwbKE*n8d78F>iKO6{8g_Hn?5v- z*stL1`FeBMDIs6E<+>%x@8uf;2HsL6F#Uv&^6gvR!oV{~UNQX%GD`0cM~T^MlAu{rQq-hUu?pX`EETq zUMo2YC>Q;zxX2v^_azuH{6Gqto_FoXG?RsMVf(r^mV3WuanZTe>unD1j5tmj5*JIs zFN)=3l_Eu}KSv!u(R3<}BB8%tBu0aJgOcZo}jBnm@L4)>Bx`F^4#U3W| zacX@>*1#=J13!=ow93#kJ2>JI>E$<)BV&-j(6$}p5mRdjHzIPwPAYusTdDn(KZrGDsoGaWF8P8-{Vn6il|rdK>N&TJn+y6`*QJ$!S4&vBFzs-MFsU zC>H7KFzYhPLzF^WiVcC`4a`s9eWhL^1OqydRQpDD0;tIO_I}9RDD!V8A&>C{GYpQRMvZU5~)OV};Suv*`uM<_fjgVPqijDS8EA~{|ykT zMdNgiUU}8>D$UbnR<>v*1EW6}MRu?-S=ji|S}>sIJVA0rG`S6)Fdl4EMS-Iy@a^41 zG+GsLtMmt|v5&vd5GJAqCN1+3-$MuW7g+U}o&r3>L9SVN$Ea;g#h3sRtXdTfai8C%9!&~?I#NQ|i(hg@d6HbGTW#MF z&)?uHPAH7x!~;w$iOkmk%irChY(f3c4Qf#8*{?#IjC(_VHG9Xu$O@|cj{L;@D zd3ff5M;0125!64Mrb%2FTSzCHs%P{3q7n?^wM2jFON)5d*fW@urHi^k_{(xXa!|rQ z(FrzN)AT6DqPgCm%C@^2V}3se7izHn7$gi0HgQq^ zx<+&?+~?Tm2o-I1gBPQl#)6+dliA8XL+r6|zY`=vZ5#vPAp{cZ8$HVjM1AkUgm)d7 zG(kY>82GFC9fV_cq+Z>dBFen1hkv+)E~%UAe>cqa&~awy1+f(Z=iGH6q;O#0i5`Lr zrf&al&z7>Cy}~}n*O24+o{AiZ)cCEk^02yzJzq62GFO_je~;XCM30S za9CBsGXCBz*;|~#6$b?0+S9(C5&wo{$nL*sSjB9E4gY*KK6MU_2aK)u1+_BA#1G-$ zuJQB-a*f`NNfNF|`~bx{^GlCr0uJ+9j!q8&;G(|{!5=j{*P3MMhp-S5RtP|kdf)al zmUlBl1~jYqUz0$;`ah~q%ks!^-6`NOJ+tisf;X;#{eQ_qgo*(Jb*sz=Oh5H# zoUjlZfEGWv(M1Mf3@l-ocBs#ggHGldEw7Y7a>t{P-W3}K!K7jJ>B<^fa0ak*Pd|f$ z2lL4Dq#~kIb*VYA&tOc$_x!k4=N+e=b&f6a0UFN}nBUc=TgBO)k=J6lzv`Q+Y*Ae> zz%bN=F{`67bfC#Xbvn3icf1Wm+WSy2i@PO(ARq>26{x)ptiW@-^-fGiR>jH}u%nZqJ`M}?QAdyN^Hys~50rzJ zAY#PFSW^DjCUdQ6nO(_&H#uZzn=n-YKAv|JbxJ}pmqwd_c;t4z!$_b44WvJ;-_&}; z^)mdD%Nq)3Iz>U`kNZ=n8`a0G*n-`zdaGe`WWcO_S|l}OH1^*3!bV~AE~p=u$Lmby zFVarEna)*h7unw!gAKFCQ*ojQp1(lo49M65)bJpWFubhFsolOqd=S!S80kt~4GPx@ zRd(wCfgx?(-%BL4cO>)+oPV4eag5etyRson<$im4S#5(MglJ1Yu;?Vi;)5iquZN$= zI{AyN^q$3505MtU=>V3#_ge5$_A*dtTFP`}%^N)pyDT;kC?0;3zozHNoeSBj5S zW;!G~4kV3D36{{I+qeG&QL&(yt+)>T8|o*5rC4LkfUL7WCj^Y!v3v+b7DV@2Gn)Iv zzc;9UBE5njA`(oX2v7_~8=16aGe+Ytr$A=!SM#>~51biHH;+~@Di6uS27(MQDV^Jb z&CN!hT(u?rGoUMhknK2#3sL;EgQ-Rk0DQfHvqwJ_@+V+FHTZ&asmv*?7?S(FN28m7 zn4Fr|Z4jaetTPqjk@?LL0NvX$>?kI;sYA`Dg=EZAz2_fRh8+>R?p-1SxE!|;-&_gf z%8KM#@99q}*-aZs0wSLB@P0_|Q|lL6ExvgFb$zCWH^RKX;JEpt;0p9)f2n%+>%qiH z>G(7FaFACu{Jh(E9S6DJbBiLdqgQ3e`Gbu=?uN-s^gk#|cfaO=9IVyX74fbZ-7yWW zc8h*gj(O`IFlQI`^H}6_)R;*}x7*f=w3daew<0K=%c5c_xXak}gPXwvo}5p+`q ziwU3_{W6DKuyht1%;R-9{*7jhulWFDAv@vk4dEp_22Admj<+rGjC6sD_H>z^BfP)A2IpC56c&09bizuZ}sfLTn%LvNVXu60_pyx5? zmyw;u0#!$f%~#U4W5Nkc8IZUFFsWgLTK$v-pgE7Y&x*Q*&H{b^gJln5PlUYWA4JBR z^md*!I403R1PU7%USj4f*eyI~Q}vr|WnQC4U@`lmOua*qpu0?xNG`1VH(e(FLVJ}z z!R0<47$r z(o*&^`Zy>Gp@bZ;Q+HuY4;*Vgr>D8atiG23L2HNi7Xhhl^|!*BylFfs568o*ckE9F1cBJXTe0AtB@Vfx2!&IL0Dxh_;udCyODClXt~G|N*v zl6~cPa!m(!i!YyAB16B9e6*LJR$OKOReV#hMBdZYiYf{R9W+Rh{%!2bNe-cp0 z1vJ9VE5tdjN3Oyo zZ?}s$(b#wd$UOHkfIZ0$P6U!2*qI>IAr){U)=4|X zR%ymRnXuilB5uI>!C8)sRjdv0X-Y&uCLKd|v0sV=0`DNBzbS06i7gJw65%e?pLORT zTAqN1OAMey$VcoBNZy!ODN0Dp@PJ!(wrSWAvdFXlq(^(ADN~QK3jXmw4%^7O!+(7X zu}Ai2(99>17;1Xr`iFs|Yhn2fbk@R^J+aNE4>Xj1 z^E9*g<*|F4;vMD^IHhki0wl~ub8T>vn}&RzAfe~d0^^6yRaA#b=Tz1TI~`BU!J4YL zeY3o~%0&r5{#`O=F-O9Kcol2?m1D@jX%h)6D>nOOh8ai#%9eJCgJZ=`?7_J_(lo^yLp9$f7Txh*jRY-LJsq`_ykfbj*6+{cn?+dU?I`>rX`U|Gw((d}4aE z3z$fi9X$WK)1)Y7*DZRcdNSpf)Ae2)>{J8~+>C0OTAp7)pPJs2IZv`>%IhZ$3hAom zzwa!6i;>H=*C|}l6+DLv`5&Y@=h9CY{-YbYCJ@KdQ)<0U@}uq}NsJ07^^f&cA!pbB6|aE{J5a59AZqf2)&+tbGe>i{& zc4ji}6H(O70)LBr!O-FL85Kt#o|OaTMRY-0vXjRL6mIYn{;)NoTtN!i8UHovXD!<- zXB(4nKonZ|+=E$)rbaF*eRjX1{Pk`>7^2$P(op4Q6v#?S550b?>I!Sp%NB7AFT1Mp z(N5`~S4(Y|nwthvtwS6F{%GsrxbPQX?%zggN)Rnw8vcr}L43^A6TJ0)5DuKfVY>qu zI?!=-V1|FA=mcsFZ-2i1!Acow>FZD+Hsu_DMKfXOoHWIkb}-YcH#;zWC7^Lt6k^MvBwYiRdwdrm8rMhr4FlrV1D2dfD?&~5gY>>Qt zd!wdkh#9L)M1y*tVbCl5864C**0IK^!WjsdS)Gta4_}k2Ev)IPTMa7JaNsdi=g*Xa{=>Ln0~f-4~MJ{-&O^h09aHYNUSnMN%kuyx(k|M#nGxYJ%Is(X@|L zD@v(K)}r+M=XM{CdDGUU(xtNPzYBzke-pmN+xJy!-vauegCNtI@A^Km;DzJ)yt5Q~ z%D6|+N|k$f5a<1bD) z@H(yhY|3;7iX%&Yi~WkfW%qw*5s%8b6q^J6LHXItA&NsGUzo_62W=!0`)^gBc*MJ1 zq8H|P^a8G~I<>Z_Jz?k#L zVolT3T`^PI7>T~c!De#->3Tt&dKC4Qi3DB6*b;L2bZ3Fc6CD~FL3S?Nk-=pebfh!QWj++>*ihdNJ zeTVs!`)Gnb#T)arTG?(&y})a&+T?6OoNLbG&z+Y=V!mBKD_^5of*Ei*f$voLgcT5t9be=!Hb%=$inc z?j$WIHieBfl|WyW0#KGd-KCD_&~n1R zFd2aF_XtWnU_xRcE^+_T0Itc|G4Xc|2bPhbkO&MPqw)>r94D^TO|h*Gv&~qQBa&T^ zVuqqHO);)Os4VE@!04KdII$sGD_~Kmk((a?iY}8;?R+ALspg^ZfNuwkx07KZyU->{ z@AC`d@wMC#x!%}^5$1dVjssoU?t)wT@QU&DW$xbVkRrjcWz$%J=bh#Qf;xc;X}`gQ z@Qh}HbLdCuAN130EzTyK4>_Z4uB@AQpcS|!WGHI%fB!jb)ft~hJnsOLnx5d#B9Qza zxSe<&AfC$mpAr91FwTLy)Z;5w+9->Jx@%BYaj3Q`ZxvK1cwr^{I~ftGH$GUnP@n$- zr8WQE>AlWxe8>==F=>2UGGQJ%@&MjHKSNfR&%6nB{6FV1-|O@$^VRxS&?;%?kQb`4kz5#0wl01i8Nv zIfIB+PF`z%eXk7ByYR%8XfWo5XC?9c`zIzcZ-t6wC&YAY72_t;|o3Sb=0F&{iNZv2Q=Jc zjNzEC22w88UFo1JBYQ5_O2y~T7#B){{-}$j&FdHUFOSx_8HTcrYNfwo)|Xv<_cD<* z7Lfq~kR#{oqz+K|X2-_dgi`J%B+~hjeC%;?=i*o^Gj`n?_3jtaH<~DC58RVMUIJXe&cl}LDK;%v7r^Y+ z2^Jc?2$&Oq!?tZemd`gkG!!t}H({TlZh#}MqucRA?71fvqOK{h(Ks@|i%fb4Yy-Zo zRKkj%Ey6iy8tKBbfY_)()IUgfcwh5K@Tt2DT*EQ24srR38jxx}RZ=j-Xx%(JO@9bP z?O54tE&2-!Vlo?glqw=yyiouN)~lWH1`a2fUmHKuoJKOXhJ4H3%a*}*)7*#sJYMu1 z6xzm$LVvKmF||+p9hkQzih(S%HhLi~4eX86{jkG9eZ$4bVv9NiAXzQKUkK29#u}Vl_(g})^>-e?~j0FmSO-d zmpPNC!xTpC5BiQsUwn(_){P;6_KlYV7Tl z)hhVcWqKEBy+>}d7E}KCUYFy2J01mS#QY@k4dz~2W3vYcv_T$+I!Vw!P>mkpdcJ_z zH*t)O`T~ozK^GzX2%Gsr?k5S-1Aend2MS{#LVupH7@#@KPnO&DOhta~#GF!aoQoMV zGG>3Dza_(zWx(pK4=GL66v+UKY{ph7H16?{H`*j@o!*#CoXT|0Z14K{u7qAK`FosCG~_4?{$82BDs2dE=bL zSzBHZ53d5#vcc=dRP^jew%|4X4_r6h${MN=&f$HA#`=exfeoPP99(ya!7VX@wUaEy zCRfImn7I-tYj$71&^O&PR!Zd~yQvo!HD#Ve*ni)%$T!mg!oV?zCWM4Ke|DHq7?SBW zfILW&2}sr-uZ3NiHp>3EdPdw#(MkdJ2FO+it|?tsq4}q5r=djMV&EXFf<`sp&f0V@ z>x8AYm;K4i#U;8iL!Li$Ur@4qhg-VmtHr^ee6i8-UnHq1gaq-Zz}qb$2~z*kUEo$_ z&)9Lvp3%55v0&SL?%ihPSzf_;4 ziXF(y=S2CIj1(E*d_=);KAR!8EN{>vu5gOfZe~`5yg0oM*Bw9yICV{j+F5Mrwl6F} z4naKuPz2f@_ymE>F++n&L;vaGo>V4}4humQ1K(7R>~N&aA%}Q2`)z#VoNtz?JWpvjOx{8Z1*7RCRy{2{gA^ z9BD>v z?Bd!op|?PA6d2S)zO*YE(=&quXX)%nnJIZ94*GwPtsrDE9nrDvwB&8qDcpLzYeu2c z#(Nt+tyKnK-LvPPfvZkgic_HSM*xmq(zt7v2p*sS_2mmwo{%M@QV0N%*S~=a;L3ze zTqmpK05}g8-%t=BaE^oKfI$x#o~}sR4skhJ?&%=Maa3vNZEaQ8tv|8eF#m0${m6Um z^XgsZM_;3lv;wI^W2RoT{#=o;{;->;r#AKLr}d&+;18%LBP-5m2gU+{piHLVb}?Kk zyYj=YPs6IM#|&*c#xer+E2yz#n?Ef?(>H(0ew1d8ldv|&40p>Ar!$9R))tf)C@cz> zYP;c%W%H)A3KKW|XYXo8&pv6vf#+%lZrnktHCDL+rV*3$F(d?vYy8g^7HF8j#McMH()_aTX z+i9u}dR;~}Nf4b;QQueTMK~#@$am}E6i4mUm5yB+AnQW=Yi-zPNty5@z*8`)>jbCh@`ajO zM{Z?wwk3J^H(O3%rP-5PTszxs6K)5gk`sk_E>twl+wMr6aX%$afo32l6P_4X(mhYj zuH~AfAQXsAVwGG^eC?j;-*l$z87g>Bg;%vjR~61C&RpAz$c8-8+JPB9slwa$+N8C> z@;kJ@=hjJW^{1hM}}3BK3nY4Y|&%!b6i)mSb_&@vOv=>{&bu6cs2KV=NVGW9rjjNjargenToE) zGBDs*wxAe`S2ILdxSPv3Ahvtv>WD@mD!G74OMq!4>;N;>D@BSMZkSN4F{G5R0Y+J- zAyWl1{bH^?rCqAtT*f|7CLJUxsgS@G|1> z2a>_ta=>S*N=2nectQl&sBy`GbYN(5oY1qkm2oMk@QtJ8kvyD zgW7Ucv={*CYV`g$-{>X;Zs-k@_lN&trPy*gxoD`pUqlg|h}5=hC*IHl37hWz`gnW3 z`VdgmlKN0Q>bsW(Y`GNu4WaUxIdZQQYTaV!l=xFk6>cET(S%UZ3+IApNP^Qy)f}vF zCJra2qj;9suFD)Z#Sz;7vQc(lIG+L^wB>W#_+;=Bas!jF6jyzAqj}5)3Xj?OqRQJ$ z4FhR(XY4T_QFtXCU%B22rcC$WRoq3d_Ov**GTgpB9K4MNuRT4Mtra zw$wzb?Jd~JB4s|CCGYC&I$1v7p>yb}@=2g--*S8K1{%j;eMoI~6SsDH>ai zr0|d{>FgUhV);|12W)ESn9SWy}EG0uozyDI7DtK0k+Y$6?eQGv7-p-e<0#K+(!YGYNM(UkCYPC$p&E16gP5OJ_*PWIl-~0k@RgAGM~2gnJ6v0c-0GyUrwgS z1%StD^W@d-0*C`^4E2{CKV7nmQ8lGLNN>KcCB7tdm4-lD+YqOPw+w2k8Rbn6X6(W8 ze!kjydzAW~RNp6;_T?P6GvWA0lvRfN`{U=ZQV&7M^H znD!->ZC(nV4{ADPgOXZb-v^V`C1RErElHS(5B2*tSzTdivKzD?A=9BO+X>ch6m@Yo zv0*VcRQeW>Bo7nh9Brk^FZDB4eEb4@7{f|X0W_~Fnf zR09|to_4>G*4#+Yl)!pA)Q5dhgt^nG=ibnvOoS{jea_+y24NwMoGI56$P=3(7|9h8 z`DURG&yu=`L;h}ed_x$8Bs^mOl z1iR2rNzTL&OM4t_f1Mkv*hKNfictjrrGfGl8e4y|>Ntgc2cIsCIIK_cqiA#nv!j24 zjJ6be5yAD(z^{C9_u+cNp=!dn_1+Xo#r*fOyl~sQoWI2Ds5C|qN41%w7*o*tyt218 z`yz}6cds`vr<1feT%}uoWQ*4Ocu%F*63|hJN_`%mDlkkP#uvDG-a#z!LovD2rB)M> z&JSX0iYhv?m}Uziv7F>(=>@7>yK(risnhk`dE974?_ZGqRT7#Ea&-{TiJycq7{6pZ zN^*+i-lPK+MSH9F3j>-MOto{=dbUI*Qk*}RJ7b0!4o1wNCE~S-HFPQAC~2GCY2H*< zcHZl?5K(p+xRVPm@@aYV?qLLyl+tZ_sc$1IBK`=5YbxM8YWat*EcLrz^ViI+_|1T( zut`59wHnwzLuWIR0)7A4Uf4fki!Hxrz8EZ*hAd#o(-cv<6m?1YYij!E>-Hm9TYkR; zh4L7XVMnlGdz{g-Kh=2& zDLY;?7ITsu5Kx>NAn=Yg=nYrVg%2c1^UNm^B-LrbpsiM<-Ju1>SIsW){wn`@?1+<~ zZ=PO!5ESPSCE1coBbafIeI$+MYkCc~h6o;Q_@ZZ(z*4@NI*jAjx*Nc2;{7X4OqLeP$MxU88Ul?BKR1ER z^WE1z=LQeQO_=TlZTg_v+y$saNtg|5)^xDo-`2-DrN8JP zm3Mzm(KL$pw}vp^vPB$=bHCu8G0afpy4_7WiXmyFhNP`io+g&Zlk4~>oqYaxgGN*7 zz#v(#=kvetgz%6d$!mP1oj`AF|n^_*seyJHpgvVk`84eph}E8P0)> z)f-_FWVPn}X$M1_SkP>BqXQDh&l(-xNF?ory8f4s(!=ZeE2ZGFQzYS;55fd{Ra!o?`&A9lkxhp^5uMqrerEc^p%ABtuXwOpL2c;<`kOyI7#O-IkmmkX(&ImT1S3-n0To(7h*20 zAD!%_4FCE86*a?a>OH7&_t~NKh*Kbj)x4GcLCLFyN3A>_^xkVS2;Ed>)&q9B+P(PF zZG@~z{AQ4nF5aHUiTKAbCfo>(*Ub_Ed}QcR(%0C8@KmJ-8!y3qPnY>NJx(v)kbA$z zVxN&_4Cyh6eJv5C2(C7~g-f#e2OPLEzC3xaO;r*tZ)7~b9cH`*l<+?%x?413G1J_~Fmd^m5y>R}1s<47HH zF{0f|tXRoi3^wTWj;qYec1Z`R#CXm~hq3`4xFO=*Vbr<`_|yQ>1R}e=ov zLhzt$sSU5nw+M4}R_b%}TY6`>W@sPV>Ju}p(bgRgoPO;7sKJor{1cp}^Hz0W^9#Ty z13Z^M?4HMw2BO=?bKKK>;>KiD+xd7MV9-9N&U|1>$6XS?+?8S$;Jk`FCcduC@HMNU z>@yKNNr|6$M&YZvNO*Ruul|i6CNo$`Si=~eU^^oiSFS4QP?E}7o`Zuv;3c>MjZ6bR zJH&|nTV(BpZMsm7rPGSbNpQ^<`;d>0l#7|3{JHV*MY}dPO=d9e z%JYWA#EsCIU&`M9_ig_7b)I1mx8{52z(}iC5_Dwj^jl-sqe)vzq5ExdPx%dh{IOQ; zeOHs`uALp6-ekbY$*P;k7lg}Riy)+UdT;gNR&vRq|A{SO1UH_r_um5wZ-P)+t*oUK zZ^z1m(>w*Nz4{`Lo+tGIerYuW_=v<#hReizTauLoSdysSW_()OlQwTzm8qOO&}%81 zDksoP@fOw=Vynda-n2PSpdT@*HLk^AQq!T@%*{8kdZcQe_npt=^tVH%w}UvZo6rvW z|NcGx%*mj^__uvRs&Iafo$qw2uTJ@c>dLIt;5GL|$`o_B&Fu2a7?pYLkm_h>nz-HC zAE@h}sIcXea>$H?2p!UrijH$2MRfFFbVgTTLb2Y{+5#J~rKXol4>Pg+tGcZUK}5Vy zCdj zI6?RsQD={67&$=x{kM zNv>;?{<}?IK9aQzt(>kDQ{JPbgYbkw+^AYX*RiC>nzZ2NRZ4xosE_klos=11Fwm;& zn@EZ0NB^;^J-Kh{E*=hFnM0fuqp=t|49&p{?`G%)%>!{hj{=8RilSoHqu+T7vJ{8m zSNvc9>J`an_F7x3$xrKDxB|6b9Kh-CCBISBS?t-*d`7>@)Kh=_)+537+WDeCS!(YK z)0sIB!t|lRs1Ej&ioY|ol>X&oWzFO2g;}AuYzdj!>uY?ASfugw9~GzP7jh`t-^P89 zSt#m{#z8jK=52`f`^05sM{MOrCW$k|A+lyX=lM*hl#5m2tRG@XnlpCXX_oe^A7B4F zxVb>qES=YaALo2?74s-1!QN<)L;L5)gu=<6>hVdY1$rB%4d{!@v2fo|t#JO-Kic8o z;$W2-B{1g}D9=l){g7o^(@o6gLp|B1at3}^JXZ6&FuZc|8opefSNEcAZ2Wq0X1LXg zft6q!eKGr`60M9_i-VO17ysHLS^E6p^OpNKqHLQvU2Ri%gavl-cNQ+pF(hwGWF1J7 zEBqM0FO;6|La==V;v3#fXzz;d*I$<38!tpQl|J#a*!O1=C-i891?8SVdG8v zyZey^p?P5T;7+t8Eko%OqZ+4DWyeEeQYiwYak-|0oD=3 zJjhmx3(dpOqswyX+>ox=Tc>39T;-U~>K@aG80{ALlOD7Hc3e~8?e#?Kv!%E${2=q7 zue|Z!vcuCT!M&>V$)R=N@DZ2A>V=*P(j1y`C1#nA%Z&IPw;C7INII=hH*z+B5FgRshr zS0Uc&x3{U%!W_Gf>fdD5>D1Jfcd>d;lzGRyb-dyR0_*Hz7qt5Ob~ znjP+64k8h1!@%vd7=FT8_|Y@OIfAzc{o72Xgp5D40X_I%DYHsmqCncU{2C1ZhyU7h zMLdx6-<1a_vnq=_zHgcA&a~a@LBZbiSt~~Mt6A#7a?O@~fNnY0?mlQL4Vg}AT72!v zx=3PI>|8BK$(XJFJBb7bO%P8MOVkR-9jPCdQ5w7L?{_|SD#-rb+<=F;O||_^JoTus zR(MZN*}XeE8vi@;@EZ@c?Kits0g>9SF`P z!NR&zKA@Y*0pX@2mdL0)Mtg{32*H#<5X&;LIYB;oXf3CS*Ht9f1+XT}sW7f~5e_>u=YfrWw#&bLg zW%Q50)_uPM`aiw0+NPf2aelmpUlb+qxGRJ4KEFtoY2?miU6K(AI0A!qFr1qP63qjm zyDtQd?W)3`N%yibl2&AG5!enDYzY}jly6e#oUNtO(corWtO(@$@>WDgg)+!F+=+o`_qC0pV%M?H<}!BpUC|XmP6!ZdZ1~q zk5lBUkmNPSXP#1pv5(IzRbQ?qT>HYeZWc5p{MYwHvgsE+D{&B=w-E^{yfD`ASWXm2 zjwZ?o$}BX0_ltCO)o*zt+j9>3$0hi&(y=_!03L z`BN@~2NTN9CQUt*B(xm&Wvn)B=c(vyk?+6ngR0&>^nzHb?jnsex!yTV=56+ROXgYi z2ASqOpRJrHgC0kcevZZE&J(O?!u-ia|JGiq`Rv?adRNoKB3A1>*0bi*YE~EEQ!ef= zP%LGoU8(>+)kW1ZzC&%%L#4Yn@{C_imvIOeg9-y47PQq4x*Ml zc>Yo*(P|JJtrK4yDavo}WRTKYxr-z29DDYw7o74)Nk2VX8s%aC)SHdnpeb15!Dm}Q zr5_@%oW$Jp%~ZPmxr~u^-n-zGtUKKWq?gU2;{VQlHdi#P++pf%= zcUW=6hQlq@&f4LmOXx-W-A8NFCIK7V<5@RMA+V%iVS{aQw8u>QULM0viA}BMwNz!F zS+~>FQxX->{d%DnjIUD;7uCUPK9!^Ux1@P;n0Iha0)@g)l84iXaf)M54kw%h+A2jk zB$|=t{_os++X$Y+z(t)ur_C(M7*VbKf`iUxEC0nt(uB``@_&CGYQ6i%6yeu3hnhGgwltVXEPn`DL2b^B1Y0-{9tkD2wp4Y)Nix;KQ2QOu_6TKf`xfN6oK8A( zp6A*p1T6ixFkTa;r%_1c|$?sUEQh6nUE@c8xqOm`W+0Du=g} znYWC0Ow1M3;o>HYXRR^a?~XQ`I1WbY+LMXQ-V;pz@lf~jOMT7hMK{b^jXj#mqY~8X z(ac{!2wiYtKA2CB^99dwe`ad?rA821^9AwhSEsw=ftrn?)sXxy@)THT0XsD`~1;4#Xx3PTubP>m6R^lSjs2}g$asD4b#Ya2mk zeSLsRCK&9`Zu(B-ZTBi>(4EFPvR}x5;cFSaSGYwv2tOK(M}8#hYs_>rICH3Rl8=cX z$@H)G6@|G#|Da;oG$tEN@r$*`oX7(4;+%4RBWXlrb9)$xpJNRe`d++oVJ#d zoPNeIe^wPpt*9hp#+&MVd~m}QEN^m1psW_}r^LuwfW=1CwN%Gh9sNI!uEDL(uMe*+ zF5AX(E!%F{#&RuNL$+<#GM2fpY}>Zodw%a9@V&0@^*rbKocr85Y6KTI{aDL6mQ`#d zX88OUV`+`+`rUL*zt|@B6R=s9FD7Uac79Fr8fO4-#$Ss=3_v}R!t0CD>cn*O+)SH? z4|;i_WtviW;XsUokI~9}*mOmAlofwP;+toU`_~^fn3C5CX%>HiaBki^{>%_7JhT^& z8F6qW!|(k;&+S6~WXVA={BojN{j_uWRpBVJ&^dT0=t;u)@%yN5l=Wj;5N$p~^#)~< ze8GwM8LD^;d6i^Tz^K2k?_XGh;q85d9)p>ZO)f5i;k2^vHFGmmGos|)%~~7s@ie?b{w4x%VoN~Lb4!NN;z;pNlxoIn-T>J zSOZ+phQ7`GbPY{3#XP>@A5d^NeH;HrF{o!MC)$RgIraoy-?1s1zd&-ejGbC(GUZa9 znaAk&H;sIZ+q|qTpFCqP3xU+{Fm^P~@0#aahiB1$!_%1OUqNgRqXj?`!eQWeF%5XW zErVU+X*4O*YlRx)24g0|1#v&TujDWEzTDw!h%1J;??FQ8LOXT3Zcd!+y_H$mi*~d4 zE-T7kSj)_z#sgdYlAEZ7LmJ(KQrQX3tS>Ltx>H3{3Pg=srri(gv&1W(Dy=bjxtHzn9jb`!^q4)dXFKPxB#%OLN z0>(5x+S`w0yCxAyXBz3xSUeM`{{r%OzmGg1G{7+|R8rBm2ot6>T^!p=e;AHyZa3-% zl(i9D`QYubNr8y(3AIj{2A+DICZs%H<=c1$BlTxM5^8%6cnC*bMOB{DXh?N~@r_6~ z&~yx^78Qf%JZ!jnKv+%WW9%9vqqux~g?k#a(=gal;1_C}_i*;G6XPK2a^#-hxaaMj z2XO2eGIrV3(95FUbwUel#AA?aC^gNVl)1sC3Ru<8#GEm4QO=SUubH)!|FUM_#rbEx zp;ITSKsh_2^|}a6XicV2Qn&b$#-S55po^!{%p*DT7?bYz8N^L=N)Eb3u?O{>iCF1C zX(}xfw;#Gpi04blwY<;RLuL=z$IkGX>BQJh_@f=uJBS%(W7cqkYA)+aJlSoyvMoa! z{PkB)>ZdPz?g6RX`yy`bdS7;YD8%2y_Hz7*)f+#jO6DqhuoN-0T%0KO0X_4kZr#Mp zFWafi_VM|$aZ-1ZBuI$wCiitNPW($P{~v>&dY)1lc*?%=e>p_Ba__6H@fF`I(T}xS z389J$i#ue{HX?u_q?DhvoyC`O`AI`6l;Xxhoml z^4a|9HZkSk!JzEtve46Ge{ON6;_|gc$c+nJW$_dcQ>ZP3Z6k$lLPqG9Gv+&)iG66SjIS48n_&c1-j+Hb zeKnMOMOXXS3w!DQxCp@uWKaM0V>`V;dCh0DL^%ro}8$TG$hgPlnj zW%iT;*33{=k!zqp*~^9n>7ur?s;0TSv)9KRG|EuMkIbQ;2U+j0LUPHYj=-@xfg{qo zh%j`5(hh}P9MCv$p-UHqsfyTq#9wM&_#E|UwsfoVS*=YANww)(8>^0~&~pB0v{CMV z7_}uO^>HFWOIB`j6z<)`sF18L+YH|2`VR9IM)n_%&Y-odRtjSom-mybRwiECpb5un zB6N$gpgysPLQXCG81#1_9JHo6NzJBmjVeR*rJf64^_l zNy1giH10zY9KH|p?h?2JD__TE=fh!_wX3IinYdjhx&4oUb}Al{Z;>Z4oYe(LICxV40ulS_ z!bb%6O|k?_v6Jn5qzL72VSvVj_bB`%pcO|^X!CI5W#tH`ZYe3HORZ#(E?fK|Yt z_+00(j2XE-!vd_XpyH-NJxY05dmH}PtyY)iRep(`CJd|fzYG<+C?aqnm6rGwm(HO& zSFt8V)p59Q%B|im}n0aGPm>uR1 zG?Rw%M*qq_L7?|dV7l>29*xAQWK6G;>Zu>Bmtf!Uc7Gh_iH%cjbk0qQy|k+_!&3Wz zx&1^QP-MVnl7w`NAje=MrUqoGh>AuSbbs1iH2GPVvbxW;+-Ovf&G+xnFAp}v3Vo!R7qudFlJZeWxfKtB$58d2AgdIuCwR=At9g}}@t~UvZ z(mTo%X7Z;5onwGJAPxiL`K2lVw`-KD9;rhH%RD^^xAm^8h^;k-mPerPF`^swYn115fFX)AkGxVm@QTjeJF|G(DN8- zOQX;C=X6HKRrZyG6dkNnz}zsJ*w^3%l(|4VKMp*~_h!t`w(ZHxJ;ktBQh#+Oh=~QJ z65856m0yQ`GIe{p2QT;a%}4>SBcV0I;u_j7M^3o5%)J%E&@82gO~xUwt!~?%TGnLB zB~|>0o}K{+U7PF^Y*(_C8@*nVb!)^l$wLAbIOhH~N1yiUl&Z3g9iV%L9u+fJy|7Sf zKWPt+k>O*2e6u$>XGJswheD2u#os7&JV&uzxr?rZyjb%bPA98cfU}ryTZ*8H2Ag}a zutQe-7GWL6e(EF~JqII_eL7Pb3yzP^l29dcX`mR^+5RKRQUSliD}Z+;S?U{$nQx z@{Oq(TUmD*K`x<4yB91$6va!r;!C5G&7f@V1e?|ji*Lx<_0>i043Tj(zkcs;SS4j; zUpA$j@rv4;qdjzSjewCqCm-WN%74WX=G{zS-u*>$^@1f-lGeC~gjHVm4ouUo9LJkZ zs%=Y_Z+A)Fk#uW+X-gj;kgk=mUj3eP+@_0mQm!-&^mz^pSGsJ-QkK=18At>xQB2c$<}KXUs*(%9P`X zA+Sd}9oRDKhMVZ-ZuYhqwuo9qsu(7AWDUU zDZuu0i&mlYvqguGeAW@ij&M$_-QydLm0vmoD+B-UAh;7iC+5Cc4PkaOE2T(DKP&_v z?g|wa^}1%pzU;{oQ`R@!SfM9a zb2W8{MB)hogMNFBqko8j1LRTG8f|vg@TpJW)A0%_8bs)I1`7pW2Jc@z^xlYXa6W(; zPCv@Z6(Y_D{)_=iVTXUAtC_U;IAOyFC^%=|+nyOlojoPX{M03|46q*(TtZwVYThr} zq?TD_a9#a2ddhj8A*eBmvl5dT1Q(+Vu|1b^Z4w$mnH#XHvqjZ9O%+!a*8`tu)z{*F zy7IiEzqQhp$dWu5bwwT@Gm`F(ShZ}Dbgu}`bml7NaY)j9h~M+z06}&zt;q8gLmkXN zeyPDTH)DC0KeU=tmO}~4!4&@>BCG==DPC$?^)$PBAbU^tiO2;CvUana;S6X_8;vw4 z&^wRT;tA*vhkuBfeC*G!bEG&{I`Qn#Ws|qw5Ag;VE3i0x|1i(kcPk73u}WR}^K;=W zo-9wTt@QiWevF?lgE8UzdmW7J!FS+ZA*7I{rdACU2S}tM<-73T{Q?O~6Xms8i^gY^ zF1HDVSn}Vja%3^rpfSVF{`vWHB;!j-lx~`m9#2G$|8h06|6D691dW|^c4|1?32cCU z?A<(hw^sFIGMbbpgu>7&6BWAPvAW4dm@%*{TBM6Dq1!j4(g(X@D@lfcf0`I6plku9 zI_cL?+OyLQy~%4gX)>GWCR-8qGX6mf%AikTNd)M;2{v|q1I)lKlz9mg-lX=!R21i1 zYeqgd7VgS&`QxeLD?Pb@ynsp1o~0uU4VEfR`v+C}QRw>deZ<{7g+mh9Rdx&iqf+k8 zQq&QuDGDd$mKOZAQE&|~zQ{*|;p_4J1oTv;;y%+3OuSu8#DN884K3^3fiKTZ!c@De zNW`rw5oMC?DuP_`@v^^6*4QMEy-D^uPkt}|MpZR=mw*?$sd{K|+R8rUTS=s`?#}bA zQljz~gkW6#cU-p{qdF!NdsQAs<+T(I#C_V~N$;(tJcT1?=;jhr4zO51Aq=>r5A86s zsqYMnTx$a|q1-l2XnlFM$F!9Ik_QLeZ~IvI`*mxegX!zlU?itM<*|IZSHW~dHKnjB z2Z59XdI1N~=7L72qOvlhNbcgIz4Q*hdl7Am&7fabqZxC-t*OOdIFb}cAPqU%u2Bis$$#e|4-2J2Wmr1%A|vDS-s{6T62F-rwCMh|IQ zKd4tBXtCCiUA?Q@oi>ZM0_x9hC+ikPy)VW2|Kg22mXZ2dk z-Jd+{Z~W1hEmiJCi1yZozpzm6{rJp02b0U;I+S)1iEJvFw8K^hqzubfn%3-9!(ILI zs-02hM!(&qK)O}b)F@~|QkvcO;E&>fyByNqo3du&`4fe=C9$P&tJLVMzF(+*zWpvl zFF;442CVR}K%p=t$Kr>K+>iY`cr91=`GHSMk$133*>)&h&^loPxHpEvx0hWNLhf!t z|MIZ#LIUq2|1j?$CJzI?okh6j@-*jaWJ60Ddd+iT4w%m5(jCB(y9xEx>G8OYk`;+A z_hA(;J*Y5!z&w=uXJ~Jfu;)Z4=W7!y&rx90!-Koh8uLX3nQiE=94)gV*``Yy;%%b7 zrJKkGsNNGz=&5mi)FVSSa5NgWlukBzuDU_6WV%SxoC`Ty6qS^gZW`X-mW@nVwP(K5 z7Q5=CZrSRhwv6PCKL>Ez7FW|zVMF^Zx!myvMgKUp-z{at$3vp*2CZVmPN8eb<+{|3 zkg+PwQWF*N4uBn2S?H8!b`?o(CrHdN;*j}e0doVENDDQTF2GM(?!FVslYSF&g;ekR z{e{U=L}MiuGWpYpUub4kPgY{1=JGrCv5lp*n852notX0eKmM)0{XTWL&K}?mf25#& z1(2sfrC0jlr40S-Hs%pns+lolR~|kLvwQY_L`?B&i|^Gln;JhIhOAq#VZr;48JNdIJ2p%i z!hWX*1Ji;@*N}*-y-c36Rx5OVA>ojB2$ngQF>bDz*Cbdng9);#-+3z_cVCW6`+UuU zmF!eMsR{xofTc8V%`FBGAht!zRrbSEoenC7r0K~FBB|bZ@{c9VdUvnOFH()(r+zC7 zSfD@bO>gEOAJ z0SInL-=$OKfs4=9y9KNk)thM1il4_dIco}--{r=PbMo^|f_=AWBlpKxdnY-=mH<)( z-h^L$+PRS~jqm?m;o2&OqAyOU(0C<|z%gc`TJr~tLVYuN-`phGbkvW4K5kKX(w0A_ zQWR;KbFTD5E=dbM)P&VoS)M|qUy^@Dcwik*Mzfno_=BkBgM_UG(QgVSea~;-?`ccl zg#jj(mEH`nTnX}#8WtyN536Omy*YFk!1H8Y=$AB|NXPA7)a>-*3l>dX9#iOO^(%VW z@DSN2He2Ujy;c!9gZA&&SYyFE>y+4tM@`NeO{q4TAp-|`TQm-r50bala>SiwLwsIJlvF@kY4kSh6l}|s@E5c+N%&C z&QyqrXv0Tc%Y$r>DY@-YZmer5^v=?WJ}DiyZ5x}Z`C_g|U7!tOEdr`tBL)pE&K9r_El7s+DX}Xly>0P1FXcR3jnFsFH+<~ zW)Zb^NO)@o3K(h)ky|=HB56k9i#5~Dt9EKYgTq);?93EWSnZCCFOUB8qHMD;SoU2G zyj$^cx%{wUbk4t&HvMFupP^52@N?4p*nLh(S?bWb#yzGZ4s4)gKc*s&&>76}}+~ zeao?owz0B2R)4jx8?U(zQwk+Z0vB)&w=0Kwfc@zTLH1Ljwc^(ImXCS_VQfELubY&( z3&*#XLQm6yDY&SM%Y#2Rg;rcfX7GV5 z54(4cEG+{3soFHM30}Q)9UT7P@5^g-(CnKYa?Xa*^fkat#s)sjxogbmS#y!GHg%(g z{QY%?KR3~kYn2E1q@Ns>hM9^rb%m&>`@&iaf%MMUGI1bWEpXAQUqI=r^O1MbCy&E3 zI>TAk&KtFUS89?;bWr~){~-rNvvlbqd|5rm{???SoJ*Z7eP-x~1$I6fn!Oli8gRHw zo9Jm1?4)a|;nJHF`r1a%7leaE+bp{2#+X33tlpz@|Idcu2yIIo!%B2s)bSk~-mHrW zDa``Dz1n=4S*k{;2MlHyeB@q9MimV+_5IN{d4RtEFE(aYY;J~&;rP=@-t^1}SJK)h zt|IPHJ;O7?>c(SmCO%E1P%PIV2?U$%JZiIi3>X%xaNX~(kjOu%fIG0t+wW;J7rfaz%W!z2`Ui%iPmWpt<}vr6NsOFjcvu z)w#~~q=>vy2|RP_b!*~Adxka4r>~Ukl9r|4Wy6o{dTeO5{?g?KrLGD{Ypb-K*c4<= zAd+#b`0$)Mfe7PNl0*RB92D7OZrZAi5hz21le;%kI$;Nzfqcr>;~23*~*?D zYnl0e*8@pQ<$06TRx%s?5mesKG840+t>kqirOtyXWI}Fr^pGGX`i0sO=V|N91?{!} z>a|!Fg+hkKXgcKje$#ZiOP&`V&Xe96mq%ECjZT<(FPlxMM$h9UBP!YKY|-O|W==wp zv&?^MsURZgelD(e#c!Lh6R;u`KZ5b;rmhS22W#cZJVJwA!Z{#&Y_D{!oU}5x!`1)A zFJikxt?TRJw>+k=+&}N7#D?ycM2um;!_Z=36C~=(|NF7{B(YDiEM5s{8ytFJTREU~6QKT>WAVPFOWWYB#7o%n|^Vb2K#A zze<;TgNWy>Zm9f}?x@d_>FkugNQjyR^qd{W#Hl5~%|z+BbErdLaZk_#8ZnrA6PZu$ zpz4mQbWC{u765#`a3PreADh1b#XJTfOPZ;O3*0A~TQo+lZBoEl?!djhO`WGjtZ@@v zjwx%=5f;?B;k>Ay@pF3SsVNBC?@G$zlzgD0st7}D?|N}UjseVrtN>bGTosTC|x~=pG*`3w0ut2<j zJq%Cw;UyJlf8N?&@hy=URZl=p1cvDkCw#qvgmlNaWG{Q+o&v)YNqXrY;(}qpl~AMt z9^VEsx0!b+Yyb3$?)yW3Zp-AlhPq!^k#AQ9GP2cf&z_V6vKL`C*bO06>3!8T2c5O1 z<};lNz?9cvTzFvW&!oN6ia>224$e^fqgCg;wE(n_g9x7UNVfT#uu%v5{}UI*&L%H| z)#fgx%Wn><)c@^>B2HlcAd5=3EtrhTl3BVkg~48Vus+>}#FvAPTd8eZ(rl5aDdR^3V39s`X*_CFRSz6|31>)=ifQ~gu3_1_SO zA7s~$E${MhA?&eCDy9k5O20CN#x@Fl$>rokjER#UZ0^|}oSc_vf=DFzJZ3E`F)UX& zAQ^IUs~-yv;(k%r$47lJ4vtk&z2<<7F~E5qt^ih~%4M-KLBh75y7UKVP<`JF5Mhs%)kK8(6WiN#{zBOV9g~@3l8oQqjU||WCx&ez+VZO+=uPa@Ofn)!euejBfV&Fo zVxiPqq+WAtzh0|YVEznvay&wi?f6u%qXdU(cQ_m*cN#aevwN0~f_uyJ*r zHx}||+eHY*i`KAWqh8w*po(;fblph)P3R2XR+hD=8pOgpNWE=Q)m+5`@w(bbn_joe zr8L@Z>QYAxt)q9X>CKhMa!Yvg_<7gg6J(QN>;`}m@)esqldJv^V)%Yfu=WR?^T*%^ z&{p!%0o>c`dodH|ln-_^#pjC9Oad{Ta(2CKcApc**Fn9yH)Aai)(p?rSO9yJ3=LJ? zp0!rMaZ9iw7k%t-M~0;nitbA8fg^{M#6Yv=^ji`n>QY7!e57EhTZ?La_5>C3M>-*&$b2C2Hroe|_s#^x>X?EM#qyiI(d$@FB~dYxnP>6$7=AKlz{?>3h7kL*3@3O#_%Hvrz!7 zczgu$1jM{VOt~I%Ukw-+ICKXVG!VPdoev-2{X%A(wNIL)dL2(GmU}b{Ztbe2oN2>-bPM`fTBTih-LO&A(j~IxUcIPX?o6k0fZ>6rYSdm6>nk1>PBkAlvqYv9H$Q5SHY*6Z1+PRDtmEj z#g8(TIrU7AZ<8ntfVH`xp zXGfS+wGZOjdm6U6untiY*4M4-wnLP@%59Yz^|!Q=pRT2Z>`g?HlvrSWIuFHlD&|j= zQwB^TQC!~s$zAjPQL$rwSgWW>-3bg^U}TeY z&6ukkcmn|6|?F$nBxldM5&&x-iy<7RW1`3!= zU=^C9hoN|bs2vHUU2mO;IGp&3V}TKf{$VhCyKHLlqg7SQb`2fxn!1RdYMygU6)(fnmyS6*UA{|fer212r zaom@FJ-Mt?O+1hJr@|sj^`aiCOujrB$Wlh#XFYW>A}pGt0Y9F;l!nZX=U&qqW6*@fp5&4f6Slx%)9ljpJ%=`4h*`GH~kXw!+%en zlz4`8-E!O+)T%}LC^>Oz9R5-JT}$@8z`OXfu}f0jYoiiiEJ0hcbL+l8=ub;7;q6_R zkexpB?@GD0A%|RiP1Xk9j)y#xg%YhER)0Ugy$%XV4N;%9oWgDL;G=Pxe^}pj#}X6V zG;8_`oymxW`bxK}^X#L8T)iYSZ^wY%6a1-%06)`bnRawoN9eqKseq+*Xr;0KZ6)i5 zw#{1P+x?64XWM|vNdEF}jk_(Kw=6-HS8F@0)5M-(_O(#k-WSw&2O;&RS~7cY$77z+ z;}x^Gq-^E4dZhEKP6b;sqM}8c->Nm21SSN3zg*y;hE1su-I-58(%3z~1v3ZtX`F7; z73=udp@sF6Jo~?tQ_A&c@DF5|hOe#=rM|6sv1%yrQlLjwJ%^514{5~Lo?CM&o%_^; zdTP!PqIF!=+B_|FZd7uoJkBM1qKsjJ8YL2@P0BN|IdGtA_vijcyl(E2X9HY;I2oF^ zAA2_e;T#5!5{A`At%1h~pK6#o)^2O~qzPi+d#uZP9daoi-DDO{I)g6k%C zBMDuF+Zr|O`S|n?OuiAaHR^hQT(g~Dk*(C}0eQf?0A1dfSU#kQd7rXqAE;Ks3gYkD z9WRQnzI>;qqWv#;uzwoZquUy;pU9y;PwJok`6xzpZS*a^4o1TsCQQ>ibMfar$*!W3 z6qatt$cfV}X&81+b1p?&Fs+zq=Zck-4u-sXofel{bub+;W=L`NpiBR>sHN#xWtw9- z4aQz3py0i1M1uPjErp`A5d9dTDaINu3AtKsR{QSaZ9^)j9402s9nx2MPQZvQ^{l5p zmkHIm63-*lYtezy-G4{Jx8b+_#HHAvR`BqOQ-!n1vI%oZMF>(OJXR~XkZt1_x4J%l zLZAO~H~L;L%$4P%Tr#j-=r+@}WQZ4h2E2h7jd&bq-|<<#rph{T17*HTf-k(;Lzd|?=~z(l{fNt@+f>MI3S^(pq;75<#ZC6gqM$QRe&IL#0z24(~6{r<1M z-uPaHxDc%UFkO(SQxlbDl__7$sG~+9*fHQvqr5|gPE;%-jvIvZM_|Pe$Uf{SDe{K? zBkk;OjC{f34AS>VpZ|PohD~vb@JGyeh}2lgoOy39QiiT**7BYBOlSjZPK7S|7hSO78S>1Px;5*Fuv&_S>$bKfXv%enhf57u3yZHiN!Wl zveJ`P(F!#zDt7VJ%K)naY)j69k;B}p!B*A5hPwZjHX80_eV-DEGV(NgWEbpvOT<5X zm5II7`=Ann0IUckC|V5nTN7liE)ZdtR33BLcy=%!-ZO*|0KI4qKe>dTN)E3D!~GHL zkJ(=AG9#+9By(R12cA=7{tQboU$S+WVKfc+S~I5te1VU&tNjsSrzQA{a8&W{0QWt! z#2xx$XXau0@NcTUgtZI#?8VqukZgEN$T?eAe{1usb_q^|BhE%>oeL;1ziXI>_CkYD z^*d;ZKayF~CxQl#g_O)8X~w^{Tz%`se-ew$(^rhsL~xI*lxqOzTO)%#pAi{)zw}j{ zrMTZwa^UQsm5ThQN%OX~H7^8}kB{6*Lk<~)?tbGQi86Jnb#-naoND_7&p(}x&2q#;$FmBiN0FnkSXm96j50-5mCU}vfj{wguR{_Eu&<- zDR-wPfnB#1IsQE4?MQ^@T*OMA9PJQI4(J1UnLV-oxcYfg+2()N60@3EI|T ze5hGqe*4fh&-6(3_p}NGlQzhjt_6C}i}0({Z(_mKw1YiZ)G>hnH(}yY=;6O}S9Pb6 z+H=1iWB+0p8To?Go2IDWqUd%Q_F2c|?8zyUwq;9UI>&SK-+8mo zf7b^4d?@UVUq{mnV`D>OPT>hp{V@44mL>+%4G_dSxD^kSJ=Eb0CS*iO%1^(Jf4t^? zy6Nyc0$oSK4!mM=F&6zOGnP{La~ zu$0lcwY`(5@eS%^J@Nm z)+$m{RiJDF_dB;1!o`0W5yJE5oIkAh4%H%t5CPs6O_4swIyo%j#}ZEJIUoG=peU5E z`}$n*c1o#0iyw;G4E(g^qdgU^{_=P@QzA#tcdKP!TY0rsz``#D9*eiL%;BZaCRhSZ z*~Fx%aZ%&^DCQQc2ojTvDakoJSf9Du@R0}4XVo{>dXdq>l)~FPvd-NGVV27SU82>Z z)&&GOrBb)&A}g-^GO2vSNp+SURkvtA@FGUI^$f)p1W^dH%suU~xzV*i&*=QRI(PE2 zlU5%ffqcA^gpZbkje7qMD*TgxjLlnRn^wOk#R@p>?ft-Op!5r?)3_CgtFj0jBy<^$x zeqgpl`(cXtb*yUlchv)0C0rjKv0Af(@Bw?@zl~g-WN`W=mVPeKkk{S;SwcX)W81DS zN0@7jXNJPG4epDO%fRsMihLq=gdN-^S-2>=!5rC=YD=w$gT=5w%2;J99LJuGNMIk7 z#owVs{OSmmQi0g019gIvv;upxgQSTHv z#?`31L>={vR;W+4CP|pSMbpigtj0MN5KL0E*hrOpJ{2_h$o>KDGUB_f{0{RqrPj|u z%2yK9u|-#?_$hS>`WkDjfLvRS7U6!H`hkmfrRpb~i5A6NAVLQVYA!R+@_wNjsT5}u zy<0Z&-vXXLMb$*e2a?U1{{GyBbal3MkGA)lH{;!@!)RpiJ(%57rfbJNKDQZ68H%`v zycqbeG*}Mk+x^bfuqn1IDHrq{J25OB>C||MN7`Nqu;0mJ-OHPa*KYr$^`{UT+>OMj zMw_H-*X~pP{3xjp{K12%;I|a0J)4nL-uog_Uz8S5dN!Fpg=toYHS)`y_V62hi+1=T zP15lf6L$P0$K-?xUuVz_wK<(XM}86QXs}itIpFQi*$*p@99$XWc*@|jZAyk->ITs=%!qKFYHhMLwyM?UPD!3bXwq{m5Aqy z9kb~Cj(XJgO!)3x`1V}5NOJ+k?VCd(x8H}uvB{|(0Zjc+Y+N*5lrIPWW_Y}%g3ouXew0` z_d<${r>U@u6A$hxD*;}U=n$_ct;&~rY}nY=^98PhA(67^j<9NG=YEpH2LgH zFAXXd?z!7nK!y}8|F;XluMcj%@lrjTT`g*g`10*0SB~fWj_Wd38=Y@=8oM1StUq&3 zE8e~PTrVvqtU6wF+LYy%}LX2Lf}*r3Y$Q;>!5?+v%8Dz~#$5M{Dqmf*D2VQGGODut-7Qe|DD{ zJA&EuHeYTfFkKpMO6no^NTKMBFV-_?Id(Lh#H5H5`oI|p!ow|7%dh_t*?fl8H^5u$ zuZRj6&3uf;HERqkIITNH6gAeEdK-QLa9_$PxHn54W7C!zf4s#F7s69~{`u`W^Mbf< z1JyQCSJZeD)kc+OO`HPt@^eN?pnR#p^4m?Y5m230s_N)PJ5 zMehh13Bqd@`6$u_i}A|iS=2`w7KMGN2R}BI!I?=G2b5DtKcKX*PZ~}Z%w36Wy2TDe zif?HS(HS!Y*=4Cdg-6%}$vLvqX!Ye)h@NVeulGd-K4eR1=p11u+*u&{YHlGG2>znz z&u6|hSSLYw0qozkI3U4`81*qDI@iGJVSNj#q|le8HAU5%=HD1W58!K)vzw zT?{)hEtZd+x(L09EEL$-e*KKT>Ci*$`e+Gt0(B6lC9`~&?yimu5oG?e5l-Le>$`a1@DKdq+;0?*FOEm#Pm|1^>9X3V_c{$^< zA(<~+bKo>^1~KrPAY%5$0uzEPQH0*$tw2JIgZG4hvYQSbWL&koIwvSJ;U`ZQk5CHE z?8^VH=j^a*K5Xmg z)tSh`d82$etH|OeCdfLPV<59R%m0VRQhEm$hJF<)poSg8G5$G02kAxq0=HigD?QRO zRuk{ovf`p{6jsG8Sc>Ndv1+iYYQ&LtU~0^Hu%{zyxwFSs;Q}I< z@85vuCm4A$V&-CmUq+0k)LF6ob7c5YU&13X?i}|qk~4J&(AE3zR#9uz%gmF5#Vzob z-$+?0!jnmKVvNTxP-0+1!qm#Q?y&^LVu~%Zgua|}@icPr#yF(;nP85XATJzk%2x2< z({L$s2O(#_ALW&WsS~NeP)15t z#BT|j-U??@$xw=0ATcC3njfvCda|e)Ojz;DWwjvMC3M+X7~VQB3hKNlr1;@7*!INb zu)?`wqN0uZO|x_5_wu1pLf^Zc9L{7s9!zt6b|Hc)M%tV)Z}5qc93m9LB|y-Z;rA+> zV@|8JmMN5S>TR+YV#hHI<7Fr*e{MbFyCq9+dD(KC9driK$G4-U<$M5 zpAYPT_A=OK)Se--kY<>fMpnA@PQV#b`l4S$klA4Rx^CJk+Mw(NV|vlGu3!pJ75*sE zsW$#Bu~^EPd=WhT7s6k7P}HP_`5!VFf^@-p>l|)|V*t^bh!~Nt?h{EnBLBcy6c!1B zGITTUrBcCX5oysu^8_T}W55QjP3VMX*&z;w4V|c2h2L{$29%i)egT0@ScuSnG^)`1 zF8)7*i^BLJa$fO#jf7!$JjijFY9kha(*&p~}X| z#&%dq;T{iwgpL0O7fXusYCa8Z`8LlU7HwV1WqiAri2tiBOO_h>wiE!5<9qZLXr#ff zS7}}%?=~`z8^-M$f7vah4ZE9u{efWeW^g9C8MwA7+!*|ZO5~7SVW{chU)jI)exSS` zlj_}SQbZc%xg-i_9R-Oj2dwTeJgzMTvs`L2_P+~;uiMIcEV|pH<9|qIMmk& zh6DEhi9e5-(Op9QynyZ3dKNdl#hhOwL#U{tk?`G=B$9EAyU6j=_{wTazV$h%jdkZ( ztO1gc0;k}!+;`2trw@3y8WChGK=J^-kc94X(ULRqg(|RaPOKrt>~Wz$*_=D zOGI?~p_3UWG;3H+Pbyd2i*|S_zC?9TCvXxAi=mmkNlJ0>Js~%3gjWhhI;MCMz@3jB z*#*6kXcK+g2zN;4Em|8tR1aI3kvFN4ERo8+gK53`rBx33g26kL z#1POpC~P&%{DjOY=m_d~Hk*mx6zP${^Y~&o^K}ZpNWe9M9T;eA;SyarI` zgD9W-A3sdt{sHZx%_IM~=NdnJ!E7PrDRS)jU6Pm1gf_5AI%?Po2fbFQe`9vUxFdp2 z)3GR;uFdr$Uhujqu<&{Flj@CU2Z0v*!g>5e=N$@%f{(u^e!g75s?8 zmM3H8<7alo?mI^jUWoxqg?D%)JpPTtLcNAQG% zvHaFHPVR{(Eg6_lPPvC(h2-px(RhnGDx3m*W5Fne+t?Et3a>2kLEF?}lg5fVI((Un zFl2~qVTZk?4Cxh(`OLv)soK9wC#bz>KvSZF`g+(kKllWSQb&gjSBs)&!c6tZdOij+ z)f^{+Bs|@Z&=o^W$J6bPgvh;Thlz17nVfk#?T%0Vaop7Adpu_L7i;04QV-xi(qN~u z?IiuzeRP*XKH9P!q3Dt|FB{|m1R_vbRU`AcgTEIP^EiDO`nNQ!K%vDmQ0qq-Rnp3& z5f||=CCt8g34p>7`q}T&2)~^>M?@2uqgvsRbWx}kzrckH3rpZ zjCnt!S}VfOE zsK0<0{!o0D`OX>W7Y_+Wys4>lQ(67M5yBtK64tXWdtY*8TAcS(9VC^TN z>H2{qPOJJW;XNx#J>CUeDm+6k6X8B5U zKv^ToT>A>zw&Osfn4R0o_gBTHKXTQ_)Z8N zq$+&{PzXEp8t`F;i2IScshRUUv%JpWxf?>w-2}SZeEbROOWBLT(puk?#L)u67jWsq z^G@1l1GVXsgFjT9=wgFD&+`J5DhASDmo`#rV_t?hctqma6*)Q zhI23^S6Pn1#e4GurUB6ta!JGQv@U1Kso^St=B`>uC)wa3=qmo5?pzm>_B8YkOlSj% zvzKuqCIlv}{N#HT2Xm^gumcbbU|ARu3Dzo$eaY4W5$%Tjp9yVEHYU{SEXA7n_xL=1 zh1vW!B2+=sv!LWo`AEO!loYf++XcTYySozeP$F8>QMU#1S~ybydUV?F z^MB@+sTA%trhVT(+SdM1URutp3Fg+Osb-(HYVAi5FS>}hx$k-{Sn_Av0;Qjwi6e-` z`o-LS@@wq7lXkZiv#OYrzz@;@AeUbis9o7_vkq#rrXtMYXDm!*u;Qx}tHO~Tk!$H( z*r3$_U0#Wt9(xNSBKUuDnmLi(imf$l;B(^sGxx*G;-u&W!Q-{WGxHYc8EcY`53-Gj zBy*kh+kqmMYL&6>&`jVZV-C#P&%XH3L^Scgmd=8qs^{y%7N|%HDBX=ncX#(C1VkF7 zQ_=$I?vn2AkXE`&kWkP|N_wRvl>g@UzV{Q%J!j6IJu_=P>y3$MMx)+mf`Zw2&zd(G zp+3HZ_`MjgCnUJ#MCxy<^UQ2?nl`kv>jiF6M3x;JZQZ-cV~e3@4KD-jRWKH(ap*7J zgu9*4kNsH8Qd{hIOjEq_PDQaaa_wCSY!0MS9&X$eB<@|M8!@$H_gNtOXw=>(rTwXy zT=lG>nKhi#E1tI#Daj!p_&)7n8THl$qXn@m21G@_zq3pqGe1_|4F!WPH$9 zAmY@^bkIlcUGU$2QuEY|>*(UigG-LQP;9b~SB2-fM-^i|tv!#vMyi4-8jN8*3{R)C znR&}T?VjFd&yPImHlWk)V6DyrKt;5QEih7g-;1;^q2J|k84*lyC@9LQ(#46kD>X$& z7Jido7QSk0fwS_Ksfw-8Z2(mRk5XV3hzHF9rzL78*<`?a}pVkQmC7Mm&xJw zF0sOM)w;TDTi}8>q${=l<`c8(X(A`WW- zVBmobXBOdmQ)^oltN3QYGXcLsXjd9`m(+B#W z-F`mKEmTO1BIA~p_Q&Xw0%tCeE0MH_sC^W2Cg3RtHIzpnRN17@5mJz(TBx zD5kRNvsVCx(wAag;m$C&5E%!<4TJGu;@eQQz6jMJgZMda)I*qzvdR~qZG1<^SkK=`1MUdIT-xp6g?n`MqRD<qNx|c=SzY8bQGjfs3DVX3}X@TgLF z`PGj$2bjJnBlm@9x_|Ex2la+aBVsTrZ3!4v(WeoUt?t#;W-FP`1Rk8z-NLTWA_YAe zvvC*`%K)Y3#4`}p#6EL%(4QX`YiX?d-bgnQ{&Q%2b7MsM`*+HA`YN_itSqYS^DBcv zK<4eME`p*G8PXWM4v>YqS?PuQ8xPyP>3CsNBo=}xhVy_r=yVzOcz;$^o=3&P;Xrm(8M zPvyV{x$XJmgxUJo-R?p~X|qvnkjy((O$B{4O=bjwzD351>p}qxd6|?->lt4j$!yGP zH$P|`%W#5^>c9h40GB=^?B_NQbo)~Mk+fIO@Kdf+n`p(qBk-&MDAGc9<%UWJ?)D@1 zwzysG$#`?Fc=`?7c3^(IWI1BjEiwoUZePE%^X$P>4coOlUxmx>`Xaz;aKnK2K9qOX z_rRSeVILf{K9Y7N9|<(#hN{kEKekvKtz!=+f&2XO-M6SYe5z$LQXg^;GPE^eO%}zo zIzyI*L}R9^r)rt+sEI7BY>Ge^qv#QH5!%e>?v;82gB*YNlR?E?1DM#9Ls7WF^&-M4pS^dy;{zl7 zT4VlXa4bs?l~BKxl=VdPW^~`x&WlLuBI~$G@wa7lD#ho{$9kWGvct-K?6s;~=?Hka zacW{ya1JE=>G!ijkJ^7OaymD`2=%dAqU?#v?U6eXim-MThqXG5Rb{>V7+TW&kf4d2 z!RB8QV`XrpzZ{)(C`!D`{*#w&B+GH=H9Lb6xqN-_kSU-}e>Dnj$2M8;-f;@K@T1{( zzGboMWPJRQ17BLL`U`k;)QWxV=O2F)U&7Nn;z%H-_>Ms~zsv5GOS*iF*vc$j65-Q# zIKTCzcay$hO=)xf4UF|&@lNq?+;9*mJV7TIZjoWs9@w%zp0FmuO2PJfNBowvCV~N* z^&DA7L8*8a7#n)2fB1Xy-E$h+<`-t%~3JzZ0S&f zEK0;9Ek8y5dEs_N?S;g@ZNGLV^RuXbgSF;xeIC^r%}_THT+WK2d~sFG-H3xQ=dCTc`-9EeP? zAJ$kSJ}?<@QWs4Cuih6rkEvIOGnMYX_AO3WkQ&an;3A0#=3JkvYPTtAe_EnX+RD zOx5Jiou3ye^pkC4cG7uB^{gOi)BkAV4W z_B`9Wn5N-)#v^w5ZL#W3{Qci^F~A| z`h=?y;i;7Bzti8ZQ6YA@H)kxWc!*yU>5;5hzI^;piM(x4i&1DuLGc4!Na@g?p4(fM zgrgi9?wN1;GqkO7yD+y-x7RwUzCX6|QAjgqyN9pS0ui&T+qpNzVo7oP!sqe-;#pwd zs16(i$^5ZWqn^P_uYQ{V7uPgy2cdD5nvkoht0lXw;NdruXGil4YX5{EXi;A-G4>IS^J~gq+Wzi{PI{NT@6_0_Ny;{{`fvaIc=lbNvE%+#XeVmxHP|B;_Qtnc{Q?o-<%E#j6{B`VM;6|yBrPaY_8Rum$Un|i| zm9tls6L%T>Ju(g?0a(!QW$o^Kx9M%FR2DaYz!z<>d|$Ip=!6o46GMG?MBLV$l9m?C zqP1l#!AlWwIvY<`*$_nQ{6}MElU!0w-sJ1jtIP6VDiAa{X<g0@;XmY*g zEYcvppue_KmP#YrC(Q<9*aiY#+Jo?bLqb@dckd{#7_-Ui$Oc;4Ij)%e{QFgdNsvF2 z4Tjy^8%W(__Vo2+c&;0Gj$K#qoCGL^R(1#_&$2jVs-+}r7M+y+xkzt~N+)vY?$F*L zGM7VxM|-vXRVJ*in^vvxo|>!L9Iz#j8X>>(@VGAkWBm;0_$(la56Ngl4PbL&G~B-1chjnG@xUh&s3MHFOYfC4-fOZb_WZozKccC zP`nsuB=QqUY}s&GLILzw)8jIM!|x^wE^`tM93kij5lv$gxaa>?uF8O{1Y$|-pJx0$ z9Kt0P6&Dc}<7&0Lsb>@vFjlm*R01N59Z(Po~SS+kKx}I2#?)7>^)@3Ql7+9h{VI^r&*? zm0mw)y+%kjbD{rxe{baOZ?`O$AjKaTq2AZqX*)k8^a7#EaF$J%xUa}jRkG&MRZCdw zuT%9jht!UwG^D~0x+GdS=!NP||K8r?Fzq0dh>M@x5g+$pmp9hwh50+nd0}X#aG$)| z_6s^^d!Aj)Y*3kL>$`CNd0b2AB$L(SnBJTed+G2R5jg9L+LLe1U|j;h=6>e)WgJ_)^4onn!(O}!RBq)9U_z#j zjjR(6^Z@^O8GSfPtYr8Rh0KikB%9NlAYVauD6ZEq?uq1=-}KgtUiAvV8rG%6H^k;)yQ2mh}R+mEK?)> zeLt82YHQ-Y7l*t;-p7=e^uisocGnX_J0WBN!2FHadWOep(71#Naf9asjwBX?$~@%g zecKzKqNqClo=o?aQwk)E-mC{-zWnQD9j zmR@re(E($59S4$f+yrB5et}k$y=LsP;o7|H2nXIDFQy;C5PSvrI5?TMUHKf!u5Hpo zJrhDOObA7!+$O>U$uf04`2&6~WV-B|khL9L;V z$*nnhRyeLU9{epeUR|nJIH6kc=7O~N7(t~~e(h=zM@kfiSk>-lm>+#$y9*N_Lvb;> z@!ivUY%ba;ZXPxpgh(hpFW0YYGhT)y3C5I;E?w6#Rook~zZ|N&AF9`@cc3~JC#$0F zpZr;_G}w?2l9TXd7n)U26eQJ@)KJ|CQP&=XixW7Fj71tF=o{5k)kw}579bsRQO*`X zg4$m+^5jXO_5$W2*M}=FAcA!^Rp{-A7$M^rBGI!a5qhzUsj}MHo;}oh$)cu4xyjY2 zT|X-IHF@MoiO=$B(K?3t7&vc1^9y{iOew~Pu2zR6JbcrOMEBZLx=nzD2!{yExaZdV za+pj)^R20)42h0rQo;~i$eW54A8$b*Q^7mq!32>BEzg)2$r73tq}#%13tNkrnJYq+ zYSN_TkWJ_t-bT!?lcqG6OC*j=w~{7prlO0_7p%!-Rchq^%EOrRR?__t-hmoF>d-_{ z<+OvGCrx8IopF?;eX7=s=&~N`OD^!P(a+_b)-dKBSfg}j;=kqlZ~Yvr3sAufUG(5x z4AyfMETXSeUJ_`}G?18~Mni+*h}LVAll8ei^7DEFeQ>goVDjDz4lC9)nirmQtu+fs z&wzQ1y4lDG+qql)`)$<6;blHxkt^V~E!yktQjsGrN}~Y*(gM@#)Y+dN?Pl895#$<@ zzKSOr+5izPUUa2rI%c{s^tad)LvghZrLSU)BF4j*_^nKqZd6E4iy(-#z4y~LC7{5- ziGq-;#=9g3)*S=9JMsuE8~Nn{ryJ&-0TL0F&Dvj6=joleRK+t={r!>T&;j}*|9bhl ze>9oJW)gx6gFwqKaE+s0c=4069c^lY{=L_#X*w$pf=X}mUC_|g;Yi(@{ldSHT0`EK zfwV*aN=Vz$BFE-ti^6bE$b2*orcqKn@1K1Lod`ivw$#VErpA7&_D4oaMZE^?mHVco zLqdL&n?%KosxaAp7MvREo~+3yEJM!1!=tF(>YUu1COH=Jm4-L8RIhNqdA-mGhGf2P zN$CB$qQyI-62j*w|Jl|JBG0OU>1a-^$fm`5TDH=)T=%fA>bKS?pb@*lFC&-_Fv zguH|$1XkzG0mXFl^q`>`2A@m}v|dJls$zsizm@&bUU7J6b@V2;u2e6{=o}=MIe;kU z?pLgGyZa29P17d5m3<(!{bA(!5v-h=sk!Ef`wGFE&EMg|bfKfmEh)DdOf=?Akl_tq&~HDK%-QhZx7ahGCe zA#EX_CUI^$>*qHnop<1LFHLhr;mYEn-S530h%fs&h*i!-Hm9BR3quK!9A_rWgwyrF z&dN@vI>|p0FX-qTAL@NyReM0bP~FfMX}!@`cNEPKE<`aDC6lxq*Vy9`1>d6$_gghq zZ4E!6|7L)7wo6*UOOh{GO_86I+^zcc#C_hszCa8;vpI%S1Ft(|C!PP!s`M_;ARLt| zIP`<)pg3GP+K^UGl6+2jnl+unodVKZP-x-cFM{vT{%%}OU?bRQks%Hr%zT|#$e25? zQRD75ThMZcAzN+=0*R!pN>4<|CSDgiuXziLJHa9z+_|iVL1kQ|Xpl>hG3+di+ki)S zedaA@7k3m6PM^IfG=iE-HDD~ae2ScnB?&Zj-#Xd9mKX{T`|8esse|s2VHD;^n|zwq zIT9!h5C{wLnIg3BFChZ9Q}nX4@&}(->~=K6-!p+rnFnqIb0N0t8Jr{;B~FNR9U(8) zLf-FcM*yW>M&FR+txY%Aeu&dAUSq#n zt}M%Y1Sjyr^JV%d*{l1ww?xCFTR)U)IwXEu__msOpv(8y+9ECzh-4&_z1 z^Ep^c%PCoI3#9%~S+7ZvKJ6ZJ zPq}uC-4oa#+Uz8sxLaLWfkBDH?vn)v6fy{TbJ6svL=^2deLAtQ%-i_~aVNu}G|QxkfI^=NM^9@_>|POy zA8f(QLqyxj3CWSV8s3L&T=#!31thuFOcO?+iLAkhp1cpQc7_)0T1n+*L)6_KYFqtSWIjzJ*{q=*on8z z+#Iev%b$~~#~ghNvBhpP{M-K%2|*`1WRtd51uG=$<+e;WTlB0f<1)0Z`g1giH0U%q zy1>T?0;pSGOFACe0FyL$ZZzDykxSvBKY(0CMg;+}cKl<5}_- zjMjMk?WG-h75G9WPfvfBXogfpR61?p_^!+8#CAmGy*35_Rs%qi^oHw~)3tIG4Xq+B z#?B_~Ow@4PfUd>kS|Z}eoglfM-pK18n9#uo2c~-VDWQVIZh*6MSBUXE$5cWSJZZz} zRiC=g`luC^`|DBXVOsW~0U*=~6pZ#WY;=gN#cWgG3`t>x$>Lmnkx3LwtTb5h3og6P zow<1~#clbl!mXOn+l<&LJCZ!wCwGF7OG@3NlEc}$SIv34)+Bl)rH1{}VIkbV!2SXD zrPqR*JrQDImn&(i^|WNfJe zeTIOM_hm@aDfEnf*zwUQj2;cGm*(oGjbIqd{=j}lVSLIeo#ANb2G>FUlM20JcYO3| z;V<#T5$ksoO-&GsOGPZt$&^R7U%&tCvaS>G>qm(^Lpk?iU#_sU zPx^=tEmLAKWN7h6ed>B8gOZ>&z0AUMW49+DAW;6VT4;>m9HMLQR~P1bi_}@fB+tAQ ztzG+5=L2$A-?79!A*1T0Xfn+^lIAOtHpBGF)J2hAit|r-)kgYACY0`1FsZ2$pU2#i ztd04x$WPm>z(Yqa*cdGMVZ+W7&;7?(^$oh(<=xVFkdDbV{i4!b>^-XBZOE%fo9 zj0PKgMN?N_5n3?)5f2Me>vTXbiU-pn$6m zxD03&NpD&JVpxG@#iB>~o}dg-Tu6wrRXU$C4J$EWgA5vd?r0w+yO}pc6RlXHhP+(b z#O`0Gj-^sax{B%vICv$jv+B}7b7;CNYm9$igK0~Rl_X&%0#P5q@5vfFz_L4X@2=RL z0nf5>YjK08`Ptd}npfSVznPi|;?~E{8|pzHZDu!BFd8H)Cz_5+SqxT*=>tZF2BJt~ z+2Hsc?Q03rh}pB%sBz!#=bm|>I0gOJ9-ARhEjAjV{tF9BgRn3f)+edGEXp*G+e4Pp z0!Pp@qG`Byh3`@S8~9Gi{jXoi7&lf1foE!T(U)b<2N?46x8AgE3t+8xOdb-cOt`&N z)(7!cS#+K~>&KRf*g6f7V72H^^eO0jvnrLVO25o#{>m*L22Bi?HyF^W-DVZgS9xmI z^@=A|%mW)y!OOxEGa`gSQk`luw`uu6yg6|D^-Z#vw$M^$w8Dk zYW+^xqip!4u*3dOQWACARXl|Dna8I)UrrwVkvzj;fO!k`=?EFobi+xBfv=9kOG>%_ zj|a4&roea}e#hp>>YKe|kvO{jlApplies to: Windows 10 + +Today, many enterprise customers have a mix of modern and legacy client and server operating systems. Managing the servicing and updating differences between those legacy operating systems and Windows 10 versions adds a level of complexity that is not well understood. This can be confusing. With the end of support for legacy [Windows 7 SP1](https://support.microsoft.com/help/4057281/windows-7-support-will-end-on-january-14-2020) and Windows Server 2008 R2 variants on January 14, 2020, System Administrators have a critical need critical to understand how best to leverage a modern workplace to support system updates. + +The following provides an initial overview of how updating client and server differs between the Windows 10-era operating systems (such as Windows 10 version 1709, Windows Server 2016) and legacy operating systems (such as Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012 R2). + +>[!NOTE] +> A note on naming convention in this article: For brevity, "Windows 10" refers to all operating systems across client, server and IoT released since July 2015, while "legacy" refers to all operating systems prior to that period for client and server, including Windows 7, Window 8.1, Windows Server 2008 R2, Windows Server 2012 R2, etc. + +## Infinite fragmentation +Prior to Windows 10, all updates to operating system (OS) components were published individually. On "Update Tuesday," customers would pick and choose individual updates they wanted to apply. Most chose to update security fixes, while far fewer selected non-security fixes, updated drivers, or installed .NET Framework updates. + +As a result, each environment with the global Windows ecosystem that had only a subset of security and non-security fixes installed had a different set of binaries and behaviors than those that consistently installed every available update as tested by Microsoft. + +This resulted in a fragmented ecosystem that created diverse challenges in predictively testing interoperability, resulting in high update failure rates - which were subsequently mitigated by customers removing individual updates that were causing issues. Each customer that selectively removed individual updates amplified this fragmentation by creating more diverse environment permutations across the ecosystem. As an IT Administrator once quipped, "If you’ve seen one Windows 7 PC, you have seen one Windows 7 PC," suggesting no consistency or predictability across more than 250M commercial devices at the time. + +## Windows 10 – Next generation +Windows 10 provided an opportunity to end the era of infinite fragmentation. With Windows 10 and the Windows as a service model, updates came rolled together in the "latest cumulative update" (LCU) packages for both client and server. Every new update published includes all changes from previous updates, as well as new fixes. Since Windows client and server share the same code base, these LCUs This helps simplify servicing. Devices with the original Release to Market (RTM) version of a feature release installed could get up to date by installing the most recent LCU. + +Windows publishes the new LCU packages for each Windows 10 version (1607, 1709, etc.) on the second Tuesday of each month. This package is classified as a required security update and contains contents from the previous LCU as well as new security, non-security and Internet Explorer 11 (IE11) fixes. The security classification, by definition, requires a reboot of the device to complete installation of the update. + +![Servicing cadence](images/servicing-cadence.png) + +Another benefit of the LCU model is fewer steps. Devices that have the original Release to Market (RTM) version of a release can install the most recent LCU to get up to date in one step, rather than having to install multiple updates with reboots after each. + +This cumulative update model for Windows 10 has helped provide the Windows ecosystem with consistent update experiences that can be predicted by baseline testing before release. Even with highly complex updates with hundreds of fixes, the number of incidents with monthly security updates for Windows 10 have fallen month over month since the initial release of Windows 10. + +### Points to consider + +- Windows 10 does not have the concept of a Security-Only or Monthly Rollup for updates. All updates are an LCU package, which includes the last release plus anything new. +- Windows 10 no longer has the concept of a "hotfix" since all individual updates must be rolled into the cumulative packages. (Note: Any private fix is offered for customer validation only, and then rolled into an LCU.) +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in the Windows 10 LCU. They are separate packages with different behaviors depending on the version of .NET Framework being updated, and on which OS. As of October 2018, .NET Framework updates for Windows 10 will be separate and have their own cumulative update model. +- For Windows 10, available update types vary by publishing channel: + - For customers using Windows Server Update Services (WSUS) and for the Update Catalog, several different updates types for Windows 10 are rolled together for the core OS in a single LCU package, with exception of Servicing Stack Updates. + - Servicing Stack Updates (SSU) are available for download from the Update Catalog and can be imported through WSUS, but will not be automatically synced. (See this [example](https://support.microsoft.com/help/4132650/servicing-stack-update-for-windows-10-version-1709-may-21-2018) for Windows 10, version 1709). For more information on Servicing Stack Updates, please see this [blog](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434). + - For customers connecting to Windows Update, the new cloud update architecture uses a database of updates which break out all the different update types, including Servicing Stack Updates (SSU) and Dynamic Updates (DU). The update scanning in the Windows 10 servicing stack on the client automatically takes only the updates that are needed by the device to be completely up to date. +- Windows 7 and other legacy operating systems have cumulative updates that operate differently than in Windows 10 (see next section). + +## Windows 7 and legacy OS versions +While Windows 10 updates could have been controlled as cumulative from "Day 1," the legacy OS ecosystem for both client and server was highly fragmented. Recognizing the challenges of update quality in aa fragmented environment, we moved Windows 7 to a cumulative update model in October 2016. + +Customers saw the LCU model used for Windows 10 as having packages that were too large and represented too much of a change for legacy operating systems, so a different model was implemented. Windows instead offered two cumulative package types for all legacy operating systems: Monthly Rollups and Security-only updates. + +The Monthly Rollup includes new non-security, security updates, Internet Explorer (IE) updates, and all updates from the previous month, similar to the Windows 10 model. The Security-only package includes new security updates and all security updates from the previous month. Additionally, a cumulative package is offered for IE, which can be tested and installed separately, reducing the total update package size. The IE cumulative update includes both security and non-security fixes following the same model as Windows 10. + +Moving to the cumulative model for legacy OS versions continues to improve predictability of update quality. The Windows legacy environments have fully updated machines, which means that the baseline against which all legacy OS version updates are tested include all of the updates (security and non-security) prior to and after October 2016. Many customer environments do not have all updates prior to this change installed, which leaves some continued fragmentation in the ecosystem. This remaining fragmentation results in issues like those seen when the September 2016 Servicing Stack Update (SSU) was needed for smooth installation of the August 2018 security update. These environments did not have the SSU applied previously. + +### Points to consider +- Windows 7 and Windows 8 legacy operating system updates [moved from individual to cumulative in October 2016](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783). Devices with updates missing prior to that point are still missing those updates, as they were not included in the subsequent cumulative packages. +- "Hotfixes" are no longer published for legacy OS versions. All updates are rolled into the appropriate package depending on their classification as either non-security, security, or Internet Explorer updates. (Note: any private fix is offered for customer validation only. Once validated they are then rolled into a Monthly Rollup or IE cumulative update, as appropriate.) +- Both Monthly Rollups and Security-only updates released on Update Tuesday for legacy OS versions are identified as "security, critical" updates, because both have the full set of security updates in them. The Monthly Rollup has additional non-security updates that are not included in the Security Only update. The "security" classification requires the device be rebooted so the update can be fully installed. +- Despite the cumulative nature of both Monthly Rollups and Security-only updates, switching between these update types is not advised. Small differences in the baselines of these packages may result in installation errors and conflicts. Choosing one and staying on that update type – Monthly Rollup or Security-only – is recommended. +- In [February 2017](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798), Windows pulled IE updates out of the legacy OS versions Security-only updates, while leaving them in the Monthly Rollup updates. This was done specifically to reduce package size based on customer feedback. +- The IE cumulative update includes both security and non-security updates and is also needed for to help secure the entire environment. This update can be installed separately or as part of the Monthly Rollup. +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in legacy Monthly Rollup or Security Only packages. They are separate packages with different behaviors depending on the version of the .NET Framework, and which legacy OS, being updated. +- For [Windows Server 2008 SP2](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/), cumulative updates began in October 2018, and follow the same model as Windows 7. Updates for IE9 are included in those packages, as the last supported version of Internet Explorer for that Legacy OS version. + +## Public preview releases +Lastly, the cumulative update model directly impacts the public Preview releases offered in the 3rd and/or 4th weeks of the month. Update Tuesday, also referred to as the "B" week release occurs on the second Tuesday of the month. It is always a required security update across all operating systems. In addition to this monthly release, Windows also releases non-security update "previews" targeting the 3rd (C) and the 4th (D) weeks of the month. These preview releases include that month’s B-release plus a set of non-security updates for testing and validation as a cumulative package. We recommend IT Administrators uses the C/D previews to test the update in their environments. Any issues identified with the updates in the C/D releases are identified and then fixed or removed, prior to being rolled up in to the next month’s B release package together with new security updates. + +### Examples +Windows 10 version 1709: + +- (9B) September 11, 2018 Update Tuesday / B release - includes security, non-security and IE update. This update is categorized as "Required, Security" it requires a system reboot. +- (9C) September 26, 2018 Preview C release - includes everything from 9B PLUS some non-security updates for testing/validation. This update is qualified as not required, non-security. No system reboot is required. +- (10B) October 9, 2018 Update Tuesday / B release includes all fixes included in 9B, all fixes in 9C and introduces new security fixes and IE updates. This update is qualified as "Required, Security" and requires a system reboot. + +All of these updates are cumulative and build on each other for Windows 10. This is in contrast to legacy OS versions, where the 9C release becomes part of the "Monthly Rollup," but not the "Security Only" update. In other words, a Window 7 SP1 9C update is part of the cumulative "Monthly Rollup" but not included in the "Security Only" update because the fixes are qualified as "non-security". This is an important variation to note on the two models. + +![Servicing preview releases](images/servicing-previews.png) + +### Previews vs. on-demand releases +In 2018, we experienced incidents that required urgent remediation that didn’t map to the monthly update release cadence. These incidents were situations that required an immediate fix to an Update Tuesday release. While Windows engineering worked aggressively to respond within a week of the B-release, these "on-demand" releases created confusion with the C Preview releases. + +#### Points to consider: +- When Windows identifies an issue with a Update Tuesday release, engineering teams work to remediate or fix the issue as quickly as possible. The outcome is often a new update which may be released at any time, including during the 3rd or 4th week of the month. Such updates are independent of the regularly scheduled "C" and "D" update previews. These updates are created on-demand to remediate a customer impacting issue. In most cases they are qualified as a "non-security" update, and do not require a system reboot. +- Rarely do incidents with Update Tuesday releases impact more than .1% of the total population. With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. +- On-demand releases address a specific issue with an Update Tuesday release and are often qualified as "non-security" for one of two reasons. First, the fix may not be an additional security fix, but a non-security change to the update. Second, the "non-security" designation allows individuals or companies to choose when and how to reboot the devices, rather than forcing a system reboot on all Windows devices receiving the update globally. This trade-off is rarely a difficult choice as it has the potential to impact customer experience across client and server, across consumer and commercial customers for more than one billion devices. +- Because the cumulative model is used across Window 10 and legacy Windows OS versions, despite variations between these OS versions, an out of band release will include all of the changes from the Update Tuesday release plus the fix that addresses the issue. And since Windows no longer releases hotfixes, everything is cumulative in some way. + +In closing, I hope this overview of the update model across current and legacy Windows OS versions highlights the benefits of the Windows 10 cumulative update model to help defragment the Windows ecosystem environments, simplify servicing and help make systems more secure. + + +## Resources +- [Simplifying updates for Windows 7 and 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplifying-updates-for-Windows-7-and-8-1/ba-p/166530) +- [Further simplifying servicing models for Windows 7 and Windows 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Further-simplifying-servicing-models-for-Windows-7-and-Windows-8/ba-p/166772) +- [More on Windows 7 and Windows 8.1 servicing changes](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783) +- [.NET Framework Monthly Rollups Explained](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) +- [Simplified servicing for Windows 7 and Windows 8.1: the latest improvements](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798) +- [Windows Server 2008 SP2 servicing changes](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/) +- [Windows 10 update servicing cadence](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-10-update-servicing-cadence/ba-p/222376) +- [Windows 7 servicing stack updates: managing change and appreciating cumulative updates](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434) \ No newline at end of file From 1fc74c4f1984b747f57503f6461c73b9f749528a Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Sat, 10 Nov 2018 00:07:33 +0000 Subject: [PATCH 177/201] Merged PR 12745: Late 11/09/18 PM publish Merged PR 12741: WaaS servicing white paper from marcom --- windows/deployment/TOC.md | 1 + .../update/images/servicing-cadence.png | Bin 0 -> 54411 bytes .../update/images/servicing-previews.png | Bin 0 -> 78290 bytes .../update/waas-servicing-differences.md | 106 ++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 windows/deployment/update/images/servicing-cadence.png create mode 100644 windows/deployment/update/images/servicing-previews.png create mode 100644 windows/deployment/update/waas-servicing-differences.md diff --git a/windows/deployment/TOC.md b/windows/deployment/TOC.md index aa375d690f..00acdc9318 100644 --- a/windows/deployment/TOC.md +++ b/windows/deployment/TOC.md @@ -215,6 +215,7 @@ ### [Quick guide to Windows as a service](update/waas-quick-start.md) #### [Servicing stack updates](update/servicing-stack-updates.md) ### [Overview of Windows as a service](update/waas-overview.md) +### [Understand how servicing differs in Windows 10](update/waas-servicing-differences.md) ### [Prepare servicing strategy for Windows 10 updates](update/waas-servicing-strategy-windows-10-updates.md) ### [Build deployment rings for Windows 10 updates](update/waas-deployment-rings-windows-10-updates.md) ### [Assign devices to servicing channels for Windows 10 updates](update/waas-servicing-channels-windows-10-updates.md) diff --git a/windows/deployment/update/images/servicing-cadence.png b/windows/deployment/update/images/servicing-cadence.png new file mode 100644 index 0000000000000000000000000000000000000000..cb79ff70be87615b9d11ac3e3b2b69c9f5209705 GIT binary patch literal 54411 zcmX6^1yEdFvs~QaBe+9w3GNO-LV~+nkl^m_?gY1>3GVLhF2UVpaff|3|D%f9T8eAu z&gq%y?uk&8mqtS-L@?@0Dvw46X7lCXcjP;vWLrXbKfxr~IEs=NN#TbPEb%qn+mj>vww z)8ezwA>IbqCzq8W-`IVeANb)okszU_`~U}s-Jj(&$#;lKaYIW-aKnvQY#PE@H+(^t1mx(%;7lbhw& zOG-YX*aK)xX{R8J9~#zbZ_TFhj}~PN_I|E=Y#)fK-|gjlTLOVYE-Qt2B3U}f?Ygc@ zk?AolR$;X&zUYXlVazVi$ju5O8fC-ErbXAYcAEE^xbJ-*eEt}gZVg^RYn)xV7~hG# zEkAhKc^<1O#n_-q*d~B1$Fs40c?35cck`Ui z(!wIr(ZD0q!lC%k2VUyz;qg<+qT^DK5>gmTy-vDqcW^=>vO2-Y;LJAi>c={NZ1}=a zj#fx!5MURebWL6$EL28aS6ElrNVI8Hd++mZ-oI^s`)1r5Ji?0fZ(-r-VccW{yf)Oh zbQ(gU|t$8UWoOlXb@^Pj_eWFd*;@j4SJX8stConsLNVKns_XP%l=yF zNyzBaH7s9&U9D@zb8Qsx?kOpv!Rf3|$WTLmIR|Z@z+bJrX6tn93K!1W)Dqn*K{*#E z*%|vXqss{&a=V2Mh~;ng{_EYz`#hRT?sfSQ^db8Sv#yo$5@%1Rmt)wig9qiZqwvPR z&f-Td6mX$BCZ!h7RCte{_RN0ZiNws~hQKrRJ*w*@;L3d;|99p3+ub__Ebq8;J)0=% zuGvfFW%nyd9OA|9x8*UcpTOR^H0`n6eS-rX7GrJVSsxNe2)B#okekQr%|qvTsVi-#J1J@D!Uto$Bt^du`Te)K`c;73yo;bXQ zxi@85F1$p+>CVaNDaqz4Ri6lU7grl^yOQr=e88V+O)$d ztZ+c@NKYY8j;j`o;Gi+SKJN{I2l|fmyI)cq`} zMc9@~ZiXsE`{mT!q;ig)8KfIS}zM#+*+Aenp=QzV6&K^()vO^?MRUdcdp z!RBrL9yESuzJu2Lm=iICV(@dRNsA+D)egzBF^fery<8ig5l+S)Yam2LTrzq^2#HQE znO+YOWMybn4m>QwmG^s0(?Z4$`h0LF|5XAjihso6zx|LylRG~zN7BeCcM~CvL!@x* zyH>hq7W5!jRUj`IM~g3rL1!v5c_-bXfQogw-$ z-8~wBfSr5jm{*yiHKTg-pUyd6#c{kTFLUZRobSB0F2uv6wq!TE9RzC|Ad`2IlfGt` zCVwp?TS2 zBRC|T(89(ex%vJoEXaAfLWM!FL^-}cwC=xp4}4-%p8u`46qP$lSeiNE({SFw8kZa4 z^>1}97^KG9+OI3eSjqy?O;{q6#8h5jk!j$ONeCqpSFo?HARuMU>~MOhpglH_5Zor#T4r;e#4t zFKT!h#jl+rJ;w&b=f^|2U8^y$H2!y-c4@|VT+v} zb^qgNp7T)@@d*meSgh<~Ix;VxG8qrK5=vsj+Ijqs`cVvnyK!~HjGNkk z;Z<0SEqnFG_G@@}HpSQ$a~ft&0O7ZX>lfcT@3D|TPC2K~UJ$)k{8J7B4&c%zXGKHL z=#~ykcRRUFrj8_qCIp;BnQmhCpO*?>GTgEQ5KOSsH}ROR(Qqqe)xjNF*HY_iZ%aA8 z2Ui>frvFZmy!ZY5!2O}Jder_=e;F*mshF_aJSX?p(IXWu(#$vd7Dze(xTwp*z}`J7 zHC^p4sovGR?Ek*G_mvB%5l&LV0@hsWv-{VIUlY%o+GI{2?OcTTqpfNB+xkd~CZhfmBqAQQChWUsv-^O$+Wgg8 zQRaxM^v1do)EzkCQ9yj~;WM10on!S6<9K`Z!hS!6djK)^@78s7jCxH9gMrta@H2X? z@mwP+g@!I~g~lmt%JbaY%id&ItYYE7-^}1={=1nCf3okZg&t5oq+=!$fHjDEY4VbA z6ZGC7)M!n>6I(4NC?Kd#LgZIZTr%7li~(#V??M?{)1%GCef}TV;LAhEbh8+f)RNaRX?i&zOd$wS;b0y!&<%N3X$lEq{+_yZt0zZ?WQ|4OBR; zl(x8Gf#U2#*A?QMH_OnxBAYg{Z{7lccn!|AGd?tZOh8UYtxI0K%kt4ig5VH?7QnaY z1T`Sa*`_+mUm;q<$4~UvT+U zEN6aW+N$o^)G!B~ODcS;prfW1hjmN@I{B3_WHcrlCjI0Y#9aiBndzH zu%%cQ0ysIP-S5xGF0_N*gSsai7oYX9oh;lmIF-I(rK>Hkwt|O{+U=85h7*sKvksmO z^{Kd@vw?#|SJu9!cn@?5OD9s(f(}M7AsYH>ZZ4~n!he2mJy%*~c%@jUsC*9$fZmt% z5?1s!&r!!!C$QjVH)41Gx8eUv=*=g1raP|(jpX&GZw|uf+B6^7&C3m!p%>hp)s0eT z;v~CmzxTc<@Ed@*;k0OS7{diqypE{}j{TCBIT^*-H$>hBR|%_K%$wwNR*>opH!GAS z0zp7F>2*Q>oBAd`6E4EiIWJ8-p#>ytSE_UdC^s^^{U@6%b7!TYn~Mm`tHX(=g*@}W zWM5DbS7%->ifSEp{|LUuwV_qeBrRNNYR5?zdh|EClUIHYc!ovJk3G~b?@-Sy_%-4E zXiM;0PiG|nTEK~D57nL1~hm%$%G`kwAE zn1HKfydW(5BRtz=JukiWS+Q7+V^&R;uK79U+mM=C@s3}OE#~^sw-C*{6G+p^ogd`t z{!e+2CHQVL^R7x{uF_%sZfXy0_|R^#7-D7Pd0ix~i)qHw_w;_4dyHV4x-&Jr+XAV3 zKJO=|K!ow-BlfY;qVkzXn@xK8RxnKaxg=TW*JGOzKa#qQS;lk~mR=o-EEV>k*<4iD6P1hDs0Fq-jq+#m zk4Nq7yDveWpYHtL?hkT)qu)y$QJjmYm*}}y4(%qcse3bZ{!nHuV=w?AquU@;cfNm_ zL^1t7753R<8g_YFIH~F%(!;Z?AGl#~oODY$pDc2+%b_M+dKu>FM_#{DUmtb;sw#3p{!w&rr7A~k9`_6 zWuo;(4TCK+{l8cgdX1#qW)fdP%MbqA0EZ7#S*?7^sieDn1wnDT;eS(a)u~eiKI&`tCc~%W;b*#}9g|i&d zQ$o2pvX0|FulQBTm3Vg@N28;Y8T%hLIoA=poodT%4vq*PydVYi03X)Aa{`4EL#YuA=_UfGo&x$y0lW|hn5rsnZlCLj2BZ} z$WgUS@e;%iE9Wj*OKpp>I^%r7n=kMvM$GjtT4SfJhj%yNUHQ}Q2m9o9U$|b}Oz3MM%V9AvfmTRFqFeXfTIvLFeOC5WM^^NkMBMhJ8Dn#wb>#mmkZh-|E ziw1|Gnw;(ZH+$>5QQY}jTH5$CyKTxO@825`Evj7bes+LcC&VB`Aj~R>!0!x)t6~3- z))8Y3X$AgnmfjIS8A!x1-8@mWP~&D}8Kj2aCaVjy2y*vSFNDPi1Xp!Y?>+z#Y$o-^ z-pbn_K(7zF9#nr2oG2%EF_1RFol389Toy@z!|9(zsOU2Vm=Vor9L)zxcLyP;L83}kq zLrwpdu@+OWk{s2o)9#(jse^(YRjzv~1EzjjiQHju9L zO;JXiuVkh^x4v4`JWGj4NnQUSMVMCZT>a>DKLVNV=sjwH03M3<$H`CeX%B;gPA`Pb z=YVE(ecqb!b0g9?Cbr)GTV~oZ3mYgb1{yO>t$Le(liWKE zku{jN4m{XqhY~$KQKG+{*Fmh~yVc8VxVJyX)U|IkKS+(p+KPZ;!H}IzCvONIg!I^9 zaw!NYkTcg)mty#06&@Xa=;zWx9py_byePFyi>{`or25U=5?5ooQi!4c)|GIl`TJXS zpqYTRK=R|V`A1$OUx#i z1J&p)?HOv_%wSstgtE>;5DdOy9@_7W}_v?>+!b(|C0J^iV1_Lvj1& zA?WoS@9U(#&cyn&LsViX=2YMvX5wIk2Boj=FDw?{mC{}udp>=+Hk+fLElP!bWTL?U zmjY?cwvG&w#vL4uXZTB2jd}^g^6}-=0So%*)XYA&8sLF+_OM(nQfL{DY00_&`%nqA zYTKBEIY#(USZH@9lC>u%rJ*M$Mao_L<{}UGLMIdmYD=55q5{4@0$l7)i9V?RK zHMF}|@dz4_U**BF``76qF7M`kStWK9McG8Dq&l^A;p&dr@F~zNwL)9TmFuv951oRk z_?x=QNxzq;9>0E;H<69C*ayz;ecbp~+SYg9u0IYWlnQ11x{*jab8Q( zW*|)ab?0TtW*%Rcc)lccuQC6>KJ+9kha;EXMT&fssS&B$h{GFNzYZwrr}rZv$5?b@ z(Sa?vM|^7o!6|r77>2*&Xaoos$&Jpn5#FSX(O@CD=e9eGi~|u@GkH`hFWXCP-k_+U zYac1}bR`_m@TrHx+*1dktF`bOA!vZ&q|TaH!fvV(N#qD$VrxdpqXq~L-_@L_K!JjE z#LS*UE#MtF6^hJh@T3EP8(JF*)Nt*g6I;)D-Yf@Zihkn{hdG#?3R{o9X0S8!yNgJ# z;v$`Vh@aU_Z_Lo*Myp0$ZD@f6%Kb&9*QbTjz zU7-vcD^T#_=j#)cmcY$FhT*`U+v}2sISJepW%%IML6miys;1JE{L&pK@M;>vJ3X4`%y?oZauHP44Y*}FCMByr+;{3AP2 zSxevAnh{%ub&L%aDrvA;E*|Bl-<&{UqU0xfUZJ-Kx?`*=z05Dl#9@X052tdzAr1Ks zKE2XKE5Dakw3%J&r@^vmBmZs8I#7k$CXpln%}b98#3&j3F1jGDG?+8aSam9O{P|e` zM|KTp7QABHm3iKqC1p}p*_t-qfSZ(#7|NOFBktgC+dVlw0jRO&voPKVp{jfo=Er`~ zZ6QoP9dPCEl*-Okr-H&h(Jv%ykFXy)MSxH^&tbBM0Q|kVv`nN`G->Y}cJP$X@>iU;dAvG#NBSa;&u|9DiWI`NJ>^p}R z3D}P_!v;-wo&k-kw?P&D*C$yejPvNWyuEZxf`NrW(kPz= zZmz7CV%KkaWfn?Vs2A_^tZZN2pz&Zxx^inMcFC+}?Hzo}Z`<6TdNr4^w1iI7|85gY z@bYOoAEBSWviKkS!;-VTd(~|(kKL>uNPWW{7{MDDyPW?fNttuKnK^Lsix#RVg1_!Y zo6Qol6bkDB2e>_!(ZEKoHqPm>A4%<@qg$Q8o*1Dxy%I;ietI8QsrAemdeG3l!$qvA4eN8Ehk8eS&f~6-4~JYz@J;Z%MDD-H-+piDeXZ|~ zzBB&svSDeVIj6g#%kBDY!Pi^FrQ}buW?!-v6#3x*KS&yNXNGH1>L7;vVhU+WKZ)M7FIn|>!s zek>o3K1)O|Tdy%|f;U0EFY<;+sAF6_pisj@-8x#>H2oTaXEw+w{K27Fmf?9I@zoxs zGowy~47X2Yv2dnI*YnTNo!@)50k9_pdZN?0u9sF3 z6c@8ZLm&vB6co~BGj+zQErv3;s!9Wx)8yu#$#`xx&?=O3+iUq zufNk~TX;)Co}Z0vbwRE$1YHI!p)4EAa>Z-3S!0mHjQW4l+so*w<=54Km%1`SudNob zil8kc*KP-C|4a+6YTARLFXjQ0eHxxQgZ*=k9?pfuHW3c|}3vNu{M9?re_x7}I5rb6l= z!1o5DUHJs&H?M%MnWx<>z6oRqFwvm!2~nT$UV(ca%G@mMF*O)Y+in>6fhL*e5#{~w zuRp)RgI;5&(I@%$y$mq=pC+u{TnkW(Wgr+vmx6g0zmko32|b?=Y*_zM>0o)~Ea`@4q%?XiR89>QIzH%G6I?X;or$MW1I+fOmK(4>}42#)F*_P=p zxoT*(d6vMd%Jl(>xnj8pP*lRcNUWqBVR-dZx+evWbheYb93DSj9v%U+S7&7VN?9fbzj?~nli)%o2PFvJ(SH*G!l6-EJ-~X- z5iD~=V-|-c^?iW+O-R>U5nI4>y48~d!Z6D|Cb%9ey)xz^Y)X(jbjtAH#mVA$jUPU= zrWduc$-*K~Jbs-gYl?2O2*{yPqgWPwf%wP$4{fDvtgNifa5QjH2NK^d5G`Mv3BLQJ zVh%nq)4C3|IZfSO9@B<}XVn!D;KL(6YW^1N3ys?`H+=k9Y#&CKQ~|W9_5FT8if7uB&kl%5;N0UWINrQ!v58+n52oAl*wrFvddq~Llxho z`4hBjsSQ}!5H-2(9lQU_`j0%EH$!L6B;PakC3hqZY4?Q{pm%?i^?FmM;B-y15 zgJrdazjL#E+=mHGE?U6)h?QFT6j@4?P6}77xpcUn4)g+Cpi!7p{58P70#cVhrawy{ zoPQN%2ei>%J?SF#mXIjD0xI@<4Tp-x%)kPP)YJEW!6dF4axOxZ@aM68v3H9N)YpTN zL;Ml?NepHOp>jMjemo+P>6=J&_;sdXOL?IDOHg;Z3VEL$E3FzBIDB3`<_bqh*z)^v68U_gTiSolV&oJt4@8buV z`;!);yeMQyquUs>hxR`Dj`trge=cHwEB|q$w{MDOU#J7@mb9_v*2<2wY+993pN_S2bYkl5jU%}UL`Z{ zXfhk?_>$RL4ODI_n}1a{EibtJc2IHfksoJ6)j2w!6ADQO<<=}n9KV~^T8fp= zv#8zz{)=Ho$3O%8t9LB~e_E*II0mZO#@hvWn(u&NVMuesG6QdL^skZI1$sQzz6O5* zS~u8^XH*>B@?njM57K^}-Y%xH2KDahJt|;(QH_0qwv(0eveP=Jz~H(`7b{Y6vzZC! z`v&k!y2Ixd3XKiYYEPGu4|#Qmmm;&GgNVG-!cMP{26BatI9SoF$;WIv=VGX1vC<>M z{(07!9rq^%9aSJ5CcLlne4P}m@FuV9bHh18%O&>lpFw#MRYA2XzFMmrU0;g&jBar? z@@5c_B|#X^s-MHrjHj4-PLI^_Hi!hXuaQt-(7_Hiu`t*|f-PTvd0Ie}&S>l}nlOaJ#rS z80eG%9c0Y8;yLsJy#U8!HdP?&R`U$Vw$&hjQ!dn}*KMP<3q- z5r53W`sBe>0cNzODFE8MA=!&aOLNH&ZzH?dV)S(94KR_z}p~^}6A3n$lij!{wt3%TplMDJX z=Jxy5LUSN-8Ue+VMH#Y3?SmQ8^&!wR$!nRn^{k}2fs1M;m_}?`0A}cAA%6>I8DN3q zZ?HCpf*uG*gXuy!uQGTfej zNO?m>^|tRg9;yZ=FyczW=K-#!7GQ*p6%I(6RghV#e~)&bk{`3JCUjIS$Vp$M!jVn) zZiq+Z>HgTL#qqa=T7j+Xth``Ur755WmQWN(g(`7jOQ`s|2;@|;2P3tP?!QG!egg_` zw!0?9Vk2i`WOB6YWd`6&kxnCPVmKW7f(i4t402ZYp1|S#VVHUkCwn`5 ztuGg-`v9@xqlSV|rRJUxf&p*l?1%P zZS}j2d9F(_#_s7i-$!H+++i`qqbNR{bl&Wk(|(y8o@ADzX*4&HxsQ0tTLqMcMsF ze~mkWL0o$TTKL55GoUNdpeh5DD3O#!fQfnG`05lUsrMKD4%*+wCX~fsyhh3Unn8%*>!5U~sQq^sy@IOZR`w^psC~%iAb>H}z7Q3Pw>8@Ah z1xpbH3bTo*#kA(Me63w_qqVtv~=1_amg?5L*E~dN=Up6FbNf5oMuC)-?_cp8A|Mw^o+ii zmdD?WtG0J}0IJWmA0sA>x3*`jK?1>{XQo6{x*6ngycte+E^0C{GxxrI+Pr})v*?#% z{WEJ|?h$jTFJBB}4?L9En%U_RU>@JrX(acq*1oaa+CQTS`Cz>%?%=qrFKwtw=ML+n z13KwY-*r^ zJRN>x7jt!j+$HV13<3!uEy=^Fpa^lfDQ&0VFTNDibUd)C7Fs@SU^W&%DgZ9NAXQYc z>#csYHO8xQ}@h z#ixJLIy>!%B>sAL6_+YqY~jp9X%n2qZtM{54&Xfl-1LFuHzo5UOHq9)R7$io-J9=) z)g#TuM&2T?Kpuys?y5ZvqoQ_3sM6+$CeAC~&Zn3v36AvLOz?QLP5;<6am;`($DPn< zIu(;>8iBm?(B*dQp1|tP(2Ny*^ic@&q#Nk|0L3AD5X0(uA>>^8;%CLipMbUqZHYA> zsn-I;o70Z8q?S`Wk_*-OQAgFZ$n0Tcdz}hz8A&Rp0 zT%H&k(hlBe19!A1(=0qx5-JwG5(aREd?>o58X`yA!Ji>5eMI*oeF zy4bWZS94Il|DF-He#bz0;V0U9JyRNL0dPgkWA5er*nRQL%To5fYM2W=XEr+TmFH++ zZ6*c(lv^JiGlsf>k;_m4IsOSemVrZ`-k-e<-+4IDy*1 Ht%6$|j(^(?xrFa#||x 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 z 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 to: Windows 10 + +Today, many enterprise customers have a mix of modern and legacy client and server operating systems. Managing the servicing and updating differences between those legacy operating systems and Windows 10 versions adds a level of complexity that is not well understood. This can be confusing. With the end of support for legacy [Windows 7 SP1](https://support.microsoft.com/help/4057281/windows-7-support-will-end-on-january-14-2020) and Windows Server 2008 R2 variants on January 14, 2020, System Administrators have a critical need critical to understand how best to leverage a modern workplace to support system updates. + +The following provides an initial overview of how updating client and server differs between the Windows 10-era operating systems (such as Windows 10 version 1709, Windows Server 2016) and legacy operating systems (such as Windows 7, Windows 8.1, Windows Server 2008 R2, Windows Server 2012 R2). + +>[!NOTE] +> A note on naming convention in this article: For brevity, "Windows 10" refers to all operating systems across client, server and IoT released since July 2015, while "legacy" refers to all operating systems prior to that period for client and server, including Windows 7, Window 8.1, Windows Server 2008 R2, Windows Server 2012 R2, etc. + +## Infinite fragmentation +Prior to Windows 10, all updates to operating system (OS) components were published individually. On "Update Tuesday," customers would pick and choose individual updates they wanted to apply. Most chose to update security fixes, while far fewer selected non-security fixes, updated drivers, or installed .NET Framework updates. + +As a result, each environment with the global Windows ecosystem that had only a subset of security and non-security fixes installed had a different set of binaries and behaviors than those that consistently installed every available update as tested by Microsoft. + +This resulted in a fragmented ecosystem that created diverse challenges in predictively testing interoperability, resulting in high update failure rates - which were subsequently mitigated by customers removing individual updates that were causing issues. Each customer that selectively removed individual updates amplified this fragmentation by creating more diverse environment permutations across the ecosystem. As an IT Administrator once quipped, "If you’ve seen one Windows 7 PC, you have seen one Windows 7 PC," suggesting no consistency or predictability across more than 250M commercial devices at the time. + +## Windows 10 – Next generation +Windows 10 provided an opportunity to end the era of infinite fragmentation. With Windows 10 and the Windows as a service model, updates came rolled together in the "latest cumulative update" (LCU) packages for both client and server. Every new update published includes all changes from previous updates, as well as new fixes. Since Windows client and server share the same code base, these LCUs This helps simplify servicing. Devices with the original Release to Market (RTM) version of a feature release installed could get up to date by installing the most recent LCU. + +Windows publishes the new LCU packages for each Windows 10 version (1607, 1709, etc.) on the second Tuesday of each month. This package is classified as a required security update and contains contents from the previous LCU as well as new security, non-security and Internet Explorer 11 (IE11) fixes. The security classification, by definition, requires a reboot of the device to complete installation of the update. + +![Servicing cadence](images/servicing-cadence.png) + +Another benefit of the LCU model is fewer steps. Devices that have the original Release to Market (RTM) version of a release can install the most recent LCU to get up to date in one step, rather than having to install multiple updates with reboots after each. + +This cumulative update model for Windows 10 has helped provide the Windows ecosystem with consistent update experiences that can be predicted by baseline testing before release. Even with highly complex updates with hundreds of fixes, the number of incidents with monthly security updates for Windows 10 have fallen month over month since the initial release of Windows 10. + +### Points to consider + +- Windows 10 does not have the concept of a Security-Only or Monthly Rollup for updates. All updates are an LCU package, which includes the last release plus anything new. +- Windows 10 no longer has the concept of a "hotfix" since all individual updates must be rolled into the cumulative packages. (Note: Any private fix is offered for customer validation only, and then rolled into an LCU.) +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in the Windows 10 LCU. They are separate packages with different behaviors depending on the version of .NET Framework being updated, and on which OS. As of October 2018, .NET Framework updates for Windows 10 will be separate and have their own cumulative update model. +- For Windows 10, available update types vary by publishing channel: + - For customers using Windows Server Update Services (WSUS) and for the Update Catalog, several different updates types for Windows 10 are rolled together for the core OS in a single LCU package, with exception of Servicing Stack Updates. + - Servicing Stack Updates (SSU) are available for download from the Update Catalog and can be imported through WSUS, but will not be automatically synced. (See this [example](https://support.microsoft.com/help/4132650/servicing-stack-update-for-windows-10-version-1709-may-21-2018) for Windows 10, version 1709). For more information on Servicing Stack Updates, please see this [blog](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434). + - For customers connecting to Windows Update, the new cloud update architecture uses a database of updates which break out all the different update types, including Servicing Stack Updates (SSU) and Dynamic Updates (DU). The update scanning in the Windows 10 servicing stack on the client automatically takes only the updates that are needed by the device to be completely up to date. +- Windows 7 and other legacy operating systems have cumulative updates that operate differently than in Windows 10 (see next section). + +## Windows 7 and legacy OS versions +While Windows 10 updates could have been controlled as cumulative from "Day 1," the legacy OS ecosystem for both client and server was highly fragmented. Recognizing the challenges of update quality in aa fragmented environment, we moved Windows 7 to a cumulative update model in October 2016. + +Customers saw the LCU model used for Windows 10 as having packages that were too large and represented too much of a change for legacy operating systems, so a different model was implemented. Windows instead offered two cumulative package types for all legacy operating systems: Monthly Rollups and Security-only updates. + +The Monthly Rollup includes new non-security, security updates, Internet Explorer (IE) updates, and all updates from the previous month, similar to the Windows 10 model. The Security-only package includes new security updates and all security updates from the previous month. Additionally, a cumulative package is offered for IE, which can be tested and installed separately, reducing the total update package size. The IE cumulative update includes both security and non-security fixes following the same model as Windows 10. + +Moving to the cumulative model for legacy OS versions continues to improve predictability of update quality. The Windows legacy environments have fully updated machines, which means that the baseline against which all legacy OS version updates are tested include all of the updates (security and non-security) prior to and after October 2016. Many customer environments do not have all updates prior to this change installed, which leaves some continued fragmentation in the ecosystem. This remaining fragmentation results in issues like those seen when the September 2016 Servicing Stack Update (SSU) was needed for smooth installation of the August 2018 security update. These environments did not have the SSU applied previously. + +### Points to consider +- Windows 7 and Windows 8 legacy operating system updates [moved from individual to cumulative in October 2016](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783). Devices with updates missing prior to that point are still missing those updates, as they were not included in the subsequent cumulative packages. +- "Hotfixes" are no longer published for legacy OS versions. All updates are rolled into the appropriate package depending on their classification as either non-security, security, or Internet Explorer updates. (Note: any private fix is offered for customer validation only. Once validated they are then rolled into a Monthly Rollup or IE cumulative update, as appropriate.) +- Both Monthly Rollups and Security-only updates released on Update Tuesday for legacy OS versions are identified as "security, critical" updates, because both have the full set of security updates in them. The Monthly Rollup has additional non-security updates that are not included in the Security Only update. The "security" classification requires the device be rebooted so the update can be fully installed. +- Despite the cumulative nature of both Monthly Rollups and Security-only updates, switching between these update types is not advised. Small differences in the baselines of these packages may result in installation errors and conflicts. Choosing one and staying on that update type – Monthly Rollup or Security-only – is recommended. +- In [February 2017](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798), Windows pulled IE updates out of the legacy OS versions Security-only updates, while leaving them in the Monthly Rollup updates. This was done specifically to reduce package size based on customer feedback. +- The IE cumulative update includes both security and non-security updates and is also needed for to help secure the entire environment. This update can be installed separately or as part of the Monthly Rollup. +- [Updates for the .NET Framework](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) are NOT included in legacy Monthly Rollup or Security Only packages. They are separate packages with different behaviors depending on the version of the .NET Framework, and which legacy OS, being updated. +- For [Windows Server 2008 SP2](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/), cumulative updates began in October 2018, and follow the same model as Windows 7. Updates for IE9 are included in those packages, as the last supported version of Internet Explorer for that Legacy OS version. + +## Public preview releases +Lastly, the cumulative update model directly impacts the public Preview releases offered in the 3rd and/or 4th weeks of the month. Update Tuesday, also referred to as the "B" week release occurs on the second Tuesday of the month. It is always a required security update across all operating systems. In addition to this monthly release, Windows also releases non-security update "previews" targeting the 3rd (C) and the 4th (D) weeks of the month. These preview releases include that month’s B-release plus a set of non-security updates for testing and validation as a cumulative package. We recommend IT Administrators uses the C/D previews to test the update in their environments. Any issues identified with the updates in the C/D releases are identified and then fixed or removed, prior to being rolled up in to the next month’s B release package together with new security updates. + +### Examples +Windows 10 version 1709: + +- (9B) September 11, 2018 Update Tuesday / B release - includes security, non-security and IE update. This update is categorized as "Required, Security" it requires a system reboot. +- (9C) September 26, 2018 Preview C release - includes everything from 9B PLUS some non-security updates for testing/validation. This update is qualified as not required, non-security. No system reboot is required. +- (10B) October 9, 2018 Update Tuesday / B release includes all fixes included in 9B, all fixes in 9C and introduces new security fixes and IE updates. This update is qualified as "Required, Security" and requires a system reboot. + +All of these updates are cumulative and build on each other for Windows 10. This is in contrast to legacy OS versions, where the 9C release becomes part of the "Monthly Rollup," but not the "Security Only" update. In other words, a Window 7 SP1 9C update is part of the cumulative "Monthly Rollup" but not included in the "Security Only" update because the fixes are qualified as "non-security". This is an important variation to note on the two models. + +![Servicing preview releases](images/servicing-previews.png) + +### Previews vs. on-demand releases +In 2018, we experienced incidents that required urgent remediation that didn’t map to the monthly update release cadence. These incidents were situations that required an immediate fix to an Update Tuesday release. While Windows engineering worked aggressively to respond within a week of the B-release, these "on-demand" releases created confusion with the C Preview releases. + +#### Points to consider: +- When Windows identifies an issue with a Update Tuesday release, engineering teams work to remediate or fix the issue as quickly as possible. The outcome is often a new update which may be released at any time, including during the 3rd or 4th week of the month. Such updates are independent of the regularly scheduled "C" and "D" update previews. These updates are created on-demand to remediate a customer impacting issue. In most cases they are qualified as a "non-security" update, and do not require a system reboot. +- Rarely do incidents with Update Tuesday releases impact more than .1% of the total population. With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. +- On-demand releases address a specific issue with an Update Tuesday release and are often qualified as "non-security" for one of two reasons. First, the fix may not be an additional security fix, but a non-security change to the update. Second, the "non-security" designation allows individuals or companies to choose when and how to reboot the devices, rather than forcing a system reboot on all Windows devices receiving the update globally. This trade-off is rarely a difficult choice as it has the potential to impact customer experience across client and server, across consumer and commercial customers for more than one billion devices. +- Because the cumulative model is used across Window 10 and legacy Windows OS versions, despite variations between these OS versions, an out of band release will include all of the changes from the Update Tuesday release plus the fix that addresses the issue. And since Windows no longer releases hotfixes, everything is cumulative in some way. + +In closing, I hope this overview of the update model across current and legacy Windows OS versions highlights the benefits of the Windows 10 cumulative update model to help defragment the Windows ecosystem environments, simplify servicing and help make systems more secure. + + +## Resources +- [Simplifying updates for Windows 7 and 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplifying-updates-for-Windows-7-and-8-1/ba-p/166530) +- [Further simplifying servicing models for Windows 7 and Windows 8.1](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Further-simplifying-servicing-models-for-Windows-7-and-Windows-8/ba-p/166772) +- [More on Windows 7 and Windows 8.1 servicing changes](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/More-on-Windows-7-and-Windows-8-1-servicing-changes/ba-p/166783) +- [.NET Framework Monthly Rollups Explained](https://blogs.msdn.microsoft.com/dotnet/2016/10/11/net-framework-monthly-rollups-explained/) +- [Simplified servicing for Windows 7 and Windows 8.1: the latest improvements](https://techcommunity.microsoft.com/t5/Windows-Blog-Archive/Simplified-servicing-for-Windows-7-and-Windows-8-1-the-latest/ba-p/166798) +- [Windows Server 2008 SP2 servicing changes](https://cloudblogs.microsoft.com/windowsserver/2018/06/12/windows-server-2008-sp2-servicing-changes/) +- [Windows 10 update servicing cadence](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-10-update-servicing-cadence/ba-p/222376) +- [Windows 7 servicing stack updates: managing change and appreciating cumulative updates](https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/Windows-7-servicing-stack-updates-managing-change-and/ba-p/260434) \ No newline at end of file From a4da9500d3579f1c072114d3c75bb980dcfb0166 Mon Sep 17 00:00:00 2001 From: Liza Poggemeyer Date: Sat, 10 Nov 2018 00:22:25 +0000 Subject: [PATCH 178/201] Updated waas-servicing-differences.md - removed statement --- windows/deployment/update/waas-servicing-differences.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/deployment/update/waas-servicing-differences.md b/windows/deployment/update/waas-servicing-differences.md index d4f38b30a4..91ff222523 100644 --- a/windows/deployment/update/waas-servicing-differences.md +++ b/windows/deployment/update/waas-servicing-differences.md @@ -88,7 +88,7 @@ In 2018, we experienced incidents that required urgent remediation that didn’t #### Points to consider: - When Windows identifies an issue with a Update Tuesday release, engineering teams work to remediate or fix the issue as quickly as possible. The outcome is often a new update which may be released at any time, including during the 3rd or 4th week of the month. Such updates are independent of the regularly scheduled "C" and "D" update previews. These updates are created on-demand to remediate a customer impacting issue. In most cases they are qualified as a "non-security" update, and do not require a system reboot. -- Rarely do incidents with Update Tuesday releases impact more than .1% of the total population. With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. +- With the new Windows Update (WU) architecture, updates can be targeted to affected devices. This targeting is not available through the Update Catalog or WSUS channels, however. - On-demand releases address a specific issue with an Update Tuesday release and are often qualified as "non-security" for one of two reasons. First, the fix may not be an additional security fix, but a non-security change to the update. Second, the "non-security" designation allows individuals or companies to choose when and how to reboot the devices, rather than forcing a system reboot on all Windows devices receiving the update globally. This trade-off is rarely a difficult choice as it has the potential to impact customer experience across client and server, across consumer and commercial customers for more than one billion devices. - Because the cumulative model is used across Window 10 and legacy Windows OS versions, despite variations between these OS versions, an out of band release will include all of the changes from the Update Tuesday release plus the fix that addresses the issue. And since Windows no longer releases hotfixes, everything is cumulative in some way. From be2399cba2d330f63eeea8928586838163173d47 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 10 Nov 2018 10:39:15 -0500 Subject: [PATCH 179/201] typo: visbility -> visibility --- .../client-management/manage-settings-app-with-group-policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/client-management/manage-settings-app-with-group-policy.md b/windows/client-management/manage-settings-app-with-group-policy.md index aa9b63bd2b..7b80381b7c 100644 --- a/windows/client-management/manage-settings-app-with-group-policy.md +++ b/windows/client-management/manage-settings-app-with-group-policy.md @@ -38,7 +38,7 @@ Policy paths: The Group Policy can be configured in one of two ways: specify a list of pages that are shown or specify a list of pages to hide. To do this, add either **ShowOnly:** or **Hide:** followed by a semicolon delimited list of URIs in **Settings Page Visiblity**. For a full list of URIs, see the URI scheme reference section in [Launch the Windows Settings app](https://docs.microsoft.com/windows/uwp/launch-resume/launch-settings-app#ms-settings-uri-scheme-reference). >[!NOTE] -> When you specify the URI in the Settings Page Visbility textbox, don't include **ms-settings:** in the string. +> When you specify the URI in the Settings Page Visibility textbox, don't include **ms-settings:** in the string. Here are some examples: From a027e34ffd597eb14d60f07626aa0a64d77b72e7 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 10 Nov 2018 10:59:56 -0500 Subject: [PATCH 180/201] typo: Additonal -> Additional --- .../mdm/bulk-enrollment-using-windows-provisioning-tool.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/client-management/mdm/bulk-enrollment-using-windows-provisioning-tool.md b/windows/client-management/mdm/bulk-enrollment-using-windows-provisioning-tool.md index 4e860c0b4b..8aa018c18c 100644 --- a/windows/client-management/mdm/bulk-enrollment-using-windows-provisioning-tool.md +++ b/windows/client-management/mdm/bulk-enrollment-using-windows-provisioning-tool.md @@ -79,7 +79,7 @@ Using the ICD, create a provisioning package using the enrollment information re 12. Enter the values for your package and specify the package output location. ![enter package information](images/bulk-enrollment3.png) - ![enter additonal information for package information](images/bulk-enrollment4.png) + ![enter additional information for package information](images/bulk-enrollment4.png) ![specify file location](images/bulk-enrollment6.png) 13. Click **Build**. From e75db18d7f4f6978d1f05c0eb47f2934854eca2f Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 10 Nov 2018 11:27:29 -0500 Subject: [PATCH 181/201] Update gdpr-win10-whitepaper.md --- windows/privacy/gdpr-win10-whitepaper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/privacy/gdpr-win10-whitepaper.md b/windows/privacy/gdpr-win10-whitepaper.md index 5a54e998e6..a8a0214f4a 100644 --- a/windows/privacy/gdpr-win10-whitepaper.md +++ b/windows/privacy/gdpr-win10-whitepaper.md @@ -293,7 +293,7 @@ For example, employees can’t send protected work files from a personal email a #### Capabilities to classify, assign permissions and share data Windows Information Protection is designed to coexist with advanced data loss prevention (DLP) capabilities found in Office 365 ProPlus, Azure Information Protection, and Azure Rights Management. Advanced DLP prevents printing, for example, or protects work data that is emailed outside your company. -To continously protect your data, regardless of where it is stored, with whom it is shared, or if the device is running iOS, Android or Windows, the classification and protection needs to be built into the file itself, so this protection can travel with the data wherever it goes. Microsoft Azure Information Protection (AIP) is designed to provide this persistent data protection both on-premises and in the cloud. +To continuously protect your data, regardless of where it is stored, with whom it is shared, or if the device is running iOS, Android or Windows, the classification and protection needs to be built into the file itself, so this protection can travel with the data wherever it goes. Microsoft Azure Information Protection (AIP) is designed to provide this persistent data protection both on-premises and in the cloud. Data classification is an important part of any data governance plan. Adopting a classification scheme that applies throughout your business can be particularly helpful in responding to what the GDPR calls data subject (for example, your EU employee or customer) requests, because it enables enterprises to identify more readily and process personal data requests. @@ -332,4 +332,4 @@ This article does not provide you with any legal rights to any intellectual prop Published September 2017
      Version 1.0
      -© 2017 Microsoft. All rights reserved. \ No newline at end of file +© 2017 Microsoft. All rights reserved. From b1db2507f1ad429da66ca9ad375867246a086f36 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 10 Nov 2018 12:17:33 -0500 Subject: [PATCH 182/201] typo: Controler -> Controller --- ...-down-system-immediately-if-unable-to-log-security-audits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/security-policy-settings/audit-shut-down-system-immediately-if-unable-to-log-security-audits.md b/windows/security/threat-protection/security-policy-settings/audit-shut-down-system-immediately-if-unable-to-log-security-audits.md index 5b63d093b8..d5b8c58676 100644 --- a/windows/security/threat-protection/security-policy-settings/audit-shut-down-system-immediately-if-unable-to-log-security-audits.md +++ b/windows/security/threat-protection/security-policy-settings/audit-shut-down-system-immediately-if-unable-to-log-security-audits.md @@ -60,7 +60,7 @@ The following table lists the actual and effective default values for this polic | Server type or GPO | Default value | | - | - | | Default Domain Policy | Not defined -| Default Domain Controler Policy | Not defined +| Default Domain Controller Policy | Not defined | Stand-Alone Server Default Settings | Disabled | DC Effective Default Settings | Disabled | Member Server Effective Default Settings | Disabled From 87c4ab1a319bd73f953cd7ba7aced8f0b2e13b35 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Sat, 10 Nov 2018 18:38:16 -0500 Subject: [PATCH 183/201] typo: Availabilty -> Availability --- .../hello-for-business/hello-hybrid-aadj-sso-cert.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/identity-protection/hello-for-business/hello-hybrid-aadj-sso-cert.md b/windows/security/identity-protection/hello-for-business/hello-hybrid-aadj-sso-cert.md index d47f46ccc8..d855efc036 100644 --- a/windows/security/identity-protection/hello-for-business/hello-hybrid-aadj-sso-cert.md +++ b/windows/security/identity-protection/hello-for-business/hello-hybrid-aadj-sso-cert.md @@ -100,7 +100,7 @@ Sign-in to a domain controller or management workstation with access equivalent 4. Type **NDES Servers** in **Enter the object names to select**. Click **OK**. Click **OK** on the **Active Directory Domain Services** success dialog. > [!NOTE] -> For high-availabilty, you should have more than one NDES server to service Windows Hello for Business certificate requests. You should add additional Windows Hello for Business NDES servers to this group to ensure they receive the proper configuration. +> For high-availability, you should have more than one NDES server to service Windows Hello for Business certificate requests. You should add additional Windows Hello for Business NDES servers to this group to ensure they receive the proper configuration. ### Create the NDES Service Account The Network Device Enrollment Services (NDES) role runs under a service account. Typically, it is preferential to run services using a Group Managed Service Account (GMSA). While the NDES role can be configured to run using a GMSA, the Intune Certificate Connector was not designed nor tested using a GMSA and is considered an unsupported configuration. The deployment uses a normal services account. @@ -686,4 +686,4 @@ You have successfully completed the configuration. Add users that need to enrol > * Install and Configure the NDES Role > * Configure Network Device Enrollment Services to work with Microsoft Intune > * Download, Install, and Configure the Intune Certificate Connector -> * Create and Assign a Simple Certificate Enrollment Protocol (SCEP Certificate Profile) \ No newline at end of file +> * Create and Assign a Simple Certificate Enrollment Protocol (SCEP Certificate Profile) From 7da89e0d2640e7de18890be1751d6167b95cd643 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 11 Nov 2018 13:25:34 +0200 Subject: [PATCH 184/201] Advanced Hunting API --- .../windows-defender-atp/run-advanced-query-api.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md index 4281f9dd00..8decfce57c 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-api.md @@ -29,7 +29,7 @@ This API allows you to run programmatic queries that you are used to running fro This API is a beta version only and is currently restricted to the following actions: 1. ​You can only run a query on data from the last 30 days 2. The results will include a maximum of 10,000 rows -3. The number of executions is limited​ (up to 15 minutes every hour and 4 hours a day) +3. The number of executions is limited​ (up to 15 calls per minute, 15 minutes of running time every hour and 4 hours of running time a day) ## Permissions One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Use Windows Defender ATP APIs](apis-intro.md) @@ -41,7 +41,7 @@ Delegated (work or school account) | AdvancedQuery.Read | 'Run advanced queries' >[!Note] > When obtaining a token using user credentials: ->- The user needs to have 'Global Admin' AD role +>- The user needs to have 'Global Admin' AD role (note: will be updated soon to 'View Data') >- The user needs to have access to the machine, based on machine group settings (See [Create and manage machine groups](machine-groups-windows-defender-advanced-threat-protection.md) for more information) ## HTTP request From ad87d4675f614de93b90b3ed3b6c51489240588e Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 12 Nov 2018 05:30:54 +0000 Subject: [PATCH 185/201] Updated TOC.md --- .../threat-protection/windows-defender-atp/TOC.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 71c2a82d6f..1238a4b2af 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -283,10 +283,21 @@ ####### [Run antivirus scan](run-av-scan-windows-defender-advanced-threat-protection-new.md) ####### [Offboard machine](offboard-machine-api-windows-defender-advanced-threat-protection-new.md) +###### Machines Security States +####### [Get MachineSecurityStates collection](get-machinesecuritystates-collection-windows-defender-advanced-threat-protection.md) +###### Machine Groups +####### [Get MachineGroups collection](get-machinegroups-collection-windows-defender-advanced-threat-protection.md) + + ###### [User](user-windows-defender-advanced-threat-protection-new.md) ####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) +###### Windows updates (KB) info +####### [Get KbInfo collection](get-kbinfo-collection-windows-defender-advanced-threat-protection.md) +###### Common Vulnerabilities and Exposures (CVE) to KB map +####### [Get CVE-KB map](get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) + ##### How to use APIs - Samples ###### Advanced Hunting API ####### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-sample-ms-flow.md) From 4c14df90b6fc85d30e748a3b8fabbfcb6f0b2de2 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 12 Nov 2018 05:34:35 +0000 Subject: [PATCH 186/201] Updated machine-windows-defender-advanced-threat-protection-new.md --- ...ine-windows-defender-advanced-threat-protection-new.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md index 020621ef49..8c70bf4419 100644 --- a/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/machine-windows-defender-advanced-threat-protection-new.md @@ -1,6 +1,6 @@ --- -title: machine resource type -description: Retrieves top machines. +title: Machine resource type +description: Retrieves top machines keywords: apis, supported apis, get, machines search.product: eADQiWindows 10XVcnh ms.prod: w10 @@ -10,10 +10,10 @@ ms.pagetype: security ms.author: macapara author: mjcaparas ms.localizationpriority: medium -ms.date: 12/08/2017 +ms.date: 11/11/2018 --- -# machine resource type +# Machine resource type # Methods From 5fe3519baa351979c446937ee93a2db10787e990 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Mon, 12 Nov 2018 05:52:47 +0000 Subject: [PATCH 188/201] Updated TOC.md --- windows/security/threat-protection/TOC.md | 79 ++++------------------- 1 file changed, 13 insertions(+), 66 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 12f3ab52ff..ba67fd3160 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -80,73 +80,7 @@ ###### [Advanced hunting query language best practices](windows-defender-atp/advanced-hunting-best-practices-windows-defender-advanced-threat-protection.md) ##### [Custom detections](windows-defender-atp/overview-custom-detections.md) ###### [Create custom detections rules](windows-defender-atp/custom-detection-rules.md) -##### [Supported Windows Defender ATP APIs](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) -######Actor -####### [Get actor information](windows-defender-atp/get-actor-information-windows-defender-advanced-threat-protection.md) -####### [Get actor related alerts](windows-defender-atp/get-actor-related-alerts-windows-defender-advanced-threat-protection.md) -######Alerts -####### [Get alerts](windows-defender-atp/get-alerts-windows-defender-advanced-threat-protection.md) -####### [Get alert information by ID](windows-defender-atp/get-alert-info-by-id-windows-defender-advanced-threat-protection.md) -####### [Get alert related actor information](windows-defender-atp/get-alert-related-actor-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related domain information](windows-defender-atp/get-alert-related-domain-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related file information](windows-defender-atp/get-alert-related-files-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related IP information](windows-defender-atp/get-alert-related-ip-info-windows-defender-advanced-threat-protection.md) -####### [Get alert related machine information](windows-defender-atp/get-alert-related-machine-info-windows-defender-advanced-threat-protection.md) -######Domain -####### [Get domain related alerts](windows-defender-atp/get-domain-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get domain related machines](windows-defender-atp/get-domain-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get domain statistics](windows-defender-atp/get-domain-statistics-windows-defender-advanced-threat-protection.md) -####### [Is domain seen in organization](windows-defender-atp/is-domain-seen-in-org-windows-defender-advanced-threat-protection.md) -######File -####### [Block file API](windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md) -####### [Get file information](windows-defender-atp/get-file-information-windows-defender-advanced-threat-protection.md) -####### [Get file related alerts](windows-defender-atp/get-file-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get file related machines](windows-defender-atp/get-file-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get file statistics](windows-defender-atp/get-file-statistics-windows-defender-advanced-threat-protection.md) -####### [Get FileActions collection API](windows-defender-atp/get-fileactions-collection-windows-defender-advanced-threat-protection.md) -####### [Unblock file API](windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md) - -######IP -####### [Get IP related alerts](windows-defender-atp/get-ip-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get IP related machines](windows-defender-atp/get-ip-related-machines-windows-defender-advanced-threat-protection.md) -####### [Get IP statistics](windows-defender-atp/get-ip-statistics-windows-defender-advanced-threat-protection.md) -####### [Is IP seen in organization](windows-defender-atp/is-ip-seen-org-windows-defender-advanced-threat-protection.md) -######Machines -####### [Collect investigation package API](windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md) -####### [Find machine information by IP](windows-defender-atp/find-machine-info-by-ip-windows-defender-advanced-threat-protection.md) -####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -####### [Get FileMachineAction object API](windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md) -####### [Get FileMachineActions collection API](windows-defender-atp/get-filemachineactions-collection-windows-defender-advanced-threat-protection.md) -####### [Get machine by ID](windows-defender-atp/get-machine-by-id-windows-defender-advanced-threat-protection.md) -####### [Get machine log on users](windows-defender-atp/get-machine-log-on-users-windows-defender-advanced-threat-protection.md) -####### [Get machine related alerts](windows-defender-atp/get-machine-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get MachineAction object API](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md) -####### [Get MachineActions collection API](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection.md) -####### [Get machines](windows-defender-atp/get-machines-windows-defender-advanced-threat-protection.md) -####### [Get package SAS URI API](windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md) -####### [Isolate machine API](windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md) -####### [Release machine from isolation API](windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md) -####### [Remove app restriction API](windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md) -####### [Request sample API](windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md) -####### [Restrict app execution API](windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md) -####### [Run antivirus scan API](windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md) -####### [Stop and quarantine file API](windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md) -######Machines Security States -####### [Get MachineSecurityStates collection](windows-defender-atp/get-machinesecuritystates-collection-windows-defender-advanced-threat-protection.md) -######Machine Groups -####### [Get MachineGroups collection](windows-defender-atp/get-machinegroups-collection-windows-defender-advanced-threat-protection.md) - -######User -####### [Get alert related user information](windows-defender-atp/get-alert-related-user-info-windows-defender-advanced-threat-protection.md) -####### [Get user information](windows-defender-atp/get-user-information-windows-defender-advanced-threat-protection.md) -####### [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection.md) -####### [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection.md) - -######Windows updates (KB) info -####### [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) -######Common Vulnerabilities and Exposures (CVE) to KB map -####### [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) #### [Management and APIs](windows-defender-atp/management-apis.md) @@ -335,6 +269,12 @@ ######## [Add or Remove machine tags](windows-defender-atp/add-or-remove-machine-tags-windows-defender-advanced-threat-protection-new.md) ######## [Find machines by IP](windows-defender-atp/find-machines-by-ip-windows-defender-advanced-threat-protection-new.md) +####### Machines Security States +######## [Get MachineSecurityStates collection](windows-defender-atp/get-machinesecuritystates-collection-windows-defender-advanced-threat-protection.md) +####### Machine Groups +######## [Get MachineGroups collection](windows-defender-atp/get-machinegroups-collection-windows-defender-advanced-threat-protection.md) + + ####### [Machine Action](windows-defender-atp/machineaction-windows-defender-advanced-threat-protection-new.md) ######## [List MachineActions](windows-defender-atp/get-machineactions-collection-windows-defender-advanced-threat-protection-new.md) ######## [Get MachineAction](windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection-new.md) @@ -351,6 +291,13 @@ ######## [Get user related alerts](windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) + +####### Windows updates (KB) info +######## [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) +####### Common Vulnerabilities and Exposures (CVE) to KB map +######## [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) + + ###### How to use APIs - Samples ####### Advanced Hunting API ######## [Schedule advanced Hunting using Microsoft Flow](windows-defender-atp/run-advanced-query-sample-ms-flow.md) From 2427f9694ae0cc3c8a2db421f5c2a1bc7976ed57 Mon Sep 17 00:00:00 2001 From: CCDFischer <38050005+CCDFischer@users.noreply.github.com> Date: Mon, 12 Nov 2018 08:55:07 -0500 Subject: [PATCH 189/201] Update how-to-download-and-deploy-mdop-group-policy--admx--templates.md add instructions on how to expand the downloaded .cab file --- ...to-download-and-deploy-mdop-group-policy--admx--templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mdop/solutions/how-to-download-and-deploy-mdop-group-policy--admx--templates.md b/mdop/solutions/how-to-download-and-deploy-mdop-group-policy--admx--templates.md index b183080d0a..bb717d6751 100644 --- a/mdop/solutions/how-to-download-and-deploy-mdop-group-policy--admx--templates.md +++ b/mdop/solutions/how-to-download-and-deploy-mdop-group-policy--admx--templates.md @@ -22,7 +22,7 @@ You can manage the feature settings of certain Microsoft Desktop Optimization Pa 1. Download the latest [MDOP Group Policy templates](https://www.microsoft.com/en-us/download/details.aspx?id=55531) -2. Run the downloaded file to extract the template folders. +2. Expand the downloaded .cab file by running `expand \MDOP_ADMX_Templates.cab -F:* ` **Warning**   Do not extract the templates directly to the Group Policy deployment directory. Multiple technologies and versions are bundled in this file. From db587ec0a244efff6ae97f0c412685acd273cb80 Mon Sep 17 00:00:00 2001 From: Kartikay Sharma <44971599+SharmaKartikay@users.noreply.github.com> Date: Mon, 12 Nov 2018 19:29:01 +0530 Subject: [PATCH 190/201] Updated the TPM 2.0 Heal Time Info The Heal Time for TPM 2.0 on Windows 10 is 10 Minutes where as the document says 2 hours which is not correct. --- .../security/information-protection/tpm/manage-tpm-lockout.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/information-protection/tpm/manage-tpm-lockout.md b/windows/security/information-protection/tpm/manage-tpm-lockout.md index db918c0ba6..6f31a72d96 100644 --- a/windows/security/information-protection/tpm/manage-tpm-lockout.md +++ b/windows/security/information-protection/tpm/manage-tpm-lockout.md @@ -31,7 +31,7 @@ The industry standards from the Trusted Computing Group (TCG) specify that TPM m **TPM 2.0** -TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows configures the maximum count to be 32 and the healing time to be 2 hours. This means that every continuous two hours of powered on operation without an event which increases the counter will cause the counter to decrease by 1. +TPM 2.0 devices have standardized lockout behavior which is configured by Windows. TPM 2.0 devices have a maximum count threshold and a healing time. Windows 10 configures the maximum count to be 32 and the healing time to be 10 minutes. This means that every continuous ten minutes of powered on operation without an event which increases the counter will cause the counter to decrease by 1. If your TPM has entered lockout mode or is responding slowly to commands, you can reset the lockout value by using the following procedures. Resetting the TPM lockout requires the TPM owner’s authorization. This value is no longer retained by default starting with Windows 10 version 1607. From 3965fd992c839d3f1317e8165d44b5bc240881e1 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 17:06:44 +0200 Subject: [PATCH 191/201] s --- .../windows-defender-atp/exposed-apis-list.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md index d8edf97d46..31a700d1dc 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md @@ -22,6 +22,25 @@ ms.date: 30/07/2018 >Want to experience Windows Defender ATP? [Sign up for a free trial.](https://www.microsoft.com/en-us/WindowsForBusiness/windows-atp?ocid=docs-wdatp-supportedapis-abovefoldlink) +## End Point URI and Versioning + +### End Point URI: + +> The service base URI is: https://api.securitycenter.windows.com + +> The queries based OData have the '/api' prefix. For example, to get Alerts you can send GET request to https://api.securitycenter.windows.com/api/alerts + +### Versioning: + +> The API supports versioning. + +> The current version is **V1.0**. + +> To use a specific version use this format: https://api.securitycenter.windows.com/api/{Version}. For example: https://api.securitycenter.windows.com/api/v1.0/alerts + +> If you dont specify any version ( without /v1.0/ ) you will get to the latest version. + + Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. ## In this section From fb57c43f1ea6da267525a9f0a223f4e9d84c7eff Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 18:14:15 +0200 Subject: [PATCH 192/201] s --- .../exposed-apis-odata-samples.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md new file mode 100644 index 0000000000..0f80a2b138 --- /dev/null +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md @@ -0,0 +1,146 @@ +--- +title: OData queries with Windows Defender ATP +description: OData queries with Windows Defender ATP +keywords: apis, supported apis, odata, query +search.product: eADQiWindows 10XVcnh +ms.prod: w10 +ms.mktglfcycl: deploy +ms.sitesec: library +ms.pagetype: security +ms.author: macapara +author: mjcaparas +ms.localizationpriority: medium +ms.date: 09/24/2018 +--- + +# OData queries with Windows Defender ATP +**Applies to:** +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + +[!include[Prerelease information](prerelease.md)] + +If you are not familliar with OData queries, please see: [OData V4 queries](https://www.odata.org/documentation/) + +** Currently, [Machine](machine-windows-defender-advanced-threat-protection-new.md) and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entities supports all OData queries.** +** [Alert](alerts-windows-defender-advanced-threat-protection-new.md) entity support all OData queries except $filter.** + +### Example 1 + +**Get top 100 machines with 'HealthStatus' not equals to 'Active'** + +``` +HTTP GET https://api.securitycenter.windows.com/api/machines?$filter=healthStatus ne 'Active'&$top=100 +``` + +**Response:** + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "e3a77eeddb83d581238792387b1239b01286b2f", + "computerDnsName": "examples.dev.corp.microsoft.com", + "firstSeen": "2016-11-02T23:26:03.7882168Z", + "lastSeen": "2018-11-12T10:27:08.708723Z", + "osPlatform": "Windows10", + "osVersion": "10.0.0.0", + "lastIpAddress": "123.123.10.33", + "lastExternalIpAddress": "124.124.160.172", + "agentVersion": "10.6300.18279.1001", + "osBuild": 18279, + "healthStatus": "ImpairedCommunication", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 5, + "rbacGroupName": "North", + "riskScore": "Medium", + "aadDeviceId": "d90b0b99-1234-1234-1234-b91d50c6796a" + }, + . + . + . + ] +} +``` + +### Example 2 + +**Get all the machines that last seen after 2018-10-20** + +``` +HTTP GET https://api.securitycenter.windows.com/api/machines?$filter=lastSeen gt 2018-10-20Z +``` + +**Response:** + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "83123465ffceca4a731234e5dcde3357e026e873", + "computerDnsName": "k0107-vm10", + "firstSeen": "2018-11-12T16:07:50.1706168Z", + "lastSeen": "2018-11-12T16:07:50.1706168Z", + "osPlatform": "WindowsServer2019", + "osVersion": null, + "lastIpAddress": "10.123.72.35", + "lastExternalIpAddress": "123.220.2.3", + "agentVersion": "10.6300.18281.1000", + "osBuild": 18281, + "healthStatus": "Active", + "isAadJoined": false, + "machineTags": [], + "rbacGroupId": 4, + "rbacGroupName": "East", + "riskScore": "None", + "aadDeviceId": null + }, + . + . + . + ] +} +``` + +### Example 2 + +**Get all the anti virus scans that the user Analyst@examples.onmicrosoft.com created using WDATP** + +``` +HTTP GET https://api.securitycenter.windows.com/api/machineactions?$filter=requestor eq 'Analyst@WcdTestPrd.onmicrosoft.com' and type eq 'RunAntiVirusScan' +``` + +**Response:** + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions", + "value": [ + { + "id": "5c3e3322-d993-1234-986b-dfb136ebc8c5", + "type": "RunAntiVirusScan", + "requestor": "Analyst@examples.onmicrosoft.com", + "requestorComment": "1533", + "status": "Succeeded", + "machineId": "123321c10e44a82877af76b1d0161a17843f688a", + "creationDateTimeUtc": "2018-11-12T13:33:24.5755657Z", + "lastUpdateDateTimeUtc": "2018-11-12T13:34:32.0319826Z", + "relatedFileInfo": null + }, + . + . + . + ] +} +``` + +## Related topic +- [Windows Defender ATP APIs](apis-intro.md) From f43a23e29a0d6bae8b1e406ab13bb2c13943a215 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 18:17:01 +0200 Subject: [PATCH 193/201] s --- 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 ba67fd3160..a621eece20 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -306,6 +306,7 @@ ######## [Create custom Power BI reports](windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md) ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) +####### [Using OData Queries](exposed-apis-odata-samples.md) ##### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) From 1eb13f7bf75f6b0c840f34312da5b78cf8c20b92 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 18:25:26 +0200 Subject: [PATCH 194/201] s --- windows/security/threat-protection/TOC.md | 2 +- .../windows-defender-atp/exposed-apis-list.md | 2 +- .../windows-defender-atp/exposed-apis-odata-samples.md | 2 +- ...-alerts-windows-defender-advanced-threat-protection-new.md | 4 +++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index a621eece20..b298869bff 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -306,7 +306,7 @@ ######## [Create custom Power BI reports](windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md) ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -####### [Using OData Queries](exposed-apis-odata-samples.md) +####### [Using OData Queries](exposed-apis-odata-samples.) ##### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md index 31a700d1dc..c2822f4178 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md @@ -38,7 +38,7 @@ ms.date: 30/07/2018 > To use a specific version use this format: https://api.securitycenter.windows.com/api/{Version}. For example: https://api.securitycenter.windows.com/api/v1.0/alerts -> If you dont specify any version ( without /v1.0/ ) you will get to the latest version. +> If you don't specify any version ( without /v1.0/ ) you will get to the latest version. Learn more about the individual supported entities where you can run API calls to and details such as HTTP request values, request headers and expected responses. diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md index 0f80a2b138..940cb92430 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md @@ -19,7 +19,7 @@ ms.date: 09/24/2018 [!include[Prerelease information](prerelease.md)] -If you are not familliar with OData queries, please see: [OData V4 queries](https://www.odata.org/documentation/) +If you are not familiar with OData queries, please see: [OData V4 queries](https://www.odata.org/documentation/) ** Currently, [Machine](machine-windows-defender-advanced-threat-protection-new.md) and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entities supports all OData queries.** ** [Alert](alerts-windows-defender-advanced-threat-protection-new.md) entity support all OData queries except $filter.** diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md index 2ff5212e4b..e109d17851 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-alerts-windows-defender-advanced-threat-protection-new.md @@ -41,6 +41,8 @@ Delegated (work or school account) | Alert.ReadWrite | 'Read and write alerts' GET /api/users/{id}/alerts ``` +**Note that the id is not the Full UPN, its only the user name. For example, for user1@contoso.com you will need to send /api/users/user1/alerts** + ## Request headers Name | Type | Description @@ -64,7 +66,7 @@ Here is an example of the request. [!include[Improve request performance](improverequestperformance-new.md)] ``` -GET https://api.securitycenter.windows.com/api/users/user1@contoso.com/alerts +GET https://api.securitycenter.windows.com/api/users/user1/alerts ``` **Response** From dfb70cafbd9e968c90dac7be9cac3e7829350c69 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 18:27:23 +0200 Subject: [PATCH 195/201] s --- windows/security/threat-protection/TOC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index b298869bff..a621eece20 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -306,7 +306,7 @@ ######## [Create custom Power BI reports](windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md) ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -####### [Using OData Queries](exposed-apis-odata-samples.) +####### [Using OData Queries](exposed-apis-odata-samples.md) ##### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) From 22e6d5ec91d3d90c3f0f86acb85f273c1f204719 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 18:56:24 +0200 Subject: [PATCH 196/201] s --- windows/security/threat-protection/TOC.md | 2 +- .../security/threat-protection/windows-defender-atp/TOC.md | 1 + .../windows-defender-atp/exposed-apis-list.md | 2 +- ...chines-windows-defender-advanced-threat-protection-new.md | 5 ++++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index a621eece20..1a627ddd6d 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -306,7 +306,7 @@ ######## [Create custom Power BI reports](windows-defender-atp/run-advanced-query-sample-power-bi-app-token.md) ####### Multiple APIs ######## [PowerShell](windows-defender-atp/exposed-apis-full-sample-powershell.md) -####### [Using OData Queries](exposed-apis-odata-samples.md) +####### [Using OData Queries](windows-defender-atp/exposed-apis-odata-samples.md) ##### [Use the Windows Defender ATP exposed APIs (deprecated)](windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md) ###### [Supported Windows Defender ATP APIs (deprecated)](windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 1238a4b2af..f1eaae8d85 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -306,6 +306,7 @@ ####### [Create custom Power BI reports](run-advanced-query-sample-power-bi-app-token.md) ###### Multiple APIs ####### [PowerShell](exposed-apis-full-sample-powershell.md) +###### [Using OData Queries](exposed-apis-odata-samples.md) #### [Use the Windows Defender ATP exposed APIs (deprecated)](exposed-apis-windows-defender-advanced-threat-protection.md) ##### [Supported Windows Defender ATP APIs (deprecated)](supported-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md index c2822f4178..aaf42956c2 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-list.md @@ -36,7 +36,7 @@ ms.date: 30/07/2018 > The current version is **V1.0**. -> To use a specific version use this format: https://api.securitycenter.windows.com/api/{Version}. For example: https://api.securitycenter.windows.com/api/v1.0/alerts +> To use a specific version, use this format: https://api.securitycenter.windows.com/api/{Version}. For example: https://api.securitycenter.windows.com/api/v1.0/alerts > If you don't specify any version ( without /v1.0/ ) you will get to the latest version. diff --git a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md index 53e0047b39..35a87d200a 100644 --- a/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md @@ -41,6 +41,9 @@ Delegated (work or school account) | Machine.ReadWrite | 'Read and write machine GET /api/users/{id}/machines ``` +**Note that the id is not the Full UPN, its only the user name. For example, for user1@contoso.com you will need to send /api/users/user1/machines** + + ## Request headers Name | Type | Description @@ -64,7 +67,7 @@ Here is an example of the request. [!include[Improve request performance](improverequestperformance-new.md)] ``` -GET https://api.securitycenter.windows.com/api/users/user1@contoso.com/machines +GET https://api.securitycenter.windows.com/api/users/user1/machines ``` **Response** From abc402b107f32aea6e259303716016f155ee5fa2 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 19:02:00 +0200 Subject: [PATCH 197/201] s --- .../windows-defender-atp/exposed-apis-odata-samples.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md index 940cb92430..a13bd1415e 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md @@ -19,10 +19,10 @@ ms.date: 09/24/2018 [!include[Prerelease information](prerelease.md)] -If you are not familiar with OData queries, please see: [OData V4 queries](https://www.odata.org/documentation/) +> If you are not familiar with OData queries, please see: [OData V4 queries](https://www.odata.org/documentation/) -** Currently, [Machine](machine-windows-defender-advanced-threat-protection-new.md) and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entities supports all OData queries.** -** [Alert](alerts-windows-defender-advanced-threat-protection-new.md) entity support all OData queries except $filter.** +> ** Currently, [Machine](machine-windows-defender-advanced-threat-protection-new.md) and [Machine Action](machineaction-windows-defender-advanced-threat-protection-new.md) entities supports all OData queries.** +> ** [Alert](alerts-windows-defender-advanced-threat-protection-new.md) entity support all OData queries except $filter.** ### Example 1 @@ -108,9 +108,9 @@ Content-type: application/json } ``` -### Example 2 +### Example 3 -**Get all the anti virus scans that the user Analyst@examples.onmicrosoft.com created using WDATP** +**Get all the Anti-Virus scans that the user Analyst@examples.onmicrosoft.com created using WDATP** ``` HTTP GET https://api.securitycenter.windows.com/api/machineactions?$filter=requestor eq 'Analyst@WcdTestPrd.onmicrosoft.com' and type eq 'RunAntiVirusScan' From 60e1b1d178ccf013eb2e255130466bd80f326360 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 19:07:04 +0200 Subject: [PATCH 198/201] s --- .../exposed-apis-odata-samples.md | 56 ++++++++++++++++--- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md index a13bd1415e..a7384d989f 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-odata-samples.md @@ -26,10 +26,10 @@ ms.date: 09/24/2018 ### Example 1 -**Get top 100 machines with 'HealthStatus' not equals to 'Active'** +**Get all the machines with 'High' 'RiskScore'** ``` -HTTP GET https://api.securitycenter.windows.com/api/machines?$filter=healthStatus ne 'Active'&$top=100 +HTTP GET https://api.securitycenter.windows.com/api/machines?$filter=riskScore eq 'High' ``` **Response:** @@ -56,7 +56,7 @@ Content-type: application/json "machineTags": [], "rbacGroupId": 5, "rbacGroupName": "North", - "riskScore": "Medium", + "riskScore": "High", "aadDeviceId": "d90b0b99-1234-1234-1234-b91d50c6796a" }, . @@ -68,6 +68,48 @@ Content-type: application/json ### Example 2 +**Get top 100 machines with 'HealthStatus' not equals to 'Active'** + +``` +HTTP GET https://api.securitycenter.windows.com/api/machines?$filter=healthStatus ne 'Active'&$top=100 +``` + +**Response:** + +``` +HTTP/1.1 200 OK +Content-type: application/json +{ + "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", + "value": [ + { + "id": "1113333ddb83d581238792387b1239b01286b2f", + "computerDnsName": "examples.dev.corp.microsoft.com", + "firstSeen": "2016-11-02T23:26:03.7882168Z", + "lastSeen": "2018-11-12T10:27:08.708723Z", + "osPlatform": "Windows10", + "osVersion": "10.0.0.0", + "lastIpAddress": "123.123.10.33", + "lastExternalIpAddress": "124.124.160.172", + "agentVersion": "10.6300.18279.1001", + "osBuild": 18279, + "healthStatus": "ImpairedCommunication", + "isAadJoined": true, + "machineTags": [], + "rbacGroupId": 5, + "rbacGroupName": "North", + "riskScore": "Medium", + "aadDeviceId": "d90b0b99-1234-1234-1234-b91d50c6796a" + }, + . + . + . + ] +} +``` + +### Example 3 + **Get all the machines that last seen after 2018-10-20** ``` @@ -83,8 +125,8 @@ Content-type: application/json "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#Machines", "value": [ { - "id": "83123465ffceca4a731234e5dcde3357e026e873", - "computerDnsName": "k0107-vm10", + "id": "83113465ffceca4a731234e5dcde3357e026e873", + "computerDnsName": "examples-vm10", "firstSeen": "2018-11-12T16:07:50.1706168Z", "lastSeen": "2018-11-12T16:07:50.1706168Z", "osPlatform": "WindowsServer2019", @@ -108,7 +150,7 @@ Content-type: application/json } ``` -### Example 3 +### Example 4 **Get all the Anti-Virus scans that the user Analyst@examples.onmicrosoft.com created using WDATP** @@ -125,7 +167,7 @@ Content-type: application/json "@odata.context": "https://api.securitycenter.windows.com/api/$metadata#MachineActions", "value": [ { - "id": "5c3e3322-d993-1234-986b-dfb136ebc8c5", + "id": "5c3e3322-d993-1234-1111-dfb136ebc8c5", "type": "RunAntiVirusScan", "requestor": "Analyst@examples.onmicrosoft.com", "requestorComment": "1533", From 4de5a6c4afde5df0bc0e728d697943f699e6f764 Mon Sep 17 00:00:00 2001 From: Ben Alfasi Date: Mon, 12 Nov 2018 19:29:52 +0200 Subject: [PATCH 199/201] s --- windows/security/threat-protection/TOC.md | 6 ------ .../security/threat-protection/windows-defender-atp/TOC.md | 5 ----- 2 files changed, 11 deletions(-) diff --git a/windows/security/threat-protection/TOC.md b/windows/security/threat-protection/TOC.md index 1a627ddd6d..52a4a8c499 100644 --- a/windows/security/threat-protection/TOC.md +++ b/windows/security/threat-protection/TOC.md @@ -292,12 +292,6 @@ ######## [Get user related machines](windows-defender-atp/get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -####### Windows updates (KB) info -######## [Get KbInfo collection](windows-defender-atp/get-kbinfo-collection-windows-defender-advanced-threat-protection.md) -####### Common Vulnerabilities and Exposures (CVE) to KB map -######## [Get CVE-KB map](windows-defender-atp/get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) - - ###### How to use APIs - Samples ####### Advanced Hunting API ######## [Schedule advanced Hunting using Microsoft Flow](windows-defender-atp/run-advanced-query-sample-ms-flow.md) diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index f1eaae8d85..08e1ecbe5a 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -293,11 +293,6 @@ ####### [Get user related alerts](get-user-related-alerts-windows-defender-advanced-threat-protection-new.md) ####### [Get user related machines](get-user-related-machines-windows-defender-advanced-threat-protection-new.md) -###### Windows updates (KB) info -####### [Get KbInfo collection](get-kbinfo-collection-windows-defender-advanced-threat-protection.md) -###### Common Vulnerabilities and Exposures (CVE) to KB map -####### [Get CVE-KB map](get-cvekbmap-collection-windows-defender-advanced-threat-protection.md) - ##### How to use APIs - Samples ###### Advanced Hunting API ####### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-sample-ms-flow.md) From b01a6eb6ad0a9257fd66d80a43bf0bf0db1359fb Mon Sep 17 00:00:00 2001 From: John Rajunas Date: Mon, 12 Nov 2018 12:38:41 -0500 Subject: [PATCH 200/201] Spelling correction Add Missing letter, changing "indows Defender ATP uses . . ." to "Windows Defender ATP uses . . ." --- .../windows-defender-advanced-threat-protection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md index 6d9b834f75..743cb4b2da 100644 --- a/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/windows-defender-advanced-threat-protection.md @@ -22,7 +22,7 @@ ms.date: 11/07/2018 Windows Defender Advanced Threat Protection is a platform designed to help enterprise networks prevent, detect, investigate, and respond to advanced threats. -indows Defender ATP uses the following combination of technology built into Windows 10 and Microsoft's robust cloud service: +Windows Defender ATP uses the following combination of technology built into Windows 10 and Microsoft's robust cloud service: - **Endpoint behavioral sensors**: Embedded in Windows 10, these sensors collect and process behavioral signals from the operating system and sends this sensor data to your private, isolated, cloud instance of Windows Defender ATP. From 638303a66097731565ec8b600f656ac037673e12 Mon Sep 17 00:00:00 2001 From: "Andrea Bichsel (Aquent LLC)" Date: Mon, 12 Nov 2018 18:20:07 +0000 Subject: [PATCH 201/201] Update broken links. --- ...r-virtualization-based-protection-of-code-integrity.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md b/windows/security/threat-protection/windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md index 1eb3ac9b72..640fe4cc29 100644 --- a/windows/security/threat-protection/windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md +++ b/windows/security/threat-protection/windows-defender-exploit-guard/requirements-and-deployment-planning-guidelines-for-virtualization-based-protection-of-code-integrity.md @@ -33,9 +33,9 @@ The following tables provide more information about the hardware, firmware, and |--------------------------------|----------------------------------------------------|-------------------| | Hardware: **64-bit CPU** | A 64-bit computer is required for the Windows hypervisor to provide VBS. | | | Hardware: **CPU virtualization extensions**,
      plus **extended page tables** | These hardware features are required for VBS:
      One of the following virtualization extensions:
      • VT-x (Intel) or
      • AMD-V
      And:
      • Extended page tables, also called Second Level Address Translation (SLAT). | VBS provides isolation of the secure kernel from the normal operating system. Vulnerabilities and zero-days in the normal operating system cannot be exploited because of this isolation. | -| Firmware: **UEFI firmware version 2.3.1.c or higher with UEFI Secure Boot** | See the following Windows Hardware Compatibility Program requirement: [System.Fundamentals.Firmware.UEFISecureBoot](https://docs.microsoft.com/windows-hardware/design/compatibility/systems#systemfundamentalsfirmwareuefisecureboot) | UEFI Secure Boot helps ensure that the device boots only authorized code. This can prevent boot kits and root kits from installing and persisting across reboots. | -| Firmware: **Secure firmware update process** | UEFI firmware must support secure firmware update found under the following Windows Hardware Compatibility Program requirement: [System.Fundamentals.Firmware.UEFISecureBoot](https://docs.microsoft.com/windows-hardware/design/compatibility/systems#systemfundamentalsfirmwareuefisecureboot) | UEFI firmware just like software can have security vulnerabilities that, when found, need to be patched through firmware updates. Patching helps prevent root kits from getting installed. | -| Software: **HVCI compatible drivers** | See the Windows Hardware Compatibility Program requirements under [Filter.Driver.DeviceGuard.DriverCompatibility](https://docs.microsoft.com/windows-hardware/design/compatibility/filter#filterdriverdeviceguarddrivercompatibility).| [HVCI Compatible](https://blogs.msdn.microsoft.com/windows_hardware_certification/2015/05/22/driver-compatibility-with-device-guard-in-windows-10/) drivers help ensure that VBS can maintain appropriate memory permissions. This increases resistance to bypassing vulnerable kernel drivers and helps ensure that malware cannot run in kernel. Only code verified through code integrity can run in kernel mode. | +| Firmware: **UEFI firmware version 2.3.1.c or higher with UEFI Secure Boot** | See the System.Fundamentals.Firmware.UEFISecureBoot requirement in the [Windows Hardware Compatibility Specifications for Windows 10, version 1809 and Windows Server 2019 - Systems download](https://go.microsoft.com/fwlink/?linkid=2027110). You can find previous versions of the Windows Hardware Compatibility Program Specifications and Policies [here](https://docs.microsoft.com/en-us/windows-hardware/design/compatibility/whcp-specifications-policies). | UEFI Secure Boot helps ensure that the device boots only authorized code. This can prevent boot kits and root kits from installing and persisting across reboots. | +| Firmware: **Secure firmware update process** | UEFI firmware must support secure firmware update found under the System.Fundamentals.Firmware.UEFISecureBoot requirement in the [Windows Hardware Compatibility Specifications for Windows 10, version 1809 and Windows Server 2019 - Systems download](https://go.microsoft.com/fwlink/?linkid=2027110). You can find previous versions of the Windows Hardware Compatibility Program Specifications and Policies [here](https://docs.microsoft.com/en-us/windows-hardware/design/compatibility/whcp-specifications-policies). | UEFI firmware just like software can have security vulnerabilities that, when found, need to be patched through firmware updates. Patching helps prevent root kits from getting installed. | +| Software: **HVCI compatible drivers** | See the Filter.Driver.DeviceGuard.DriverCompatibility requirement in the [Windows Hardware Compatibility Specifications for Windows 10, version 1809 and Windows Server 2019 - Filter driver download](https://go.microsoft.com/fwlink/?linkid=2027110). You can find previous versions of the Windows Hardware Compatibility Program Specifications and Policies [here](https://docs.microsoft.com/en-us/windows-hardware/design/compatibility/whcp-specifications-policies). | [HVCI Compatible](https://blogs.msdn.microsoft.com/windows_hardware_certification/2015/05/22/driver-compatibility-with-device-guard-in-windows-10/) drivers help ensure that VBS can maintain appropriate memory permissions. This increases resistance to bypassing vulnerable kernel drivers and helps ensure that malware cannot run in kernel. Only code verified through code integrity can run in kernel mode. | | Software: Qualified **Windows operating system** | Windows 10 Enterprise, Windows 10 Education, Windows Server 2016, or Windows 10 IoT Enterprise

      Important:
      Windows Server 2016 running as a domain controller does not support Windows Defender Credential Guard. Only virtualization-based protection of code integrity is supported in this configuration.

      | Support for VBS and for management features that simplify configuration of Windows Defender Device Guard. | > **Important**  The following tables list additional qualifications for improved security. You can use Windows Defender Device Guard with hardware, firmware, and software that support baseline protections, even if they do not support protections for improved security. However, we strongly recommend meeting these additional qualifications to significantly strengthen the level of security that Windows Defender Device Guard can provide. @@ -58,7 +58,7 @@ The following tables describe additional hardware and firmware qualifications, a | Protections for Improved Security | Description | Security benefits | |---------------------------------------------|----------------------------------------------------|-----| -| Firmware: **Hardware Rooted Trust Platform Secure Boot** | • Boot Integrity (Platform Secure Boot) must be supported. See the Windows Hardware Compatibility Program requirements under [System.Fundamentals.Firmware.CS.UEFISecureBoot.ConnectedStandby](https://docs.microsoft.com/windows-hardware/design/compatibility/systems#systemfundamentalsfirmwarecsuefisecurebootconnectedstandby)
      • The Hardware Security Test Interface (HSTI) 1.1.a must be implemented. See [Hardware Security Testability Specification](https://docs.microsoft.com/windows-hardware/test/hlk/testref/hardware-security-testability-specification). | • Boot Integrity (Platform Secure Boot) from Power-On provides protections against physically present attackers, and defense-in-depth against malware.
      • HSTI 1.1.a provides additional security assurance for correctly secured silicon and platform. | +| Firmware: **Hardware Rooted Trust Platform Secure Boot** | • Boot Integrity (Platform Secure Boot) must be supported. See the System.Fundamentals.Firmware.CS.UEFISecureBoot.ConnectedStandby requirement in the [Windows Hardware Compatibility Specifications for Windows 10, version 1809 and Windows Server 2019 - Systems download](https://go.microsoft.com/fwlink/?linkid=2027110). You can find previous versions of the Windows Hardware Compatibility Program Specifications and Policies [here](https://docs.microsoft.com/en-us/windows-hardware/design/compatibility/whcp-specifications-policies).
      • The Hardware Security Test Interface (HSTI) 1.1.a must be implemented. See [Hardware Security Testability Specification](https://docs.microsoft.com/windows-hardware/test/hlk/testref/hardware-security-testability-specification). | • Boot Integrity (Platform Secure Boot) from Power-On provides protections against physically present attackers, and defense-in-depth against malware.
      • HSTI 1.1.a provides additional security assurance for correctly secured silicon and platform. | | Firmware: **Firmware Update through Windows Update** | Firmware must support field updates through Windows Update and UEFI encapsulation update. | Helps ensure that firmware updates are fast, secure, and reliable. | | Firmware: **Securing Boot Configuration and Management** | • Required BIOS capabilities: Ability of OEM to add ISV, OEM, or Enterprise Certificate in Secure Boot DB at manufacturing time.
      • Required configurations: Microsoft UEFI CA must be removed from Secure Boot DB. Support for 3rd-party UEFI modules is permitted but should leverage ISV-provided certificates or OEM certificate for the specific UEFI software.| • Enterprises can choose to allow proprietary EFI drivers/applications to run.
      • Removing Microsoft UEFI CA from Secure Boot DB provides full control to enterprises over software that runs before the operating system boots. |

      4xmiF(Yo?o233=gm5 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 21ca382b0b..862d9502a7 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -99,6 +99,68 @@ Before using the APIs, you’ll need to create an app that you’ll use to authe ![Image of multi tenant](images/webapp-edit-multitenant.png) +## Get an access token + +For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-creds) + +### Using dedicated executable + +- Download [AadTokenGetter.zip](exe/AadTokenGetter.zip) application​ +- Unzip the application +- Open 'AadTokenGetter.exe.config' file and fill the 3 required settings: + - tenantId + - appId + - appSecret +- ​Run AadTokenGetter.exe + +The token is displayed in the application window + + +### Using Curl + +> [!NOTE] +> The below procedure supposed Curl is already installed on your computer + +- Open a command window +- ​Set CLIENT_ID to your Azure application ID +- Set CLIENT_SECRET to your Azure application secret +- Set TENANT_ID to the Azure tenant ID of the customer that wants to use your application to access WDATP application +- Run the below command: + +> [!NOTE] +> The below syntax is for curl in Windows. For Linux you should use $CLIENT_ID​ instead of %CLIENT_ID% (same for CLIENT_SECRET and TENANT_ID​) + +``` +curl -i -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=client_credentials" -d "client_id=%CLIENT_ID%" -d "scope=https://securitycenter.onmicrosoft.com/windowsatpservice​/.default" -d "client_secret=%CLIENT_SECRET%" "https://login.microsoftonline.com/%TENANT_ID​%/oauth2/v2.0/token" -k​ +``` + +You will get an answer of the form: + +``` +{"token_type":"Bearer","expires_in":3599,"ext_expires_in":0,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIn aWReH7P0s0tjTBX8wGWqJUdDA"} +``` + +## Validate the token + +- Copy/paste into [JWT](https://jwt.io/) the token you get in the previous step +- Validate you get a 'roles' claim with the desired permission, as shown in the below screenshot + +![Image of token validation](images/webapp-validate-token.png) + +## Application consent + +You need your application to be approved in each tenant where you intend to use it. This is because your application interacts with WDATP application on behalf of your customer. + +You (or your customer if you are writing a 3rd party application) need to click the consent link and approve your application. The consent should be done with a user who has admin privileges in the active directory. + +Consent link is of the form: + +``` +https://login.microsoftonline.com/common/oauth2/authorize?prompt=consent&client_id=00000000-0000-0000-0000-000000000000&response_type=code&sso_reload=true​ +``` + +where 00000000-0000-0000-0000-000000000000​ should be replaced with your Azure application ID + ## Related topics - [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) diff --git a/windows/security/threat-protection/windows-defender-atp/images/webapp-validate-token.png b/windows/security/threat-protection/windows-defender-atp/images/webapp-validate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..c813929e31086ef590792e5c1295939f28229908 GIT binary patch literal 56018 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 Nme-IglQ9eXzW~Nr3 Date: Sun, 29 Jul 2018 09:22:33 +0300 Subject: [PATCH 009/201] Advanced Hunting API fixes: 1. Add beta disclaimer 2. Format permissions 3. Fix link to AAD app creation --- ...-query-windows-defender-advanced-threat-protection.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index f416c36d1a..9171ffb5a6 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -15,6 +15,9 @@ ms.date: 12/08/2017 # Advanced Hunting API +>[!NOTE] +>**Important**: This API is in preview and is subject to change. Use of this API in production applications is not recommended. + **Applies to:** - Windows Defender Advanced Threat Protection (Windows Defender ATP) @@ -23,7 +26,11 @@ ms.date: 12/08/2017 Run advanced query. ## Permissions -Application needs 'Run advanced queries' role (See [How to select a permission](exposed-apis-windows-defender-advanced-threat-protection-new#create-an-app)). +One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Create your app](exposed-apis-windows-defender-advanced-threat-protection-new.md#create-an-app) + +Permission type | Permission | Permission display name +:---|:---|:--- +Application | AdvancedQuery.Read.All | 'Run advanced queries' ## HTTP request ``` From 98604d553831308c53ce30174283067b7b077bc1 Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Sun, 29 Jul 2018 13:33:34 +0300 Subject: [PATCH 010/201] fix to sentence case --- ...nced-query-windows-defender-advanced-threat-protection.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md index 9171ffb5a6..0f5c1e8f21 100644 --- a/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md +++ b/windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection.md @@ -13,10 +13,9 @@ ms.localizationpriority: medium ms.date: 12/08/2017 --- -# Advanced Hunting API +# Advanced hunting API ->[!NOTE] ->**Important**: This API is in preview and is subject to change. Use of this API in production applications is not recommended. +[!include[Prerelease information](prerelease.md)] **Applies to:** From 90a79911be9209f36f93e85940e7c9a7e412053f Mon Sep 17 00:00:00 2001 From: Joey Caparas Date: Sun, 29 Jul 2018 13:49:20 +0300 Subject: [PATCH 011/201] remove link to zip file --- ...osed-apis-windows-defender-advanced-threat-protection-new.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md index 862d9502a7..46c1081bfb 100644 --- a/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md +++ b/windows/security/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection-new.md @@ -105,7 +105,7 @@ For more details on AAD token, refer to [AAD tutorial](https://docs.microsoft.co ### Using dedicated executable -- Download [AadTokenGetter.zip](exe/AadTokenGetter.zip) application​ +- Download AadTokenGetter.zip application​ - Unzip the application - Open 'AadTokenGetter.exe.config' file and fill the 3 required settings: - tenantId From f638557c8d3077807f0dc91b78bc429ce1609a67 Mon Sep 17 00:00:00 2001 From: David Laufer Date: Sun, 29 Jul 2018 14:05:01 +0300 Subject: [PATCH 012/201] Advanced Hunting API: Add page for Flow instructions and page for PowerShell instructions --- .../windows-defender-atp/TOC.md | 3 + .../images/ms-flow-choose-action.png | Bin 0 -> 23892 bytes .../images/ms-flow-define-action.png | Bin 0 -> 27647 bytes .../images/ms-flow-e2e.png | Bin 0 -> 44839 bytes .../images/ms-flow-insert-db.png | Bin 0 -> 44839 bytes .../images/ms-flow-parse-json.png | Bin 0 -> 15736 bytes .../images/ms-flow-read-db.png | Bin 0 -> 66150 bytes ...vanced-threat-protection-sample-ms-flow.md | 84 ++++++++++++++++++ ...ced-threat-protection-sample-powershell.md | 76 ++++++++++++++++ ...ows-defender-advanced-threat-protection.md | 28 +++++- 10 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 windows/security/threat-protection/windows-defender-atp/images/ms-flow-choose-action.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/ms-flow-define-action.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/ms-flow-e2e.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/ms-flow-insert-db.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/ms-flow-parse-json.png create mode 100644 windows/security/threat-protection/windows-defender-atp/images/ms-flow-read-db.png create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md create mode 100644 windows/security/threat-protection/windows-defender-atp/run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md diff --git a/windows/security/threat-protection/windows-defender-atp/TOC.md b/windows/security/threat-protection/windows-defender-atp/TOC.md index 10b1f2f16b..2cbcc1047c 100644 --- a/windows/security/threat-protection/windows-defender-atp/TOC.md +++ b/windows/security/threat-protection/windows-defender-atp/TOC.md @@ -100,6 +100,9 @@ ### [**Beta!** Use Windows Defender ATP APIs](exposed-apis-windows-defender-advanced-threat-protection-new.md) #### [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection-new.md) ##### [Advanced Hunting](run-advanced-query-windows-defender-advanced-threat-protection.md) +#### [Examples how to use APIs] +##### [Schedule advanced Hunting using Microsoft Flow](run-advanced-query-windows-defender-advanced-threat-protection-sample-ms-flow.md) +##### [Advanced Hunting using PowerShell](run-advanced-query-windows-defender-advanced-threat-protection-sample-powershell.md) ### [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-choose-action.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-choose-action.png new file mode 100644 index 0000000000000000000000000000000000000000..867fb4d976e716ca4df29be5e03861eef9a823a4 GIT binary patch literal 23892 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 ND9dZeRmi*y{y$gQ9pnH2 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-e2e.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-e2e.png new file mode 100644 index 0000000000000000000000000000000000000000..6017a74d89b3decbacb49d04eab9ca54502464d0 GIT binary patch literal 44839 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 `c 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-insert-db.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-insert-db.png new file mode 100644 index 0000000000000000000000000000000000000000..6017a74d89b3decbacb49d04eab9ca54502464d0 GIT binary patch literal 44839 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 `c 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-parse-json.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-parse-json.png new file mode 100644 index 0000000000000000000000000000000000000000..b42c9ec193d604d6a0db6efd6829d4e6b3e101ac GIT binary patch literal 15736 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 literal 0 HcmV?d00001 diff --git a/windows/security/threat-protection/windows-defender-atp/images/ms-flow-read-db.png b/windows/security/threat-protection/windows-defender-atp/images/ms-flow-read-db.png new file mode 100644 index 0000000000000000000000000000000000000000..89e20f3a67eb96d6b64eec60050536e04d9eb929 GIT binary patch literal 66150 zcmdSBbzD^4_dhy-gfu81T_PRQ4U!5XIdlk;LwA?bsiY#^45g&B0s?}-&@hyAgLDtS z1M2fUpYMI{_kQl{b^p14%!@g5&e?nIwby#D+=Qz7`Q@mR+Eo|izxNX-Tq)z)n zQxNDX?}^MK4G+W3ORU#sTAs5wc!?1`MS?+2-Du~Dwk+Ajgd|xS85A~j;&leNZ}d4H zoDfH=r}f9W z>rD3hQRp3-w@lbL=JQVx7FT1Q=Dp$t4gJE$mHj(fSGtEK8#5ML7Ulb?u6Eu>jTgE> zXJZXBhh_VqOQ$b^np#@6i;KY<8ygDAa5gqJ8(Z5tg_^YwAN&bT23J!GTQ2`{?jWi~eYVnNJ@- z(!S8zWaXpszt|lrP-gUBqoKqh>kKAZ4fQ_>#iJIt@wOPY*)`Fii=mcC*Zn-jwOH`s zMQ03iqN0%Z-r|!yJc)}Bl`v7cdC7*ogCS)`Eb~-a5&ZAu((aiS(ivA5E5!i~X6|HZ z^#_BBiJFhRnlP10<4~A!T;|TD7Z#OBDm-dDFL%ro(wGkPn@h%3c(Y~T|8v6rhom!8dMiwFeOppd zQ4tXnW8;ry;pjNPkPmU4V-+MlM9DOdB*MVSwWaKu#k;E;XxdqeWad4m8lJ@9PtKL& z2O75dh@2HTJROKjCAvz~_2o5|wF_2&%=PT>(ZD$H)9Y{Z%-A^hDKKt6x!br2oqg8U z)}Dw^CB z6dCgz}Cq}U##JVbFio_6Qt}vvQb}WTj=b9)+q1XQQ`b-a-jP`63ww3v9Gu z8L{TblL|iF;oS_F9CQ0<-F{r|ZpV+|&7DB`gM9W*+br&(PknpMho+hu^M+1E^;ZDB zCiih&keAUkY3_v)2)|BO-_L-kKv#6-WfczLgC8TI!{3$LIwl55t{(ote=?^m%aX#! z+hkC{kUy3cTX8Ataji;%_}J}*6kYu~Qp$3Ebo**+u4>huDCHk>JaEZgA8dlNHep5` zJF_hk(S8q$ydGO3L>M*qsmG*>;3wRPf0pn=Qshm#DvR2{2O*ym2VqG$=zCO$%-fZK zHpado|5kI1q1Af}nCXUfPUwS?Z605@wf5?=lDA7q4!|fA5K-`sM}b8`ga)t8;3`S{ zdPv|hzhTCT^M;TBix&S;e&lo1zqZkkzZTkZ6h6XzwRS#^7F|$D#xh$5vB|Yaz%<); z_X(9H6U!-=z!)bsK#t!d@}jAZY<*wEMe0Cv4}+qR@fsOSzkH4A4y5=ZXc^Y;Dv}@W zB=&I9Au&DCjLF>T6~YjVn|wD>L*%O`mjGLhw}ANLEi@YQ@sL-v6A>Ok*kT;=63-Nk z|Il-CHy_ogI2)Ti&Wl(*rRD9xzOE>~rYiJ0U9(s#jQt>D04Z8cf&r_gRjWO|Q?8q=DR*;++4GY||8sA{y|`q3-@}n2 zOVcRJ6@&fq)2HuneN+svNH4c&J|KUQ`~e6{juVXplGUXKbV*fN&5+%!u$y6IUk~mL z=Ertdh0kUS%Us+w2c%#(h-oBPg+=Y_PnAX3DI0OWPP1C6*1qr7`#&Sy2t(B!<_ppz z^l9foB#s9oy~uwggav&tr93%!H+#68$hurLaU}9dQ=C?*V;$y*`+WJFte0GoirZaf zQ>%l>C$4RhL*(WC`^;cZJEp_YC(OTv`dZYkwQF-?f6tm=-RRpJ(AoS;l+!D^{jq+) zm^fz{F4%%IT(uI_vXZBEp~{?gmuH$w3eyi}5U$4epwY=2QlTpAU%*t+!M1t6Ev-Qh zKLZN;@G1Hk+jnZf05R5nL4URUhQhKxT?{~rbLaGZ3j4gB&;1wQ`#(i?NyjU4)XB6l z_^*Awd2Ch7Z%M1HZaHP6tf6nBOb{yObMhf)S(0IXvgLAe8hbfn0BwN!;s<&>Dvntd z?yYEa0JrXyp@>j7+zugkE0oHsGr|wilIBV3s#ogteQQ;=+(dZNQKL#-nOHth)Mur_nIU zwD7*4y<8zzh7Gzlv{*<%BW)gND8_4M@UTB$V$oUIn_0wxTh;3IT6pt>+}$^5;= zQ{~w;fjDx9uh9sB!wccEVECyxaQBhTs{mFNC zqw}|0D{P0yfqZX;wE@#~gG@JYez2Mo%hCjh2pzVt>v}@;apQ`Z!ucgk{3+!>z*<=i zK~}6rg8L>fFYoJDS<0^qtYV&fi!i*!ogXpt7tvI~xLF5@YNr#R11KZ?3MkJ~|a30lo zD=}*nGS})M?4ZeND@tAGGoNcwj+x;Jy+?JU?$UJW1wpoA##Vj%E1bQaGbI?mSA~oY zPdbPie2|En7#$tm!_mM-nW+SQPvDUG#OdUxah_8OmjlgPPJq|f#?pxTOg1Mh`AdcE zCzHzxMO+Z|t3#c5#AdBj`N~pg)^u{`(fxm- zyDnd{?={SKZoCUGx<~BE^+WLoAtgguSh+^Atk9of9#cG4Y%(hK=#Ax@P=4x{9!Ie2 z-xrqt;7qdE%L}{!4(prqP5-C4EL?UquGG&#YL>r2KjMF{{|mk9TS}QpLRa ziEzkcca-CMndlue4@$M(qG$)Y%?%f+FL*}0Qw8M5>)FVDv3j!L{RmhAi*;6V!s$#| zdOCQ6aV>mdg=9CfrgBU}acV(hLbp~)by31LV?AS;u^WzNlLg)`ip-)a-~M(}k; zZWUL@*%~9KMYVo$V8(P~K&`IEB9;|mn4e%zK%KK;vjSd(iyFOVe0ewDiu6qVZHKbv z31A;2R;h9aI02i4@y90VqVM%MH7OieJGFR4X+gb6 zi?m{Q2dCfX`soz&`|d>JMqZdT)=~i`?{SX%YiMX-EtSjO4D-+X4c(jzU^)*{ym+MF zp6Im*itTufHN@QpaT$6U1PB`~u><}i2S-PwOrD?T%qc{Gb7HRAL1RtUtWlXQL1~m< zbgzq^-|b!_D>@#PsQY$m)VTI4D&qJ%ka^fUodCmg_?X|S zG_@MbdHqJ2bCwWbIdCNIgWeKxut~mu|9mzsDdh)~EKjZh@jL zpd{D$|FuEGZ_?Y!ig^ZA1OOv+iIYc@^8@nKVEje*l2pI5p$yG4m^2=9F|;7v3p#=e z%15K40lmF9)Cdx5NE4TkJKCIxX9L~iCn2UGoqPk2!OBp!9r%{VKc?@j`f8o^bN?u& z^z6RaiqUcXz8yWlFeBFyaK^=APQ^~c&LxLS-Qcw`RJhMB=}An>E7QA(9E1-ES;vC) z&s^SKYx6&?8f2Y02*4U@{UFBpEcNjyKZT$JjgHul{h~A`sY1{7W{|BoqVC!nCSeY> z{ygoUb?z6_RY)-OTuLlrl3r>(YHe+8_C2?2I@GMy@GN=6Km0i)Wn`2yLwQSvK&n?g zIr;g=gNt@s|IN56E}PgS!tw{wUslvbRD)FZ+o|xSEKTY^fRv~Yong<-sN%G z*>c93aRQB^zUoRI>-UlFIG#EFDsg#n+OnJ8lH@ykXSQ)Okn`KgR%Z*MoC;EHgc!2$ z+mAPj-`&IWUGvYl%#Uhm*garuaX{=e?O08?`yaiJq()RkZBSjpImP#)qWn(>$}hGH znmHDz#eU|YBl;`3@Bd!rP%!G_9vMqxW7>X&7T3wMy+9(;oy)EywTV83P|W(9 zy$EyP)v>EhYw-+tI9*Um!8R7`mh7z{*hS%((&|XWD|9?J1hee3G2iSmgJGvy|M!I% ztWt%>>#j(;WiaG~y@gD_GK{Q{qA}F26Z?w}*-L!_DIE0)WM0Gdl?Z&uTkQaRsXOZB zSTHs69j5d0`NYIGI}aP~o52fJ*5L3IT^83G^j}Yg-8{LAoXceH>pNZZlCmX{qYWtr zh0X%J{aW5ugD^0*;Q$|f6_% zgjSGB+wcbRqOugVkkkF8&PTrpJ4Rids&mF7VwNENHETVmWQ_Yk3hNT1^vx4@-ot?H zwkkmFY6<()+}!->)2hI5V(+YY?AA(YDLdbtne3#wy)VDGK!+@aq4ZAy`3M5YdO%DQ z1Z!^xq&nr-^6y|>iiEmHrH2R~8)*ml8e_(&zT)NXP-<4~wy0&tgoLj6(}AA8ia*G&lPJ z>6Ek&n}VJb!dH5Bb+Si51pHC$a;+IsOf?kNS0lVTI>AybpIe!hsEEIsy7XAsR{gTP zwZ80SWzm33&i-%?%)lme_Z=3vuDv&(_y#Q4BtcvcwF5xUO}?)q=Z>wrX_<1z86lFzXKP-nKVXUVeoYsJv(<`R)6d=Od~9SN4}DSvgQDF za)V4%;*=eR4i{v=T~iTOJ2JR0I9*3$Ovfs;e^rKK(PwSI&_8TTmqA@1P52ipzaZao?p_-z7~1Hd z^qj*o>Pmhm-^s=<>33SMLMvUaW&0lbq&V8Jn}xhQG>vGxEV;R_UbEaIjflgMC(-&= z%e~P+QyCPVNOA$``_pNZmNk4l)xBYBizmAaP9ZKc4R6k#QrGFhH6bficv^f`E2?0- z95ksK9}zoJ?`G?18|;7Vsv_2FWZA6DhckQ{DV-59v<4i*PZ}@?DRc2B zwEna>uM=y8h~NTTtyyxA?f#7MON?GzPuPN}7~nf`2{+=nEuYBYSQ*AcPr+yRoDLJL znB2a>H^IOBPOIf?BovpjezT&-u6`{a2(}jC*5%WM4y7-=3x=XN@_as9lyzpK)1{8k zE0j00sD-Z4PpOUb==JH6HWM^9!Pc4_MZz>gHw`{CLWc2?9!XG0_)T#tLvq(izeFku zAKK-*adDfQBMBpcqF-SE%G3dD!D+**Q$?dJt0jFBXVr8m9orCM#2ia&h3#ou3e&F=|{5}8tUTHW$H z$J;@adWKuAjVv~vpLR%M`TsHR%@zRSclp}wk#M1}DDrcQ8)f??^&e3!LosG|5;!$x z<4F7%wdEQsIog8#k_YVZR_uklV~*iwo#&m9ACD3sl4;UgN@qf*4YhN@5I)z3@g}ME z8^mw=1nI%waZ@bn%)WmRQ#T~*+hh^>u&b1-(Mz{M{>Z?opBhExZw((rzWc^F=$OSZ zYhErdf>yS1lhAL#RJw@%dl%Wn!wLtKJ2mLvLQ|XvS(9+*2R+L2Q!nb>%TD-SoEA?=_vYswiW-&a=Qu8v{k6Dk!tu&kV?8HLAPeRDA!jwp<6*FImX4s7c%x ztqL{BkLBODvIi>+s}*Weg0ndw_#gAUnaMd}8Ya?B8XUv2wh6*=hqM~x@)>%(x7TE~ zI`%WJe0pOcViF3|9*`$1(@Q1QW=Qs5k~IEUFD@7NIr#}7*7V+PCw1*Z+eJO3 z^!>L!-bHq#W;r^;9g1AwI#@IN=2eY64gvmwG-B*~(dxzNRQm0*hV6P&SLw(YP3=N>HA^6KVk3qkrxfV93P04gJ^wYbR$#iwwFaa$^ht|LzUFd_q}SnQ#Lo zkZCe!gI4^=lj?7$#6(c z$>7O&p6V8nmcHZ9ACD%WU?WOiV&+&1l;uK2TcIwzEc&zfOm6-6cTm=~E7IysL+PQg zCCCE$b_wo%=mQY!&LL`-ao7T~x*l^BN}lsdpODDin#cer;f4IP*{>V*+i$hy-SVwZ z&_L3GV%I)$X+IJY=xGphbbyO_25LY)&j=PQp5cQz(szm*CYV1*@;aZKMJx-nOmtWq zox|~bSEVb;fov0W?;ARm$B!4(=WnrzX#(CYv?5peUm?W2k9>M+eR_VCOdPkW$228y z1#Zjb$N55k__S~?<45^l}PJ4IXMi8J42Clem5hQX^I5=T?ecu zv+NUoCvk1#b09*fMgsA)S8+-r>fae|EE&1+eFTXez@!x}!4;*YrJ>Y*pTNF|i+E-6 zwKyPjSbt}c?nn!Iil^QL!Z|V1;*?ze*h!^G40?*Q`IiZO*oy_LoLt)n!7$9Nki6E) z8^=1*M|BDgI>p1Eb6ySS}NYaAsJ&5Wh*Pzhh}I=_jw{w@ZB$W z9H2y*@=Dzdc)+W4G5CR@q?K8?tbDbxJP*61ohFv22E#$Ck`)UyEdEz;RBwq?zc6!* zI60HA-e#Iqyv2(-Zwg@qT=DdEZ%GNqNow!4@Dcgk>a15=M~-MW?83-eE@}q3GL+(M zl~Obf@9AlAP;7JG{j-W1P;}sLdKhn9TNh)b6c)g-PeK28e^)&j6^J_KO6`3&*lVZg zL=d+v%*?)acsxgvvZNaJMN%NXc8C+^8Sedxv@W-z3yy&hYW6UB_96?t<^Dp8*im(c z{|PDS)$)se3eU|AZp1EnOVzH{Y{G8o&gDjFL7)Hec?;9|xJ9$$$T!ZOlYTv;bG(8U zmIX#--=!nvS~#cAk4Wm%sY>o#Jh9VFiN=-@M6W;M(0`ZF=#Ar#H|2ikw?AmfYK`l-%XOiI<%K1g677$W>DhmgMoS-=aCXiKCQn;5Lqr<7S_T zI3=x#xNB-^l9G}d4=dH)_(y_uz@D9*TLJ!wtriW3Z zDW zk`j+(;o19podnZP;hZ^iL0+>c3YvHapL!dA%{7klS6o$8fNBXC4A~a+;f3N4<5KHE zH@-Z28RbLjd zVX^?kX+RY?7?nvg6+U=Jgm2~(Dc;R%^)iyW0UeDCL%08C|8G7uqr2p{PMk!n;cotX z(~7v^Zq@mNDw0e%VP#cSRdqG^{P7$vH5*&-_2~GVUw~lw|0Y`ecUAlU?BRSX!vIj` z+>HbI$GiO72m2MAj*gDTxgsvQyA>+n*P-dvxLoXf`gkzFKoLP|J2cG~OkRG|diAsxjfQHNC*$g(&TN85|B(H-3d4ubC zcZG7tBNRKY!d8QCrM5628#c6e%U!G#vfOV zdQ$p~Vl^u-dT}T9Mvl8gU;d9%3Vt-Kkh2d!bS`;$2) z%fX7ecDi$|hlj2WsZmT-S_!TIhi+d|<7#@{7iPS7 zlqjFy`aX^f;6wGNPoLD945~*F>zSCBa%u^mqOt8aCsm9O)NF0>Nfozta?p0s0xQYd z4YEzepVXQQ?A@+?Se?tW9X)JuhM`qe-YxXCES|b)Si8ucwPim~?@9HG1|J?$Bv0nu zsPiVdel0fYbOkfM#B>u*j@Ajwa;I`5h3SqqGU~@gmFsyW*agmt^~?0c6yiRD;-;%$ zIR>B^#5GY7S>RPx8}cn!8o7O=D(gV6z-;Os7xLc$^RI-4A{I>du(nH2Pw(Tqo!Y#; z+Oi;b#K_YS$2y1E#`Ya};eE7l-4^xNE$>Ikidz}>zjt(WFc5JANsR}S1<%qV+`n8H z=5DRE7ZeQ50QFm{V0E!1=}_En_*PeStp@q{4S7))m-5L>d>nV{cskGZ*O@eyI;tD2 zhJl@4)Y1Fq*HQzmQ_1r@m|X1cR!K3Uoq(({#|&4mGwIoyk_+Ik&$}m>g*En0#clUQ z4p4L~S}q4~t(k`6-EoOKd-~9A!Gm0UG=;2LvRVG=)({~yZY6dLzDtOGHs>H<*RWNi zA%@kCoY2?&Y8Y1zFjd!(t{pHaQHLz~>OZg-*cU}2ZWFv&ow>9Nrr2W>4G!<7$*UN* zr1nXqhb8b6vEa`W%>Mos*dFIKclv847wxN`GOp#i(^sb}Y*y_a)fr3&&&{Qkl^rz; z&&{o`VilACLjV3F29r@h!dYo2MZfuvjk#flZ9<0X@FPB$sy=y+koQWOyBn3`wFsl9 zZw*_nKVfVlFFJII=al5QofDE=U`eW6+w3rM)`r}!$Q2+I@K@UO51eyR@bmM>p~85s zK~Td#pJGS)tDXk16#We+e^TX%6HUYFhS^q~EW??tu`bB+w(6==-s$lfzktBV1GD9~ z2M87PQ*u^?0?#r)!W7BO2FGQCSEi_D4x_uK_D5J#rznFJT~NUyHMQIpR!D=n8j3P| zYaYo1F;wkhKT5QS6Hnk_P<1Q;m`m|Tb0aWE_?zGgD%!Ft8}j|9^;n$CKn(~sTy6d# zh1cliu<_Yr#%WHggeMCVNpD1I!dcY!A)F7nv#0#1HU>O?{5wMYN@*6>^czji9gFCk zHpKY}sD>P$nlWwETA36Z8MN|Kec1_HVo)`-mIyuA8~dJ8=8@wL8JIZh&2)J67;NUR zjzU^f@ERU&1>cXmpqjw#m;6ywNECxhN5fJpQdB*Xb9ra}Mps$@yCL zy=lM16Fqj-x8#8pdRx@4;B|qz??5tN?)99L*=2f6MXT*{>ef+K%hqJGlKP^6iRmi$ z(jAdB8;z?j(VW@kpf)f5^hd>)g_2Ge_`~UTa7Xb z>t@B3AAe^vvh?2n&cI-I%gM1IuSS#V1!%IEwl`?e&FEu8yiW!``{s<=7fu+Kd`Mex zXEJjsO;dI|;dpC44yeMF%LJ>FJogK46icS@JQBEl#>V2M;fGC+tFaKwOIU(ivq+KD z7(};ye5N@y5B2e#-0-8tkl8|5`d#&WmgHdv`Gq<+7MEH}Q#041VFPKaThvkvr{@U< z^63H)EZBz8l~+sTebH|zpM7cyhz;~P6Y58sr&Uh^c?8u9M3NIjkU|WobCOXu`}G;Sj%~luGOeq zLg?=3J$EDp=1+o_H+JZWK3txPn*nWn=HWD1&nIqSSY$08a?`ANZNEy`GvxBMO*uc_ zBcpGne2CbQ$VtPlE%^bwFh}8l%V1l6+BHa(3)ti3$MK0Rj+X9k=9nvam=h_7N{{T8 zS?{M3^+9IL8X6S!Sxr9fcV*W%mj*wrA@66jYFeY&Mkm-8s$La7yPpXE2~MK57#hLj zOwpYW5>e)ZM%f2_^4%O~*+n7o>hg3Gz40z@QfPnB;jePUAhO0}#w^5tVPH+_aN7!j zNbZ_VcnFCv;iu{>LJQ}hVw~Z_-!A6&LpM%;V((=T)x9sE!>d|T5Kq}WWRx>xksk_w zZ?relnCo^sn}tGqt8FeC>XNg|FG>K@h_~wnI-Pi=c!)D~{x0nNg9aeUpU3c$LA#G3v;Q$uH79~#w3ZV&fWzb!L1Ezr+IH)oIiwL$%-!SUi11v zPssA)p;C=IEc6*(bEH~X*ah8?!D)jc#VF1Y1)D|1C>!^1#a86IxgymlMv-u$ch3O$ z3$dTJ>M*2y)-Zj0V{klUgj+M4>24#=?91fm>M07R21|-G(wzbnq z3dV)M($CSTOqcPjAYP1V_}_`te+w)+sO(&U=IFNq7y-ba=i95yAfQ=OqcY2f@?%@$q5=&8#@Bi`&{djx&JvaR_P|M>(0bZ@xqym+el|9(F zIPLS0Rh|S2Xz(s=BctS|VT5OHS)rzK6PbE{^Jy0%jq=JZcJPAHd%pII4;yt?uf}$a z6g`%^MxqK&Vqv#|X(6l^N@bwZlj_m9zN!(bPE$ybeP2z&ja16l^+7k{qW`L~LWDw< z318zJo!W7Di=hgO!cd_2ai-=a zS^W^~yPjwv*5(%_T-IYf<++juVKzL-CSi^)WToybk{c2_=e0SJk}vJ+t_E0wQsE8C zMU#)E8X3wR1WNaLgGbJBYGPWaI_f%NSRHrtw0Ki891ne{YgF8`9=8^Ce9xefy(b(I zyJ4Y^PTgUkPoz92E-<-%uh&g-t6>|oroFx~VA>h~v0om&B8xB&dKl>D*LNiPNvjzp zmrz2|HI~#3oZ2$Uv_WV#GT4;uxKkMUlL0n2zuGN_LfMt|#B>1$j<;1sd9wqm%W*Ku zV;T6-r-@?J#WFIr91jr8h4D25iEL$(7x)g!3BY>L;@sO zd`=J-7O-!*z~v**Ef5F>!U*Ud=K$$yYlpd@UniTb%jzDO!7m1=FW(FbH19_DVItFj zKml*0KpGuoNH8FIs!K`@eLZJGb>M;~iRrstzrhjuC;^08LHJ^z*5e?Lb_^ zi+K`z5)cl_uK@fk2s9wh0p7OpU6N+Dx^?t zWyo^y*qUcNXHYv@8cC%BV1;=o0h%PxM50n}KPztGoojvWy z;t87TQI@L|K`xtVJC_p;5(D5O+4pzZ^rPluF)Z&^=mVKv?gTmgY^ez?L(e=Lc_BzS zVQrKR6{yaUyNMb2N?H{)N1-DTq?P>vj+FYToPcoAg&tl^gA zm;M>Qj0Gyv7WbV7bt^ecV(v!j1>1Drt$uEijWk-vrLQ}0n87`oUwPmBmLT9w{1l-> zGSHR+Cb6(XJI_$AXA$i0LFw@V$RtyeF~tVq*mO7B`VZj8FT3oQ&(h>d(L6op7ExB(n37klek2_$NMeZL>gv_;9(O;C^Y z0BjQEg_YHlwb9We;9!iBnHCGQ8%+uXyo$jm*|ZH}2C4NtcXj0he<$_Y{KNn7{%hd- z^^5^>rm`QBK`zDb`PL;s^=F;Oh^ZEXnwv8qs?|QvmkN&9Wk=6SCr7WwMEK1bFS@@r z>U-_T*FYHRcoWXL9fZxd&R4Yt8#VBO9u#~j9F;317`dG|^x(vs>N^&YuFls$g0;53 zRJ=R&2{soA6>g)iR?SM0&0J7<;lDm%Z7&+M4iyVNK z9-XU~*>L%9K;}!$EN4`jnbq`@OpOkP{HSqh zV9j}=;cln=o9k`Z0e9y$sJWX1FfVsa{dFgHBj(9N1ta*QDyx-wxro;eQj-w$&7*B0tcXmaAB2x(iMZv7o&XjX<~3NPVvHuHW~)C z_Mh(rZ?8H+Usc7ZRV!?P8EoELs@(b`f~P!^fOrrP63uxOvR>ja{n6cjC>LOA|0u*U zh)KNqPT}Iyke2!FKc4{ihh*@7(xBCjli`dXOnN>3@ zY&>iT8j%m)^XHFlR^W5G=rW#_nB;N!O?u%NB~36r!e70zu`!ip`40rm^Zd08e89H< zW~vNe`G1p7@Hd?Nz2g5LKl;BpG_TfxW0#g7V4YkBfQiQm02M}Mujv{YDUb34<)Zu6 z-q$q=$n_CTYz%-~vP0D$K76RFd&doSv$j^0yCsJk0F*NJ%=xy@+mngTHh~Vi5)CiJ zg>#awG&2~5RN`j_Vu~OR-ep%^=)eOE(?ttnd681EG23)nPDcgI9zY2=R{uf=c0SUfLCL-X~d@3=sJHVwiD4}G3#eYG-Z(*$(<1FkpFmH_Z(#ytS|`Wyl*;(sN1;M|3sojpy| zbMN{{!sgP_(#Xh2a4_lw&{PbZ$cv1OR4~YklVo6NIp1zD`>X;BhTXT`zgHTtsi`<`jy_=qc!k1Fp~v$|=aj6e*guhnyHOU*;xERCL+<~Lk<+fa#bfrIo0Csy5Wvj8{P@3};&IRVX8;F259buv{QDED zj`dLcw>8b3tM*)E{spQ)r*3xZKL^d+gKG!3a8c(=-ka zj%C}RNtvt`%=a0R6bw|sE%+Ps9fI8ud^6t~ad6%`(X`mhp{aZ1;udp4!>;71b-FmpiCn>cH%i445+YXoWKUKY1J3#wX3ri zO62UucZ0!MhICkKEBn7;B_6&cVmB)cG|4QGdH6#q(AU zAr2wC*$I%CTW^KhdUZtDP&_MyRlkty9C>xP;Hp`$6`CoP0ZAQCbDt?9OsnZhtT%f~ ze;_}L^qMnO-2h`2S3mL*#%xlC^@DxTW1R_)a}QXmH#{vx+b7EQyk+-{V#DW0iCXOQ z?5SjJE0^Kk5s2zU^OSf*eGihUOkz)(E#W_v`fp|W_uYk27bs`UFx@}A1-gd>ym%mJ zpt#kdbkw;#Ha523KhAn6pfd`eeXaIFAZ&;3w!jR;pW3hpGOfBedsl_rm1Ns)5_}q{ zQT%X0TPg%i2RJ5bY-=frx0K`UgF~mE&4EY>sN~o^6|_xzbl!kMre1>{g%XWJDg59O zBWc0?`G@sDuTajgj;rH)vXNH}Kf&PD;4B}UnHi!nEHoJ&X2#mNxKX9%nhxw(oZcGZ zJER{sG0y9L2CI-;D4FKG`$u0~J&zTfFeD^8(nWO=)&B_!0 z8*whv2~G4>19~1W9B7LeL7y@HpO6P&mZZApk3e)F9e#mS@-^bX@qnL0gMD`3)lGOC zJ5&ubFFqS1D$o^FbM3TP0~fpGoncXtB9;|h9HAxMiI^6N^^rY^)1=h{j(V4s9lNfe zoPmpn#?-?yBwD8j$l#)OdU;Jb#J$TAl;|~nuFzFx=hxpdzQ%^^RM8t- zi5_}Fca3#WtIi~uJPO3e!l10x=a!kQc;*g%Mk3S&*7(uBQLwN_RunViL+sm(Mm#bD zQFH9{S{Dpd=f_^@Y>(2-XYb4j)rmZ!j$#54u7O}YhO|viAup^6aNF$4%?(`>N65Af z^J{P!i=%ZrC{2a6eh7xbg?F5)k8QO@zM21u!C};XFY>~M@5sqT=%djXKqGjWK1cmW zc>Z4@5r46NE|z!J<+N1tuy}E~Q{t!5Ceu!fLj%?}>H)13e_W%s4oiN~82E`E$}=z# z1C{)$HpfGb{ucTlD4ydUfziWob==C=P z5``!6A{r-TKGa>&)!7}wR>z~=q}yA0)ir_}hCssuSgk=mNWQPAbdb*94Zp%*Ub+iL zbNWQHlnfa#s7=brq8(+#te+?!7fmTvk%7nEY(F(%H#AJH=#Wwk83ZXT9!N1jba4EQ zeMX@AjQGv0(l{<&s&uBsxtdHqcMHVD4#DICJw48oEA;d# zFX;fRTY%>>(B=4S_ZfN->i^*VzobU~HirOqSQGK<)0wW!rs@`Hmm{daOBKbMYl=|{ z;Or_s6>ogAWN6D*#PJnkwjr=bDWNbLuS(k&hrRy&iA_r-^ziL=wr-X#wL!1~c>B$? zTu}=jzWgu^6-=k#!49r-pQ6#(;DO@=)rVuaf$XOwF?Nc3XU}D>LQ~{I2^R;Cwj9>9 zKL=~s7Yuyf64|Y=Y5WOb0qY@r2HO0#F-L_nEkIAM9R7qK<=R`w;P5t#5#{F8&{S-^ z_?8ak&BhF+bP}vp^_=P8SmpPNa|o}Hl8egG7`CI5$PomSlajSZ(?{#()pd5-l7{|# zQg4>qy0ktigvV8T7gcihylJ+W!%4Qh@mX+cxA-#K!58O@^C{jQX@+QAu{-Ih=ar-1 zMXg0Hj82Gus!Os!e^%INn5i|BJ;F)AO!iKzog)M@kK8_a_ceH%XyO5o?EBmD{;xa- zyf@#rE3;>K^~BPPz?m~E{eX!Zf2E*@`a{1&66b}ESAj{^nc-UrU25tNvHf$CHFLVr zYj`Wx+WxePAz>YM3neX0c~V*Y6$|)4alLjxg?p+gBqRcTzN0U~hnHMx%hzQL^3=?i zjc*8}##sD`5%D^y>+PKiBUFQFA}>az-Pb3Goht+{$6Z3!ToUb}!!?>P8(yC35pb^z z+Yb(n(H9+FRI|u#nnlGvclk!|1a*rjS6sVy0LUKn?gLFH2SF3$MdVQdZPH6MlXi*= z$lr1QYa1p9K(WK_tlw?_pqU~_Ef58r`uMMl7wl6TMqynpm3J){-ft#b$m#4nDX!2o z^8aCk4z6!*wreYDF*2WGYZlCO+|xYmirwR3-I&f{wEse z1I6!$zRPteuDduUoZXkOzM_&e3a^!ewV`^>gLZA2#SQjoz0=jqwj>oOzi3b;HaAlhI&K?REH%67@M(sh zVb&E@QVGdNQ*L`KiV}%eRXP?|vA`dxZTuXeWYFu~%V8oHhz-l^ZokwNVMtz~G)`we zDxe%O#BAcpZh5(r=0XKKT7i2}73W21_it_a$%QpYE-KnhVHtn& z_KR&F+(HVLih^w1uh@e9rw3H+oalfbrV7ULR2B|7X(mKal19mOuM+%*k+5cb=DrneEvM0)s)E>|6S(7zotAsq0ENbZbIo3XZzgQFJTH~@oUHxZnU#7fm8b%qM zxcSsM&r_lL8!XjY>oz#9T8iEu&g6L9-T5*3V(hqPUx=g6-3e<8zi<#|NLA~yBjPi1dax#)fNE2rIl{- zS)0n5-{~G(6Q-=ai!iC_L|5_=$m`W~cbn@-7qCxG z;zAK0NZ>1*3D1@c%haH7%QcPhg+y>7S=Z@iCKb#4?L0`4E~ykjY-ojY!^etew)ZBe z?&IEFa&yu8c9eWS@$j}xX}(kuBn_$(s>w23;TEzB0`v$oz;89wZ}sO~Te<(`#(slz zvuUz(xUX7`7`|5!$Wj4A*$uL|=s8+LVz?kemoD>C`)AVy*(7ujgIhGlo}WwMnTdYoKv z(OcB0QkWxA)}nn`4aJ%s4_3H5^|_NV=#Da{Ya#YBN-#)4f196WtgbFnuYM|I_uI-W z0nDm65=~W+R(ffB35|++IaM5i4K`eS-)f`<{2v2yE{u9(SFG~~iF0~}@g;gA8l@al z=ejs1BN0bZatYG@mdIjr9~UDWoRnQ{N^NG}HU;Y?!12|1+s` z3~bZo8AL(INfvZr{pev^hjqfY_g|P`HlZ&XWQM0EYX+HyF)4!m&>Tm{p4DU!RADqs z6*+PC!v(<34Hwt++MQ{9JU>h0a37piubA6xbG^nz-;@jaH>LnUr1hii5ao|4C z&(>`ysjLut>~eg%Xkb$uI3_6af4FG+m0w>QT+asmD?6vKu5DM5LMeH3_Sos7niJ|BxFjv-9J*oGL^^82O zkk8W3lCO{95XbsdCtXEMncR64hYVEj7RW~)NGME=;K04edl}j%q^F)XaRoGe?%pkT znUdjj4<8=cHG1hdoQq$>VD<;t<@MKtG%LRT#wi~mMzOzuBbt)&wXd&ez>Ym3KjYw| zmAmT8}X)iSc$d4CjRc|Hr2E3lsx4C+&|3~1!zHF(#bQSZv zYreMblUu=WH>T`>S@+t^>|Q=nn_A>sJN|0I(P1yAIfD*gHr$6HowGdZDKScO?8zM2 zZL8hGQvQO{?GXv=uBq1{fm}=S@%s3cJ&od?-%vV}Gvis;t_faS$3->!kC-sJP zxohU@ykWweJmu79Bd%{IsPv!qsY*3#Ea;a7ZWwFneVZ3c&rb5F&zc*_{W%jsQx#X3 z=-=cFcGNV-AtY}wzI8TbB%&vC(JId$W+Nks5?C~8_s^PQUF23hod5P>mQjGHx_G(g zdf!l?auW2s;*V-~FbEm1MNGKg2>h81#HFtL2-Uz-Apd=tY)VPy&8uO5r zO&(?V_)7o?kw&w+6Zl&AKh)M%&}cX~aL+Hghts*Sv4PD}A+Edtf_LBdpE^3K?`ZqA z)&t}_%vt7z*{AWu_NkVvv&rvNram!USQdj~UOc^(5eJ<;BTnK__0B1NN}77gftbpoR<2$mPP! zNe6MJ!yzF~r@$~KCo_~-P;9A^NLe=M2N1?+siy9I%xGS%Xn zU7{rRNYmfdcEW~bXZjwiyU{2!t;-u9O5}T$9uJnMml)k*8c_g^9DrA@gZWsPzZ*Dv7*2k=>OZyR2}5nao$AH7ZY89M^9g zy`MLA9g$T@2}eE_Zg2`zzE4Y=KONB8CGhRA`t-1Gyr}iqGp9-{n+PSwpH@?g$%As6 zrfO+|(D>{_Y5#86aD!B{-Fb#MUaE!n$iL z^?}R2q0yNHi3RG(q>Z8+k;#VjlSXwYeqs9c>XU)f1$~x80EkRwffqd8Q}9|gO1BGm z2eusMCsB~}o%em)@l=y@X^}&8w2CVG3So4jR9zh(?~D@P+r1k(+*=c#WZ8Meiri(% z6Y6)(;>!DO914)$hCrr_!0p#RJZ%K&3&^7nL&xk~;0Is-AMhK9qZ}Iq`-^C{K^#`8 zo^37c&-OnuUEt#%$rb^K+QBsQIv@c8KMi}z$F9B~2osR|I?Hu875iYO*RA}_&U5+ z9M#91*4QUD*c-#>Rnn@cfz}@z8A~;_dqoti30h`yfn$zf(I}+N(j71j*i?~qPft?z08Kn-SNc&tlH$0>WT$; z&IUugr-$DqTFU@zYRgyaaT?@;(BprF@-Tj|baw8;CbquNfPJve2@pMcpCkcr5?0U< zV3Ho}FYiB!ZKU(KO%^YHidOMjNDiP=cxOF`9W}@nHhAX-fdxN1!m&o)W@q2u9J>n` zE*UMs@{=9)IGx-bB8C9Vq__hRcN=T9#B6L+=(L1`y+-luUYyq!NO-}kfJpe!d(!o~ zt18pApsfNWgu-#T0-%$Jr1=+PLxO&O z>8aa9;(!88yc6%Ww!sTCBq7rf<}l5a)?H7PR;U0|GgJv-aEUaJ>|_}&jnXI4llG9$i-1=-M% zK$azAqWG}5p`~729hH?K*UTM`=#&d`B7E19dN09QV)9h4K?E18Y&~==uE+jBuKfA@COj;vg*#34Hwpa9H1hpiB_{`q5pY#%PmpzoRQXY=4y1GXf3zu5|Ak@ts19-Zx);FsEgW_@S?#Ia z5SHVEWfq_2R4%7@C0*m(3O06=8q&w+>)|w4~C1C!#<3k}bT|s58WjPKFj(Fv8MFeI7L-ylx}sX*@3g zp*pmpXI=JF?Q?(Y3~R_%;_25Dk%N7oiH&=G{pXSv1Ah*S1W ziI{m*)tVjRekknfMwkhZZ`VkPbkj|27>oq+L35MeT+r&3oxwP3;I>=`MoQ#nGKEs5 zrohff(KW-RcKHA0-9OzfqLX)VoHT$#odVn$40)WTA zO=^&rme?h6hruBaw@B-C>YyoKPZ5TjB zrKS7{-*G4M4TX<(&zgGAnySgfqEJlKfDpzm<4o)eG_e7?GxCEcKFJD&F>qVY zf!TmWl11@cJOgPByWpG6#V5z(GEk@VX970~J9I?Q9NTATE#=Ldv2HKYl7hN$Uy_{%6bQqCVwGo?WMRXV=?lmhOcY+Byt=KN~*@jvUPIw&4Hy>}0Frffx>Pi!mZa;mp0eU8%-Z4sxHyI%HFIoh=+Q^elp z#}5`i`W!JDh;2NyJo4GhGxeUin)TS=bUo+fs5YzT#5T-pInn1m?}^UoH)`>%N0x)G z$20t=C-lYsUh|F}C(DR_^E5YesWa@}Hbnk0K@0p>ZAw(BeYi