05 Sep 2023, 00:00

Incohérence des adresses mails entre AD, OAC et EAC

Dans le cas d’une synchronisation d’un AD local vers Azure Active Directory (AAD), il peut arriver d’avoir une incohérence dans les adresses mail d’un utilisateur entre l’AD local, le Office Admin Center (OAC) et le Exchange Admin Center (EAC).

Par exemple, supposons que

  • nous avons un domaine local de type mondomaine.ville.entreprise.fr . Ce domaine n’est pas routable sur internet. Nous avons en plus un domaine monentreprise.com qui est routable sur internet et est le domaine utilisé pour les adresses mail
  • monentreprise.com a bien été ajouté comme UPN dans le domaine local
  • nous avons également créé entreprise.onmicrosoft.com chez Microsoft 365, et ajouté/validé le domaine monentreprise.com sur M365
  • le serveur local synchronise les utilisateurs vers AAD
  • l’utilisateur possède une license qui octroie une boîte mail

Dans le cas où, en local, dans “Utilisateurs et Ordinateurs AD” (ADUC), le “Nom d’ouverture de session de l’utilisateur” (UPN) est “@mondomaine.ville.entreprise.fr”, alors l’utilisateur apparaîtra comme “@entreprise.onmicrosoft.com” dans l’OAC et dans l’EAC. Les mails envoyés arriveront via la même adresse “onmicrosoft”. L’adresse “@monentreprise.com” apparaît normalement comme un alias, et les mails envoyés à cette adresse sont bien reçus.

Si on modifie le nom d’ouverture de session en “@monentreprise.com”, après synchronisation (et délai de qqs minutes), l’adresse sera modifiée dans l’OAC.
Selon les cas, l’adresse peut également être modifiée dans l’EAC, mais pas systématiquement. Dans le cas où elle reste en “onmicrosoft”, c’est que l’attribut “mail” en local (ADUC) est manquant.
Si on ajoute l’attribut “mail” et lui donnant la valeur “@monentreprise.com”, après synchronisation (et délai), alors elle sera bien mise à jour dans l’EAC, et les mails envoyés auront l’adresse correcte.

30 Jul 2023, 00:00

Live-USB Bookworm

Même procédure que pour buster avec quelques variations :

sudo aptitude install live-build live-tools
mkdir bookworm_live && cd bookworm_live
mkdir auto && cp /usr/share/doc/live-build/examples/auto/* ./auto/

config

Fichier auto/config

#!/bin/sh

set -e

lb config noauto \
	--architectures 'amd64' \
	--archive-areas 'main contrib non-free non-free-firmware' \
	--bootappend-live 'boot=live config locales=fr_FR.UTF-8 keyboard-layouts=fr' \
	--binary-images 'iso-hybrid' \
	--distribution 'bookworm' \
	--linux-flavours 'amd64' \
	--source 'false' \
	--backports 'true' \
	"${@}"

puis
lb config

Liste de paquets

Fichier config/package-lists/live.list.chroot

live-boot
live-config
live-config-systemd
systemd-sysv

#FIRMWARE
firmware-linux firmware-atheros firmware-b43-installer firmware-bnx2x firmware-brcm80211 firmware-iwlwifi firmware-libertas firmware-myricom firmware-netxen firmware-qlogic firmware-realtek broadcom-sta-dkms

#UTILS
nmap rcconf gparted hfsprogs ntfs-3g hfsplus hfsutils dosfstools lightdm bash-completion chntpw dcfldd bootlogd less mesa-utils numlockx ethtool grub2 ssh gdisk testdisk iftop nethogs pm-utils dmraid aptitude apt-file smartmontools debootstrap pciutils usbutils cifs-utils e2fsprogs mtools screen lvm2 net-tools mdadm lsscsi haveged rng-tools cryptsetup efibootmgr efivar ncdu wireless-tools dnsutils git iperf iperf3 lshw pmount grub-efi-ia32-bin grub-pc-bin grub-efi-amd64-bin curl dislocker apfsprogs apfs-dkms ntp ntpdate vlan

# TEAMVIEWER
libqt5webkit5 qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-dialogs

# DESKTOP
hplip system-config-printer xsane simple-scan mate-desktop-environment caja-open-terminal mesa-utils firefox-esr-l10n-fr chromium-l10n pulseaudio pavucontrol pavumeter mate-media-common mate-media mate-settings-daemon-dev mate-settings-daemon-common mate-settings-daemon chromium engrampa unrar pluma bluez blueman pulseaudio-module-bluetooth gddrescue ddrescueview vlc rdesktop conky network-manager-gnome webcamoid cheese webp-pixbuf-loader

#

Noyau, backports et pinning

Voir notes pour Bullseye

09 Jul 2023, 00:00

WordPress, reverse proxy et https

Si on héberge un WordPress derrière un reverse proxy (dans mon cas jwilder-nginx+letsencrypt) qui gère le https et les certificats, WordPress verra le trafic en non-chiffré.
Il faut donc l’informer que le trafic est chiffré de manière externe, et qu’il doit modifier les URLs en https://.
Si je comprends bien, ceci se fait via la détection d’une en-tête définie par le reverse proxy.

Pour ceci, on ajoute dans le wp-config.php (dans le volume) :

//Load Balancer NGINX Proxy
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS']='on';

19 Jun 2023, 00:00

Exchange online et Powershell

https://docs.microsoft.com/fr-fr/powershell/exchange/connect-to-exchange-online-powershell?view=exchange-ps

Installation

Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement

Si les message ModuleNotFound s’affiche, il faut installer ce module. Depuis mars 2020, il faut forcer TLS 1.2 au minimum, pour assurer l’installation correcte des modules et leurs dépendances :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Si un message disant “L’éxécution de scripts est désactivée sur ce système”, il faut l’activer avec :
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
(à voir s’il est nécessaire de lancer PS en admin pour ça ?)

Connect-ExchangeOnline -UserPrincipalName user@domain.com
Si le nom fourni est un admin, il pourra consulter les statistiques des autres boîtes mail.

Si un message du genre
Impossible de charger le fichier ou l'assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou une de ses dépendances. Le fichier spécifié est introuvable.
s’affiche, il faut probablement installer une version + récente du framework DotNet (genre 4.8 ?)

Connection RPS (remote PowerShell) dépréciée :
Connect-ExchangeOnline -UseRPSSession

Limite de taille

La sortie de certaines commandes peut être tronquée (avec ...) si la fenêtre n’est pas assez large pour tout afficher, et ce même si on redirige la sortie vers un fichier. Pour avoir les lignes complètes, on peut utiliser | out-string -Width 999999 .

Lister les dossiers d’une boîte mail par ordre de taille

$mailbox = "user@domain.com"
(guillemets obligatoires)

Pour la taille de chaque dossier uniquement, sans les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderSize,@{ name="FolderSizeBytes"; expression={((($_.FolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderSizeBytes -Descending | Out-String -Width 999999 | ft

Avec les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Select FolderPath,FolderAndSubfolderSize,@{ name="FolderAndSubfolderSizeBytes"; expression={((($_.FolderAndSubfolderSize -replace '^(.*\()(.*)(\sbytes\))$','$2').Replace(',','')) -as [bigint])}}| Sort-Object -Property FolderAndSubfolderSizeBytes -Descending | Out-String -Width 999999 | ft

On peut le piper vers un fichier : > report.txt

Pour la boîte “Archivage en ligne” (in-place archive)

Il suffit de rajouter le paramètre -Archive à la commande Get-EXOMailboxFolderStatistics.

Afficher les infos générales d’une boîte mail

Get-EXOMailboxStatistics $mailbox

Lister les dossiers vides d’une boîte mail

Pour lister les dossiers qui sont vides, y compris les sous-dossiers :
Get-EXOMailboxFolderStatistics $mailbox | Where {$_.ItemsInFolderAndSubfolders -eq 0} | Select Identity | out-string -Width 999999

Uniquement dans un sous-dossier

Get-EXOMailboxFolderStatistics $mailbox | Where {$_.ItemsInFolderAndSubfolders -eq 0 -and $_.FolderPath -Match "/Boîte de réception/Mon sous-dossier" }

| Select FolderPath,FolderID,Identity

31 May 2023, 00:00

Noms des services

Pour faire la correspondance entre les noms réels services Windows et leur nom d’affichage (localisés), on peut utiliser la commande Powershell
Get-Service

On peut également rechercher avec un motif du genre
Get-Service -Name *wua*
pour chercher sur le nom ou
Get-Service -DisplayName *update* pour chercher sur le nom d’affichage. Aucune sensibilité à la casse.

24 May 2023, 00:00

Police fixe pour l'horloge de Mate

Par défaut, la police de l’horloge MATE est une police à espacement variable, ce qui cause un très léger mouvement de l’ensemble des icônes de la zone de notification. Pour la passer en police chasse fixe pour empêcher ceci, créer/éditer le fichier ~/.config/gtk-3.0/gtk.css et y coller ce bloc :

#clock-applet-button {
  font-family: monospace-regular;
}

Puis pkill mate-panel devrait recharger le panneau avec la modification.

Source

13 May 2023, 00:00

Créer ou recréer les fichiers de démarrage BIOS Windows 10

Situation initiale

Pour démarrer, Windows a besoin de certains fichiers de démarrage (et éventuellement secteurs de boot).
Voici comment créer ces fichiers de démarrage s’il sont manquants (par exemple la partition de démarrage a été effacée, ou bien on souhaite passer d’une partition unique à une partition de démarrage séparée).

On a :

  • 1 seule partition NTFS avec une install windows fonctionnelle (C:\Windows, C:\Users etc). Peut être une image. Peut provenir d’un disque MBR ou GPT
  • aucun fichier de démarrage

Note : avec cette méthode, il est possible de contourner la plupart des restrictions imposées à l’installation de Windows, on peut faire un peu ce que l’on veut. Par exemple démarrer en UEFI sur un disque (même NVMe) MBR, avoir une ESP (GPT) en NTFS, démarrer en BIOS sur un disque GPT etc… Je parle ici de la configuration attendue par MS.

Fichiers de démarrage BIOS

Les fichiers de démarrage Windows (10) consistent en :

  • Un dossier BOOT\ contenant :
    • des dossiers de langues type fr-fr
    • Fonts
    • Ressources
    • BCD
    • BCD.LOG (+1|2)
    • BOOTSTAT.DAT
    • bootuwf.dll
    • bootvhd.dll
    • memtest.exe
  • bootmgr
  • BOOTNXT
  • BOOTSECT.BAK

Ces fichiers peuvent être sur le disque C, ou bien sur une partition dédiée (nommée “Réservé au système” si créée automatiquement lors de l’installation de Windows). Cette partition doit posséder le flag boot.

Table de partition

Il faut une table de partition MBR, avec :

  • une partition de 500M (voire 1G) formatée en NTFS, de type “7” (HPFS/NTFS/exFAT) et avec le drapeau boot
  • la partition avec l’install Windows, de type “7” (HPFS/NTFS/exFAT)

(note : il ne me semble pas possible d’avoir une partition système en FAT32, le NTFS est nécessaire. On peut copier les fichiers de démarrage sur une partition FAT32 mais le disque ne bootera pas)
On peut consulter/modifier les types de partitions avec cfdisk.

Par souci de cohérence dans l’ordre des partitions, on peut s’assurer que la partition soit bien numérotée 2 dans la table de partition. Si elle est notée 1, on peut changer son numéro avec la procédure définie ici

Création des fichiers

On démarre ensuite sur une clé USB d’install de Windows 10 (en mode BIOS) -> Dépannage -> Invite de commande
On lance diskpart ; on vérifie les lettres affectées à chacune des partitions (ici C: pour la 500M et E: pour l’install).

list vol

On sort de diskpart, puis
bcdboot E:\Windows /s C: /l fr-fr /f bios

Pour vérifier la présence des fichiers, il faut la commande
dir /a:HS X:

Normalement ça doit démarrer avec la nouvelle partition !

Fichiers de démarrage EFI

Les fichiers de démarrage sont à peu près les même, avec des exécutables .efi. Ils seront dans [ESP]/EFI/Microsoft/Boot/.

Il faut une table de partition GPT, avec :

  • partition type ESP (drapeau esp sur Gparted) de 500M en FAT32
  • la partition avec l’install windows, de type Msft basic data (drapeau msftdata).

(note : il est possible que cela fonctionne même si la table de partition est de type MBR ; en ce cas il faut le flag boot sur la partition FAT32. On préferera toutefois le GPT)

Si la numérotation des partitions est dans le désordre, on peut suivre ces instructions.

Ensuite on démarre sur sur une USB d’install, Réparer le PC, invite de commande, vérifier la lettre de la partition contenant l’install (par exemple C: ), puis
bcdboot C:\Windows
pour mettre les fichiers sur la partition ESP. Ils seront mis aussi bien dans EFI/Microsoft/Boot que /EFI/Boot/bootx64.efi
On peut aussi affecter une lettre à une autre partition et spécifier le flag /s X:.
L’entrée BootOrder dans l’UEFI semble ajoutée lors d’un simple démarrage de Windows si elle est manquante ET si le flag boot/esp est positionné sur la partition ESP.

Si besoin, pour s’assurer de l’installation des éventuels pilotes nécessaires en cas de changement de disque, on peut forcer le démarrage en sans échec :
bcdedit /set {default} safeboot minimal

Lorsque l’on a redémarré en mode sans échec et que tout fonctionne, on peut désactiver ce mode avec
bcdedit /deletevalue {default} safeboot

Comportement à l’install de Windows

Si le partitionnement a été fait avant l’installation de Windows, alors :

  • en UEFI, les fichiers de démarrage seront mis dans la partition flaggée comme ESP
  • en BIOS, les fichiers de démarrage seront mis dans la partition flaggée boot ????

WinRE

Partition de récupération

GPT :
Pour pouvoir accéder à winRE pour dépanner un poste, il lui faut une partition de récupération. Cette partition doit nécessairement être située après la partition système. À la toute fin du disque c’est bien.
On peut créer cette partition via gparted, la formater en NTFS et lui affecter le flag “diag” ((+ hidden ?).

Création du WinRE

Lien MS
Lien forum MS pour diskpart

C’est la commande reagentc qui permet de gérer la récupération.
reagentc /info pour voir l’état du WinRE

S’il est désactivé, on peut l’activer via
reagentc /enable

Si il y a le message “Image WindowsRE introuvable”, c’est que le fichier C:\Windows\System32\Recovery\winre.wim est absent.
On peut le copier à cet emplacement depuis le contenu d’un fichier “install.wim” d’un media d’install (7zip fonctionne pour ouvrir un .wim)

On peut aussi demander à boot en mode winre la prochaine fois (sans interrompre 3 fois le démarrage) via
reagentc /boottore

24 Mar 2023, 00:00

Téléphonie via Teams

Vocabulaire

Auto-attendant = SVI (serveur vocal interactif, navigation à l’aide des touches)
Call queue = file attente (message/musique attente + transfert des appels aux agents)
PSTN = RTC (réseau téléphonique commuté)

Généralités

Pour pouvoir utiliser la téléphonie Teams, chaque utilisateur a besoin de :

  • une licence Teams Phone Standard (Téléphonie Teams) : nécessaire pour se connecter au réseau RTC MS
  • une licence forfait d’appel
  • un numéro de téléphone attribué

Une fois ces 3 conditions validées (et un certain délai éventuel), chaque utilisateur verra apparaître le pavé de numérotation dans Teams, section Appels.
Si le pavé n’apparaît pas, voir cette page.

Gérer les numéros de téléphone

Se fait via le Teams Admin Center (TAC) :

Voice -> Phone numbers

Nombre de numéros de tél disponibles :

Numéro User : (nombre de calling plans*1.1) + 10 + pay-as-you-go-licences
Numéro Service (Voice App) (payant pour les appelants) : 5
Numéro Service (gratuit pour les appelants) : ?

Dépassement du forfait et numéros payants

Pour pouvoir continuer à appeler lorsque les minutes de forfait sont épuisées, et pouvoir appeler des numéros spéciaux (082* etc.), il faut acheter des crédits de communication.
Une fois les crédits achetés, il faut affecter la licence Crédits de communication à chaque utilisateur qui doit pouvoir les utiliser.

Numéro de service

Aussi appelé “Voice App”.
Peut être partagé entre plusieurs utilisateurs.
Il faut un compte de ressources, un numéro affecté à l’usage Service (voice app), une licence (gratuite) Teamps Phone ressource Account (Teams système téléphonique utilisateur virtuel).

Teams Admin Center -> Voice -> Call queues
Ajouter, choisir le compte de ressource créé auparavant.
Une fois créé et les utilisateurs (“agents”) affectés, chacun d’eux pourra appeler en tant que ce numéro de service.

Délégation

Déléguer sa ligne à une ou plusieurs personnes leur permet de recevoir les appels et répondre au nom du délégueur.
Pour ça, c’est fait directement par le client :
Teams -> Paramètres -> General -> Gérer les délégués

Par défaut, le délégué appelle avec son propre numéro, à moins de cliquer sur la petite flèche à côté de Appeler.

Compte de ressources

TAC -> Voices -> Ressource accounts (-> Add)

Choisir “Call queue” pour associer (plus tard) ce compte de ressource à une file d’attente.
L’utilisateur sera alors créé, visible également dans le Office Admin Center.

Si on veut lui assigner un numéro de téléphone, il est nécessaire que cet utilisateur possède une licence (gratuite) de type “Téléphonie Microsoft Teams Standard - Utilisateur virtuel”.
Une fois la licence assignée, et quelques minutes écoulées, on peut lui assigner un numéro (qui doit être de type “Voice app”) via le bouton “Assign/Unassign”. Choisir “Calling Plan” si le plan d’appel est fourni par Microsoft.

Les modifications mettent quelques minutes à se propager.

Files d’attente

TAC -> Voice -> Call queues (-> Add)

Un appel sur une file d’attente sera réparti entre tous les utilisateurs appartenant à cette file d’attente.
Il y’a plusieurs stratégies (tous en même temps, le 1er dispo, le + longtemps inactif etc).

Il est nécessaire, à la création, de l’associer à un compte de ressource.

On peut ensuite affecter des utilisateurs (ou un Canal standard d’une Team - les canaux privés ne fonctionnent pas) à cette file d’attente : ce sont tous les utilisateurs qui seront sollicités lors d’un appel sur ce numéro.

Le “Conference Mode” permet apparemment de recevoir les appels plus rapidement, et ne semble être incompatible qu’avec Skype for Business.

Répondeur partagé (numéro de service)

Via un groupe créé manuellement

Créer un groupe Microsoft 365 (OAC -> Groupes -> Nouveau groupe M365).
Ajouter les personnes qui doivent recevoir le message en tant que membres.

Paramétrer la call queue pour rediriger les appels non-répondus vers un boite vocale partagée (shared voicemail) ; choisir celle du groupe précédemement créé
Les membres du groupe recevront les appels dans outlook, dans la section Groupes

Il faut toutefois ajouter chaque utilisteur manuellement au groupe ; je n’ai pas trouvé comment ajouter un groupe de sécurité à un groupe MS365.

Via une Team

Chaque équipe possède une adresse mail ; il faut la trouver dans Teams, et activer le transfert des mails aux membres de l’équipe ( -> Administrateur -> Teams -> Choisir l’équipe -> Paramètres -> “Envoyer des copies des emails aux membres” ).

Paramétrer la call queue pour rediriger les appels non-répondus vers l’adresse mail de l’équipe.
Ainsi chaque membre recevra un mail (contenant le message vocal en PJ).

Pour les voir dans Teams directement ??

https://dynamicconsulting.com/2020/06/02/shared-voicemail-displaying-in-teams/

Appels en tant que numéro de service

Pour forcer le changement du numéro affiché lors des appels sortants pour un utilisateur, dans le TAC :
Voice -> Caller ID policies

Ajouter une politique, choisir un numéro de service (ou compte de ressource) qui sera utilisé pour les appels sortants.

Ensuite, toujours dans le TAC, Users -> Manage Users, sélectionner tous les utilisateurs à modifier, Policies -> Edit -> Caller ID Policy et choisir la stratégie créée précedemment.

Il semble que l’on peut toujours appeler en tant que délégueur si la stratégie s’applique uniquement au délégué.

Rendre muet la sonnerie d’un appel

Dans le client Teams :
Paramètres -> Notifications -> Apparence et sons -> Désactiver "Faire jouer le son..."

https://answers.microsoft.com/en-us/msteams/forum/all/need-to-be-able-to-mute-incoming-calls-while-on-a/8366dd59-0573-4daa-b6c9-3c669adea0b3?page=2

Appeler en numéro masqué

Dans la stratégie Caller ID, c’est le paramètre “Override Caller ID Policy” (ou “EnableUserOverride” via powershell).
Elle n’override rien directement, elle permet à l’utilisateur final d’overrider (=passer en anonyme uniquement). Aucun effet si la stratégie passe déjà les appels en anonyme.

L’utilisateur final peut ensuite aller dans les paramètres de l’appli Teams -> Appels -> Identifiant de l’appelant.

Quelques minutes nécessaires pour appliquer le changement (~3-5 minutes selon mes tests)

https://learn.microsoft.com/en-us/microsoftteams/how-can-caller-id-be-used-in-your-organization#end-user-control-of-outbound-caller-id

Affectation à une stratégie en fonction d’un groupe de sécurité

TAC -> Voice -> (stratégie à définir) -> Group policy assignment
On peut choisir un groupe de sécurité puis une stratégie définie précédemment, et tous les membres du groupe recevront automatiquement la stratégie.

Enregistrer un appel

https://learn.microsoft.com/en-us/microsoftteams/cloud-recording

Enregistré dans onedrive

Powershell

Nécessite le module MicrosoftTeams

https://learn.microsoft.com/fr-fr/skypeforbusiness/set-up-your-computer-for-windows-powershell/download-and-install-the-skype-for-business-online-connector

Rapports

TAC -> Analytics & Reports -> usage reports

Les rapports PSTN usage indiquent tous les appels émis/reçus par les numéros gérés par Teams.
Le “Display Name” ou “Username” correspondent au numéro géré par Teams qui est concerné, que ce soit un appel entrant ou sortant.
Pour actualiser le rapport, il faut agir dessus, par exemple changer l’ordre de tri, ou générer un autre rapport puis re-générer le rapport souhaité.

Dans le cas d’un appel sortant,

  • le type sera “user-out”
  • si l’utilisateur a paramétré le numéro masqué, on verra quand même son nom dans le rapport, mais le “Caller ID” sera vide
  • si l’utilisateur appelle en tant que numéro de service, on verra quand même son nom, mais le “Caller ID” sera celui du numéro de service

Dans le cas d’un appel entrant,

  • si c’est un numéro de service qui reçoit, le type sera “ucap_in”
  • si c’est directement un numéro utilisateur qui reçoit, le type sera “user_in”
  • si l’appelant a masqué son numéro, le “Caller ID” sera vide

Liens divers

Présentation :
https://docs.microsoft.com/fr-fr/microsoftteams/what-is-phone-system-in-office-365
https://docs.microsoft.com/en-us/microsoftteams/what-is-phone-system-in-office-365 (anglais)

Fonctionnalités :
https://docs.microsoft.com/fr-fr/microsoftteams/here-s-what-you-get-with-phone-system
https://docs.microsoft.com/en-us/microsoftteams/here-s-what-you-get-with-phone-system (anglais)

Gestion des licenses :
https://docs.microsoft.com/fr-fr/microsoftteams/teams-add-on-licensing/virtual-user
https://docs.microsoft.com/en-us/microsoftteams/teams-add-on-licensing/virtual-user (anglais)
6.70€/util/mois

https://docs.microsoft.com/fr-fr/microsoftteams/teams-add-on-licensing/microsoft-teams-add-on-licensing?tabs=small-business
https://docs.microsoft.com/fr-fr/microsoftteams/set-up-calling-plans

Transférer numéros :
https://docs.microsoft.com/fr-fr/microsoftteams/phone-number-calling-plans/transfer-phone-numbers-to-teams
https://docs.microsoft.com/fr-fr/microsoftteams/phone-number-calling-plans/manually-submit-port-order (demande manuelle, car transfert auto non dispo pour la france)

Demande contact
https://info.microsoft.com/ww-landing-Contact-Me-Business-Voice-Contact-Me.html?lcid=en-us

Microsoft 365 business standard : 10.5€/mois/user
Office 365 E3 : 19.7€/mois/user

18 Mar 2023, 00:00

Cloner un système Windows d'un disque SATA vers un disque NVMe

Il est nécessaire que la table de partition soit GPT, car Windows refuse de booter sur un SSD NVMe en mode BIOS (et donc MBR).

Il faut déjà avoir démarré une première fois en mode sans échec sur le disque SATA avec le NVMe connecté sur son emplacement NVMe. Ainsi le système installera les pilotes nécessaires à la bonne détection/initialisation du SSD.
Sinon on risque d’avoir une erreur de type “INACCESSIBLE_BOOT_DEVICE” ou reboot immédiat sur l’UEFI.

On peut ensuite cloner le disque normalement (sgdisk, dcfldd etc.)

Si on a quand même le message “INACCESSIBLE_BOOT_DEVICE”, il faut d’abord démarrer en mode sans échec (par exemple en interrompant 3 fois le boot. Le prochain redémarrage devrait fonctionner.

18 Mar 2023, 00:00

Convertir une table de partition MBR en table GPT

Il faut évidemment backuper tout le nécessaire avant la moindre manipulation.

Sous Linux

Source
sudo gdisk /dev/sdX
r f

Sous Windows

Se fait avec l’utilitaire MBR2GPT.EXE.
Ne fonctionne que pour un disque système !

Cet utilitaire va également créer/rendre bootable une partition ESP, et créer les fichiers de démarrage Windows pour protocole EFI.
Il est disponible à partir de Windows 10 1703. Il est prévu pour être utilisé en WinPE/WinRE, mais peut être utilisé directement sur l’OS en cours de fonctionnement avec le flag /AllowFullOS. un certain nombre de fonctionnalités risquent cependant de ne pas fonctionner. Il est donc préférable de redémarrer en WinRE (Paramètres -> Mises à jour et Sécurité -> Récupération -> Démarrage avancé -> Redémarrer) puis Invite de commande.
(possible depuis USB install ?)

Tout d’abord identifier le numéro du disque à convertir avec diskpart, list disk. Dans notre exemple, c’est le disque 9.
mbr2gpt.exe /validate /disk:9 pour vérifier que c’est faisable (voir les pré-requis sur le lien ci-dessus).
mbr2gpt.exe /convert /disk:9 pour effectivement lancer la conversion (+ création de la partition ESP, formatage en FAT32, ajout des fichiers de démarrage pour le protocole EFI etc…)

Il sera nécessaire de paramétrer le boot en EFI car ceci va de paire (sous Windows) avec une table de partition GPT.