<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.m365docs.ch/index.php?action=history&amp;feed=atom&amp;title=TenantTool%2FReport</id>
	<title>TenantTool/Report - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.m365docs.ch/index.php?action=history&amp;feed=atom&amp;title=TenantTool%2FReport"/>
	<link rel="alternate" type="text/html" href="http://wiki.m365docs.ch/index.php?title=TenantTool/Report&amp;action=history"/>
	<updated>2026-10-13T22:46:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>http://wiki.m365docs.ch/index.php?title=TenantTool/Report&amp;diff=523&amp;oldid=prev</id>
		<title>Tisuiss: Created page with &quot;{{DISPLAYTITLE:{{SUBPAGENAME}}}}   1. Classement initial à partir de Graph (GraphService.cs:2149-2157) Les règles s&#039;appliquent dans cet ordre, et la première qui correspond l&#039;emporte :  Ordre	Condition	Catégorie 1	IsAdmin = l&#039;utilisateur détient au moins un rôle Entra	Admin 2	userType == &quot;Guest&quot;	Guest 3	accountEnabled == false	Shared (provisoire) 4	sinon	Member IsAdmin vient de /roleManagement/directory/roleAssignments (GraphService.cs:2084-2101). Tout principalId...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.m365docs.ch/index.php?title=TenantTool/Report&amp;diff=523&amp;oldid=prev"/>
		<updated>2026-10-13T19:38:13Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{DISPLAYTITLE:{{SUBPAGENAME}}}}   1. Classement initial à partir de Graph (GraphService.cs:2149-2157) Les règles s&amp;#039;appliquent dans cet ordre, et la première qui correspond l&amp;#039;emporte :  Ordre	Condition	Catégorie 1	IsAdmin = l&amp;#039;utilisateur détient au moins un rôle Entra	Admin 2	userType == &amp;quot;Guest&amp;quot;	Guest 3	accountEnabled == false	Shared (provisoire) 4	sinon	Member IsAdmin vient de /roleManagement/directory/roleAssignments (GraphService.cs:2084-2101). Tout principalId...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:{{SUBPAGENAME}}}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Classement initial à partir de Graph (GraphService.cs:2149-2157)&lt;br /&gt;
Les règles s&amp;#039;appliquent dans cet ordre, et la première qui correspond l&amp;#039;emporte :&lt;br /&gt;
&lt;br /&gt;
Ordre	Condition	Catégorie&lt;br /&gt;
1	IsAdmin = l&amp;#039;utilisateur détient au moins un rôle Entra	Admin&lt;br /&gt;
2	userType == &amp;quot;Guest&amp;quot;	Guest&lt;br /&gt;
3	accountEnabled == false	Shared (provisoire)&lt;br /&gt;
4	sinon	Member&lt;br /&gt;
IsAdmin vient de /roleManagement/directory/roleAssignments (GraphService.cs:2084-2101). Tout principalId qui a un rôle compte, pas seulement les Global Admins. Si cet appel échoue (permission RoleManagement.Read.Directory manquante), le code se rabat sur les seuls Global Admins, lus via /directoryRoles (GraphService.cs:2136-2142).&lt;br /&gt;
&lt;br /&gt;
2. Affinage des comptes « Shared » avec Exchange (GraphService.cs:3293-3362)&lt;br /&gt;
Ce sont les comptes désactivés, puisqu&amp;#039;une boîte partagée, de salle ou d&amp;#039;équipement a un compte Entra désactivé.&lt;br /&gt;
&lt;br /&gt;
Étape a : le code croise avec le rapport d&amp;#039;usage des boîtes aux lettres.&lt;br /&gt;
Si l&amp;#039;UPN a une boîte → Resource Account&lt;br /&gt;
Sinon → Disabled, c&amp;#039;est-à-dire un vrai compte désactivé sans boîte.&lt;br /&gt;
Étape b : si un token EXO est disponible, le code appelle Get-Mailbox -RecipientTypeDetails RoomMailbox,EquipmentMailbox,SharedMailbox et précise le type :&lt;br /&gt;
RoomMailbox → Room&lt;br /&gt;
EquipmentMailbox → Equipment&lt;br /&gt;
SharedMailbox → Shared Mailbox&lt;br /&gt;
Quand une étape n&amp;#039;a pas pu s&amp;#039;exécuter, la catégorie reste au niveau précédent :&lt;br /&gt;
&lt;br /&gt;
Shared : les données Exchange n&amp;#039;ont pas été chargées du tout.&lt;br /&gt;
Resource Account : Exchange a été chargé, mais il n&amp;#039;y avait pas de token EXO.&lt;br /&gt;
L&amp;#039;ordre d&amp;#039;affichage est défini dans UserCategoryOrder (GraphService.cs:2720-2732) : Admin → Member → Guest → Shared Mailbox → Room → Equipment → Resource Account → Disabled → Shared.&lt;br /&gt;
&lt;br /&gt;
Points à connaître&lt;br /&gt;
Les catégories ne se cumulent pas. Un admin désactivé reste « Admin » et un invité désactivé reste « Guest ». Seuls les comptes non-admin et non-guest passent par la branche « désactivé ».&lt;br /&gt;
Un membre désactivé qui a encore une boîte utilisateur (par exemple un départ dont on garde la boîte) devient « Resource Account ». L&amp;#039;étape b ne requête pas les UserMailbox, donc il n&amp;#039;est jamais reclassé.&lt;br /&gt;
Si les rapports M365 sont anonymisés (option « Display concealed names »), les UPN du rapport d&amp;#039;usage ne correspondent plus. Tous les comptes désactivés tombent alors en « Disabled ».&lt;br /&gt;
La définition d&amp;#039;« invité » n&amp;#039;est pas la même partout. Les checks MFA (TenantIdentityReport.razor.cs:250-251) excluent les invités par #EXT# dans l&amp;#039;UPN, et non par userType comme la catégorisation.&lt;br /&gt;
Dans le résumé (TenantIdentityReport.razor.cs:196-201), « Shared » regroupe Shared Mailbox, Resource Account et Shared, et « Room &amp;amp; Equipment » regroupe Room et Equipment.&lt;/div&gt;</summary>
		<author><name>Tisuiss</name></author>
	</entry>
</feed>