Over the years I’ve written many an integration with identity sources. Dynamics 365 F&O though is one that has come up a number of times. With that in mind I’ve written a PowerShell Module to expose and simplify integration with Dynamics 365 F&O for Users and Roles. This post is the details to setup and configure the integration along with using the cmdlets or IAM orchestration.
API integration to Dynamics 365 Finance & Operations requires:
The following PowerShell Modules are leveraged by the D365FOIAM PowerShell Module and appear in the modules subdirectory to load locally with tested and verified versions to interact with D365 F&O.
From the module source files using an Administrative PowerShell session run the installation script.
Install-Module D365FOIAM
Assuming the PowerShell Module has been installed from the PowerShell Gallery …
Import-Module D365FOIAM 
If the PowerShell Module has been placed in the PowerShell Modules directory …
Module cmdlets
Get-Command -Module D365FOIAM | Sort-Object Name 
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Add-D365FORoleToSystemUser                         1.0.1      D365FOIAM
Alias           Add-D365WIFConfigAuthorityThumbprint               1.0.1      D365FOIAM
Alias           Clear-D365TableDataFromBacpac                      1.0.1      D365FOIAM
Alias           Get-D365DecryptedConfigFile                        1.0.1      D365FOIAM
Function        Get-D365FOPersonUsers                              1.0.1      D365FOIAM
Function        Get-D365FOSecurityUserRoleAssociations             1.0.1      D365FOIAM
Function        Get-D365FOSecurityUserRoles                        1.0.1      D365FOIAM
Function        Get-D365FOSecurityUserRolesSchema                  1.0.1      D365FOIAM
Function        Get-D365FOSystemUsers                              1.0.1      D365FOIAM
Function        Get-D365FOSystemUserSchema                         1.0.1      D365FOIAM
Alias           Get-D365ModelFileFromBacpac                        1.0.1      D365FOIAM
Alias           Get-D365SqlOptionsFromBacpacModelFile              1.0.1      D365FOIAM
Alias           Initialize-D365TestAutomationCertificate           1.0.1      D365FOIAM
Alias           Invoke-D365SqlCmd                                  1.0.1      D365FOIAM
Function        New-D365FOSystemUser                               1.0.1      D365FOIAM
Function        Remove-D365FORoleFromSystemUser                    1.0.1      D365FOIAM
Function        Set-D365FOGlobals                                  1.0.1      D365FOIAM
Function        Update-D365FOSystemUser                            1.0.1      D365FOIAM              
Environment configuration sets a series of Global Variables that are used to interact with D365 F&O via the oData APIs and maintain an Access Token from Entra ID.
$myD365FOCreds = Get-Credential -Message "Enter the ClientID of the Entra ID Application you've registered and the associated ClientSecret you created."
Set-D365FOGlobals -D365FOTenant "yourtenant.onmicrosoft.com" -D365FOURI "https://yourtenant.cloudax.dynamics.com.onmicrosoft.com" -EntraIDAppClientID $myD365FOCreds.UserName -EntraIDAppClientSecret $myD365FOCreds.Password 
Get-D365FOSystemUserSchema
Name                 : SystemUser
EntitySetName        : SystemUsers
LabelId              : @SYS12108
IsReadOnly           : False
ConfigurationEnabled : True
Properties           : {@{Name=UserID; TypeName=Edm.String; DataType=String; LabelId=@Kernel:UserInfo_ID; IsKey=True; IsMandatory=True; ConfigurationEnabled=True; AllowEdit=False; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}, @{Name=StartPage; TypeName=Edm.String;      
                       DataType=String; LabelId=; IsKey=False; IsMandatory=False; ConfigurationEnabled=True; AllowEdit=True; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}, @{Name=Language; TypeName=Edm.String; DataType=String; LabelId=@SYS66040; IsKey=False;
                       IsMandatory=False; ConfigurationEnabled=True; AllowEdit=True; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}, @{Name=EventPollFrequency; TypeName=Edm.Int32; DataType=Int32; LabelId=@SYS94046; IsKey=False; IsMandatory=False;
                       ConfigurationEnabled=True; AllowEdit=True; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}…}
NavigationProperties : {@{Name=DefaultBudgetManager; RelatedEntity=BudgetControlConfiguration; RelatedRelationName=BudgetControlConfigurationDefaultBudgetManager; Cardinality=Multiple; Constraints=System.Object[]}, @{Name=BudgetControlRuleBudgetManager; RelatedEntity=BudgetControlRule; RelatedRelationName=BudgetManagers; Cardinality=Multiple;
                       Constraints=System.Object[]}, @{Name=UserGroupUserList; RelatedEntity=UserGroupUserList; RelatedRelationName=SystemUser; Cardinality=Multiple; Constraints=System.Object[]}, @{Name=BudgetControlGroupBudgetManager; RelatedEntity=BudgetControlGroup; RelatedRelationName=BudgetManagers; Cardinality=Multiple; Constraints=System.Object[]}…}
PropertyGroups       : {}
Actions              : {}
Get-D365FOSecurityUserRolesSchema
Name                 : SecurityUserRole
EntitySetName        : SecurityUserRoles
LabelId              : @SysSecLabels:SystemSecurityUserRoleEntity
IsReadOnly           : False
ConfigurationEnabled : True
Properties           : {@{Name=UserId; TypeName=Edm.String; DataType=String; LabelId=User ID; IsKey=True; IsMandatory=True; ConfigurationEnabled=True; AllowEdit=False; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}, @{Name=SecurityRoleIdentifier; TypeName=Edm.String;     
                       DataType=String; LabelId=Role AOT name; IsKey=True; IsMandatory=False; ConfigurationEnabled=True; AllowEdit=False; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}, @{Name=AssignmentStatus;
                       TypeName=Microsoft.Dynamics.DataEntities.RoleAssignmentStatus; DataType=Enum; LabelId=; IsKey=False; IsMandatory=False; ConfigurationEnabled=True; AllowEdit=True; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}, @{Name=AssignmentMode;
                       TypeName=Microsoft.Dynamics.DataEntities.RoleAssignmentMode; DataType=Enum; LabelId=; IsKey=False; IsMandatory=False; ConfigurationEnabled=True; AllowEdit=True; AllowEditOnCreate=True; IsDimension=False; DimensionRelation=; IsDynamicDimension=False; DimensionLegalEntityProperty=; DimensionTypeProperty=}…}
NavigationProperties : {}
PropertyGroups       : {}
Actions              : {}
Get-D365FOSystemUsers | select-object -last 1
@odata.etag                                      : W/"JzIxMzMwMjA5MjgsNjg3MjEzNzQxMDk7MSw2ODcxOTUxNzMzMyc="
UserID                                           : TimR
StartPage                                        : DefaultDashboard
Language                                         : 
EventPollFrequency                               : 15
ShowNotificationsInTheMicrosoftDynamicsAX7Client : Yes
DefaultCountryRegion                             : 
EventPopUpDisplayWhen                            : DefinedOnRule
AutomaticUrlUpdate                               : No
EventPopUpLinkDestination                        : ToAlert
UserInfo_language                                : en-us
HomePageRefreshDuration                          : 0
Density                                          : 
Company                                          : USMC
ExternalUser                                     : False
UserName                                         : TimRite
EventPopUps                                      : No
EmailProviderID                                  : 
SqmEnabled                                       : PromptMe
EventWorkflowShowPopup                           : Yes
SendNotificationsInEmail                         : No
NetworkDomain                                    : https://sts.windows.net/darrenjrobinson
DocumentHandlingActive                           : Yes
PreferredLocale                                  : 
PersonName                                       : 
Alias                                            : t.rite@darrenjrobinson.com
Email                                            : 
GlobalExcelExportFilePath                        : 
AutoLogOff                                       : 0
PreferredCalendar                                : Gregorian
SendAlertAsEmailMessage                          : DefinedOnRule
AccountType                                      : ClaimsUser
SqmGUID                                          : 00000000-0000-0000-0000-000000000000
GlobalExcelExportMode                            : 0
WorkflowLineItemNotificationFormat               : Grouped
PreferredTimeZone                                : GMT_COORDINATEDUNIVERSALTIME
Helplanguage                                     : en-us
MarkEmptyLinks                                   : No
Enabled                                          : False
Theme                                            : Theme0
EventWorkflowTasksInActionCenter                 : No
GlobalListPageLinkMode                           : 0
UserInfo_defaultPartition                        : True
ShowAttachmentStatus                             : No
Get-D365FOSystemUsers | Where-Object {$_.UserId -like '*Darren*'} | Select-Object -Property UserId, Alias, Enabled
UserID            Alias                                        Enabled
------            -----                                        -------
darren            darren@darrenjrobinson.com                   True
darrenjrobinson   darren@darrenjrobinson.onmicrosoft.com       True
Get-D365FOSecurityUserRoles | Select-Object -Skip 350 | Format-Table
@odata.etag              UserId               SecurityRoleIdentifier                  AssignmentStatus AssignmentMode SecurityRoleName                                UserLicenseType
-----------              ------               ----------------------                  ---------------- -------------- ----------------                                ---------------
W/"JzEsNTYzODYyNjY2MSc=" RetailServiceAccount INVENTCOSTACCOUNTANT                    Enabled          Manual         Inventory accountant                            Enterprise
W/"JzEsNTYzODYyNjY2Myc=" RetailServiceAccount INVENTCOSTCOSTCLERK                     Enabled          Manual         Inventory accountant clerk                      Enterprise
W/"JzEsNTYzODYyNjY2NSc=" RetailServiceAccount INVENTMATERIALSMANAGER                  Enabled          Manual         Materials manager                               Enterprise
W/"JzEsNTYzODYyNjY2Nyc=" RetailServiceAccount INVENTQUALITYCONTROLMANAGER             Enabled          Manual         Quality control manager                         Enterprise
W/"JzEsNTYzODYyNjY2OSc=" RetailServiceAccount INVENTRECEIVINGCLERK                    Enabled          Manual         Receiving clerk                                 Activity
W/"JzEsNTYzODYyNjY3MSc=" RetailServiceAccount INVENTSHIPPINGCLERK                     Enabled          Manual         Shipping clerk                                  Activity
W/"JzEsNTYzODYyNjY3Myc=" RetailServiceAccount JMGADVTIMEWORKER                        Enabled          Manual         Time registration user                          Universal
W/"JzEsNTYzODYyNjY3NSc=" RetailServiceAccount TRADEPURCHASINGMANAGER                  Enabled          Manual         Purchasing manager                              Enterprise
W/"JzEsNTYzODYyNjY3Nyc=" RetailServiceAccount RETAILCATALOGMANAGER                    Enabled          Manual         Retail catalog manager                          Enterprise
W/"JzEsNTYzODYyNjY3OSc=" RetailServiceAccount RETAILMERCHANDISINGMANAGER              Enabled          Manual         Retail merchandising manager                    Enterprise
W/"JzEsNTYzODYyNjY4MSc=" RetailServiceAccount RETAILOPERATIONSMANAGER                 Enabled          Manual         Retail operations manager                       Enterprise
W/"JzEsNTYzODYyNjY4Myc=" RetailServiceAccount RETAILWAREHOUSEMANAGER                  Enabled          Manual         Retail warehouse manager                        Activity
W/"JzEsNTYzODYyNjY4NSc=" RetailServiceAccount RETAILWAREHOUSECLERK                    Enabled          Manual         Retail warehouse clerk                          Universal
W/"JzEsNTYzODYyNjY4Nyc=" RetailServiceAccount TRADESALESCLERK                         Enabled          Manual         Sales clerk                                     Activity
W/"JzEsNTYzODYyNjY4OSc=" RetailServiceAccount TRADESALESMANAGER                       Enabled          Manual         Sales manager                                   Enterprise
W/"JzEsNTYzODYyNjY5MSc=" RetailServiceAccount TRADESALESREPRESENTATIVE                Enabled          Manual         Sales representative                            Activity
W/"JzEsNTYzODYyNjY5Myc=" RetailServiceAccount SMASERVICEDELIVERYMANAGER               Enabled          Manual         Service delivery manager                        Enterprise
W/"JzEsNTYzODYyNjY5Nyc=" RetailServiceAccount FBTAXACCOUNTANT_BR                      Enabled          Manual         Tax accountant                                  Enterprise
W/"JzEsNTYzODYyNjY5OSc=" RetailServiceAccount VENDVENDORACCOUNTMANAGER                Enabled          Manual         Vendor account manager                          Activity
W/"JzEsNTYzODYyNjcwMSc=" RetailServiceAccount VENDPURCHASINGAGENT                     Enabled          Manual         Purchasing agent                                Enterprise
W/"JzEsNTYzODYyNjcwMyc=" PowerPlatformApp     CDSVIRTUALENTITYAPPLICATION             Enabled          Manual         Dataverse Virtual entity integration app        None
W/"JzEsNTYzODYyNjcwNSc=" PowerPlatformApp     CDSVIRTUALENTITYAUTHENTICATEDPORTALUSER Enabled          Manual         Dataverse Virtual entity authenticated user     None
W/"JzEsNTYzODYyNjcwNyc=" PowerPlatformApp     CDSVIRTUALENTITYANONYMOUSPORTALUSER     Enabled          Manual         Dataverse Virtual entity anonymous user         None
W/"JzEsNTYzODYyNjcwOSc=" PowerPlatformApp     BUSINESSEVENTSSECURITYROLE              Enabled          Manual         Business events security role                   Enterprise
W/"JzEsNTYzODYyNjcxNCc=" ScaleUnitPipeline    SCALEUNITDATAPIPELINEROLE               Enabled          Manual         ScaleUnitDataPipelineRole                       None
W/"JzEsNTYzODYyNjcxNic=" ScaleUnitManagement  SCALEUNITADMIN                          Enabled          Manual         Scale unit management                           None
W/"JzEsNTYzODYyNjcxOSc=" MonitoringAppUser    SYSMONSECURITYROLE                      Enabled          Manual         SysMonSecurityRole                              None
W/"JzEsNTYzODYyNjcyMic=" DataSyncFrameworkApp CDSVIRTUALENTITYDATASYNCFRAMEWORK       Enabled          Manual         Dataverse data sync framework application role. None
W/"JzEsNTYzODYyNjcyNSc=" DynamicsMaintAppUser DYNAMICSMAINTENANCEAPPUSERSECURITYROLE  Enabled          Manual         Dynamics Maintenance User Role                  None
W/"JzEsNTYzODg5Nzc1Nyc=" darren               SYSTEMUSER                              Enabled          Manual         System user                                     Universal
W/"JzEsNTYzODg5Nzc1OSc=" darren               -SYSADMIN-                              Enabled          Manual         System administrator                            Enterprise
W/"JzEsNTYzODkwMDAwOSc=" Guest                GUEST                                   Enabled          Manual         Guest                                           Universal
W/"JzEsNTYzODkwMDAxNic=" darrenjrobinson    SYSTEMUSER                              Enabled          Manual         System user                                     Universal
W/"JzEsNTYzODkwMDAyMCc=" darrenjrobinson    -SYSADMIN-                              Enabled          Manual         System administrator                            Enterprise
Get-D365FOSecurityUserRoleAssociations | Select-Object -Skip 400 | Format-Table
@odata.etag              UserId            SecurityRoleIdentifier AssignmentStatus AssignmentMode SecurityRoleName
-----------              ------            ---------------------- ---------------- -------------- ----------------
W/"JzEsNTYzODg5Nzc1Nyc=" darren            SYSTEMUSER             Enabled          Manual         System user
W/"JzEsNTYzODg5Nzc1OSc=" darren            -SYSADMIN-             Enabled          Manual         System administrator
W/"JzEsNTYzODkwMDAwOSc=" Guest             GUEST                  Enabled          Manual         Guest
W/"JzEsNTYzODkwMDAxNic=" darrenjrobinson SYSTEMUSER             Enabled          Manual         System user
W/"JzEsNTYzODkwMDAyMCc=" darrenjrobinson -SYSADMIN-             Enabled          Manual         System administrator
New-D365FOSystemUser -Company "USMC" -NetworkDomain 'https://sts.windows.net/darrenjrobinson' -UserName 'TimRite' -UserID 'TimR' -Alias 't.rite@darrenjrobinson.com'
"--batchresponse_45d1cd04-0377-4f53-b4bb-46822119f1c1\r\nContent-Type: multipart/mixed; boundary=changesetresponse_92f72077-fcc4-4055-9b2a-a40f44f11e2a\r\n\r\n--changesetresponse_92f72077-fcc4-4055-9b2a-a40f44f11e2a\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nHTTP/1.1 201 Created\r\nETag: W/\"JzEsNjg3MjEzNzQxMDk7MSw2ODcxOTUxNzMzMyc=\"\r\nLocation: https://d365foperfpoc3ff96227df736db3devaos.cloudax.dynamics.com/data/SystemUsers('TimR')\r\nContent-Type: application/json; odata.metadata=minimal\r\nOData-Version: 4.0\r\n\r\n{\r\n  \"@odata.context\":\"https://d365foperfpoc3ff96227df736db3devaos.cloudax.dynamics.com/data/$metadata#SystemUsers/$entity\",\"@odata.etag\":\"W/\\\"JzEsNjg3MjEzNzQxMDk7MSw2ODcxOTUxNzMzMyc=\\\"\",\"UserID\":\"TimR\",\"StartPage\":\"DefaultDashboard\",\"Language\":\"\",\"EventPollFrequency\":15,\"ShowNotificationsInTheMicrosoftDynamicsAX7Client\":\"Yes\",\"DefaultCountryRegion\":\"\",\"EventPopUpDisplayWhen\":\"DefinedOnRule\",\"AutomaticUrlUpdate\":\"No\",\"EventPopUpLinkDestination\":\"ToAlert\",\"UserInfo_language\":\"en-us\",\"HomePageRefreshDuration\":0,\"Density\":null,\"Company\":\"USMC\",\"ExternalUser\":false,\"UserName\":\"TimRite\",\"EventPopUps\":\"No\",\"EmailProviderID\":\"\",\"SqmEnabled\":\"PromptMe\",\"EventWorkflowShowPopup\":\"Yes\",\"SendNotificationsInEmail\":\"No\",\"NetworkDomain\":\"https://sts.windows.net/darrenjrobinson\",\"DocumentHandlingActive\":\"Yes\",\"PreferredLocale\":\"\",\"PersonName\":\"\",\"Alias\":\"t.rite@darrenjrobinson.com\",\"Email\":\"\",\"GlobalExcelExportFilePath\":\"\",\"AutoLogOff\":0,\"PreferredCalendar\":\"Gregorian\",\"SendAlertAsEmailMessage\":\"DefinedOnRule\",\"AccountType\":\"ClaimsUser\",\"SqmGUID\":\"00000000-0000-0000-0000-000000000000\",\"GlobalExcelExportMode\":0,\"WorkflowLineItemNotificationFormat\":\"Grouped\",\"PreferredTimeZone\":\"GMT_COORDINATEDUNIVERSALTIME\",\"Helplanguage\":\"en-us\",\"MarkEmptyLinks\":\"No\",\"Enabled\":true,\"Theme\":\"Theme0\",\"EventWorkflowTasksInActionCenter\":\"No\",\"GlobalListPageLinkMode\":0,\"UserInfo_defaultPartition\":true,\"ShowAttachmentStatus\":\"No\"\r\n}\r\n--changesetresponse_92f72077-fcc4-4055-9b2a-a40f44f11e2a--\r\n--batchresponse_45d1cd04-0377-4f53-b4bb-46822119f1c1--\r\n"
Get-D365FOSystemUsers | Where-Object {$_.UserId -eq 'TimR'} | Select-Object -Property UserId, Alias, Enabled
UserID Alias                Enabled
------ -----                -------
TimR  t.rite@darrenjrobinson.com    True
Update-D365FOSystemUser -Update @{Enabled = 'False'} -UserID 'TimR'
"--batchresponse_dd46a8bf-5041-4a81-bf33-a5fafa3c94ac\r\nContent-Type: multipart/mixed; boundary=changesetresponse_f3cb9a22-8c26-444a-993f-2a1c72b32b03\r\n\r\n--changesetresponse_f3cb9a22-8c26-444a-993f-2a1c72b32b03\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nHTTP/1.1 204 No Content\r\n\r\n\r\n--changesetresponse_f3cb9a22-8c26-444a-993f-2a1c72b32b03--\r\n--batchresponse_dd46a8bf-5041-4a81-bf33-a5fafa3c94ac--\r\n"
Get-D365FOSystemUsers | Where-Object {$_.UserId -eq 'TimR'} | Select-Object -Property UserId, Alias, Enabled
UserID Alias                Enabled
------ -----                -------
TimR  t.rite@darrenjrobinson.com   False
$addRole = [pscustomobject][ordered]@{
    UserId                 = 'darrenjrobinson'
    SecurityRoleIdentifier = 'HCMMANAGER'
    AssignmentStatus       = 'Enabled'
    AssignmentMode         = 'Manual'
    SecurityRoleName       = 'Manager'
}
Add-D365FORoleToSystemUser -Role $addRole
"--batchresponse_760ecb25-9b01-471d-84ed-13ef67b2c638\r\nContent-Type: multipart/mixed; boundary=changesetresponse_f73fc1da-13ec-4feb-b7a5-4bfc0eb3ce51\r\n\r\n--changesetresponse_f73fc1da-13ec-4feb-b7a5-4bfc0eb3ce51\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nHTTP/1.1 201 Created\r\nETag: W/\"JzEsNTYzODkwMDAzMSc=\"\r\nLocation: https://d365foperfpoc3ff96227df736db3devaos.cloudax.dynamics.com/data/SecurityUserRoleAssociations(UserId='darrenjrobinson',SecurityRoleIdentifier='HCMMANAGER')\r\nContent-Type: application/json; odata.metadata=minimal\r\nOData-Version: 4.0\r\n\r\n{\r\n  \"@odata.context\":\"https://d365foperfpoc3ff96227df736db3devaos.cloudax.dynamics.com/data/$metadata#SecurityUserRoleAssociations/$entity\",\"@odata.etag\":\"W/\\\"JzEsNTYzODkwMDAzMSc=\\\"\",\"UserId\":\"darrenjrobinson\",\"SecurityRoleIdentifier\":\"HCMMANAGER\",\"AssignmentStatus\":\"Enabled\",\"AssignmentMode\":\"Manual\",\"SecurityRoleName\":\"Manager\"\r\n}\r\n--changesetresponse_f73fc1da-13ec-4feb-b7a5-4bfc0eb3ce51--\r\n--batchresponse_760ecb25-9b01-471d-84ed-13ef67b2c638--\r\n"
Get-D365FOSecurityUserRoleAssociations | Where-Object {$_.UserId -eq 'darrenjrobinson'}
@odata.etag            : W/"JzEsNTYzODkwMDAxNic="
UserId                 : darrenjrobinson
SecurityRoleIdentifier : SYSTEMUSER
AssignmentStatus       : Enabled
AssignmentMode         : Manual
SecurityRoleName       : System user
@odata.etag            : W/"JzEsNTYzODkwMDAyMCc="
UserId                 : darrenjrobinson
SecurityRoleIdentifier : -SYSADMIN-
AssignmentStatus       : Enabled
AssignmentMode         : Manual
SecurityRoleName       : System administrator
@odata.etag            : W/"JzEsNTYzODkwMDAzMSc="
UserId                 : darrenjrobinson
SecurityRoleIdentifier : HCMMANAGER
AssignmentStatus       : Enabled
AssignmentMode         : Manual
SecurityRoleName       : Manager
Remove-D365FORoleFromSystemUser -SecurityRoleIdentifier 'HCMMANAGER' -UserId 'darrenjrobinson'
"--batchresponse_6bdf379c-d58d-48a5-bf09-257ba501d469\r\nContent-Type: multipart/mixed; boundary=changesetresponse_a5e77f5c-61a3-4a40-9b88-4795ba74c504\r\n\r\n--changesetresponse_a5e77f5c-61a3-4a40-9b88-4795ba74c504\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nHTTP/1.1 204 No Content\r\n\r\n\r\n--changesetresponse_a5e77f5c-61a3-4a40-9b88-4795ba74c504--\r\n--batchresponse_6bdf379c-d58d-48a5-bf09-257ba501d469--\r\n"
Get-D365FOSecurityUserRoleAssociations | Where-Object {$_.UserId -eq 'darrenjrobinson'}
@odata.etag            : W/"JzEsNTYzODkwMDAxNic="
UserId                 : darrenjrobinson
SecurityRoleIdentifier : SYSTEMUSER
AssignmentStatus       : Enabled
AssignmentMode         : Manual
SecurityRoleName       : System user
@odata.etag            : W/"JzEsNTYzODkwMDAyMCc="
UserId                 : darrenjrobinson
SecurityRoleIdentifier : -SYSADMIN-
AssignmentStatus       : Enabled
AssignmentMode         : Manual
SecurityRoleName       : System administrator
Update-D365FOSystemUser -Update @{Enabled = 'False'} -UserID 'TimR'
"--batchresponse_dd46a8bf-5041-4a81-bf33-a5fafa3c94ac\r\nContent-Type: multipart/mixed; boundary=changesetresponse_f3cb9a22-8c26-444a-993f-2a1c72b32b03\r\n\r\n--changesetresponse_f3cb9a22-8c26-444a-993f-2a1c72b32b03\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\nContent-ID: 1\r\n\r\nHTTP/1.1 204 No Content\r\n\r\n\r\n--changesetresponse_f3cb9a22-8c26-444a-993f-2a1c72b32b03--\r\n--batchresponse_dd46a8bf-5041-4a81-bf33-a5fafa3c94ac--\r\n"
Get-D365FOSystemUsers | Where-Object {$_.UserId -eq 'TimR'} | Select-Object -Property UserId, Alias, Enabled
UserID Alias                Enabled
------ -----                -------
TimR  t.rite@darrenjrobinson.com   False
For over a decade, the Granfeldt PowerShell Management Agent (PSMA) has been the bedrock for…
Recently under the experimental Azure Functions build Microsoft Developer Advocates have shown enabling Azure Functions…
Today, I’m super excited to finally announce the Beta release of EntraPulse Lite – a…
I'm excited to share some significant authentication enhancements I've contributed to the Lokka MCP Server…
Last month I had the pleasure of speaking at the Sydney event for Global Azure.…
Model Context Protocol (MCP) is a powerful framework that extends AI clients like Claude and…
This website uses cookies.
View Comments