365TUNE.psd1
|
@{ ModuleVersion = "2.3.6" GUID = "7c9c4650-e980-44ca-8092-50e0ae0ec9bc" Author = "Metawise Consulting LLC" CompanyName = "Metawise Consulting LLC" Copyright = "(c) 2025 Metawise Consulting LLC. All rights reserved." Description = "365TUNE PowerShell toolkit for Microsoft 365 license optimization, security compliance, cost reporting, and Azure permissions management." RootModule = "365TUNE.psm1" FunctionsToExport = @( "Invoke-365TUNEConnectAll", "Invoke-365TUNERevokeAll", "Invoke-365TuneConnectAzure", "Invoke-365TuneRevokeAzure", "Invoke-365TuneConnectExchange", "Invoke-365TuneRevokeExchange", "Invoke-365TuneConnectTeams", "Invoke-365TuneRevokeTeams", "Invoke-365TuneTestAzure", "Invoke-365TuneTestExchange", "Invoke-365TuneTestTeams", "Invoke-365TUNETestAll" ) CmdletsToExport = @() AliasesToExport = @() VariablesToExport = @() PrivateData = @{ PSData = @{ Tags = @("Azure","Microsoft365","M365","MSP","Licensing","Security","Compliance","CIS","Entra","GDAP","ExchangeOnline","365TUNE") ProjectUri = "https://365tune.com" LicenseUri = "https://365tune.com/Gallerylicense" ReleaseNotes = @" v2.3.6 (bug fix release) - Fixed UnsupportedFilter error in TestAzure, ConnectAzure, and RevokeAzure: root-scope role assignment queries now include principalId filter required by the Azure ARM API. Unfiltered queries at '/' scope are rejected by the API with UnsupportedFilter. v2.3.5 (bug fix release) - Fixed Cloud Shell authentication: all functions now authenticate as the signed-in user instead of the VM Managed Identity (MSI). MSI has no Graph API or Exchange Admin permissions, causing all Cloud Shell runs to fail silently or throw. - Fixed 5 misplaced backtick line-continuations in ConnectExchange, ConnectTeams, RevokeTeams that broke command parsing and caused ParameterBindingExceptions. - Fixed -TimeoutSec and -ErrorAction Stop being bound to Where-Object instead of Invoke-RestMethod in ConnectAzure and RevokeAzure (6 occurrences). - Fixed -ErrorAction Stop applied to Out-Null instead of Invoke-RestMethod in ConnectExchange and ConnectTeams, causing silent swallowing of HTTP errors. - Fixed RevokeAzure: REST queries between elevation and try/finally block were unprotected - if they threw, User Access Administrator elevation was never removed. All post-elevation code is now inside a single try/finally block. - Updated ConnectExchange and RevokeExchange .DESCRIPTION: now supported in Cloud Shell. "@ } } } |