Revert "Improve PowerShell 7 support"

This commit is contained in:
Nik Charlebois 2024-08-01 12:39:58 -04:00 коммит произвёл GitHub
Родитель 0785db628b
Коммит 4b1f040694
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
6 изменённых файлов: 11 добавлений и 105 удалений

Просмотреть файл

@ -20,9 +20,6 @@
* M365DSCReport
* Update key properties for delta report in `AADGroup` resource.
FIXES [#4921](https://github.com/microsoft/Microsoft365DSC/issues/4921)
* Improve PowerShell Core support across the DSC resources.
FIXES [#4911](https://github.com/microsoft/Microsoft365DSC/issues/4911)
# 1.24.724.1

Просмотреть файл

@ -96,13 +96,6 @@
ModuleName = 'PnP.PowerShell'
RequiredVersion = '1.12.0'
},
@{
ModuleName = 'PSDesiredStateConfiguration'
RequiredVersion = '2.0.7'
PowerShellCore = $true
ExplicitLoading = $true
Prefix = 'Pwsh'
},
@{
ModuleName = 'ReverseDSC'
RequiredVersion = '2.0.0.20'

Просмотреть файл

@ -419,21 +419,12 @@ function Get-Base64EncodedImage
{
$mimeType = "image/jpeg"
}
if($icon.Extension.endsWith("png"))
{
$mimeType = "image/png"
}
if ($PSVersionTable.PSEdition -eq 'Core')
{
$base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $IconPath -AsByteStream -ReadCount 0))
}
else
{
$base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $iconPath -Encoding Byte -ReadCount 0))
}
$base64EncodedImage = [System.Convert]::ToBase64String((Get-Content -Path $iconPath -Encoding Byte -ReadCount 0))
return $("data:$($mimeType);base64,$($base64EncodedImage)")
}
else
@ -745,15 +736,7 @@ function Compare-M365DSCConfigurations
[Array]$DestinationObject = $DestinationObject | Where-Object -FilterScript { $_.ResourceName -notin $ExcludedResources }
}
$isPowerShellCore = $PSVersionTable.PSEdition -eq 'Core'
if ($isPowerShellCore)
{
$dscResourceInfo = Get-PwshDSCResource -Module 'Microsoft365DSC'
}
else
{
$dscResourceInfo = Get-DSCResource -Module 'Microsoft365DSC'
}
$dscResourceInfo = Get-DSCResource -Module 'Microsoft365DSC'
# Loop through all items in the source array
$i = 1
foreach ($sourceResource in $SourceObject)

Просмотреть файл

@ -23,7 +23,6 @@ Internal, Hidden
function Format-EXOParams
{
[CmdletBinding()]
[OutputType([System.Collections.Hashtable])]
param
(
[Parameter()]
@ -1452,7 +1451,6 @@ function Export-M365DSCConfiguration
}
$Script:M365DSCDependenciesValidated = $false
$Script:IsPowerShellCore = $PSVersionTable.PSEdition -eq 'Core'
<#
.Description
@ -1479,7 +1477,7 @@ function Confirm-M365DSCDependencies
{
$ErrorMessage += ' * ' + $invalidDependency.ModuleName + "`r`n"
}
$ErrorMessage += 'Please run Update-M365DSCDependencies as Administrator.'
$ErrorMessage += 'Please run Update-M365DSCDependencies with scope "currentUser" or as Administrator.'
$ErrorMessage += 'Please run Uninstall-M365DSCOutdatedDependencies.'
$Script:M365DSCDependenciesValidated = $false
Add-M365DSCEvent -Message $ErrorMessage -EntryType 'Error' `
@ -1524,11 +1522,6 @@ function Import-M365DSCDependencies
foreach ($dependency in $dependencies)
{
if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore)
{
Write-Verbose -Message "Skipping module {$($dependency.ModuleName)} as it is not compatible with Windows PowerShell."
continue
}
Import-Module $dependency.ModuleName -RequiredVersion $dependency.RequiredVersion -Force -Global:$Global
}
}
@ -1587,7 +1580,6 @@ Internal
function Get-M365DSCTenantDomain
{
[CmdletBinding(DefaultParameterSetName = 'AppId')]
[OutputType([System.String])]
param
(
[Parameter(ParameterSetName = 'AppId', Mandatory = $true)]
@ -3104,11 +3096,6 @@ function Update-M365DSCDependencies
{
if (-not $Force)
{
if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore)
{
Write-Verbose -Message "The dependency {$($dependency.ModuleName)} requires PowerShell Core. Skipping."
continue
}
$found = Get-Module $dependency.ModuleName -ListAvailable | Where-Object -FilterScript { $_.Version -eq $dependency.RequiredVersion }
}
@ -3125,22 +3112,10 @@ function Update-M365DSCDependencies
}
catch
{
Write-Verbose -Message "Couldn't retrieve Windows Principal. One possible cause is that the current environment is not a Windows OS."
Write-Verbose -Message "Couldn't retrieve Windows Principal. One possible cause is that the current environment is not Windows OS."
}
if (-not $errorFound)
{
if ($null -eq $dependency.PowerShellCore -and $Script:IsPowerShellCore)
{
Write-Warning "The dependency {$($dependency.ModuleName)} does not support PowerShell Core. Please install it in Windows PowerShell."
continue
}
if ($dependency.PowerShellCore -and -not $Script:IsPowerShellCore)
{
Write-Warning "The dependency {$($dependency.ModuleName)} requires PowerShell Core. Please install it in PowerShell Core."
continue
}
Write-Information -MessageData "Installing $($dependency.ModuleName) version {$($dependency.RequiredVersion)}"
Remove-Module $dependency.ModuleName -Force -ErrorAction SilentlyContinue
if ($dependency.ModuleName -like 'Microsoft.Graph*')
@ -3152,19 +3127,6 @@ function Update-M365DSCDependencies
}
}
if ($dependency.ExplicitLoading)
{
Remove-Module $dependency.ModuleName -Force -ErrorAction SilentlyContinue
if ($dependency.Prefix)
{
Import-Module $dependency.ModuleName -Global -Prefix $dependency.Prefix -Force
}
else
{
Import-Module $dependency.ModuleName -Global -Force
}
}
if (-not $found -and $validateOnly)
{
$returnValue += $dependency
@ -3621,14 +3583,7 @@ function Get-M365DSCExportContentForResource
{
if ($Script:AllM365DscResources.Count -eq 0)
{
if ($Script:IsPowerShellCore)
{
$Script:AllM365DscResources = Get-PwshDscResource -Module 'Microsoft365Dsc'
}
else
{
$Script:AllM365DscResources = Get-DscResource -Module 'Microsoft365Dsc'
}
$Script:AllM365DscResources = Get-DscResource -Module 'Microsoft365Dsc'
}
$Resource = $Script:AllM365DscResources.Where({ $_.Name -eq $ResourceName })
@ -4373,14 +4328,7 @@ function Create-M365DSCResourceExample
$ResourceName
)
if ($Script:IsPowerShellCore)
{
$resource = Get-PwshDscResource -Name $ResourceName
}
else
{
$resource = Get-DscResource -Name $ResourceName
}
$resource = Get-DscResource -Name $ResourceName
$params = Get-DSCFakeParameters -ModulePath $resource.Path
@ -4465,14 +4413,7 @@ function New-M365DSCMissingResourcesExample
{
$location = $PSScriptRoot
if ($Script:IsPowerShellCore)
{
$m365Resources = Get-PwshDscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name
}
else
{
$m365Resources = Get-DscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name
}
$m365Resources = Get-DscResource -Module Microsoft365DSC | Select-Object -ExpandProperty Name
$examplesPath = Join-Path $location -ChildPath '..\Examples\Resources'
$examples = Get-ChildItem -Path $examplesPath | Where-Object { $_.PsIsContainer } | Select-Object -ExpandProperty Name
@ -4828,14 +4769,7 @@ function Get-M365DSCConfigurationConflict
$parsedContent = ConvertTo-DSCObject -Content $ConfigurationContent
$resourcesPrimaryIdentities = @()
if ($Script:IsPowerShellCore)
{
$resourcesInModule = Get-PwshDSCResource -Module 'Microsoft365DSC'
}
else
{
$resourcesInModule = Get-DSCResource -Module 'Microsoft365DSC'
}
$resourcesInModule = Get-DSCResource -Module 'Microsoft365DSC'
foreach ($component in $parsedContent)
{
$resourceDefinition = $resourcesInModule | Where-Object -FilterScript {$_.Name -eq $component.ResourceName}

Просмотреть файл

@ -38,7 +38,6 @@ function Invoke-TestHarness
}
Import-Module -Name "$repoDir/Modules/Microsoft365DSC/Microsoft365DSC.psd1"
Import-Module -Name PSDesiredStateConfiguration -Global -Prefix 'Pwsh' -Force
$testsToRun = @()
# Run Unit Tests

Просмотреть файл

@ -41,10 +41,10 @@ that location or use PowerShell 5.1 to install the modules using 'Install-Module
Connect-PnPOnline: Could not load file or assembly 'System.IdentityModel.Tokens.Jwt, Version=6.12.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Could not find or load a specific file. (0x80131621)
```
# PSDesiredStateConfiguration needs to be installed separately
# PSDesiredStateConfiguration Needs to be Installed Separately
Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now needs to be installed separately. In an administrative PowerShell 7+ console, you can install the module by running the command:
Starting with PowerShell 7.2, the core Desired State Configuration module (PSdesiredStateConfiguration) has been decoupled from the core PowerShell build and now need to be installed separately. In a PowerShell 7+ console, you can install the module by running the command:
```powershell
Update-M365DSCDependencies -Scope AllUsers
Install-Module PSDesiredStateConfiguration -Force
```