Isystem.PowerShell.PowerPlatform.Dataverse

1.2.0

Session-based cmdlets for Microsoft Dataverse (Power Platform, Dynamics 365): CRUD, upsert by alternate key, batches, transactions, FetchXML and paging. Authenticates with connection string, client secret, certificate, managed identity, Isystem.AzAuth modes, or a delegated user sign-in whose token cache the caller stores (Key Vault) for environments without applicatio
Session-based cmdlets for Microsoft Dataverse (Power Platform, Dynamics 365): CRUD, upsert by alternate key, batches, transactions, FetchXML and paging. Authenticates with connection string, client secret, certificate, managed identity, Isystem.AzAuth modes, or a delegated user sign-in whose token cache the caller stores (Key Vault) for environments without application users.
Show more

Minimum PowerShell version

7.5

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name Isystem.PowerShell.PowerPlatform.Dataverse -RequiredVersion 1.2.0

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name Isystem.PowerShell.PowerPlatform.Dataverse -Version 1.2.0

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) Isystem. All rights reserved.

Package Details

Author(s)

  • Ondrej Kracmar

Tags

Dataverse PowerPlatform Dynamics365 CRM PowerApps Upsert Windows Linux MacOS

Cmdlets

Connect-PSDataverse Disconnect-PSDataverse Get-PSDataverseConnection Get-PSDataverseRecord Get-PSDataverseRecordCount Get-PSDataverseTable Get-PSDataverseColumn Get-PSDataverseKey ConvertTo-PSDataverseObject Find-PSDataverseRecord Test-PSDataverseRecord New-PSDataverseRecord Set-PSDataverseRecord Remove-PSDataverseRecord Invoke-PSDataverseBatch Invoke-PSDataverseTransaction Invoke-PSDataverseFetchXml Get-PSDataverseTokenCache

PSEditions

Core

Dependencies

This module has no dependencies.

Release Notes

## [1.2.0] - 2026-09-29

### Fixed

- **A connection opened inside a function is no longer lost when that function returns.** The
 session was written to the CALLER's scope and marked `Private`, so `Connect-PSDataverse` wrapped
 in a function - the normal way automation is written - left its connection behind the moment the
 function returned, and every later cmdlet got a fresh, disconnected session. Anything built on
 the module this way silently wrote nothing. The session now lives in the runspace's global
 scope and is visible from every nested scope, and two regression tests call a cmdlet from
 inside a function so the suite would notice if it came back.

### Added

- **`ConvertTo-PSDataverseObject`** and **`-AsObject` / `-IncludeFormattedValues`** on
 `Get-PSDataverseRecord`, `Find-PSDataverseRecord` and `Invoke-PSDataverseFetchXml`. A Dataverse
 row is a sparse bag of typed SDK objects, which is faithful to the service and unusable with
 `Format-Table`, `Export-Csv` or `$row.column`; these flatten it - lookup to its id, choice to its
 number, money to its decimal, aliased value to the value inside it.
- **Write-side counterparts for the flattened types**, so a row can be read, edited and written
 back: `@{ OptionSet = 1 }`, `@{ OptionSet = @(1, 2) }` and `@{ Money = 12.50 }` alongside the
 existing lookup forms. Choice and currency columns previously could not be written at all - the
 reader unwrapped them and nothing wrapped them again.
- **Whole numbers are narrowed to what a Dataverse column takes.** `ConvertFrom-Json`, and a
 PowerShell integer literal, produce `Int64`; a whole-number column is `Int32`, and the SDK
 rejected the wider type on serialization. A value that genuinely does not fit now says so and
 names the column.
- **A nested object or a list is refused with the column named**, instead of failing later inside
 the SDK with a message that mentions neither.

### Changed

- **The three filters behave the same way.** `Find-PSDataverseRecord -Filter` converted its values
 one way, `-LikeFilter` another and `Get-PSDataverseRecordCount -Filter` a third; a condition now
 always compares against the stored scalar, which is the shape a flattened row hands back.
- The retained delegated token cache is zeroed on dispose. `Close` keeps it on purpose so a script
 can export it after `Disconnect-PSDataverse`; disposal is where that retention has to end,
 because the blob holds a refresh token in clear.
- Seven user-facing messages moved from string literals into `Strings.resx`, as `CONTRIBUTING.md`
 requires - including the two seen most often, "Not connected to Dataverse" and
 "Failed to connect to Dataverse".
- `DataverseLoginMode.Auto` documents itself as an alias for `Interactive` rather than repeating
 that mode's description word for word.
- Both token providers state that the session is bound to the URL given at connect time, instead
 of silently ignoring the `instanceUri` the callback passes.

### Removed

- `build/vsts-syncRepository.ps1`: nothing called it, and it could not have run on the Linux
 agent (`System.Web.HttpUtility` without `Add-Type`, PSFramework without an import).
- `Strings.TransactionResultVerbose`: unused, and a duplicate of `TransactionCommittedVerbose`.

FileList

  • Isystem.PowerShell.PowerPlatform.Dataverse.nuspec
  • CHANGELOG.md
  • Isystem.PowerShell.PowerPlatform.Dataverse.Format.ps1xml
  • Isystem.PowerShell.PowerPlatform.Dataverse.psd1
  • Isystem.PowerShell.PowerPlatform.Dataverse.psm1
  • LICENSE
  • README.md
  • bin\net10.0\Azure.Core.dll
  • bin\net10.0\Azure.Identity.Broker.dll
  • bin\net10.0\Azure.Identity.dll
  • bin\net10.0\Isystem.AzAuth.Core.dll
  • bin\net10.0\Isystem.PowerShell.PowerPlatform.Dataverse.dll
  • bin\net10.0\Isystem.PowerShell.PowerPlatform.Dataverse.pdb
  • bin\net10.0\Isystem.Shared.Infrastructure.Core.dll
  • bin\net10.0\Isystem.Shared.Infrastructure.PowerPlatform.Dataverse.dll
  • bin\net10.0\Microsoft.Bcl.AsyncInterfaces.dll
  • bin\net10.0\Microsoft.Crm.Sdk.Proxy.dll
  • bin\net10.0\Microsoft.Extensions.Caching.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.Caching.Memory.dll
  • bin\net10.0\Microsoft.Extensions.Configuration.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.Configuration.Binder.dll
  • bin\net10.0\Microsoft.Extensions.Configuration.dll
  • bin\net10.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.DependencyInjection.dll
  • bin\net10.0\Microsoft.Extensions.Diagnostics.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.FileProviders.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.Hosting.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.Http.dll
  • bin\net10.0\Microsoft.Extensions.Logging.Abstractions.dll
  • bin\net10.0\Microsoft.Extensions.Logging.dll
  • bin\net10.0\Microsoft.Extensions.ObjectPool.dll
  • bin\net10.0\Microsoft.Extensions.Options.dll
  • bin\net10.0\Microsoft.Extensions.Primitives.dll
  • bin\net10.0\Microsoft.Identity.Client.Broker.dll
  • bin\net10.0\Microsoft.Identity.Client.Extensions.Msal.dll
  • bin\net10.0\Microsoft.Identity.Client.NativeInterop.dll
  • bin\net10.0\Microsoft.Identity.Client.dll
  • bin\net10.0\Microsoft.IdentityModel.Abstractions.dll
  • bin\net10.0\Microsoft.IdentityModel.JsonWebTokens.dll
  • bin\net10.0\Microsoft.IdentityModel.Logging.dll
  • bin\net10.0\Microsoft.IdentityModel.Tokens.dll
  • bin\net10.0\Microsoft.PowerPlatform.Dataverse.Client.dll
  • bin\net10.0\Microsoft.VisualStudio.Threading.dll
  • bin\net10.0\Microsoft.VisualStudio.Validation.dll
  • bin\net10.0\Microsoft.Xrm.Sdk.dll
  • bin\net10.0\Newtonsoft.Json.dll
  • bin\net10.0\System.ClientModel.dll
  • bin\net10.0\System.Configuration.ConfigurationManager.dll
  • bin\net10.0\System.Diagnostics.EventLog.dll
  • bin\net10.0\System.IdentityModel.Tokens.Jwt.dll
  • bin\net10.0\System.Memory.Data.dll
  • bin\net10.0\System.Runtime.Caching.dll
  • bin\net10.0\System.Security.Cryptography.Pkcs.dll
  • bin\net10.0\System.Security.Cryptography.ProtectedData.dll
  • bin\net10.0\System.Security.Cryptography.Xml.dll
  • bin\net10.0\System.Security.Permissions.dll
  • bin\net10.0\System.ServiceModel.Duplex.dll
  • bin\net10.0\System.ServiceModel.Http.dll
  • bin\net10.0\System.ServiceModel.Primitives.dll
  • bin\net10.0\System.ServiceModel.Security.dll
  • bin\net10.0\System.ServiceModel.dll
  • bin\net10.0\System.Windows.Extensions.dll
  • bin\net9.0\Azure.Core.dll
  • bin\net9.0\Azure.Identity.Broker.dll
  • bin\net9.0\Azure.Identity.dll
  • bin\net9.0\Isystem.AzAuth.Core.dll
  • bin\net9.0\Isystem.PowerShell.PowerPlatform.Dataverse.dll
  • bin\net9.0\Isystem.PowerShell.PowerPlatform.Dataverse.pdb
  • bin\net9.0\Isystem.Shared.Infrastructure.Core.dll
  • bin\net9.0\Isystem.Shared.Infrastructure.PowerPlatform.Dataverse.dll
  • bin\net9.0\Microsoft.Bcl.AsyncInterfaces.dll
  • bin\net9.0\Microsoft.Crm.Sdk.Proxy.dll
  • bin\net9.0\Microsoft.Extensions.Caching.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.Caching.Memory.dll
  • bin\net9.0\Microsoft.Extensions.Configuration.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.Configuration.Binder.dll
  • bin\net9.0\Microsoft.Extensions.Configuration.dll
  • bin\net9.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.DependencyInjection.dll
  • bin\net9.0\Microsoft.Extensions.Diagnostics.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.FileProviders.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.Hosting.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.Http.dll
  • bin\net9.0\Microsoft.Extensions.Logging.Abstractions.dll
  • bin\net9.0\Microsoft.Extensions.Logging.dll
  • bin\net9.0\Microsoft.Extensions.ObjectPool.dll
  • bin\net9.0\Microsoft.Extensions.Options.dll
  • bin\net9.0\Microsoft.Extensions.Primitives.dll
  • bin\net9.0\Microsoft.Identity.Client.Broker.dll
  • bin\net9.0\Microsoft.Identity.Client.Extensions.Msal.dll
  • bin\net9.0\Microsoft.Identity.Client.NativeInterop.dll
  • bin\net9.0\Microsoft.Identity.Client.dll
  • bin\net9.0\Microsoft.IdentityModel.Abstractions.dll
  • bin\net9.0\Microsoft.IdentityModel.JsonWebTokens.dll
  • bin\net9.0\Microsoft.IdentityModel.Logging.dll
  • bin\net9.0\Microsoft.IdentityModel.Tokens.dll
  • bin\net9.0\Microsoft.PowerPlatform.Dataverse.Client.dll
  • bin\net9.0\Microsoft.VisualStudio.Threading.dll
  • bin\net9.0\Microsoft.VisualStudio.Validation.dll
  • bin\net9.0\Microsoft.Xrm.Sdk.dll
  • bin\net9.0\Newtonsoft.Json.dll
  • bin\net9.0\System.ClientModel.dll
  • bin\net9.0\System.Configuration.ConfigurationManager.dll
  • bin\net9.0\System.Diagnostics.DiagnosticSource.dll
  • bin\net9.0\System.Diagnostics.EventLog.dll
  • bin\net9.0\System.IO.Pipelines.dll
  • bin\net9.0\System.IdentityModel.Tokens.Jwt.dll
  • bin\net9.0\System.Memory.Data.dll
  • bin\net9.0\System.Runtime.Caching.dll
  • bin\net9.0\System.Security.Cryptography.Pkcs.dll
  • bin\net9.0\System.Security.Cryptography.ProtectedData.dll
  • bin\net9.0\System.Security.Cryptography.Xml.dll
  • bin\net9.0\System.Security.Permissions.dll
  • bin\net9.0\System.ServiceModel.Duplex.dll
  • bin\net9.0\System.ServiceModel.Http.dll
  • bin\net9.0\System.ServiceModel.Primitives.dll
  • bin\net9.0\System.ServiceModel.Security.dll
  • bin\net9.0\System.ServiceModel.dll
  • bin\net9.0\System.Text.Encodings.Web.dll
  • bin\net9.0\System.Text.Json.dll
  • bin\net9.0\System.Windows.Extensions.dll
  • en-US\Isystem.PowerShell.PowerPlatform.Dataverse.dll-Help.xml
  • en-US\about_Isystem.PowerShell.PowerPlatform.Dataverse.help.txt

Version History

Version Downloads Last updated
1.5.4 37 10/3/2026
1.5.3 8 10/3/2026
1.5.2 8 10/3/2026
1.5.1 6 10/2/2026
1.5.0 12 10/2/2026
1.4.1 22 10/1/2026
1.4.0 6 10/1/2026
1.3.0 45 9/30/2026
1.2.1 10 9/29/2026
1.2.0 (current version) 10 9/29/2026
1.1.0 11 9/24/2026
1.0.1 10 9/22/2026
1.0.0 5 9/21/2026
Show less