src/AppModule/Get-XrmAppModules.ps1
|
<# .SYNOPSIS Retrieve model-driven app records from Microsoft Dataverse. .DESCRIPTION Get appmodule records (model-driven apps) with optional name filter. .PARAMETER XrmClient Xrm connector initialized to target instance. Use latest one by default. (Dataverse ServiceClient) .PARAMETER Name App display name filter. Optional. .PARAMETER Columns Specify expected columns to retrieve. (Default : all columns) .OUTPUTS PSCustomObject[]. Array of appmodule records (XrmObject). .EXAMPLE $apps = Get-XrmAppModules; $app = Get-XrmAppModules -Name "Sales Hub"; .LINK https://learn.microsoft.com/en-us/power-apps/developer/model-driven-apps/create-manage-model-driven-apps-using-code #> function Get-XrmAppModules { [CmdletBinding()] [OutputType([PSCustomObject[]])] param ( [Parameter(Mandatory = $false, ValueFromPipeline)] [Microsoft.PowerPlatform.Dataverse.Client.ServiceClient] $XrmClient = $Global:XrmClient, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory = $false)] [ValidateNotNullOrEmpty()] [string[]] $Columns = @("*") ) begin { $StopWatch = [System.Diagnostics.Stopwatch]::StartNew(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Start -Parameters ($MyInvocation.MyCommand.Parameters); } process { $query = New-XrmQueryExpression -LogicalName "appmodule" -Columns $Columns; if ($PSBoundParameters.ContainsKey('Name')) { $query = $query | Add-XrmQueryCondition -Field "name" -Condition Equal -Values $Name; } $apps = $XrmClient | Get-XrmMultipleRecords -Query $query; $apps; } end { $StopWatch.Stop(); Trace-XrmFunction -Name $MyInvocation.MyCommand.Name -Stage Stop -StopWatch $StopWatch; } } Export-ModuleMember -Function Get-XrmAppModules -Alias *; |