Créer un espace de stockage Azure pour y uploader du contenu depuis vos postes via un script Intune ou autre

Dans 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

  1. Dans le portail Azure, allez dans Storage accounts

2. Cliquez sur Create storage account

  1. Choisissez votre souscription et groupe de ressource
  2. Si aucun groupe de ressource, cliquez sur Create new

5. Saisissez un nom (ici SD_ResourceGroup)

  1. Cliquez sur OK
  2. Saisissez un nom de compte de stockage (ici sdaccountname)
  1. Choisissez location puis performance
  2. Cliquez sur Review + create
  1. Cliquez sur Create
  2. La notification suivante apparaîtra

Espace de stockage

  1. Cliquez sur resource
  2. Cliquez sur File shares

3. Cliquez sur + File share

  1. Saisissez un nom (ici intunelogs)
  2. Cliquez sur Create

6. La notification suivante apparaîtra

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

  1. 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())

2. Installer le module Az en utilisant la commande suivante:

# Install module azure
Install-module -Name Az -AllowClobbe

3. Se connecter à votre tennt en utilisant la cmdlet suivante:

# Connect to Azure
Connect-AZAccount # Then type your creds
  1. Saisissez vos credentials
  2. 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
  1. 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:

  1. Allez dans Azure Active Directory
  2. Allez dans App registrations
  3. Cliquez sur l’application précédemment créée
  1. Vous y trouverez la partie application ID
  2. Allez ensuite sur Certificats & secrets
  3. Vous y trouverez le thumbprint

Maintenant voyons, comment importer un fichier:

  1. Installer le module Az
  2. Importer le certificat
  3. Se connecter à Azure en utilisant le certificat, tel que ci-dessous:
Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal

4. 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 

A propos de l'auteur

Damien VAN ROBAEYS

Ingénieur Systèmes travaillant principalement sur ce qui tourne autour du poste de travail (MDT, SCCM, Intune) et l’automatisation avec PowerShell. MVP Microsoft et auteur pour ENI, il publie régulièrement sur son blog et gère différents groupes Facebook, PowerShell et WPF (~4000 membres), Windows Autopilot (~3000 membres).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *