mirror of
https://github.com/MicrosoftDocs/windows-itpro-docs.git
synced 2025-05-19 08:47:22 +00:00
Fixes
This commit is contained in:
parent
b9cce0b9b7
commit
d8aaa0646b
Binary file not shown.
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 32 KiB |
Binary file not shown.
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 26 KiB |
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
@ -35,68 +35,68 @@ In this section we share Power BI query sample to run a query using application
|
|||||||
|
|
||||||
- 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
|
let
|
||||||
|
|
||||||
TenantId = "00000000-0000-0000-0000-000000000000", // Paste your own tenant ID here
|
TenantId = "00000000-0000-0000-0000-000000000000", // Paste your own tenant ID here
|
||||||
AppId = "11111111-1111-1111-1111-111111111111", // Paste your own app 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
|
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
|
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://securitycenter.onmicrosoft.com/windowsatpservice",
|
||||||
OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""),
|
OAuthUrl = Text.Combine({"https://login.windows.net/", TenantId, "/oauth2/token"}, ""),
|
||||||
|
|
||||||
Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="),
|
Resource = Text.Combine({"resource", Uri.EscapeDataString(ResourceAppIdUrl)}, "="),
|
||||||
ClientId = Text.Combine({"client_id", AppId}, "="),
|
ClientId = Text.Combine({"client_id", AppId}, "="),
|
||||||
ClientSecret = Text.Combine({"client_secret", Uri.EscapeDataString(AppSecret)}, "="),
|
ClientSecret = Text.Combine({"client_secret", Uri.EscapeDataString(AppSecret)}, "="),
|
||||||
GrantType = Text.Combine({"grant_type", "client_credentials"}, "="),
|
GrantType = Text.Combine({"grant_type", "client_credentials"}, "="),
|
||||||
|
|
||||||
Body = Text.Combine({Resource, ClientId, ClientSecret, GrantType}, "&"),
|
Body = Text.Combine({Resource, ClientId, ClientSecret, GrantType}, "&"),
|
||||||
|
|
||||||
AuthResponse= Json.Document(Web.Contents(OAuthUrl, [Content=Text.ToBinary(Body)])),
|
AuthResponse= Json.Document(Web.Contents(OAuthUrl, [Content=Text.ToBinary(Body)])),
|
||||||
AccessToken= AuthResponse[access_token],
|
AccessToken= AuthResponse[access_token],
|
||||||
Bearer = Text.Combine({"Bearer", AccessToken}, " "),
|
Bearer = Text.Combine({"Bearer", AccessToken}, " "),
|
||||||
|
|
||||||
AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query",
|
AdvancedHuntingUrl = "https://api.securitycenter.windows.com/advancedqueries/query",
|
||||||
|
|
||||||
Response = Json.Document(Web.Contents(
|
Response = Json.Document(Web.Contents(
|
||||||
AdvancedHuntingUrl,
|
AdvancedHuntingUrl,
|
||||||
[
|
[
|
||||||
Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer],
|
Headers = [#"Content-Type"="application/json", #"Accept"="application/json", #"Authorization"=Bearer],
|
||||||
Content=Json.FromValue(Query)
|
Content=Json.FromValue(Query)
|
||||||
]
|
]
|
||||||
)),
|
)),
|
||||||
|
|
||||||
TypeMap = #table(
|
TypeMap = #table(
|
||||||
{ "Type", "PowerBiType" },
|
{ "Type", "PowerBiType" },
|
||||||
{
|
{
|
||||||
{ "Double", Double.Type },
|
{ "Double", Double.Type },
|
||||||
{ "Int64", Int64.Type },
|
{ "Int64", Int64.Type },
|
||||||
{ "Int32", Int32.Type },
|
{ "Int32", Int32.Type },
|
||||||
{ "Int16", Int16.Type },
|
{ "Int16", Int16.Type },
|
||||||
{ "UInt64", Number.Type },
|
{ "UInt64", Number.Type },
|
||||||
{ "UInt32", Number.Type },
|
{ "UInt32", Number.Type },
|
||||||
{ "UInt16", Number.Type },
|
{ "UInt16", Number.Type },
|
||||||
{ "Byte", Byte.Type },
|
{ "Byte", Byte.Type },
|
||||||
{ "Single", Single.Type },
|
{ "Single", Single.Type },
|
||||||
{ "Decimal", Decimal.Type },
|
{ "Decimal", Decimal.Type },
|
||||||
{ "TimeSpan", Duration.Type },
|
{ "TimeSpan", Duration.Type },
|
||||||
{ "DateTime", DateTimeZone.Type },
|
{ "DateTime", DateTimeZone.Type },
|
||||||
{ "String", Text.Type },
|
{ "String", Text.Type },
|
||||||
{ "Boolean", Logical.Type },
|
{ "Boolean", Logical.Type },
|
||||||
{ "SByte", Logical.Type },
|
{ "SByte", Logical.Type },
|
||||||
{ "Guid", Text.Type }
|
{ "Guid", Text.Type }
|
||||||
}),
|
}),
|
||||||
|
|
||||||
Schema = Table.FromRecords(Response[Schema]),
|
Schema = Table.FromRecords(Response[Schema]),
|
||||||
TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}),
|
TypedSchema = Table.Join(Table.SelectColumns(Schema, {"Name", "Type"}), {"Type"}, TypeMap , {"Type"}),
|
||||||
Results = Response[Results],
|
Results = Response[Results],
|
||||||
Rows = Table.FromRecords(Results, Schema[Name]),
|
Rows = Table.FromRecords(Results, Schema[Name]),
|
||||||
Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}}))
|
Table = Table.TransformColumnTypes(Rows, Table.ToList(TypedSchema, (c) => {c{0}, c{2}}))
|
||||||
|
|
||||||
in Table
|
in Table
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- Click **Done**
|
- Click **Done**
|
||||||
|
|
||||||
@ -120,6 +120,9 @@ in Table
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
- View the results of your query
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Related topic
|
## Related topic
|
||||||
- [Windows Defender ATP APIs](exposed-apis-intro.md)
|
- [Windows Defender ATP APIs](exposed-apis-intro.md)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user