Déployer Office 365 ProPlus 2016 – Partie 1 : Installation de l’Agent Intune

Je partage avec vous ce retour d’expérience d’un projet de Migration Office 365. Dans ce projet l’une des phases essentielles était le déploiement de la suite Office 365 ProPlus 2016.

Nous nous sommes appuyés sur des agents Intune pour pousser l’installation d’Office depuis internet. Mais c’est quoi Intune ? 🙂

Microsoft Intune est un outil de gestion de périphériques depuis le Cloud Microsoft. Il permet entre autre de faire des installations d’applications sur des appareils et de gérer leurs configurations. L’Agent intune est un programme qui permet aux appareils de se connecter à la plateforme Microsfot Intune.

Dans notre cas, nous utilisons Intune pour faire l’installation de Microsoft Office 365 ProPlus 2016 sur les postes.

Disposer d’Office 365 en production ou en test est un pré requis pour ce déploiement car Intune est étroitement lié à votre abonnement Office 365.

Etape 1 : Téléchargement de l’agent Intune

Se connecter au portail de gestion de Microsoft Intune et télécharger l’agent.

DownloadIntuneAgent

Utiliser la commande ci-dessous pour extraire les .msi sur un partage réseau ou un répertoire de votre PC, ce format nous sera utile pour un déploiement par GPO. Pour un déploiement par GPO, vaut mieux le copier sur un share accessible par les PCs sur lesquels vous devez intaller l’agent.

Microsoft_Intune_Setup.exe/Extract "\\kingo.local\sysvol\kingo.local\scripts\"

Je choisi de faire l’extraction dans le répertoire Scripts du sysvol d’un de mes contrôleurs de domaine afin que ces fichiers soient répliqués et disponibles sur tous mes DCs.

intuneAgentMsi2

Le fichier MicrosoftIntune.accountcert est le certificat qui lie l’agent intune à votre abonnement Microsoft Office 365. Il doit être présent dans le même répertoire que le fichier .msi d’installation et en aucun cas ne doit être modifié sinon l’installation échoue.

Bien entendu le x64 est destiné au architecture 64 bits et les x86 pour PCs à processeur 32 bits.

Etape 2 : Installer l’agent intune

Installation manuelle

Depuis le répertoire « \\kingo.local\sysvol\kingo.local\scripts\ », double-cliquer sur le fichier « .msi » selon l’architecture du processeur de votre PC.

InstallIntune1

Cliquer sur Next et poursuivre avec l’assistant pour l’installation, hyper intuitif 🙂 croyez-moi.

InstallIntune2

Cliquer sur « Finish » pour terminer l’installation. vous pouvez observer l’icône de l’agent Intune dans la barre des tâches.

AgentIntuneBareDesTaches

Installation à l’aide d’une GPO

Créer et rattacher les GPOs à l’unité d’organisation qui comporte les PCs sur lesquels l’on souhaite déployer les agents intune.

GPOIntune1

Configuration des filtres WMI

J’ai rattaché un filtre wmi à chaque GPO pour cibler les postes selon leur processeur (x86 ou x64).

Le filtre win_32bits (x86)

SELECT AddressWidth FROM Win32_Processor WHERE AddressWidth =’32’

Le filtre win_64bits

SELECT AddressWidth FROM Win32_Processor WHERE AddressWidth =’64’

Ajout du .msi d’intallation de l’agent intune à la GPO

Configurer l’option de déploiement de la GPO avec le package .msi qu’on qui se trouve sur le sysvol de notre contrôleur de domaine.

GPOAssignClientIntune2

Lors du rattachement du package, choisir « Assigner ».

GPOAssignClientIntune3

L’installation débutera après récupération des paramètres de la GPO puis redémarrage du PC.

Paramètres de GPO optionnels

Les paramètres de GPO suivants peuvent être nécessaires pour garantir l’installation de l’agent :

Computer Configuration > Policies > Administrative Templates > Windows Components> Window Installer > Always install with elevated privileges
Computer Configuration > Policies > Administrative Templates > System > Logon > Always wait for the network at computer startup and logon
Computer Configuration > Policies > Administrative Templates > System > Group Policy > Software Installation policy processing (check « Allow processing across a slow network connection »)

GPOParamSuppl

Il est possible de modifier également l’intervalle mise à jour des GPOs à travers le paramètre:

Computer Configuration>Administrative Templates>System>Group Policy>Group Policy refresh interval 

Attention ce paramètre ne doit pas être configuré avec un temps trop réduit sinon il peut causer une surcharge du réseau.

 

Importer une VM Hyper-V dans Microsoft Azure

Dans le précédent article, nous avons vu comment installer Hyper-V sous Windows 10 et créer une VM. Intéressons-nous maintenant à son importation dans Microsoft Azure. Créer un compte de test Microsoft Azure si vous n’en avez pas encore.

Etape 1 : Préparation de la VM Hyper-V pour son importation dans Microsoft Azure

Nous allons syspreper la VM pour que son disque dur puisse nous servir de modèle à la création d’autres machines virtuelles une fois qu’elle est importée dans Azure.

Ouvrons donc une session sur notre VM, puis exécutons l’Outil de préparation sysème qui se trouve dans le répertoire « c:\Windows\System32\Sysprep\ ». N’oubliez pas de cliquer sur Généraliser.

I1

Après quelques minutes la VM s’éteint.

I2

Maintenant que notre VM est éteinte, il faut convertir le disque du format VHDX dynamique au format VHD fixe. Ce dernier format est celui supporté par Azure.

Se rendre dans le répertoire où se trouve le disque de la VM et ouvrir une invite de commande PowerShell, et exécuter la commande ci-dessous :

Convert-VHD .\Win10.vhdx -DestinationPath .\Win10.vhd -VHDType Fixed

I3

Etape 2: Importation de la VM dans Azure

Se connecter au tenant Azure dans lequel on souhaite importer la VM à l’aide de la commande Azure PowerShell suivante.

Login-AzureRmAccount

A l’invite d’authentification, entrer le login et mot de passe de votre tenant Azure. Créer un compte de stockage Si vous n’en disposez pas déjà. Utiliser la commande suivante :

New-AzureRmStorageAccount -ResourceGroupName "NomGroupeDeRessource" -Name "NomCompteDeStockage" -Location "west europe" -SkuName "Standard_LRS" -Kind "Storage"

 

Une fois le compte de stockage créé, nous allons commencer par importer dans un premier temps le disque vhd de notre VM.

$rg = "rscgrp0508"
$Destination =https://strgaccnt0508.blob.core.windows.net/images/win10.vhd
$LocalFilePath = "C:\Users\jean-marie.agbo\Documents\LAB\Win10.vhd"
Add-AzureRmVhd -ResourceGroupName $rg -Destination $Destination -LocalFilePath $LocalFilePath

On peut observer la progression de l’importation du disque dur.

I4

Le processus d’importation peut nécessiter du temps, alors il faut être patient.

I5

Dans le portail Azure, on voit que le disque de la VM a été bien uploadé.

I6

L’importation de disque terminée, la création de la machine peut maintenant se faire.

#Network name
$vnetName = "az_demolab_network"
$ippubName = "ippub"
$rg = "rscgrp0508"
$ippubName = "ippub"

#Emplacement
$Location = "westeurope"
$vnetSubnetCfg = "int"

#Récupération du réseau lan auquel nous souhaitons le rattacher.
$virtualnetwork = Get-AzureRmVirtualNetwork -Name "az_demolab_network" -ResourceGroupName $rg
$subnetId = (Get-AzureRmVirtualNetworkSubnetConfig -Name $vnetSubnetCfg -VirtualNetwork $virtualnetwork).Id

#Mot de passe de l'administrateur local de votre VM
$credential = Get-Credential

#Création de la machine virtuelle dans Azure
$win10pubIp = New-AzureRmPublicIpAddress -Name $ippubName -ResourceGroupName $rg -Location $location -AllocationMethod Dynamic # -IdleTimeoutInMinutes 4

$NetworkInterface = "win10Nic"
$win10Nic = New-AzureRmNetworkInterface -Name $NetworkInterface -ResourceGroupName $rg -Location $Location -SubnetId $subnetId -PublicIpAddressId $win10pubIp.id

#Nom de stockage de la VM
$StrAccName = "strgaccnt0508"
$StorageAccountName = Get-AzureRmStorageAccount -AccountName $StrAccName -ResourceGroupName $rg

#Créer la configuration de la VM
$VMName = "Win10"
$VMSize = "Standard_A1"
$vmConfig = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize

$vm = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName $VMName -Credential $credential -ProvisionVMAgent -EnableAutoUpdate
$vm = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $win10Nic.Id

#Création du disque système
$osDiskUri = ’{0}vhds/{1}-{2}.vhd’ -f $StorageAccountName.PrimaryEndpoints.Blob.ToString(), $VMName.ToLower(), "OS"
# https://strgaccnt0508.blob.core.windows.net/vhds/win10-OS.vhd

#StorageImageUKri
$SourceImageUri = "https://strgaccnt0508.blob.core.windows.net/images/win10.vhd"
$vm = Set-AzureRmVMOSDisk -VM $vm -Name "win10-SE" -VhdUri $osDiskUri -CreateOption fromImage -SourceImageUri $SourceImageUri -Windows

#Création de la machine virtuelle
New-AzureRmVM -ResourceGroupName $rg -Location $location -VM $vm -Verbose

Dans notre tenant Azure, nous pouvons voir notre VM créée.

I7

Nous avons terminé notre importation.

A très bientôt pour un prochain article. N’hésitez pas à me contacter si vous avez des sujets intéressants sur lesquels on pourrait travailler et faire une publication.

Installer des Machines Virtuelles à l’aide d’Azure PowerShell

Objectif du lab: Déployer des machines virtuelles à l’aide de PowerShell pour Azure. Nous essayerons de mettre en place l’architecture ci-dessus.

Etape 1 : Créer votre compte azure gratuitement

Je vous invite à utiliser ce tuto pour créer votre compte azure.

Etape 2 : Connectez-vous à votre tenant Azure à l’aide d’Azure PowerShell

Si vous n’avez pas encore installé Azure PowerShell, visiter ce lien sinon lancer PowerShell depuis votre poste de travail (je préfère utiliser PowerShell ISE)

ISE01

 

Saisir la commande suivante pour vous connecter

ISE02

Entrer les informations d’authentifications à votre compte

ISE03

Une fois la connexion réussie, les informations de votre tenant s’affichent en dessous

ISE04

Vous voilà maintenant prêt pour la mise en place du lab 🙂 !

Etape 3 : Définition des variables pour le déploiement des serveurs

#################### Définition des variables ################
#Les variables du script
$SubscriptionName = "moncompteazure" #Nom de votre tenant Azure
$StorageAccountName = "strgaccnt0508" #Nom de votre compte de stockage qui contiendra les composants Azure que nous allons déployer
$ResourceGroupName = "rscgrp0508" #Regroupe toutes les ressources/composants de notre lab (VMs, NICs, IPs...)
$Location = "West Europe" #Emplacement géographique de notre tenant Azure
$SkuName = "Standard_LRS"
$vms = @("WAP01azlab0408","WAP02azlab0408","ADFS01azlab0408","ADFS02azlab0408") #Les noms de nos VMs
$VMSize = "Standard_A1" #Taille de la VM
$PublisherName = "MicrosoftWindowsServer"
$Offer = "WindowsServer" #Type de VMs
$Skus = "2016-Datacenter" #Système d'exploitation
$Version = "latest"

$nicIndex = 1
$intNicId = -1

#Network name
$vnetName = "az_demolab_network"

#Subnets Names
$int = "INT"
$lan = "LAN"
$subnets = @("int","lan")

#Subnets Address Prefixes
$vnet_Addr_Prefix = "10.10.0.0/16"
$int_Addr_Prefix = "10.10.1.0/24"
$lan_Addr_Prefix = "10.10.2.0/24"

#Internet IP addresses
$wap_intIpName = @("","")

##WAP Network config
#NIC config
$nic_Lan_WAP01 = "nic_Lan_WAP01"
$nic_Lan_WAP02 = "nic_Lan_WAP02"
$nic_int_WAP01 = "nic_int_WAP01"
$nic_int_WAP02 = "nic_int_WAP02"

#lan 10.10.2.1x
$lan_ip_WAP01 = "10.10.2.11"
$lan_ip_WAP02 = "10.10.2.12"

##FS Network Config
#NICs
$nic_Lan_FS01 = "nic_Lan_FS01"
$nic_Lan_FS02 = "nic_Lan_FS02"

#lan 10.10.2.2x
$lan_ip_FS01 = "10.10.2.21"
$lan_ip_FS02 = "10.10.2.22"

#Network security groups
$networkSecurityGroupName = "az_demolab$(Get-Random)"
$NetworkSecurityRuleConfig_RDP = "az_demolab_NSRCfg_RDP"
$NetworkSecurityRuleConfig_HTTP = "az_demolab_NSRCfg_HTTP"
[int]$DestinationPortRange_RDP = 3389
[int]$DestinationPortRange_HTTP = 80

Etape 4 : Configuration des composants réseaux

############################# Network Config ###########################
#Creating Resource group
New-AzureRmResourceGroup -Name $ResourceGroupName -Location $Location

#Creating Resource storage
New-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -SkuName $SkuName

#Create two virtual subnets INT and LAN
$subnet_int_Addr_Pr = New-AzureRmVirtualNetworkSubnetConfig -Name $int -AddressPrefix $int_Addr_Prefix
$subnet_lan_Addr_Pr = New-AzureRmVirtualNetworkSubnetConfig -Name $lan -AddressPrefix $lan_Addr_Prefix

#Create virtual Networks
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $ResourceGroupName -Name $vnetName -AddressPrefix $vnet_Addr_Prefix -Location $Location -Subnet $subnet_int_Addr_Pr,$subnet_lan_Addr_Pr

#Create virtual public ips for the WAP Servers
$i = 0 
Do { $wap_intIpName[$i] = New-AzureRmPublicIpAddress -ResourceGroupName $ResourceGroupName -Location $Location -AllocationMethod Dynamic -IdleTimeoutInMinutes 4 -Name ("wap0" + ($i+1) + "_intIp")
 $i +=1
}
While ($i -lt 2)

Etape 5 : Création des groupes de sécurité

###################### Network Security Groups config ####################
# Create an inbound network security group rule for port 3389
$SecurityRulesRDP = New-AzureRmNetworkSecurityRuleConfig -Name $NetworkSecurityRuleConfig_RDP -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange $DestinationPortRange_RDP -Access Allow

# Create an inbound network security group rule for port 80
$SecurityRulesHTTP = New-AzureRmNetworkSecurityRuleConfig -Name $NetworkSecurityRuleConfig_HTTP -Protocol Tcp -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange $DestinationPortRange_HTTP -Access Allow

# Create a network security group
$NetworkSecurityGroup = New-AzureRmNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $Location -Name $networkSecurityGroupName -SecurityRules $SecurityRulesRDP,$SecurityRulesHTTP

Etape 6: Création des Machines Virtuelles

#################### Creating NICs and VMs #########################
#Récupération des informations d'authentification du compte admin local des VMs
$cred = Get-Credential

ForEach ($vm in $vms) {
#Création des interfaces réseaux lan pour les WAP et les FS
 $lanNic = New-AzureRmNetworkInterface -Name ($vm + "_lanNic" + $nicIndex) -ResourceGroupName $ResourceGroupName -Location $Location -SubnetId $vnet.Subnets[1].Id -NetworkSecurityGroupId $NetworkSecurityGroup.Id

#Configuration des VMs WAP
 if ($vm -ilike "WAP*"){
 $intNicId += 1

 #Création des interfaces réseaux internet pour les WAP
 $intNic = New-AzureRmNetworkInterface -Name ($vm + "_intNic" + $nicIndex) -ResourceGroupName $ResourceGroupName -Location $Location -PublicIpAddressId $wap_intIpName[$intNicId].Id -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $NetworkSecurityGroup.Id 
 $vmConfig = New-AzureRmVMConfig -VMName $vm -VMSize $VMSize | Set-AzureRmVMOperatingSystem -Windows -ComputerName $vm -Credential $cred | Set-AzureRmVMSourceImage -PublisherName $PublisherName -Offer $Offer -Skus $Skus -Version $Version | Add-AzureRmVMNetworkInterface -Id $intNic.Id -Primary $vmconfig = $vmConfig | Add-AzureRmVMNetworkInterface -Id $lanNic.Id
}

#Configuration des VMs FS
 else {
  $vmConfig = New-AzureRmVMConfig -VMName $vm -VMSize $VMSize | Set-AzureRmVMOperatingSystem -Windows -ComputerName $vm -Credential $cred | Set-AzureRmVMSourceImage -PublisherName $PublisherName -Offer $Offer -Skus $Skus -Version $Version | Add-AzureRmVMNetworkInterface -Id $lanNic.Id
 }
 
 #Création de la Machine Virtuelle
 New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $vmConfig
}

…Ps: vous pouvez exécuter toutes ces étapes en une seule fois en collant les bouts de script les uns à la suite des autres 🙂

Etape 7 : Vérification du bon déploiement des serveurs et de leurs composants

#Le groupe de ressources

02

#Les Machines virtuelles créées

01

#Les composants réseaux

03

ISE05

Nous sommes à la fin de notre déploiement… 🙂

Installer le module PowerShell pour Azure

Hello 🙂 , retrouvez dans ce post comment installer le Module Azure For PowerShell afin de pouvoir gérer vos machines virtuelles Azure à distance à l’aide de cmdlets.

Tout d’abord, il est important de savoir qu’il y a deux types de machines virtuelles dans Azure:

  • Les Machines virtuelles classiques
  • Les Machines virtuelles gérées (Remote Managed VM)

Pour installer les modules de gestions de machines virtuelles, suivre la procédure ci-dessous. Votre ordinateur doit être connecté à l’internet pour que les téléchargements se fassent automatiquement.

Ouvrir une console PowerShell,

Install-Module AzureRM # Pour les Machines virtuelles gérées
Install-Module Azure # Pour les Machines virtuelles classiques

Si vous procédez à l’installation depuis PowerShell ISE, vous observerez la progression comme ci-dessous:

Azure2

L’installation terminée, utiliser la commande ci-dessous pour vérifier la présence du module Azure.

Get-Module -ListAvailable *Azure*

Azure3

Et voilà 🙂 … Vous êtes presque prêt pour gérer vos machines virtuelles.

Dans le prochain post, je vous montrerai comment vous connecter à Azure et Créer un environnement de test.