Sommaire
ToggleDans cet article, nous allons voir comment créer un espace de stockage sur AZure File afin d’y uploader du contenu, par exemple depuis un script Intune.
Contexte
Faire du troubleshooting Intune sur des postes peut être difficile car les données sont accessibles sur la machine et non à distance.
Dans un article précédent, je vous ai expliqué comment collecter les logs Intune et les uploader sur Azure file.
Je vais maintenant expliquer, la 1ère étape, c’est à dire comment mettre en place cet espace de stockage.
Prérequis
- Une sousciption Azure
- Une licence Intune pour nos test
Comment cela fonctionne ?
Nous allons procéder comme ci-dessous :
- Création d’un groupe de ressource
- Création d’un compte de stockage
- Création d’un espace de stockage
- Création d’un certificat
- Création d’une appli enregistrée avec le certificat
- Export du certificat
- Import du certificat sur les machines
Création du contenu Azure
Nous allons voir les parties suivantes :
- Création d’un groupe de ressource
- Création d’un compte de stockage
- Création d’un espace de stockage
Groupe de ressource et compte de stockage
- Dans le portail Azure, allez dans Storage accounts
- Cliquez sur Create storage account
- Choisissez votre souscription et groupe de ressource
- Si aucun groupe de ressource, cliquez sur Create new
- Saisissez un nom (ici SD_ResourceGroup)
- Cliquez sur OK
- Saisissez un nom de compte de stockage (ici sdaccountname)
- Choisissez location puis performance
- Cliquez sur Review + create
- Cliquez sur Create
- La notification suivante apparaîtra
Espace de stockage
- Cliquez sur resource
- Cliquez sur File shares
- Cliquez sur + File share
- Saisissez un nom (ici intunelogs)
- Cliquez sur Create
- La notification suivante apparaîtra
- Cliquez sur votre espace de stockage
Création du certificat et de l’appli Azure
Nous allons voir les parties suivantes:
- Création d’un certificat
- Création d’une appli enregistrée avec le certificat
Nous allons créer un certificat à partir d’une machine puis une application Azure avec ce certificat.
- Ci-dessous le script pour créer le certificat:
# Create the certificate
$Intune_Cert = New-SelfSignedCertificate -CertStoreLocation "cert:\LocalMachine\My" `
-Subject "CN=IntuneLogCert" `
-KeySpec KeyExchange
$keyValue = [System.Convert]::ToBase64String($Intune_Cert.GetRawCertData())
- Installer le module Az en utilisant la commande suivante:
# Install module azure
Install-module -Name Az -AllowClobbe
- Se connecter à votre tennt en utilisant la cmdlet suivante:
# Connect to Azure
Connect-AZAccount # Then type your creds
- Saisissez vos credentials
- Créer l’application Azure en utilisant le code suivant:
# Create the app with the certificate
$AZADSP = New-AzADServicePrincipal -DisplayName IntuneLogCert `
-CertValue $keyValue `
-EndDate $Intune_Cert.NotAfter `
-StartDate $Intune_Cert.NotBefore
New-AzRoleAssignment -RoleDefinitionName Owner -ServicePrincipalName $AZADSP.ApplicationId
Création du certificat sur les autres machines
Nous allons voir les parties suivantes:
- Export du certificat
- Import du certificat sur les machines
- Pour exporter le certificat, nous allons utiliser le code suivant:
# Export the certificate
$Certificate_PFX_Path = "Path of the pfx file\intune_cert.pfx" # Where to export the pfx
$Intune_Cert = Get-ChildItem -Path Cert:\LocalMachine\My\ | Where-Object {$_.Subject -match "IntuneLogCert"}
$PFX_PWD = "intune" | ConvertTo-SecureString -AsPlainText -Force
Export-PfxCertificate -Cert $Intune_Cert -FilePath $Certificate_PFX_Path -Password $PFX_PWD
# Export password to secure file
$Cert_PWD_File = "password secure file path\cert_import.txt"
[Byte[]] $Encrypt_key = (1..16)
$PFX_PWD = "intune" | ConvertTo-SecureString -AsPlainText -Force
$PFX_PWD | ConvertFrom-SecureString -key $Encrypt_key | Out-File $Cert_PWD_File
Pour importer le certificat, nous allons utiliser le code suivant :
# Import the certificate
$Certificate_PFX_Path = "your certificate path\intune_cert.pfx"
[Byte[]] $Encrypt_key = (1..16)
$Cert_PWD_File = "password secure file path\cert_import.txt"
$secureString = Get-Content $Cert_PWD_File | ConvertTo-SecureString -Key $Encrypt_key
Import-PfxCertificate -FilePath $Certificate_PFX_Path -CertStoreLocation Cert:\CurrentUser\My -Password $secureString
Note : Dans mon example de collection depuis intune, j’ai ajouter le certificat (format .pfx) dans un package win32 intunewin
Upload d’un fichier sur l’espace de stockage Azure
Nous allons importer un fichier ZIP.
Nous allons avoir besoin des infos suivantes :
- Tenant id
- Application id
- Thumbprint
Pour cela, il faudra procéder comme ci-dessous:
- Allez dans Azure Active Directory
- Allez dans App registrations
- Cliquez sur l’application précédemment créée
- Vous y trouverez la partie application ID
- Allez ensuite sur Certificats & secrets
- Vous y trouverez le thumbprint
Maintenant voyons, comment importer un fichier :
- Installer le module Az
- Importer le certificat
- Se connecter à Azure en utilisant le certificat, tel que ci-dessous:
Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal
- Uploader le ZIP en utilisant le code suivant:
# Upload the ZIP file to Azure file
$folderPath="/"
$ctx=(Get-AzStorageAccount -ResourceGroupName $Azure_resourceGroupName -Name $Azure_storageAccName).Context
$fileShare=Get-AZStorageShare -Context $ctx -Name $Azure_fileShareName
Set-AzStorageFileContent -Share $fileShare -Source $Logs_Collect_Folder_ZIP -Path $folderPath -Force