PowerShell / PowerShell/PSResourceGet

`Find-PSResource` should tell what platforms a resource supports

Open
#1,570 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Find feature_request
Dominant language
C#
Stars
576
Forks
114
Avg merge
1d 2h
Merged PRs (30d)
7

Description

Summary of the new feature / enhancement

Find-PSResource should tell what platforms a resource supports.

  • Windows only?
  • Unix only?
    • Could a module work on MacOS but not Linux?
  • All platforms that PowerShell supports?

There does not seem to be a standardized way to tell if an object obtained with Find-PSResource can be installed and used on Unix.

The PSEdition visible in PowerShell Gallery seems to be present in the tags:

  • PSEdition is set with tags PSEdition_<edition>, example PSEdition_Core and PSEdition_Desktop with Az.Accounts.

If PSEdition_Core is present it does not neccessarily mean it supports Unix, right?

Current info from Find-PSResource

Here's the output of:

Find-PSResource -Type 'Module' -Name 'Az.Accounts' -Repository 'PSGallery' | ConvertTo-Json -Depth 10 | clip
Click to view
{
  "AdditionalMetadata": {
    "NormalizedVersion": "2.15.1"
  },
  "Author": "Microsoft Corporation",
  "CompanyName": "Microsoft Corporation",
  "Copyright": "Microsoft Corporation. All rights reserved.",
  "Dependencies": [],
  "Description": "Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core.\r\n\r\nFor more information on account credential management, please visit the following: https://learn.microsoft.com/powershell/azure/authenticate-azureps",
  "IconUri": null,
  "Includes": {
    "Cmdlet": [
      "Disable-AzDataCollection",
      "Disable-AzContextAutosave",
      "Enable-AzDataCollection",
      "Enable-AzContextAutosave",
      "Remove-AzEnvironment",
      "Get-AzEnvironment",
      "Set-AzEnvironment",
      "Add-AzEnvironment",
      "Get-AzSubscription",
      "Connect-AzAccount",
      "Get-AzContext",
      "Set-AzContext",
      "Import-AzContext",
      "Save-AzContext",
      "Get-AzTenant",
      "Send-Feedback",
      "Resolve-AzError",
      "Select-AzContext",
      "Rename-AzContext",
      "Remove-AzContext",
      "Clear-AzContext",
      "Disconnect-AzAccount",
      "Get-AzContextAutosaveSetting",
      "Set-AzDefault",
      "Get-AzDefault",
      "Clear-AzDefault",
      "Register-AzModule",
      "Enable-AzureRmAlias",
      "Disable-AzureRmAlias",
      "Uninstall-AzureRm",
      "Invoke-AzRestMethod",
      "Get-AzAccessToken",
      "Open-AzSurveyLink",
      "Get-AzConfig",
      "Update-AzConfig",
      "Clear-AzConfig",
      "Export-AzConfig",
      "Import-AzConfig"
    ],
    "Command": [
      "Disable-AzDataCollection",
      "Disable-AzContextAutosave",
      "Enable-AzDataCollection",
      "Enable-AzContextAutosave",
      "Remove-AzEnvironment",
      "Get-AzEnvironment",
      "Set-AzEnvironment",
      "Add-AzEnvironment",
      "Get-AzSubscription",
      "Connect-AzAccount",
      "Get-AzContext",
      "Set-AzContext",
      "Import-AzContext",
      "Save-AzContext",
      "Get-AzTenant",
      "Send-Feedback",
      "Resolve-AzError",
      "Select-AzContext",
      "Rename-AzContext",
      "Remove-AzContext",
      "Clear-AzContext",
      "Disconnect-AzAccount",
      "Get-AzContextAutosaveSetting",
      "Set-AzDefault",
      "Get-AzDefault",
      "Clear-AzDefault",
      "Register-AzModule",
      "Enable-AzureRmAlias",
      "Disable-AzureRmAlias",
      "Uninstall-AzureRm",
      "Invoke-AzRestMethod",
      "Get-AzAccessToken",
      "Open-AzSurveyLink",
      "Get-AzConfig",
      "Update-AzConfig",
      "Clear-AzConfig",
      "Export-AzConfig",
      "Import-AzConfig"
    ],
    "DscResource": [],
    "Function": null,
    "RoleCapability": null,
    "Workflow": null
  },
  "InstalledDate": null,
  "InstalledLocation": "",
  "IsPrerelease": false,
  "LicenseUri": "https://aka.ms/azps-license",
  "Name": "Az.Accounts",
  "Prerelease": "",
  "ProjectUri": "https://github.com/Azure/azure-powershell",
  "PublishedDate": "2024-02-06T01:38:46.463",
  "ReleaseNotes": "* Upgraded the reference of Azure PowerShell Common to 1.3.90-preview.\r\n* Upgraded Azure.Identity to 1.10.3 [#23018].\r\n  - Renamed token cache from 'msal.cache' to 'msal.cache.cae' or 'masl.cache.nocae'.\r\n* Enabled Continue Access Evaluation (CAE) for all Service Principals login methods.\r\n* Supported signing in with Microsoft Account (MSA) via Web Account Manager (WAM). Enable it by 'Set-AzConfig -EnableLoginByWam True'.\r\n* Adjusted output format to be more user-friendly for 'Get-AzContext/Tenant/Subscription' and 'Invoke-AzRestMethod'.\r\n* Fixed the multiple 'x-ms-unique-id' values issue.",
  "Repository": "PSGallery",
  "RepositorySourceLocation": "https://www.powershellgallery.com/api/v2",
  "Tags": [
    "Azure",
    "ResourceManager",
    "ARM",
    "Accounts",
    "Authentication",
    "Environment",
    "Subscription",
    "PSModule",
    "PSEdition_Core",
    "PSEdition_Desktop",
    "PSCmdlet_Disable-AzDataCollection",
    "PSCommand_Disable-AzDataCollection",
    "PSCmdlet_Disable-AzContextAutosave",
    "PSCommand_Disable-AzContextAutosave",
    "PSCmdlet_Enable-AzDataCollection",
    "PSCommand_Enable-AzDataCollection",
    "PSCmdlet_Enable-AzContextAutosave",
    "PSCommand_Enable-AzContextAutosave",
    "PSCmdlet_Remove-AzEnvironment",
    "PSCommand_Remove-AzEnvironment",
    "PSCmdlet_Get-AzEnvironment",
    "PSCommand_Get-AzEnvironment",
    "PSCmdlet_Set-AzEnvironment",
    "PSCommand_Set-AzEnvironment",
    "PSCmdlet_Add-AzEnvironment",
    "PSCommand_Add-AzEnvironment",
    "PSCmdlet_Get-AzSubscription",
    "PSCommand_Get-AzSubscription",
    "PSCmdlet_Connect-AzAccount",
    "PSCommand_Connect-AzAccount",
    "PSCmdlet_Get-AzContext",
    "PSCommand_Get-AzContext",
    "PSCmdlet_Set-AzContext",
    "PSCommand_Set-AzContext",
    "PSCmdlet_Import-AzContext",
    "PSCommand_Import-AzContext",
    "PSCmdlet_Save-AzContext",
    "PSCommand_Save-AzContext",
    "PSCmdlet_Get-AzTenant",
    "PSCommand_Get-AzTenant",
    "PSCmdlet_Send-Feedback",
    "PSCommand_Send-Feedback",
    "PSCmdlet_Resolve-AzError",
    "PSCommand_Resolve-AzError",
    "PSCmdlet_Select-AzContext",
    "PSCommand_Select-AzContext",
    "PSCmdlet_Rename-AzContext",
    "PSCommand_Rename-AzContext",
    "PSCmdlet_Remove-AzContext",
    "PSCommand_Remove-AzContext",
    "PSCmdlet_Clear-AzContext",
    "PSCommand_Clear-AzContext",
    "PSCmdlet_Disconnect-AzAccount",
    "PSCommand_Disconnect-AzAccount",
    "PSCmdlet_Get-AzContextAutosaveSetting",
    "PSCommand_Get-AzContextAutosaveSetting",
    "PSCmdlet_Set-AzDefault",
    "PSCommand_Set-AzDefault",
    "PSCmdlet_Get-AzDefault",
    "PSCommand_Get-AzDefault",
    "PSCmdlet_Clear-AzDefault",
    "PSCommand_Clear-AzDefault",
    "PSCmdlet_Register-AzModule",
    "PSCommand_Register-AzModule",
    "PSCmdlet_Enable-AzureRmAlias",
    "PSCommand_Enable-AzureRmAlias",
    "PSCmdlet_Disable-AzureRmAlias",
    "PSCommand_Disable-AzureRmAlias",
    "PSCmdlet_Uninstall-AzureRm",
    "PSCommand_Uninstall-AzureRm",
    "PSCmdlet_Invoke-AzRestMethod",
    "PSCommand_Invoke-AzRestMethod",
    "PSCmdlet_Get-AzAccessToken",
    "PSCommand_Get-AzAccessToken",
    "PSCmdlet_Open-AzSurveyLink",
    "PSCommand_Open-AzSurveyLink",
    "PSCmdlet_Get-AzConfig",
    "PSCommand_Get-AzConfig",
    "PSCmdlet_Update-AzConfig",
    "PSCommand_Update-AzConfig",
    "PSCmdlet_Clear-AzConfig",
    "PSCommand_Clear-AzConfig",
    "PSCmdlet_Export-AzConfig",
    "PSCommand_Export-AzConfig",
    "PSCmdlet_Import-AzConfig",
    "PSCommand_Import-AzConfig",
    "PSIncludes_Cmdlet"
  ],
  "Type": 1,
  "UpdatedDate": null,
  "Version": {
    "Major": 2,
    "Minor": 15,
    "Build": 1,
    "Revision": -1,
    "MajorRevision": -1,
    "MinorRevision": -1
  }
}
Proposed technical implementation details (optional)

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Find-PSResource entry point and how resource metadata and Tags are surfaced. Review the PSEdition_Core and PSEdition_Desktop examples, then define how platform support, including Unix distinctions, should be represented. Done means the command reports supported platforms consistently with coverage for the agreed behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, powershell
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.