Supported version mismatch for PSDesiredStateConfiguration
Closed this issue · 13 comments
Ran into this issue while troubleshooting why I couldn't create any lab environments.
TL;DR:
The PSDesiredStateConfiguration module v2.0.5 (current) requires PowerShell v6.1 -- Windows PowerShell v5.1 can no longer run the module, leading to syntax errors when running lab-building scripts.
System Details:
Alienware M14x
Windows Hyper-V Server 2019
Intel Core i7-2760QM
256 GB SSD
16GB RAM
Get-PSAutoLab Output:
AutoLab : C:\Autolab
PSVersion : 5.1.17763.592
PSEdition : Desktop
OS : Microsoft Hyper-V Server
FreeSpaceGB : 127.47
MemoryGB : 16
PctFreeMemory : 91.54
Processor : Intel(R) Core(TM) i7-2760QM CPU @ 2.40Ghz
IsElevated : True
RemotingEnabled : True
NetConnectionProfile : unknown
HyperV : 10.0.17763.1
PSAutoLab : 4.21.0
Lability : 0.20.0
Pester : {4.10.1, 3.4.0}
PowerShellGet : 1.0.0.1
PSDesiredStateConfiguration :
Steps to Replicate Issue:
Running Setup-Lab / Invoke-SetupLab / Unattend-Lab will produce the following error:
At C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1:2 char:15
+ Configuration AutoLab {
+ ~~~~~~~
System.Management.Automation.PSArgumentException: Cannot process argument because the value of argument "fullFilePath" is not valid. Change the value of the "fullFilePath"
argument and run the operation again.
at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser.GetFileContent(String fullFilePath)
at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser.ParseSchemaMof(String filePath)
at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.ImportClasses(String path, Tuple`2 moduleInfo, Collection`1 errors, Boolean
importInBoxResourcesImplicitly)
at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.Initialize(Collection`1 errors, List`1 modulePathList)
at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Dictionary`2 functionsToDefine, Collection`1 errors, List`1
modulePathList, Boolean cacheResourcesFromMultipleModuleVersions)
at System.Management.Automation.Language.Parser.ConfigurationStatementRule(IEnumerable`1 customAttributes, Token configurationToken)
At C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1:2 char:24
+ Configuration AutoLab {
+ ~
Unexpected token '
' in expression or statement.
At C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1:99 char:1
+ } # End AllNodes
+ ~
Unexpected token '}' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : ParserError
+ PSComputerName : LAB-HYPERV
This is due to the version mismatch. Running PowerShell v5.1 prevents you from being able to load the current v2.0.5 of PSDesiredStateConfiguration, leading to syntax errors in the build scripts.
Running Install-Module PSDesiredStateConfiguration
does not throw any errors, and all relevant files are downloaded. However, if you try to manually import the module, you get this:
PS C:\> Import-Module 'C:\Program Files\WindowsPowerShell\Modules\PSDesiredStateConfiguration\2.0.5\PSDesiredStateConfiguration.psd1'
Import-Module : The version of Windows PowerShell on this computer is '5.1.17763.592'. The module 'C:\Program
Files\WindowsPowerShell\Modules\PSDesiredStateConfiguration\2.0.5\PSDesiredStateConfiguration.psd1' requires a minimum Windows PowerShell version of '6.1' to run. Verify
that you have the minimum required version of Windows PowerShell installed, and then try again.
At line:1 char:1
+ Import-Module 'C:\Program Files\WindowsPowerShell\Modules\PSDesiredSt ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (C:\Program File...figuration.psd1:String) [Import-Module], InvalidOperationException
+ FullyQualifiedErrorId : Modules_InsufficientPowerShellVersion,Microsoft.PowerShell.Commands.ImportModuleCommand
I'm still trying to track down any previous version(s) of the PSDesiredStateConfiguration module without much success. Any help is appreciated.
You must run this module in Windows PowerShell 5.1 using PSDesiredStateConfiguration 1.1 which should be installed by default. It also looks like you are trying to install this on a Hyper-V server. I can't guarantee the module will run without errors. It was designed for use on a Windows 10 client desktop. It is possible that your server doesn't include PSDesiredStateConfiguration version 1.1 and unfortunately, you can't install the older version from the PowerShell Gallery.
Run Get-Module PSDesiredStateConfiguration -ListAvailable
and if you don't see version 1.1 you can't use this module on this system.
Bummer, looks like Hyper-V Server is toast for my PluralSight labs. Thanks for the reply!
I just setup a standard 2019 server and it has the correct module version. Does Get-Module
not show version 1.1?
My other concern is that the Hyper-V server SKU is a stripped-down version of Windows. I'm not sure what else might be missing. But I'm going to try and stand one up and test.
Sorry, I've swapped disks in the laptop to go back to Win10 and a lab is building now. I was trialling Hyper-V Server 2019 to address some performance issues and save on disk space.
I'll either spin up a VM or swap back tomorrow and run some more tests. First impression was that the PSDesiredStateConfiguration module was missing and the PSAutoLab module initiated a fetch from PSGallery, hence why v2.0.5 was present.
EDIT:
I've located the v1.1 files in Win10, so I can also have a crack at manually importing them into Hyper-V Server as a potential fix.
You shouldn't have to do anything with the module. Running the lab setup commands on Windows 10 will take care of everything.
You shouldn't have to do anything with the module. Running the lab setup commands on Windows 10 will take care of everything.
Nope, I know it works fine on the Windows 10 instance. I've reverted the laptop back to previous Win10 instance with Hyper-V and PSAutoLab configured and working. I've created a new VM and installed vanilla Hyper-V Server 2019. Device is connected to vSwitch bridged to Ethernet and is on my internal network with internet access. I'll now go through and document installation steps.
Attempt 1:
Installing PSAutoLab module with no configuration change to OS or existing PS environment.
Result >> Incomplete install - some dependencies installed before erroring out on Pester module.
PS C:\> Install-Module psautolab
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider
must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or
'C:\Users\Administrator\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by running
'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install and import the NuGet
provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by
running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): a
PackageManagement\Install-Package : A Microsoft-signed module named 'Pester' with version '3.4.0' that was previously installed
conflicts with the new module 'Pester' from publisher 'CN=DigiCert Assured ID Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US'
with version '4.10.1'. Installing the new module may result in system instability. If you still want to install or update, use
-SkipPublisherCheck parameter.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1809 char:21
+ ... $null = PackageManagement\Install-Package @PSBoundParameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Exception
+ FullyQualifiedErrorId : PublishersMismatch,Validate-ModuleAuthenticodeSignature,Microsoft.PowerShell.PackageManagement.Cmdle
ts.InstallPackage
Attempt 2:
Running Install-Module PSAutoLab -SkipPublisherCheck -Verbose
Result >> Installation completed successfully.
PS C:\> Install-Module psautolab -SkipPublisherCheck -Verbose
VERBOSE: Using the provider 'PowerShellGet' for searching packages.
VERBOSE: The -Repository parameter was not specified. PowerShellGet will use all of the registered repositories.
VERBOSE: Getting the provider object for the PackageManagement Provider 'NuGet'.
VERBOSE: The specified Location is 'https://www.powershellgallery.com/api/v2' and PackageManagementProvider is 'NuGet'.
VERBOSE: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='psautolab'' for ''.
VERBOSE: Total package yield:'1' for the specified package 'psautolab'.
VERBOSE: Performing the operation "Install-Module" on target "Version '4.21.0' of module 'PSAutoLab'".
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by
running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): a
VERBOSE: The installation scope is specified to be 'AllUsers'.
VERBOSE: The specified module will be installed in 'C:\Program Files\WindowsPowerShell\Modules'.
VERBOSE: The specified Location is 'NuGet' and PackageManagementProvider is 'NuGet'.
VERBOSE: Downloading module 'PSAutoLab' with version '4.21.0' from the repository 'https://www.powershellgallery.com/api/v2'.
VERBOSE: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='PSAutoLab'' for ''.
VERBOSE: Package 'Lability' is already installed.
VERBOSE: Searching repository 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='Pester'' for ''.
VERBOSE: Package 'Lability' is already installed.
VERBOSE: InstallPackage' - name='Pester', version='4.10.1',destination='C:\Users\Administrator\AppData\Local\Temp\2\1475697833'
VERBOSE: DownloadPackage' - name='Pester',
version='4.10.1',destination='C:\Users\Administrator\AppData\Local\Temp\2\1475697833\Pester\Pester.nupkg',
uri='https://www.powershellgallery.com/api/v2/package/Pester/4.10.1'
VERBOSE: Downloading 'https://www.powershellgallery.com/api/v2/package/Pester/4.10.1'.
VERBOSE: Completed downloading 'https://www.powershellgallery.com/api/v2/package/Pester/4.10.1'.
VERBOSE: Completed downloading 'Pester'.
VERBOSE: Hash for package 'Pester' does not match hash provided from the server.
VERBOSE: InstallPackageLocal' - name='Pester',
version='4.10.1',destination='C:\Users\Administrator\AppData\Local\Temp\2\1475697833'
VERBOSE: InstallPackage' - name='PSAutoLab', version='4.21.0',destination='C:\Users\Administrator\AppData\Local\Temp\2\1475697833'
VERBOSE: DownloadPackage' - name='PSAutoLab',
version='4.21.0',destination='C:\Users\Administrator\AppData\Local\Temp\2\1475697833\PSAutoLab\PSAutoLab.nupkg',
uri='https://www.powershellgallery.com/api/v2/package/PSAutoLab/4.21.0'
VERBOSE: Downloading 'https://www.powershellgallery.com/api/v2/package/PSAutoLab/4.21.0'.
VERBOSE: Completed downloading 'https://www.powershellgallery.com/api/v2/package/PSAutoLab/4.21.0'.
VERBOSE: Completed downloading 'PSAutoLab'.
VERBOSE: Hash for package 'PSAutoLab' does not match hash provided from the server.
VERBOSE: InstallPackageLocal' - name='PSAutoLab',
version='4.21.0',destination='C:\Users\Administrator\AppData\Local\Temp\2\1475697833'
VERBOSE: Skipping the Publisher check for the version '4.10.1' of module 'Pester'.
VERBOSE: Installing the dependency module 'Pester' with version '4.10.1' for the module 'PSAutoLab'.
VERBOSE: Module 'Pester' was installed successfully to path 'C:\Program Files\WindowsPowerShell\Modules\Pester\4.10.1'.
VERBOSE: Skipping the Publisher check for the version '4.21.0' of module 'PSAutoLab'.
VERBOSE: Module 'PSAutoLab' was installed successfully to path 'C:\Program Files\WindowsPowerShell\Modules\PSAutoLab\4.21.0'.
PS C:\>
Reviewing installed modules:
PS C:\> Get-Module -ListAvailable
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 0.20.0 Lability {Checkpoint-Lab, Clear-LabModuleCache, Clear-ModulePath, Export-LabHos...
Script 1.0.1 Microsoft.PowerShell.Operation.V... {Get-OperationValidation, Invoke-OperationValidation}
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource...}
Script 4.10.1 Pester {Describe, Context, It, Should...}
Script 3.4.0 Pester {Describe, Context, It, Should...}
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...}
Script 4.21.0 PSAutoLab {Enable-Internet, Invoke-RefreshLab, Invoke-RunLab, Invoke-SetupLab...}
Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remove-PSReadLine...
Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 2.0.1.0 Appx {Add-AppxPackage, Get-AppxPackage, Get-AppxPackageManifest, Remove-App...
Manifest 1.0 BestPractices {Get-BpaModel, Get-BpaResult, Invoke-BpaModel, Set-BpaResult}
Manifest 2.0.0.0 BitsTransfer {Add-BitsFile, Complete-BitsTransfer, Get-BitsTransfer, Remove-BitsTra...
Manifest 1.0.0.0 CimCmdlets {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-CimSess...
Manifest 1.0 ConfigCI {Get-SystemDriver, New-CIPolicyRule, New-CIPolicy, Get-CIPolicy...}
Manifest 1.0 Defender {Get-MpPreference, Set-MpPreference, Add-MpPreference, Remove-MpPrefer...
Manifest 1.0.1.0 DeliveryOptimization {Get-DeliveryOptimizationStatus, Get-DeliveryOptimizationPerfSnap, Get...
Script 3.0 Dism {Add-AppxProvisionedPackage, Add-WindowsDriver, Add-WindowsCapability,...
Manifest 1.0.0.0 DnsClient {Resolve-DnsName, Clear-DnsClientCache, Get-DnsClient, Get-DnsClientCa...
Manifest 1.0.0.0 EventTracingManagement {Start-EtwTraceSession, New-EtwTraceSession, Get-EtwTraceSession, Upda...
Manifest 1.0.0.0 HgsClient {Get-HgsAttestationBaselinePolicy, Get-HgsClientConfiguration, Test-Hg...
Manifest 1.0.0.0 HgsDiagnostics {New-HgsTraceTarget, Get-HgsTrace, Get-HgsTraceFileData, Test-HgsTrace...
Binary 2.0.0.0 Hyper-V {Add-VMAssignableDevice, Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VM...
Binary 1.1 Hyper-V {Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VMHardDiskDrive, Add-VMMig...
Manifest 2.0.0.0 International {Get-WinDefaultInputMethodOverride, Set-WinDefaultInputMethodOverride,...
Manifest 1.0.0.0 iSCSI {Get-IscsiTargetPortal, New-IscsiTargetPortal, Remove-IscsiTargetPorta...
Manifest 2.0.0.0 IscsiTarget {Add-ClusteriSCSITargetServerRole, Add-IscsiVirtualDiskTargetMapping, ...
Manifest 1.0.0.0 Kds {Add-KdsRootKey, Get-KdsRootKey, Test-KdsRootKey, Set-KdsConfiguration...
Manifest 1.0.1.0 Microsoft.PowerShell.Archive {Compress-Archive, Expand-Archive}
Manifest 3.0.0.0 Microsoft.PowerShell.Diagnostics {Get-WinEvent, Get-Counter, Import-Counter, Export-Counter...}
Manifest 3.0.0.0 Microsoft.PowerShell.Host {Start-Transcript, Stop-Transcript}
Manifest 1.0.0.0 Microsoft.PowerShell.LocalAccounts {Add-LocalGroupMember, Disable-LocalUser, Enable-LocalUser, Get-LocalG...
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clear-Content, Clear-ItemProperty, Join-Path...}
Script 1.0 Microsoft.PowerShell.ODataUtils Export-ODataEndpointProxy
Manifest 3.0.0.0 Microsoft.PowerShell.Security {Get-Acl, Set-Acl, Get-PfxCertificate, Get-Credential...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Format-List, Format-Custom, Format-Table, Format-Wide...}
Manifest 3.0.0.0 Microsoft.WSMan.Management {Disable-WSManCredSSP, Enable-WSManCredSSP, Get-WSManCredSSP, Set-WSMa...
Manifest 1.0 MMAgent {Disable-MMAgent, Enable-MMAgent, Set-MMAgent, Get-MMAgent...}
Manifest 1.0.0.0 MsDtc {New-DtcDiagnosticTransaction, Complete-DtcDiagnosticTransaction, Join...
Manifest 2.0.0.0 NetAdapter {Disable-NetAdapter, Disable-NetAdapterBinding, Disable-NetAdapterChec...
Manifest 1.0.0.0 NetConnection {Get-NetConnectionProfile, Set-NetConnectionProfile}
Manifest 1.0.0.0 NetDiagnostics Get-NetView
Manifest 1.0.0.0 NetEventPacketCapture {New-NetEventSession, Remove-NetEventSession, Get-NetEventSession, Set...
Manifest 2.0.0.0 NetLbfo {Add-NetLbfoTeamMember, Add-NetLbfoTeamNic, Get-NetLbfoTeam, Get-NetLb...
Manifest 1.0.0.0 NetNat {Get-NetNat, Get-NetNatExternalAddress, Get-NetNatStaticMapping, Get-N...
Manifest 2.0.0.0 NetQos {Get-NetQosPolicy, Set-NetQosPolicy, Remove-NetQosPolicy, New-NetQosPo...
Manifest 2.0.0.0 NetSecurity {Get-DAPolicyChange, New-NetIPsecAuthProposal, New-NetIPsecMainModeCry...
Manifest 1.0.0.0 NetSwitchTeam {New-NetSwitchTeam, Remove-NetSwitchTeam, Get-NetSwitchTeam, Rename-Ne...
Manifest 1.0.0.0 NetTCPIP {Get-NetIPAddress, Get-NetIPInterface, Get-NetIPv4Protocol, Get-NetIPv...
Manifest 1.0.0.0 NetWNV {Get-NetVirtualizationProviderAddress, Get-NetVirtualizationGlobal, Ge...
Manifest 1.0 NFS {Get-NfsMappedIdentity, Get-NfsNetgroup, Install-NfsMappingStore, New-...
Manifest 1.0.0.0 PcsvDevice {Get-PcsvDevice, Start-PcsvDevice, Stop-PcsvDevice, Restart-PcsvDevice...
Binary 1.0.0.0 PersistentMemory {Get-PmemDisk, Get-PmemPhysicalDevice, Get-PmemUnusedRegion, New-PmemD...
Manifest 1.0.0.0 PKI {Add-CertificateEnrollmentPolicyServer, Export-Certificate, Export-Pfx...
Manifest 1.0.0.0 PlatformIdentifier Get-PlatformIdentifier
Manifest 1.0.0.0 PnpDevice {Get-PnpDevice, Get-PnpDeviceProperty, Enable-PnpDevice, Disable-PnpDe...
Binary 1.0.11 ProcessMitigations {Get-ProcessMitigation, Set-ProcessMitigation, ConvertTo-ProcessMitiga...
Script 1.0.0.0 PSDiagnostics {Disable-PSTrace, Disable-PSWSManCombinedTrace, Disable-WSManTrace, En...
Binary 1.1.0.0 PSScheduledJob {New-JobTrigger, Add-JobTrigger, Remove-JobTrigger, Get-JobTrigger...}
Manifest 2.0.0.0 PSWorkflow {New-PSWorkflowExecutionOption, New-PSWorkflowSession, nwsn}
Manifest 1.0.0.0 PSWorkflowUtility Invoke-AsWorkflow
Manifest 2.0.0.0 RemoteDesktop {Get-RDCertificate, Set-RDCertificate, New-RDCertificate, New-RDVirtua...
Manifest 1.0.0.0 ScheduledTasks {Get-ScheduledTask, Set-ScheduledTask, Register-ScheduledTask, Unregis...
Manifest 2.0.0.0 SecureBoot {Confirm-SecureBootUEFI, Set-SecureBootUEFI, Get-SecureBootUEFI, Forma...
Manifest 1.0.0.0 SecurityCmdlets {Backup-SecurityPolicy, Restore-SecurityPolicy, Backup-AuditPolicy, Re...
Script 1.0.0.0 ServerCore {Get-DisplayResolution, Set-DisplayResolution}
Script 2.0.0.0 ServerManager {Get-WindowsFeature, Install-WindowsFeature, Uninstall-WindowsFeature,...
Cim 1.0.0.0 ServerManagerTasks {Get-SMCounterSample, Get-SMPerformanceCollector, Start-SMPerformanceC...
Manifest 2.0.0.0 SmbShare {Get-SmbShare, Remove-SmbShare, Set-SmbShare, Block-SmbShareAccess...}
Manifest 2.0.0.0 SmbWitness {Get-SmbWitnessClient, Move-SmbWitnessClient, gsmbw, msmbw...}
Manifest 2.0.0.0 SoftwareInventoryLogging {Get-SilComputer, Get-SilComputerIdentity, Get-SilSoftware, Get-SilWin...
Manifest 2.0.0.0 Storage {Add-InitiatorIdToMaskingSet, Add-PartitionAccessPath, Add-PhysicalDis...
Manifest 1.0.0.0 StorageBusCache {Clear-StorageBusDisk, Disable-StorageBusCache, Disable-StorageBusDisk...
Manifest 2.0.0.0 TLS {New-TlsSessionTicketKey, Enable-TlsSessionTicketKey, Disable-TlsSessi...
Manifest 2.0.0.0 TrustedPlatformModule {Get-Tpm, Initialize-Tpm, Clear-Tpm, Unblock-Tpm...}
Manifest 1.0.0.0 UserAccessLogging {Enable-Ual, Disable-Ual, Get-Ual, Get-UalDns...}
Manifest 1.0.0.0 Wdac {Get-OdbcDriver, Set-OdbcDriver, Get-OdbcDsn, Add-OdbcDsn...}
Manifest 2.0.0.0 Whea {Get-WheaMemoryPolicy, Set-WheaMemoryPolicy}
Script 1.0 WindowsErrorReporting {Enable-WindowsErrorReporting, Disable-WindowsErrorReporting, Get-Wind...
Manifest 1.0.0.0 WindowsUpdate Get-WindowsUpdateLog
Manifest 1.0.0.2 WindowsUpdateProvider {Get-WUAVersion, Get-WULastInstallationDate, Get-WULastScanSuccessDate...
PS C:\>
Current State (cont.)
PS C:\> Get-PSAutoLabSetting
AutoLab : C:\Lability
PSVersion : 5.1.17763.592
PSEdition : Desktop
OS : Microsoft Hyper-V Server
FreeSpaceGB : 119.14
MemoryGB : 1
PctFreeMemory : 19.68
Processor : Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz
IsElevated : True
RemotingEnabled : True
NetConnectionProfile : unknown
HyperV : 10.0.17763.1
PSAutolab : 4.21.0
Lability : 0.20.0
Pester : {4.10.1, 3.4.0}
PowerShellGet : 1.0.0.1
PSDesiredStateConfiguration :
WARNING: The network connection profile for LabNet is not set to Private or DomainAuthenticated. Commands that rely on PowerShell
remoting may fail.
WARNING: You may not have enough memory. 16GB or more is recommended
PS C:\>
Initiating Setup-Host
This is the Setup-Host script. This script will perform the following:
* For PowerShell Remoting, configure the host 'TrustedHosts' value to *
* Install the Lability module from PSGallery
* Update the Pester module if necessary
* Install Hyper-V
* Create the C:\Autolab folder (DO NOT DELETE)
* Copy configurations and resources to C:\Autolab
* You will then need to reboot the host before continuing
!!IMPORTANT SECURITY NOTE!!
This module will set trusted hosts to connect to any machine on the local network.
This is NOT a recommended security practice. It is assumed you are installing this
module on a non-production machine and are willing to accept this potential risk
for the sake of a training and test environment.
If you do not want to proceed, press Ctrl-C.
Press Enter to continue...:
Setting TrustedHosts so that remoting commands to VMs work properly
TrustedHosts is already set to *. No changes needed
Pester version 4.10.1 verified
Version 0.20.0 of Lability is already installed
ConfigurationPath : C:\Autolab\Configurations
DifferencingVhdPath : C:\Autolab\VMVirtualHardDisks
HotfixPath : C:\Autolab\Hotfixes
IsoPath : C:\Autolab\ISOs
ModuleCachePath : C:\ProgramData\Lability\Modules
ParentVhdPath : C:\Autolab\MasterVirtualHardDisks
RepositoryUri : https://www.powershellgallery.com/api/v2/package
ResourcePath : C:\Autolab\Resources
ResourceShareName : Resources
DisableLocalFileCaching : False
DisableSwitchEnvironmentName : False
DisableVhdEnvironmentName : False
EnableCallStackLogging : False
DismPath : C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Dism\Microsoft.Dism.PowerShell.dll
Starting to Initialize host and install Hyper-V
WARNING: [6:42:55 AM] DSC resource 'Test-WindowsFeatureTargetResource' failed with errror 'The term
'Test-WindowsFeatureTargetResource' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.'.
WARNING: [6:42:55 AM] DSC resource 'Set-WindowsFeatureTargetResource' failed with errror 'The term
'Set-WindowsFeatureTargetResource' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.'.
WARNING: [6:42:55 AM] DSC resource 'Test-WindowsFeatureTargetResource' failed with errror 'The term
'Test-WindowsFeatureTargetResource' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.'.
WARNING: [6:42:55 AM] DSC resource 'Set-WindowsFeatureTargetResource' failed with errror 'The term
'Set-WindowsFeatureTargetResource' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.'.
Copying configs to C:\Autolab\Configurations
The localhost is about to reboot.
After the reboot, open a Windows PowerShell prompt, navigate to a configuration directory
C:\Autolab\Configurations\<yourconfigfolder>
And run:
PS C:\Autolab\Configurations\<yourconfigfolder>Setup-Lab -ignorependingreboot
or
PS C:\Autolab\Configurations\<yourconfigfolder>Unattend-Lab -ignorependingreboot
WARNING: System needs to reboot, especially if you just installed Hyper-V.
Do you wish to reboot now? (y/n):
Reboot initiated
Navigate to C:\AutoLab\Configurations\SingleServer and run Setup-Lab -Verbose
PS C:\Autolab\Configurations\SingleServer> Setup-Lab -Verbose
VERBOSE: Starting Invoke-SetupLab
This is the Setup-Lab script. This script will perform the following:
* Run the configs to generate the required .mof files
Note! - If there is an error creating the .mofs, the setup will fail
* Run the lab setup
Note! If this is the first time you have run this, it can take several
hours to download the ISO files and resources depending on the configuration.
You may also see new drives being added and removed as the ISO is mounted
and converted. This step should only happen the first time you run this
command.
** Possible problem
If the downloads finish but the script doesn't continue (pauses),
press the Enter key once and it should continue
*You will be able to wipe and rebuild this lab without needing to perform
the downloads again.
VERBOSE:
Name Value
---- -----
SubnetMask 24
LabPassword P@ssw0rd
FirewallRuleNames {FPS-ICMP4-ERQ-In, FPS-ICMP6-ERQ-In, FPS-SMB-In-TCP, WMI-WINMGMT-In-TCP-NoScope...}
PSDscAllowPlainTextPassword True
SecureBoot False
PSDscAllowDomainUser True
Lability_MaximumMemory 3221225472
InterfaceAlias Ethernet
IPNetwork 192.168.3.0/24
DefaultGateway 192.168.3.1
AddressFamily IPv4
Lability_ProcessorCount 1
Lability_SwitchName LabNet
IPNatName LabNat
NodeName *
Lability_MinimumMemory 1073741824
DnsServerAddress 1.1.1.1
Lability_Media 2016_x64_Standard_Core_EN_Eval
Lability_Media 2019_x64_Standard_EN_Core_Eval
NodeName S1
Lability_ProcessorCount 1
Lability_BootOrder 20
Lability_StartupMemory 1073741824
IPAddress 192.168.3.19
VERBOSE: Install DSC Resource modules specified in the .PSD1
Installing required DSCResource modules from PSGallery
You may need to say "yes" to a Nuget Provider
VERBOSE: Using the provider 'Bootstrap' for searching packages.
VERBOSE: Finding the package 'Bootstrap::FindPackage' 'nuget','','','''.
VERBOSE: Installing the package 'https://onegetcdn.azureedge.net/providers/nuget-2.8.5.208.package.swidtag'.
VERBOSE: Installed the package 'nuget' to 'C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll'.
VERBOSE: Skipping previously processed assembly: C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll.
VERBOSE: Importing the package provider nuget
VERBOSE: The provider 'NuGet' has already been imported. Trying to import it again.
VERBOSE: Loading an assembly 'C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll'.
VERBOSE: Imported provider 'C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll' .
install xPSDesiredStateConfiguration version 9.1.0
VERBOSE: Performing the operation "Install-Module" on target "xPSDesiredStateConfiguration".
install xComputerManagement version 4.1.0.0
VERBOSE: Performing the operation "Install-Module" on target "xComputerManagement".
install xNetworking version 5.7.0.0
VERBOSE: Performing the operation "Install-Module" on target "xNetworking".
VERBOSE: Run the config to generate the .mof files
Build the .Mof files from the configs
VERBOSE: Performing the operation "Invoke-SetupLab" on target "C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1".
At C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1:2 char:15
+ Configuration AutoLab {
+ ~~~~~~~
System.Management.Automation.PSArgumentException: Cannot process argument because the value of argument "fullFilePath" is not valid. Change the value of the
"fullFilePath" argument and run the operation again.
at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser.GetFileContent(String fullFilePath)
at Microsoft.PowerShell.DesiredStateConfiguration.CimDSCParser.ParseSchemaMof(String filePath)
at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.ImportClasses(String path, Tuple`2 moduleInfo, Collection`1 errors, Boolean
importInBoxResourcesImplicitly)
at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.Initialize(Collection`1 errors, List`1 modulePathList)
at Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache.LoadDefaultCimKeywords(Dictionary`2 functionsToDefine, Collection`1 errors, List`1
modulePathList, Boolean cacheResourcesFromMultipleModuleVersions)
at System.Management.Automation.Language.Parser.ConfigurationStatementRule(IEnumerable`1 customAttributes, Token configurationToken)
At C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1:2 char:24
+ Configuration AutoLab {
+ ~
Unexpected token '
' in expression or statement.
At C:\Autolab\Configurations\SingleServer\VMConfiguration.ps1:99 char:1
+ } # End AllNodes
+ ~
Unexpected token '}' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : ParserError
Building the lab environment for SingleServer
VERBOSE: Using these start parameters
VERBOSE:
Name Value
---- -----
Password System.Security.SecureString
NoSnapshot True
WarningAction SilentlyContinue
Path C:\Autolab\Configurations\SingleServer
ErrorAction stop
IgnorePendingReboot True
ConfigurationData {AllNodes, NonNodeData}
VERBOSE: Performing the operation "Start-LabConfiguration" on target "SingleServer".
VERBOSE: Invoking Start-LabConfiguration
Failed to start lab configuration.
Get-LabDscModule : Cannot bind argument to parameter 'Path' because it is null.
At line:38 char:33
+ ... ourcePath = Get-LabDscModule -ModuleName $ModuleName -ResourceName $R ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-LabDscModule], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Get-LabDscModule
PS C:\Autolab\Configurations\SingleServer>
This is the original error - checking installed modules now:
PS C:\Autolab\Configurations\SingleServer> Get-Module -ListAvailable
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 0.20.0 Lability {Checkpoint-Lab, Clear-LabModuleCache, Clear-ModulePath, Export-LabHostConfiguration...}
Script 1.0.1 Microsoft.PowerShell.Operation.V... {Get-OperationValidation, Invoke-OperationValidation}
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource...}
Script 4.10.1 Pester {Describe, Context, It, Should...}
Script 3.4.0 Pester {Describe, Context, It, Should...}
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...}
Script 4.21.0 PSAutoLab {Enable-Internet, Invoke-RefreshLab, Invoke-RunLab, Invoke-SetupLab...}
Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Set-PSReadLineKeyHandler, Remove-PSReadLineKeyHandler, Get-PSReadLineOption...}
Manifest 4.1.0.0 xComputerManagement
Manifest 5.7.0.0 xNetworking
Script 9.1.0 xPSDesiredStateConfiguration {Publish-DscModuleAndMof, Publish-ModulesAndChecksum, Publish-MofsInSource, Publish-ModuleToPullServer...}
Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 2.0.1.0 Appx {Add-AppxPackage, Get-AppxPackage, Get-AppxPackageManifest, Remove-AppxPackage...}
Manifest 1.0 BestPractices {Get-BpaModel, Get-BpaResult, Invoke-BpaModel, Set-BpaResult}
Manifest 2.0.0.0 BitsTransfer {Add-BitsFile, Complete-BitsTransfer, Get-BitsTransfer, Remove-BitsTransfer...}
Manifest 1.0.0.0 CimCmdlets {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-CimSession...}
Manifest 1.0 ConfigCI {Get-SystemDriver, New-CIPolicyRule, New-CIPolicy, Get-CIPolicy...}
Manifest 1.0 Defender {Get-MpPreference, Set-MpPreference, Add-MpPreference, Remove-MpPreference...}
Manifest 1.0.1.0 DeliveryOptimization {Get-DeliveryOptimizationStatus, Get-DeliveryOptimizationPerfSnap, Get-DeliveryOptimizationLog, Get-DOConf...
Script 3.0 Dism {Add-AppxProvisionedPackage, Add-WindowsDriver, Add-WindowsCapability, Add-WindowsImage...}
Manifest 1.0.0.0 DnsClient {Resolve-DnsName, Clear-DnsClientCache, Get-DnsClient, Get-DnsClientCache...}
Manifest 1.0.0.0 EventTracingManagement {Start-EtwTraceSession, New-EtwTraceSession, Get-EtwTraceSession, Update-EtwTraceSession...}
Manifest 1.0.0.0 HgsClient {Get-HgsAttestationBaselinePolicy, Get-HgsClientConfiguration, Test-HgsClientConfiguration, Set-HgsClientC...
Manifest 1.0.0.0 HgsDiagnostics {New-HgsTraceTarget, Get-HgsTrace, Get-HgsTraceFileData, Test-HgsTraceTarget}
Binary 2.0.0.0 Hyper-V {Add-VMAssignableDevice, Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VMGpuPartitionAdapter...}
Binary 1.1 Hyper-V {Add-VMDvdDrive, Add-VMFibreChannelHba, Add-VMHardDiskDrive, Add-VMMigrationNetwork...}
Manifest 2.0.0.0 International {Get-WinDefaultInputMethodOverride, Set-WinDefaultInputMethodOverride, Get-WinHomeLocation, Set-WinHomeLoc...
Manifest 1.0.0.0 iSCSI {Get-IscsiTargetPortal, New-IscsiTargetPortal, Remove-IscsiTargetPortal, Update-IscsiTargetPortal...}
Manifest 2.0.0.0 IscsiTarget {Add-ClusteriSCSITargetServerRole, Add-IscsiVirtualDiskTargetMapping, Checkpoint-IscsiVirtualDisk, Convert...
Manifest 1.0.0.0 Kds {Add-KdsRootKey, Get-KdsRootKey, Test-KdsRootKey, Set-KdsConfiguration...}
Manifest 1.0.1.0 Microsoft.PowerShell.Archive {Compress-Archive, Expand-Archive}
Manifest 3.0.0.0 Microsoft.PowerShell.Diagnostics {Get-WinEvent, Get-Counter, Import-Counter, Export-Counter...}
Manifest 3.0.0.0 Microsoft.PowerShell.Host {Start-Transcript, Stop-Transcript}
Manifest 1.0.0.0 Microsoft.PowerShell.LocalAccounts {Add-LocalGroupMember, Disable-LocalUser, Enable-LocalUser, Get-LocalGroup...}
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clear-Content, Clear-ItemProperty, Join-Path...}
Script 1.0 Microsoft.PowerShell.ODataUtils Export-ODataEndpointProxy
Manifest 3.0.0.0 Microsoft.PowerShell.Security {Get-Acl, Set-Acl, Get-PfxCertificate, Get-Credential...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Format-List, Format-Custom, Format-Table, Format-Wide...}
Manifest 3.0.0.0 Microsoft.WSMan.Management {Disable-WSManCredSSP, Enable-WSManCredSSP, Get-WSManCredSSP, Set-WSManQuickConfig...}
Manifest 1.0 MMAgent {Disable-MMAgent, Enable-MMAgent, Set-MMAgent, Get-MMAgent...}
Manifest 1.0.0.0 MsDtc {New-DtcDiagnosticTransaction, Complete-DtcDiagnosticTransaction, Join-DtcDiagnosticResourceManager, Recei...
Manifest 2.0.0.0 NetAdapter {Disable-NetAdapter, Disable-NetAdapterBinding, Disable-NetAdapterChecksumOffload, Disable-NetAdapterEncap...
Manifest 1.0.0.0 NetConnection {Get-NetConnectionProfile, Set-NetConnectionProfile}
Manifest 1.0.0.0 NetDiagnostics Get-NetView
Manifest 1.0.0.0 NetEventPacketCapture {New-NetEventSession, Remove-NetEventSession, Get-NetEventSession, Set-NetEventSession...}
Manifest 2.0.0.0 NetLbfo {Add-NetLbfoTeamMember, Add-NetLbfoTeamNic, Get-NetLbfoTeam, Get-NetLbfoTeamMember...}
Manifest 1.0.0.0 NetNat {Get-NetNat, Get-NetNatExternalAddress, Get-NetNatStaticMapping, Get-NetNatSession...}
Manifest 2.0.0.0 NetQos {Get-NetQosPolicy, Set-NetQosPolicy, Remove-NetQosPolicy, New-NetQosPolicy}
Manifest 2.0.0.0 NetSecurity {Get-DAPolicyChange, New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-NetIPsecQuickModeCr...
Manifest 1.0.0.0 NetSwitchTeam {New-NetSwitchTeam, Remove-NetSwitchTeam, Get-NetSwitchTeam, Rename-NetSwitchTeam...}
Manifest 1.0.0.0 NetTCPIP {Get-NetIPAddress, Get-NetIPInterface, Get-NetIPv4Protocol, Get-NetIPv6Protocol...}
Manifest 1.0.0.0 NetWNV {Get-NetVirtualizationProviderAddress, Get-NetVirtualizationGlobal, Get-NetVirtualizationLookupRecord, Get...
Manifest 1.0 NFS {Get-NfsMappedIdentity, Get-NfsNetgroup, Install-NfsMappingStore, New-NfsMappedIdentity...}
Manifest 1.0.0.0 PcsvDevice {Get-PcsvDevice, Start-PcsvDevice, Stop-PcsvDevice, Restart-PcsvDevice...}
Binary 1.0.0.0 PersistentMemory {Get-PmemDisk, Get-PmemPhysicalDevice, Get-PmemUnusedRegion, New-PmemDisk...}
Manifest 1.0.0.0 PKI {Add-CertificateEnrollmentPolicyServer, Export-Certificate, Export-PfxCertificate, Get-CertificateAutoEnro...
Manifest 1.0.0.0 PlatformIdentifier Get-PlatformIdentifier
Manifest 1.0.0.0 PnpDevice {Get-PnpDevice, Get-PnpDeviceProperty, Enable-PnpDevice, Disable-PnpDevice}
Binary 1.0.11 ProcessMitigations {Get-ProcessMitigation, Set-ProcessMitigation, ConvertTo-ProcessMitigationPolicy}
Script 1.0.0.0 PSDiagnostics {Disable-PSTrace, Disable-PSWSManCombinedTrace, Disable-WSManTrace, Enable-PSTrace...}
Binary 1.1.0.0 PSScheduledJob {New-JobTrigger, Add-JobTrigger, Remove-JobTrigger, Get-JobTrigger...}
Manifest 2.0.0.0 PSWorkflow {New-PSWorkflowExecutionOption, New-PSWorkflowSession, nwsn}
Manifest 1.0.0.0 PSWorkflowUtility Invoke-AsWorkflow
Manifest 2.0.0.0 RemoteDesktop {Get-RDCertificate, Set-RDCertificate, New-RDCertificate, New-RDVirtualDesktopDeployment...}
Manifest 1.0.0.0 ScheduledTasks {Get-ScheduledTask, Set-ScheduledTask, Register-ScheduledTask, Unregister-ScheduledTask...}
Manifest 2.0.0.0 SecureBoot {Confirm-SecureBootUEFI, Set-SecureBootUEFI, Get-SecureBootUEFI, Format-SecureBootUEFI...}
Manifest 1.0.0.0 SecurityCmdlets {Backup-SecurityPolicy, Restore-SecurityPolicy, Backup-AuditPolicy, Restore-AuditPolicy}
Script 1.0.0.0 ServerCore {Get-DisplayResolution, Set-DisplayResolution}
Script 2.0.0.0 ServerManager {Get-WindowsFeature, Install-WindowsFeature, Uninstall-WindowsFeature, Enable-ServerManagerStandardUserRem...
Cim 1.0.0.0 ServerManagerTasks {Get-SMCounterSample, Get-SMPerformanceCollector, Start-SMPerformanceCollector, Stop-SMPerformanceCollecto...
Manifest 2.0.0.0 SmbShare {Get-SmbShare, Remove-SmbShare, Set-SmbShare, Block-SmbShareAccess...}
Manifest 2.0.0.0 SmbWitness {Get-SmbWitnessClient, Move-SmbWitnessClient, gsmbw, msmbw...}
Manifest 2.0.0.0 SoftwareInventoryLogging {Get-SilComputer, Get-SilComputerIdentity, Get-SilSoftware, Get-SilWindowsUpdate...}
Manifest 2.0.0.0 Storage {Add-InitiatorIdToMaskingSet, Add-PartitionAccessPath, Add-PhysicalDisk, Add-StorageFaultDomain...}
Manifest 1.0.0.0 StorageBusCache {Clear-StorageBusDisk, Disable-StorageBusCache, Disable-StorageBusDisk, Enable-StorageBusCache...}
Manifest 2.0.0.0 TLS {New-TlsSessionTicketKey, Enable-TlsSessionTicketKey, Disable-TlsSessionTicketKey, Export-TlsSessionTicket...
Manifest 2.0.0.0 TrustedPlatformModule {Get-Tpm, Initialize-Tpm, Clear-Tpm, Unblock-Tpm...}
Manifest 1.0.0.0 UserAccessLogging {Enable-Ual, Disable-Ual, Get-Ual, Get-UalDns...}
Manifest 1.0.0.0 Wdac {Get-OdbcDriver, Set-OdbcDriver, Get-OdbcDsn, Add-OdbcDsn...}
Manifest 2.0.0.0 Whea {Get-WheaMemoryPolicy, Set-WheaMemoryPolicy}
Script 1.0 WindowsErrorReporting {Enable-WindowsErrorReporting, Disable-WindowsErrorReporting, Get-WindowsErrorReporting}
Manifest 1.0.0.0 WindowsUpdate Get-WindowsUpdateLog
Manifest 1.0.0.2 WindowsUpdateProvider {Get-WUAVersion, Get-WULastInstallationDate, Get-WULastScanSuccessDate, Get-WUIsPendingReboot...}
PS C:\Autolab\Configurations\SingleServer>
Module PSDesiredStateConfiguration is not installed.
Checking the module directories confirms:
PS C:\Autolab\Configurations\SingleServer> dir 'C:\Program Files\WindowsPowerShell\Modules\'
Directory: C:\Program Files\WindowsPowerShell\Modules
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 4/17/2022 6:22 AM Lability
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Operation.Validation
d----- 9/15/2018 12:11 AM PackageManagement
d----- 4/17/2022 6:30 AM Pester
d----- 9/15/2018 12:11 AM PowerShellGet
d----- 4/17/2022 6:30 AM PSAutoLab
d----- 9/15/2018 12:11 AM PSReadline
d----- 4/17/2022 6:46 AM xComputerManagement
d----- 4/17/2022 6:46 AM xNetworking
d----- 4/17/2022 6:46 AM xPSDesiredStateConfiguration
PS C:\Autolab\Configurations\SingleServer> dir 'C:\Program Files (x86)\WindowsPowerShell\Modules\'
Directory: C:\Program Files (x86)\WindowsPowerShell\Modules
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Operation.Validation
d----- 9/15/2018 12:11 AM PackageManagement
d----- 9/15/2018 12:11 AM Pester
d----- 9/15/2018 12:11 AM PowerShellGet
PS C:\Autolab\Configurations\SingleServer> dir C:\Windows\System32\WindowsPowerShell\v1.0\Modules\
Directory: C:\Windows\System32\WindowsPowerShell\v1.0\Modules
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 9/15/2018 1:51 AM Appx
d----- 9/15/2018 1:51 AM BestPractices
d---s- 9/15/2018 12:11 AM BitsTransfer
d----- 9/15/2018 12:11 AM CimCmdlets
d---s- 9/15/2018 1:51 AM ConfigCI
d----- 9/15/2018 12:11 AM Defender
d---s- 9/15/2018 12:11 AM DeliveryOptimization
d----- 9/15/2018 1:51 AM Dism
d----- 9/15/2018 12:11 AM DnsClient
d----- 9/15/2018 12:11 AM EventTracingManagement
d---s- 9/15/2018 1:51 AM HgsClient
d----- 9/15/2018 12:11 AM HgsDiagnostics
d----- 9/15/2018 12:11 AM Hyper-V
d---s- 9/15/2018 12:11 AM International
d----- 9/15/2018 12:11 AM iSCSI
d----- 9/15/2018 1:51 AM IscsiTarget
d---s- 9/15/2018 1:51 AM Kds
d----- 9/6/2019 5:16 PM Microsoft.PowerShell.Archive
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Diagnostics
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Host
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.LocalAccounts
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Management
d----- 9/15/2018 1:51 AM Microsoft.PowerShell.ODataUtils
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Security
d----- 9/15/2018 12:11 AM Microsoft.PowerShell.Utility
d----- 9/15/2018 12:11 AM Microsoft.WSMan.Management
d---s- 9/15/2018 12:11 AM MMAgent
d----- 9/15/2018 1:51 AM MsDtc
d----- 9/15/2018 12:11 AM NetAdapter
d----- 9/15/2018 12:11 AM NetConnection
d---s- 9/15/2018 12:11 AM NetDiagnostics
d----- 9/15/2018 12:11 AM NetEventPacketCapture
d----- 9/15/2018 12:11 AM NetLbfo
d----- 9/15/2018 12:11 AM NetNat
d----- 9/15/2018 12:11 AM NetQos
d----- 9/15/2018 1:51 AM NetSecurity
d----- 9/15/2018 12:11 AM NetSwitchTeam
d----- 9/15/2018 12:11 AM NetTCPIP
d----- 9/15/2018 12:11 AM NetWNV
d----- 9/15/2018 12:11 AM NFS
d----- 9/15/2018 12:11 AM PcsvDevice
d----- 9/15/2018 1:51 AM PersistentMemory
d---s- 9/15/2018 1:51 AM PKI
d---s- 9/15/2018 12:11 AM PlatformIdentifier
d----- 9/15/2018 12:11 AM PnpDevice
d---s- 9/15/2018 1:51 AM ProcessMitigations
d----- 9/15/2018 12:11 AM PSDiagnostics
d----- 9/15/2018 12:11 AM PSScheduledJob
d----- 9/15/2018 12:11 AM PSWorkflow
d----- 9/15/2018 12:11 AM PSWorkflowUtility
d----- 9/6/2019 5:16 PM RemoteDesktop
d----- 9/15/2018 12:11 AM ScheduledTasks
d---s- 9/15/2018 1:51 AM SecureBoot
d---s- 9/15/2018 12:11 AM SecurityCmdlets
d---s- 9/15/2018 12:11 AM ServerCore
d----- 9/15/2018 1:51 AM ServerManager
d---s- 9/15/2018 12:11 AM ServerManagerTasks
d---s- 9/15/2018 1:51 AM SmbShare
d----- 9/15/2018 12:11 AM SmbWitness
d---s- 9/15/2018 12:11 AM SoftwareInventoryLogging
d----- 9/15/2018 12:11 AM Storage
d----- 9/15/2018 12:11 AM StorageBusCache
d---s- 9/15/2018 1:51 AM TLS
d---s- 9/15/2018 1:51 AM TrustedPlatformModule
d----- 9/15/2018 12:11 AM UserAccessLogging
d----- 9/15/2018 12:11 AM Wdac
d---s- 9/15/2018 1:51 AM Whea
d----- 9/15/2018 12:11 AM WindowsErrorReporting
d----- 9/15/2018 12:11 AM WindowsUpdate
d----- 9/15/2018 12:11 AM WindowsUpdateProvider
PS C:\Autolab\Configurations\SingleServer>
So, no, Hyper-V Server 2019 can't run PSAutoLab natively. My guess is that I'll have to engage in some skulduggery where I yank the existing files for PSDesiredStateConfiguration from Windows 10 or figure out how to pull them from install media.
I guess my main concern was to highlight that if anyone tries to manually install the PSDesiredStateConfiguration module from PSGallery, it no longer supports Windows PowerShell v5.1 .
EDIT:
If I can eventually get it to work, is there any interest in documenting? I completely understand if that's outside the supported version remit - this is already an awesome tool that I'll continue to recommend to others in my field.
This module should still support Windows PowerShell 5.1. In fact, it will only run on 5.1. Did you look at the Detailed Setup Instructions ?
According to Microsoft the Hyper-V Server sku doesn't support DSC and there's no way to add it. https://docs.microsoft.com/en-us/powershell/dsc/getting-started/wingettingstarted?view=dsc-1.1
Asked and answered, thanks for your time and efforts.