PI Services

Le blog des collaborateurs de PI Services

[Exchange Hybride] Erreur de planification de délégation des équipes dans Outlook

Scénario

Dans un déploiement Exchange hybride, les autorisations de délégation sont définies pour que l'utilisateur puisse créer des réunions Teams. Lorsque nous exécutons Outlook et créons une réunion Teams pour d'autres utilisateurs Exchange onprem, une erreur Microsoft Teams s'affiche avec le message ci-dessous:

La solution est que l'utilisateur doit encore accorder d'autres droits d'accès aux délégués afin que les délégués peuvent envoyer des éléments en votre nom, notamment créer et répondre à des demandes de réunion.

 - Accéder à la boîte aux lettres depuis laquelle les autorisations seront accordées aux délégués puis cliquer sur Paramètres du compte --> Accès délégué

 - Cliquer sur Ajouter puis sélectionner l'utilisateur qui sera le délégué et cliquer sur OK.

- Choisir Auteur (peut lire et créer des éléments) ou Éditeur (peut lire, créer et modifier des éléments) et cliquez sur OK.

- L'utilisateur apparaît dans la liste des délégués, cliquer sur OK.

Vérifier par la suite que le délégué peut créer des réunions Teams dans Outlook. Si l'erreur persiste, fermer Microsoft Teams et Microsoft Outlook. Démarrer d’abord Microsoft Teams et une fois connecté, démarrer Microsoft Outlook ou encore redémarrer la machine.

 

Intune : Règle de conformité - Paramètre personnalisé Domain Joined

Dans Intune, nous pouvons utiliser les règles de conformité afin de détecter les appareils qui ne répondent pas aux exigences de l'entreprise.

Ces règles de conformité ont des paramètres par défaut, mais on peut créer nos paramètres personnalisés.

Dans cet article, nous allons configurer un paramètre personnalisé de conformité afin de détecter les appareils qui sont dans le domaine de l'entreprise (OnPrem et Entra ID).

Le script pour détecter le domaine/tenant de l'entreprise est le suivant :

### DOMAIN JOIN
$subKey = Get-Item "HKLM:/SYSTEM/CurrentControlSet/Control/CloudDomainJoin/TenantInfo" -ErrorAction Ignore
if ($subKey)
{
    $TenantID = $subKey.GetSubKeyNames()
    $TenantIDSubKey = $subkey.OpenSubKey($TenantID);
    $TenantName = $TenantIDSubKey.GetValue("DisplayName");
}

$hash = @{"TenantID" = $TenantID; "TenantName" = $TenantName}

return $hash | ConvertTo-Json -Compress

Ce script sera configuré dans : Intune --> Compliance --> Scripts

Une fois créé, ce script nous servira comme paramètre personnalisé dans notre règle de conformité (personnalisée) dans : Intune --> Compliance --> Policies

[Powershell] - Importer un certificat dans le store user d'un gMSA

J'ai récemment eu besoin d'importer un certificat dans le magasin personnel d'un gMSA pour m'en resservir dans un script plus tard.

Contrairement à un compte standard, il n'est en effet pas logique / "possible" d'ouvrir une session et d'importer le certificat directement depuis la session du gMSA, par conséquent il me fallait une autre solution.

Pour cela j'ai onc utilisé une tache planifié et un script Powershell.

Le code

Ce que je vous invite à faire, c'est de faire vos modifications et signer votre script afin de ne pas avoir à bypass ou modifier les policies.

$params = @{
    FilePath = 'C:\temp\CertForgMSA.pfx'
    CertStoreLocation = 'Cert:\CurrentUser\My'
    Password = ConvertTo-SecureString -AsPlainText "MyUltraS3curePassword" -Force
}
Import-PfxCertificate @params

 

Donc ici dans les paramètres j'ai :

  • FilePath : Représente le chemin de mon script 
  • CertStoreLocation : Représente le store du gMSA
  • Password : Le mot de passe du PFX (essayez d'en utiliser un plus secure :D )

Créer la tâche

J'ai déjà présenté dans l'article ICI comment faire, nous allons donc le faire un Powershell maintenant.

$TaskAction = New-ScheduledTaskAction -Execute C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  -Argument "-File C:\Temp\ImportPfx.ps1"
 
$TaskTrigger = New-ScheduledTaskTrigger -At 00:00 -Once # vous pouvez utiliser d'autre valeurs selon vos besoin Par exemple Daily
 
$TaskPrincipal = New-ScheduledTaskPrincipal -UserID Lab\gMSA01$ -LogonType Password
 
Register-ScheduledTask MygMSATask –Action $TaskAction –Trigger $TaskTrigger –Principal $TaskPrincipal

 

Et voilà, il n'y a plus qu'a attendre que la tâche s'exécute; on peut également vérifier via une commande supplémentaire que le script est bien présent (Get-Item sur le store user avec un export dans un fichier texte par exemple).

[Windows Server] - Utiliser un gMSA pour ses tâches planifiées

Si il y a bien une chose que j'essaie de pousser dans un environnement Active Directory, c'est de supprimer les comptes avec un mot de passe qui n'expire jamais, utilisés pour exécuter des tâches planifiées; pour les remplacer par des gMSA.

Souvent mal appréhendé, je vais ici vous montrer qu'il n'y a quasiment pas de différence dans l'utilisation.

Créer une tâche

Via GUI

Pour créer une tâche en mode graphique, on ne change pas les habitudes.

Dans un premier temps on lance le Task Scheduler

Puis on créé un tâche que l'ion va nommer

On lui définit ses paramètres

Bon jusque la rien de différent de ce que vous avez l'habitude de faire.

Passons donc à la suite, éditez la tâche.

Et à partir d'ici remplaçons notre compte par le gMSA.

Donc on sélectionne "Change User or Group..." et on s'assure de rechercher sur le domaine donc on sélectionne "Location"

On sélectionne "Entire Directory" et on valide

à partir de la on va sélectionner "Object Types..."

Et tout désélectionner  sauf "Service Accounts" puis on valide

Enfin on recherche son gMSA et on valide

Et voilà, comme quoi il n'y a rien de plus simple car, on s'évite même de devoir gérer les identifiants du compte de service.

 

Via Powershell

 

$TaskAction = New-ScheduledTaskAction -Execute C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  -Argument "-File C:\Temp\ImportPfx.ps1"
 
$TaskTrigger = New-ScheduledTaskTrigger -At 00:00 -Once # vous pouvez utiliser d'autre valeurs selon vos besoin Par exemple Daily
 
$TaskPrincipal = New-ScheduledTaskPrincipal -UserID Lab\gMSA01$ -LogonType Password
 
Register-ScheduledTask MygMSATask –Action $TaskAction –Trigger $TaskTrigger –Principal $TaskPrincipal

 

 

Modifier un tâche

Via GUI

Souvent, la première fois qu'on y fait face c'est un peu déroutant, car lors de la modification de la tâche le popup demandant les identifiants arrive.

Pour éviter cela rien de plus simple, ouvrez votre tâche planifié.

Modifiez vos paramètres, par exemple ici nouds allons modifier l'heure d'exécution.

Une fois modifié, nous validons avec "Ok", puis nous retournerons sur le menu "General"

Puis comme nous l'avons fais lors de la  création de la tâche planifiée, donc on sélectionne "Change User or Group..." et on s'assure de rechercher sur le domaine donc on sélectionne "Location"

On sélectionne "Entire Directory" et on valide

à partir de la on va sélectionner "Object Types..."

Et tout désélectionner  sauf "Service Accounts" puis on valide

Enfin on recherche son gMSA et on valide

Et enfin on sélectionne "Ok"

 

Via Powershell

$Task = Get-ScheduledTask -TaskName MygMSATask
$Time = New-ScheduledTaskTrigger -At 21:00 -Once
$TaskPrincipal = New-ScheduledTaskPrincipal -UserID Lab\gMSA01$ -LogonType Password

Set-ScheduledTask -TaskName $Task.TaskName -Trigger $Time -Principal $TaskPrincipal

 

[Microsoft Graph] - Restreindre la portée de l'Application Permission Site.Selected

Dans cet article, nous allons voir comment restreindre la portée de délégation à un site Sharepoint pour une App via la permission Site.Selected.

Délégation des droits pour l'App

Dans Entra, sélectionnez votre App et rendez vous sur "Api Premissions"

 

Puis sélectionnez "Microsoft Graph"

Ensuite "Application permissions" et recherchez "Sites.Selected"

Ensuite validez en faisant "Add Permission" et enfin "Grant admin consent for XXXX"

Maintenant qu'on a donné un accès Sharepoint Online à notre App, nous allons utiliser Powershell pour restreindre ses droits.

 

Connexion

$Connection = Connect-PnPOnline -Url https://xxxxxxx-admin.sharepoint.com -Interactive -ReturnConnection -ForceAuthentication

Restriction

Grant-PnPAzureADAppSitePermission -AppId 52c15f64-938e-4ad3-9454-c02f754b06c2 -DisplayName Demo-AppSharepoint -Site "https://MONADMIN.sharepoint.com/sites/benefits" -Permissions Read -Verbose -Connection $Connection

 

Check

Get-PnPAzureADAppSitePermission -AppIdentity 52c15f64-938e-4ad3-9454-c02f754b06c2 -Site "https://MONADMIN.sharepoint.com/sites/benefits"

 

Installation du kit RSAT

À partir de Windows 10 version 1809, les fonctionnalités à la demande (FOD) et les packs de langues ne peuvent être installés que via Windows Update et non par WSUS. Étant donné que RSAT est une fonctionnalité optionnelle (c'est-à-dire un FOD), ça ne sera plus possible de l'installer sur une machine ayant la stratégie qui empêche le téléchargement depuis les serveurs Windows update.

 

Voici un script PowerShell qui modifie temporairement les paramètres de votre poste de travail pour cesser d'utiliser WSUS, téléchargera et installera RSAT, puis rétablira les paramètres pour revenir à l'utilisation de WSUS par la suite :

 

#Modification de la clé de registre pour installer le module sans passer par WSUS mais directement par les serveurs Windows Update

Add-ToLog -Text "Modification de la clé de registre pour utiliser Windows Update et non WSUS..." -logFile $logFile

Set-ItemProperty "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -Value 0

Set-ItemProperty "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" DisableWindowsUpdateAccess -Value 0
 

#Restart du service Windows Update pour prise en compte

Add-ToLog -Text "Redémarrage du service Windows Update" -logFile $logFile

Get-Service wuauserv | Restart-Service

 

#Installation du module PowerShell RSAT-AD

Add-ToLog -Text "Installation du module PowerShell Active Directory (RSAT)..." -logFile $logFile

Get-WindowsCapability -Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0" -Online | Add-WindowsCapability -Online | Out-Null

Add-WindowsCapability –Online –Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"

#Remise par défaut de la clé de registre pour repasser par le WSUS

Add-ToLog -Text "Remise par défaut de la clé de registre pour à nouveau passer par le WSUS..." -logFile $logFile

Set-ItemProperty "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -Value 1

 

 

[MFA] Désactiver l'authentification multifacteur enregistrée sur les devices

La mémorisation de l'authentification multifacteur (MFA) pour les appareils et les navigateurs permet aux utilisateurs d'avoir la possibilité de mémoriser la MFA pendant un nombre défini de jours après avoir effectué une connexion réussie à l'aide de la MFA. Cela peut améliorer la convivialité en minimisant le nombre de fois qu'un utilisateur peut avoir besoin d'effectuer une vérification en deux étapes sur le même appareil.

Cependant, si un compte ou un appareil est compromis, le fait de mémoriser la MFA pour les appareils de confiance peut affecter la sécurité.  Dans cet article, vous apprendrez comment désactiver la mémorisation de l'authentification multifacteur sur les appareils de confiance.

Pour désactiver l'option permettant de mémoriser l'authentification multifacteur sur un appareil de confiance, procéder comme suit :

 - Se Connecter au centre d'administration Microsoft Entra puis accéder à Identité --> Utilisateurs --> Tous les utilisateurs

- Sélectionner MFA par utilisateur

 -Sélectionner Paramètres du service sous "Authentification multifacteur par utilisateur" en haut de la page.

- Décocher la case Autoriser les utilisateurs à mémoriser l'authentification multifacteur sur les appareils de confiance puis cliquer sur Enregistrer.

 

Ajout d'utilisateurs à BookinPolicy via PowerShell

 

La commande Set-CalendarProcessing permet de modifier les options du traitement du calendrier pour les boîtes aux lettres de ressources, qui incluent l’Assistant Calendrier, l’assistant de réservation de ressources et la configuration du calendriers des BALs de ressources.

Ce script permet d'ajouter les utilisateurs aux autorisations de planification pour les salles de réunion restreintes sans supprimer les utilisateurs existants

 

$users = @()

$users += (Get-CalendarProcessing -Identity $mbx).BookInPolicy

$anotheruser = Get-Mailbox <person you want to add>

$users += $anotheruser

Set-CalendarProcessing -Identity $mbx -BookInPolicy $users

 

 Le paramètre BookInPolicy spécifie les utilisateurs ou les groupes autorisés à envoyer des demandes de réunion dans la stratégie à la boîte aux lettres de ressources qui sont automatiquement approuvées. Vous pouvez utiliser n’importe quelle valeur qui identifie l’utilisateur ou le groupe de manière unique. Par exemple :

  • Nom
  • Alias
  • Nom unique
  • Nom unique
  • Nom unique canonique
  • GUID

 

 

 

[Exchange Hybride] Comment restaurer une BAL d'un utilisateur supprimé dans Microsoft 365 hybride

L’utilisateur disposait auparavant d’un compte utilisateur synchronisé avec une boîte aux lettres Exchange Online. 

Vérifiez que le compte utilisateur à restaurer se trouve bien dans la corbeille Microsoft 365 :

 Se Connecter au centre d'administration Microsoft 365

Cliquer sur Utilisateurs --> Utilisateurs supprimés et Vérifier que l'utilisateur existe dans la liste

Une fois le compte trouvé dans la corbeille O365, il sera restaurer à partir de la corbeille Active Directory sur site.

Restaurer l'utilisateur hybride Microsoft 365 supprimé

Pour restaurer un utilisateur hybride Microsoft 365 supprimé (un compte d'utilisateur qui a été synchronisé depuis AD sur site vers Microsoft 365/Microsoft Entra ID), les étapes ci-dessous sont à suivre:

1. Se connecter sur le contrôleur de domaine puis sur le centre d'administration Active Directory

2. Sélectionner le domaine puis le conteneur "Objets supprimés" et rechercher l'utilisateur à restaurer

3. Faire un clic droit sur l'utilisateur et cliquez sur "Restaurer" pour restaurer l'objet utilisateur dans son conteneur/OU d'origine

4.Vérifier que l'utilisateur est de nouveau dans l'unité d'organisation qui doit être se synchronisée avec Microsoft 365 via Microsoft Entra Connect Sync.

Synchroniser l'utilisateur avec Microsoft 365

Vous pouvez attendre 30 minutes pour que le prochain cycle de synchronisation Microsoft Entra Connect démarre ou forcer la synchronisation en suivant les étapes ci-dessous :

 Se Connecter sur le serveur Microsoft Entra Connect Sync

 Démarrer Windows PowerShell et exécuter la commande ci-dessous pour forcer la synchronisation de Microsoft Entra Connect

Start-ADSyncSyncCycle -PolicyType Delta

 Vérifier le compte utilisateur dans Microsoft 365

Vérifier que l'utilisateur n'apparaît plus dans la corbeille Microsoft 365:

 - Se Connecter au centre d'administration Microsoft 365

- Cliquer sur Utilisateurs --> Utilisateurs supprimés et Vérifier que l'utilisateur n'apparaît plus dans la liste

Vérifier l'accès de connexion de l'utilisateur

Enfin, vérifier que l'utilisateur peut se connecter avec succès à sa messagerie et que toutes ses données sont restaurées.

 

 

 

 

[AD] Comment supprimer un contrôleur de domaine qui n'existe plus ?

Suppression d’un Contrôleur de domaine HS

 

L'ajout ou la suppression incomplète d'un contrôleur de domaine peut entraîner une incohérence dans les données en raison de la présence d'un contrôleur de domaine existant, mais qui n'est pas entièrement fonctionnel. Cela entrave d’autres processus et un nettoyage complet s'impose.

1-      Depuis l'invite de commande

Les étapes suivantes décrivent comment nettoyer les métadonnées avec l'outil NTDSUTIL d'un serveur contrôleur de domaine HS et qui ne répond plus sur le réseau.

 - Ouvrons une « invite de commande » et saisissons :

Ntdsutil

Metadata cleanup

connections

Connect to server <servername> 

<servername> est le nom d'un contrôleur de domaine (Un contrôleur de domaine bien fonctionnel dans le même domaine) à partir duquel nous prévoyons faire le nettoyage des métadonnées du contrôleur de domaine défaillant. 

- Appuyons sur Entrée après avoir tapé le nom du serveur DC. 

- Nous allons devoir par la suite sélectionner le domaine puis le site ou se trouve le serveur HS et enfin le serveur, tapons alors dans l'invite de commande:

Quit

Select operation target

List domains (Ceci répertorie tous les domaines de la forêt avec un numéro associé à chacun)

Select domain 0

List sites

Select site 0 (ici nous n’avons qu’un seul site, si vous en avez plus de sites, sélectionner le numéro de site correspondant)

List servers in site

Select server 2                                                                                         

Quit   (pour revenir au prompt "metadata cleanup" et sortir du menu de sélection )

- Une fois le serveur est sélectionné, exécutons la commande:

Remove selected server

- Cliquons sur Oui lorsque le message demandant la confirmation de suppression et indiquant que le serveur doit être définitivement déconnecté apparaisse.

 2-      Depuis la console graphique

Depuis la console « Sites et services Active Directory », si nous essayons de supprimer directement le serveur nous obtenons une erreur.

En effet il est nécessaire de supprimer la partie « NTDS settings » avant de supprimer le serveur.

Nous constatons que le serveur a perdu ses propriétés NTDS, comme pour un serveur rétrogradé manuellement le nom du serveur apparaît encore. Il faudra donc le supprimer manuellement.

  3 - Post suppression

Il faudra vérifier et supprimer certains enregistrements DNS manuellement :

  • Supprimer le serveur en tant que serveur de nom des zones DNS.
  • Vérifier que les DCs restant répliquent (il est possible de vérifier la réplication par repadmin /showrepl) 
  • Exécuter un « dcdiag » sur les DC restants et « dnslint /ad /s localhost »