dimanche 28 mai 2023

Azure AD Connect - Retrait de domaine ProxyAddresses

Dans le contexte où les "mailboxes" d'un Tenant sont hébergés sur un serveur MS Exchange à l'interne (On-Premises) et qu'un domaine à retirer du Tenant est référencé dans les ProxyAddresses, il devient nécessaire de modifier les références au domaine dans les ProxyAddresses.

  • Arrêter la synchronisation (Stop-ADSyncSyncCycle)
  • Démarrer Synchronization Rules Editor
  • Effectuer une copie (clone) de la règle (In-bound) In-From AD - User Common
  • Désactiver l'originale
  • Modifier la "Translation" ProxyAddresses dans la copie par:
RemoveDuplicates(Replace(Trim(ImportedValue("proxyAddresses")),"<domain-to-remove>",<dummy-domain>"))
  • Démarrer la synchronisation (Start-ADSyncSyncCycle)
  • Retirer le domaine du Tenant
  • Arrêter la synchronisation
  • Retourner dans le Synchronisation Rules Editor
  • Effacer la copie
  • Activer la règle originale.
  • Démarrer la synchronisation




jeudi 5 janvier 2023

Endpoint Manager: Evaluation de la conformité des postes de travail

Dans un monde moderne, l'évaluation de la conformité d'un poste ne se limite pas à évaluer la version de Windows et ses rustines (patches). Il est souvent demandé que pour reconnaitre la conformité d'un poste de travail (endpoint) que certains logiciels soient installés.

Dans le contexte d'Endpoint Manager (Intune), il est possible de personnaliser certaines évaluations de la conformité à l'aide un script PowerShell qui récupère des informations sur le poste de travail et les comparent à un fichier JSON d'évaluation .

Dans l'exemple illustré, la présence des installations Darktrace et TrendMicro est évaluée.



L'évaluation pourra donner des résultats sous la forme suivante:


Le lien suivant vous donne accès au script PowerShell et le fichier JSON de cet exemple:


https://github.com/OS4Techno/EndpointManagerCompliance




vendredi 4 novembre 2022

Kusto: Utilisateurs authentifiés dans Azure AD mais que le "Device" ne se retrouve pas dans Intune

// Utilisateurs authentifiés dans Azure AD mais que le "Device" ne se retrouve pas dans Intune
// Michel Caron

SigninLogs
| where ClientAppUsed contains "Browser"
| extend String=tostring(DeviceDetail)
| extend DeviceName=extractjson("$displayName", String)
| where DeviceName != ""
| join kind=leftanti  IntuneDevices on $left.DeviceName == $right.DeviceName
| distinct Location,DeviceName,UserDisplayName,UserPrincipalName
| order by Location,DeviceName 

mardi 15 février 2022

Azure Site Recovery Services

 Simplement un exemple d'utilisation du module Az.RecoveryServices pour gérer l'environnement Azure Site Recovery Services



# Get-Command -Module Az.RecoveryServices
 
$Vault = Get-AzRecoveryServicesVault # ajouter les paramètres pour précisier la "vault"
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
$Fabric = Get-AzRecoveryServicesAsrFabric
$Container = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $Fabric
Get-AzRecoveryServicesAsrReplicationProtectedItem -Protectioncontainer $Container |`
 Format-Table FriendlyName,ProtectionState,ReplicationHealth,@{Label="Message";Expression={$_.ReplicationHealthErrors.ErrorMessage}} 

jeudi 25 novembre 2021

Pour être aviser qu'une "Subscription" est maintenant attachée à un "Tenant"

$SubscriptionMigration = ""
$TargetTenantID = ""
For( $i = 0 ; (Get-AzSubscription -SubscriptionID $SubscriptionMigration -WarningAction SilentlyContinue).TenantID -NE $TargetTenantId ; $i++)
    {Write-Host "$i minute(s)" ; Start-Sleep -seconds 60}

mardi 16 novembre 2021

Démarrage rapide d'une sauvegarde des BDs MS SQL hébergées sur une VM Azure (PowerShell)

$Vault = Get-AzRecoveryServicesVault -Name <Vault Name>
Get-AzRecoveryServicesBackupItem -BackupManagementType AzureWorkLoad -WorkLoadType MSSQL -VaultID $Vault.ID | Backup-AzRecoveryServicesBackupItem -BackupType Full -VaultID $Vault.ID

mardi 10 août 2021

Importation des adresses "Proxy" dans Active Directory

Dans certaines situations, comme lors de la  migration de "Tenant" Office 365, il peut s'avérer nécessaire de devoir récupérer les valeurs contenues dans le champ "EmailAddresses" d'Exchange Online et de les attribuer au champ "ProxyAddresses" d'Active Directory pour éviter qu’Azure AD Connect altère le contenu du champ « EmailAddresses ».


Connect-ExchangeOnline
$EXCHUsers = Get-MailBox
ForEach($_ in $EXCHUsers) 
	{
	 $ProxyAddresses = $_.EmailAddresses ; 
          ForEach($Address in $ProxyAddresses){Set-ADUser $_.SamAccountName.split()[0] -add @{'ProxyAddresses'=$Address}}
	}