Rilevazione avanzata con PowerShell
Si applica a:
Se si desidera provare Microsoft Defender per endpoint, iscriversi a una versione di valutazione gratuita.
Nota
Se si è un cliente del governo degli Stati Uniti, usare gli URI elencati in Microsoft Defender per endpoint per i clienti del governo degli Stati Uniti.
Consiglio
Per ottenere prestazioni migliori, è possibile usare il server più vicino alla posizione geografica:
- us.api.security.microsoft.com
- eu.api.security.microsoft.com
- uk.api.security.microsoft.com
- au.api.security.microsoft.com
- swa.api.security.microsoft.com
- ina.api.security.microsoft.com
Eseguire query avanzate con PowerShell. Per altre informazioni, vedere API ricerca avanzata.
In questa sezione vengono condivisi gli esempi di PowerShell per recuperare un token e usarlo per eseguire una query.
Prima di iniziare
È prima di tutto necessario creare un'app.
Istruzioni di preparazione
Aprire una finestra di PowerShell.
Se i criteri non consentono di eseguire i comandi di PowerShell, è possibile eseguire il comando seguente:
Set-ExecutionPolicy -ExecutionPolicy Bypass
Per altre informazioni, vedere la documentazione di PowerShell.
Ottenere il token
- Eseguire il comando seguente:
$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://api.securitycenter.microsoft.com'
$oAuthUri = "https://login.microsoftonline.com/$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
Dove:
- $tenantId: ID del tenant per conto del quale si vuole eseguire la query, ovvero la query viene eseguita sui dati di questo tenant
- $appId: ID dell'app Microsoft Entra (l'app deve disporre dell'autorizzazione "Esegui query avanzate" per Defender per endpoint)
- $appSecret: Segreto dell'app Microsoft Entra
Esegui query
Eseguire la query seguente:
$token = $aadToken
$query = 'DeviceRegistryEvents | limit 10' # Paste your own query here
$url = "https://api.securitycenter.microsoft.com/api/advancedqueries/run"
$headers = @{
'Content-Type' = 'application/json'
Accept = 'application/json'
Authorization = "Bearer $aadToken"
}
$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
$schema = $response.Schema
- $results contengono i risultati della query
- $schema contiene lo schema dei risultati della query
Query complesse
Se si desidera eseguire query complesse (o query multiriga), salvare la query in un file e, anziché la prima riga nell'esempio precedente, eseguire il comando seguente:
$query = [IO.File]::ReadAllText("C:\myQuery.txt"); # Replace with the path to your file
Usare i risultati delle query
È ora possibile usare i risultati della query.
Per restituire i risultati della query in formato CSV nel file file1.csv, eseguire il comando seguente:
$results | ConvertTo-Csv -NoTypeInformation | Set-Content C:\file1.csv
Per restituire i risultati della query in formato JSON nel file file1.json, eseguire il comando seguente:
$results | ConvertTo-Json | Set-Content file1.json
Articolo correlato
Consiglio
Per saperne di più, Collaborare con la community di Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.