├── .editorconfig ├── .gitignore ├── CODE_OF_CONDUCT.md ├── Images └── CopyLocal.png ├── LICENSE.txt ├── PowerShellStandard.psm1 ├── README.md ├── build.ps1 ├── doc ├── TypeDocumentation.md └── assets │ ├── PS51.txt │ ├── PS6.txt │ ├── PSS5.txt │ ├── TypeComparison.csv │ ├── export-TypeDoc.ps1 │ └── export-typecompare.ps1 ├── src ├── 3 │ ├── PowerShellStandard.Library.nuspec │ ├── System.Management.Automation-lib.cs │ └── System.Management.Automation-lib.csproj ├── 5 │ ├── PowerShellStandard.Library.nuspec │ ├── System.Management.Automation-lib.cs │ ├── System.Management.Automation-lib.csproj │ └── images │ │ └── PowerShell_64.png ├── dotnetTemplate │ ├── Microsoft.PowerShell.Standard.Module.Template.csproj │ ├── Microsoft.PowerShell.Standard.Module.Template │ │ ├── Microsoft.PowerShell.Standard.Module.Template.nuspec │ │ ├── Microsoft.PowerShell.Standard.Module.Template │ │ │ ├── .template.config │ │ │ │ ├── dotnetcli.host.json │ │ │ │ └── template.json │ │ │ ├── Microsoft.PowerShell.Standard.Module.Template.csproj │ │ │ ├── Microsoft.PowerShell.Standard.Module.Template.psd1 │ │ │ └── TestSampleCmdletCommand.cs │ │ └── images │ │ │ └── PowerShell_64.png │ └── README.md └── signing │ └── visualstudiopublic.snk ├── test ├── 3 │ ├── core │ │ ├── Class1.cs │ │ ├── PSS3.Tests.ps1 │ │ └── PSStandard.csproj │ └── full │ │ ├── Class1.cs │ │ ├── PSS3.Tests.ps1 │ │ └── PSStandard.csproj ├── 5 │ ├── core │ │ ├── Class1.cs │ │ ├── PSS5.Tests.ps1 │ │ └── PSStandard.csproj │ └── full │ │ ├── Class1.cs │ │ ├── PSS5.Tests.ps1 │ │ └── PSStandard.csproj ├── Build.Tests.ps1 └── dotnetTemplate │ └── dotnetTemplate.Tests.ps1 └── tools └── releaseBuild ├── Image ├── DockerFile ├── buildStandard.ps1 └── dockerInstall.psm1 ├── build.json ├── signing.xml └── vstsbuild.ps1 /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | insert_final_newline = true 6 | 7 | [*.{cs,ps1,psm1}] 8 | file_header_template = Copyright (c) Microsoft Corporation.\nLicensed under the MIT License. 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | obj/ 3 | project.lock.json 4 | *-tests.xml 5 | /debug/ 6 | /staging/ 7 | /Packages/ 8 | *.nuget.props 9 | 10 | # dotnet cli install/uninstall scripts 11 | dotnet-install.ps1 12 | dotnet-install.sh 13 | dotnet-uninstall-pkgs.sh 14 | dotnet-uninstall-debian-packages.sh 15 | 16 | # VIM tmp files 17 | *.swp 18 | 19 | # VS auto-generated solution files for project.json solutions 20 | *.xproj 21 | *.xproj.user 22 | *.suo 23 | 24 | # VS auto-generated files for csproj files 25 | *.csproj.user 26 | 27 | # Visual Studio IDE directory 28 | .vs/ 29 | 30 | # Project Rider IDE files 31 | .idea.powershell/ 32 | 33 | # Ignore executables 34 | *.exe 35 | *.msi 36 | *.appx 37 | 38 | # Ignore binaries and symbols 39 | *.pdb 40 | *.dll 41 | 42 | # Ignore packages 43 | *.deb 44 | *.tar.gz 45 | *.zip 46 | *.rpm 47 | *.pkg 48 | *.nupkg 49 | *.AppImage 50 | 51 | # ignore the telemetry semaphore file 52 | DELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY 53 | 54 | # default location for produced nuget packages 55 | /nuget-artifacts 56 | 57 | # resgen output 58 | gen 59 | 60 | # Per repo profile 61 | .profile.ps1 62 | 63 | # macOS 64 | .DS_Store 65 | 66 | # TestsResults 67 | TestsResults*.xml 68 | 69 | # Resharper settings 70 | PowerShell.sln.DotSettings.user 71 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code]. 4 | For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments. 5 | 6 | [conduct-code]: http://opensource.microsoft.com/codeofconduct/ 7 | [conduct-FAQ]: http://opensource.microsoft.com/codeofconduct/faq/ 8 | [conduct-email]: mailto:opencode@microsoft.com 9 | -------------------------------------------------------------------------------- /Images/CopyLocal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/PowerShellStandard/59998dced0948864a33fe6aed5f0a07bd12a91a6/Images/CopyLocal.png -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) Microsoft Corporation. 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PowerShellStandard.psm1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | function Start-Build { 5 | param ( [switch]$CoreOnly ) 6 | # $versions = 3,5 7 | $versions = 5 8 | $srcBase = Join-Path $PsScriptRoot src 9 | foreach ( $version in $versions ) { 10 | try { 11 | $srcDir = Join-Path $srcBase $version 12 | Push-Location $srcDir 13 | Write-Verbose -Verbose "restoring in $srcDir" 14 | $result = dotnet restore 15 | if ( ! $? ) { throw "$result" } 16 | if ( $CoreOnly ) { 17 | Write-Verbose -Verbose "building netstandard in $srcDir" 18 | $result = dotnet build --configuration Release --framework netstandard2.0 19 | if ( ! $? ) { throw "$result" } 20 | } 21 | else { 22 | Write-Verbose -Verbose "building default in $srcDir" 23 | $result = dotnet build --configuration Release 24 | if ( ! $? ) { throw "$result" } else { Write-Verbose -Verbose "$result" } 25 | } 26 | } 27 | finally { 28 | Pop-Location 29 | } 30 | } 31 | 32 | # push into dotnetTemplate and build 33 | try { 34 | $templateBase = Join-Path $srcBase dotnetTemplate 35 | Push-Location $templateBase 36 | Write-Verbose -Verbose "restoring in $templateBase" 37 | $result = dotnet restore 38 | if ( ! $? ) { throw "$result" } 39 | Write-Verbose -Verbose "building in $templateBase" 40 | $result = dotnet build --configuration Release 41 | if ( ! $? ) { throw "$result" } else { Write-Verbose -Verbose "$result" } 42 | } 43 | finally { 44 | Pop-Location 45 | } 46 | } 47 | 48 | function Start-Clean { 49 | $dirs = "src","test" 50 | $versions = 3,5 51 | # clean up test/3. test/5, src/3, src/5 52 | foreach ( $directory in $dirs ) { 53 | $baseDir = Join-Path $PsScriptRoot $directory 54 | foreach ( $version in $versions ) { 55 | try { 56 | $fileDir = Join-Path $baseDir $version 57 | Push-Location $fileDir 58 | "Cleaning in $fileDir" 59 | $result = dotnet clean 60 | if ( ! $? ) { write-error "$result" } 61 | if ( test-path obj ) { remove-item -recurse -force obj } 62 | if ( test-path bin ) { remove-item -recurse -force bin } 63 | remove-item "PowerShellStandard.Library.${version}*.nupkg" -ErrorAction SilentlyContinue 64 | } 65 | finally { 66 | Pop-Location 67 | } 68 | } 69 | } 70 | Remove-Item "${PSScriptRoot}/*.nupkg" 71 | } 72 | 73 | function Invoke-Test { 74 | param ( [switch]$CoreOnly ) 75 | # first, run the package tests and validate that the signing.xml file is correct 76 | try { 77 | $testBase = Join-Path $PsScriptRoot test 78 | Push-Location $testBase 79 | Invoke-Pester -Path ./Build.Tests.ps1 80 | } 81 | finally { 82 | Pop-Location 83 | } 84 | $versions = 3,5 85 | foreach ( $version in $versions ) { 86 | try { 87 | $testBase = Join-Path $PsScriptRoot "test/${version}" 88 | Push-Location $testBase 89 | foreach ( $framework in "core","full" ) { 90 | if ( $CoreOnly -and $framework -eq "full" ) { 91 | continue 92 | } 93 | try { 94 | Push-Location $framework 95 | if ( $CoreOnly ) { 96 | $result = dotnet build --configuration Release --framework netstandard2.0 97 | if ( ! $? ) { throw "$result" } 98 | Invoke-Pester 99 | } 100 | else { 101 | $result = dotnet build --configuration Release 102 | if ( ! $? ) { throw "$result" } 103 | Invoke-Pester 104 | } 105 | } 106 | finally { 107 | pop-location 108 | } 109 | } 110 | } 111 | finally { 112 | Pop-Location 113 | } 114 | } 115 | 116 | try { 117 | Push-Location (Join-Path $PsScriptRoot "test/dotnetTemplate") 118 | Invoke-Pester 119 | } 120 | finally { 121 | Pop-Location 122 | } 123 | } 124 | 125 | function Export-NuGetPackage 126 | { 127 | # create the package 128 | # it will automatically build 129 | # $versions = 3,5 130 | $versions = 5 131 | $srcBase = Join-Path $PsScriptRoot src 132 | foreach ( $version in $versions ) { 133 | try { 134 | $srcDir = Join-Path $srcBase $version 135 | Push-Location $srcDir 136 | Write-Verbose -Verbose "Creating nupkg for $version" 137 | $result = dotnet pack --configuration Release 138 | if ( $? ) { 139 | Copy-Item -verbose:$true (Join-Path $srcDir "bin/Release/PowerShellStandard.Library*.nupkg") $PsScriptRoot 140 | } 141 | else { 142 | Write-Error -Message "$result" 143 | } 144 | } 145 | finally { 146 | Pop-Location 147 | } 148 | } 149 | # Create the template nupkg 150 | try { 151 | $templateDir = Join-Path $PsScriptRoot src/dotnetTemplate 152 | Push-Location $templateDir 153 | Write-Verbose -Verbose "creating nupkg in $templateDir" 154 | $result = dotnet pack --configuration Release 155 | if ( $? ) { 156 | Copy-Item -verbose:$true (Join-Path $templateDir "bin/Release/*.nupkg") $PsScriptRoot 157 | } 158 | else { 159 | Write-Error -Message "$result" 160 | } 161 | } 162 | finally { 163 | Pop-Location 164 | } 165 | 166 | } 167 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ![logo][] PowerShell Standard 2 | 3 | ## Supports PowerShell Core and Windows PowerShell 4 | 5 | PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. 6 | It includes a command-line shell, an associated scripting language and a framework for processing cmdlets. 7 | 8 | Windows PowerShell is a Windows command-line shell designed especially for system administrators. 9 | Windows PowerShell includes an interactive prompt and a scripting environment that can be used independently or in combination. 10 | 11 | PowerShell Standard is a reference assembly that has been created to assist developers create modules and PowerShell hosts which will run on PowerShell. 12 | The reference assembly contains no actual implementation but rather will allow you to use only APIs that exist across different versions of PowerShell. This means that you still need to run within a PowerShell runtime. 13 | 14 | > NOTE: You should not use PowerShell Standard for standalone applications that leverage PowerShell. 15 | For that, you should use the [PowerShell SDK](https://www.nuget.org/packages/Microsoft.PowerShell.SDK). 16 | PowerShell Standard's main scenario is for running within a PowerShell session. 17 | 18 | ## PowerShell Standard Libraries 19 | 20 | Two PowerShell Standard `.nupkg` versions are available: 21 | 22 | - PowerShell Standard.Library Version 3 23 | - This allows you to create PowerShell modules and PowerShell hosts which will run on PowerShell Version 3 and later including PowerShellCore 24 | 25 | - PowerShell Standard.Library Version 5.1 26 | - This allows you to create PowerShell modules and PowerShell hosts which will run on PowerShell Version 5.1 and later including PowerShellCore 27 | 28 | Both are available on [NuGet.org](https://www.nuget.org/packages/PowerShellStandard.Library) 29 | 30 | [logo]: https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_black_64.png 31 | 32 | ### Building PowerShell Standard Libraries 33 | 34 | The script `build.ps1` is the tool to build, package, and test the PowerShell Standard Libraries. 35 | In to build the PowerShell Standard Libraries simply type: 36 | 37 | ```powershell 38 | ./build.ps1 39 | ``` 40 | 41 | ### Running tests 42 | 43 | There are some very simple tests which test the validity of the PowerShell Standard Libraries. 44 | These tests may be found in the test directory associated with the version of the PowerShell Standard Library 45 | | Version | Location | 46 | | 3 | `test/3` | 47 | | 5 | `test/5` | 48 | 49 | to run the tests, simply type: 50 | 51 | ```powershell 52 | ./build.ps1 -test 53 | ``` 54 | 55 | ### Creating NuGet Packages 56 | 57 | In order to create NuGet packages, simply type: 58 | 59 | ```powershell 60 | ./build.ps1 -Pack 61 | ``` 62 | 63 | This will create 2 NuGet packages; 1 for each version of the PowerShell Standard Library in the root of the repository. 64 | These can then be uploaded to https://nuget.org/ if desired. 65 | 66 | ### Removing Build Artifacts 67 | 68 | To remove all build artifacts (except for the .nuget files in the root of the repository), type the following: 69 | 70 | ```powershell 71 | ./build.ps1 -Clean 72 | ``` 73 | 74 | ## How to use the PowerShell Standard Library 75 | 76 | ### Via Visual Studio 77 | 78 | Using the PowerShell Standard Library within Visual Studio is as simple as installing the package into your solution and building the project 79 | 80 | Create a project, and in the Package Manager Console (Tools -> Nuget Package Manager -> Package Manager Console) type: 81 | 82 | ```powershell 83 | install-package -id PowerShellStandard.Library 84 | ``` 85 | 86 | This will add `System.Management.Automation` to your project references. 87 | After this, you must set `Copy Local` to False in the Reference Properties pane. 88 | 89 | ![Copy Local = False](Images/CopyLocal.png) 90 | 91 | This will keep the PowerShell Standard Library from being copied into your release/publish directories. 92 | This is because the PowerShell Standard Library is a _reference_ assembly and doesn't actually contain any implementations and should never be distributed with your module. 93 | You may now create and build your module in the usual way. 94 | 95 | Once your module is built, you can see the portability of your module very easily, if you have both Windows PowerShell and PowerShell core on your system. 96 | The following demonstrates the portability of using PowerShell Standard. 97 | 98 | The following shows the same assembly being used by both Windows PowerShell, PowerShell Core, and via Docker; PowerShell Core on Linux. 99 | 100 | ```powershell 101 | PS> powershell 102 | Windows PowerShell 103 | Copyright (C) Microsoft Corporation. All rights reserved. 104 | 105 | Loading personal and system profiles took 714ms. 106 | PS> gci 107 | 108 | Directory: C:\users\jimtru\documents\visual studio 2017\Projects\ClassLibrary2\ClassLibrary2\bin\Debug 109 | 110 | Mode LastWriteTime Length Name 111 | ---- ------------- ------ ---- 112 | -a---- 3/7/2019 10:54 AM 4608 ClassLibrary2.dll 113 | -a---- 3/7/2019 10:54 AM 15872 ClassLibrary2.pdb 114 | 115 | PS> import-module .\ClassLibrary2.dll 116 | PS> "joe","jane" | Invoke-Demo 117 | Hello 'joe' 118 | Hello 'jane' 119 | PS> exit 120 | 121 | PS> pwsh-preview 122 | PowerShell 6.1.0-rc.1 123 | Copyright (c) Microsoft Corporation. All rights reserved. 124 | 125 | https://aka.ms/pscore6-docs 126 | Type 'help' to get help. 127 | 128 | PS> import-module .\ClassLibrary2.dll 129 | PS> "joe","jane" | Invoke-Demo 130 | Hello 'joe' 131 | Hello 'jane' 132 | PS> exit 133 | 134 | PS> $m = "C:\Users\jimtru\DOCUME~1\VIBB41~1\Projects\CLASSL~2\CLASSL~1\bin\Debug" 135 | PS> docker run --rm -it -v "${m}:/module" mcr.microsoft.com/powershell:preview 136 | PowerShell 6.2.0-rc.1 137 | Copyright (c) Microsoft Corporation. All rights reserved. 138 | 139 | https://aka.ms/pscore6-docs 140 | Type 'help' to get help. 141 | 142 | PS /> hostname 143 | add7d6ed4818 144 | 145 | PS /> select-string pretty /etc/os-release 146 | etc/os-release:5:PRETTY_NAME="Ubuntu 18.04.2 LTS" 147 | 148 | PS /> gci /module 149 | Directory: /module 150 | Mode LastWriteTime Length Name 151 | ---- ------------- ------ ---- 152 | ------ 3/7/19 6:54 PM 4608 ClassLibrary2.dll 153 | ------ 3/7/19 6:54 PM 15872 ClassLibrary2.pdbPS /> import-module /module/ClassLibrary2.dll 154 | 155 | PS /> Import-Module /module/ClassLibrary2.dll 156 | PS /> "joe","jane" | Invoke-Demo 157 | Hello 'joe' 158 | Hello 'jane' 159 | ``` 160 | 161 | And that's how you can build a single module used by Windows PowerShell, PowerShell Core on Windows and Linux! 162 | -------------------------------------------------------------------------------- /build.ps1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env pwsh 2 | # Copyright (c) Microsoft Corporation. 3 | # Licensed under the MIT License. 4 | 5 | param ( 6 | [Parameter(HelpMessage="Remove earlier built versions")][switch]$Clean, 7 | [Parameter(HelpMessage="Run the tests")][switch]$Test, 8 | [Parameter(HelpMessage="Create a .nupkg")][switch]$Pack, 9 | [Parameter(HelpMessage="Build only for netstandard2.0")][switch]$CoreOnly 10 | ) 11 | 12 | Write-Progress -Activity "Importing module" 13 | import-module $PSScriptRoot/PowerShellStandard.psm1 -force 14 | 15 | if ( $Clean ) { 16 | Start-Clean 17 | return 18 | } 19 | 20 | # It would be great if there were targeting frameworks for net452 21 | # on non-Windows platforms, but for now, if you're linux or macOS 22 | # we'll build only core 23 | if ( $IsLinux -or $IsMacOS ) { 24 | $CoreOnly = $true 25 | } 26 | 27 | Write-Progress -Activity "Starting Build" 28 | if ( $Pack ) { 29 | if ( $CoreOnly ) { 30 | Write-Warning "Must build both netstandard2.0 and net452 to build package" 31 | throw "Build on a Windows system with netstandard and net452 target platforms" 32 | } 33 | Export-NuGetPackage 34 | } 35 | else { 36 | Start-Build -CoreOnly:$CoreOnly 37 | } 38 | 39 | if ( $Test ) { 40 | if ( $psversiontable.psversion.major -lt 6 ) { 41 | throw "Must run tests on PowerShell Core 6 or above" 42 | } 43 | Invoke-Test -CoreOnly:$CoreOnly 44 | } 45 | 46 | -------------------------------------------------------------------------------- /doc/assets/PS51.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/PowerShellStandard/59998dced0948864a33fe6aed5f0a07bd12a91a6/doc/assets/PS51.txt -------------------------------------------------------------------------------- /doc/assets/PS6.txt: -------------------------------------------------------------------------------- 1 | Microsoft.PowerShell.Cim.CimInstanceAdapter 2 | Microsoft.PowerShell.Cmdletization.BehaviorOnNoMatch 3 | Microsoft.PowerShell.Cmdletization.CmdletAdapter`1 4 | Microsoft.PowerShell.Cmdletization.MethodInvocationInfo 5 | Microsoft.PowerShell.Cmdletization.MethodParameter 6 | Microsoft.PowerShell.Cmdletization.MethodParameterBindings 7 | Microsoft.PowerShell.Cmdletization.QueryBuilder 8 | Microsoft.PowerShell.Cmdletization.Xml.ConfirmImpact 9 | Microsoft.PowerShell.Cmdletization.Xml.ItemsChoiceType 10 | Microsoft.PowerShell.Commands.AddHistoryCommand 11 | Microsoft.PowerShell.Commands.AliasProvider 12 | Microsoft.PowerShell.Commands.AliasProviderDynamicParameters 13 | Microsoft.PowerShell.Commands.ClearHistoryCommand 14 | Microsoft.PowerShell.Commands.DebugJobCommand 15 | Microsoft.PowerShell.Commands.EnterPSSessionCommand 16 | Microsoft.PowerShell.Commands.EnvironmentProvider 17 | Microsoft.PowerShell.Commands.ExitPSSessionCommand 18 | Microsoft.PowerShell.Commands.ExportModuleMemberCommand 19 | Microsoft.PowerShell.Commands.FileSystemClearContentDynamicParameters 20 | Microsoft.PowerShell.Commands.FileSystemContentDynamicParametersBase 21 | Microsoft.PowerShell.Commands.FileSystemContentReaderDynamicParameters 22 | Microsoft.PowerShell.Commands.FileSystemContentWriterDynamicParameters 23 | Microsoft.PowerShell.Commands.FileSystemItemProviderDynamicParameters 24 | Microsoft.PowerShell.Commands.FileSystemProvider 25 | Microsoft.PowerShell.Commands.FileSystemProviderGetItemDynamicParameters 26 | Microsoft.PowerShell.Commands.FileSystemProviderRemoveItemDynamicParameters 27 | Microsoft.PowerShell.Commands.ForEachObjectCommand 28 | Microsoft.PowerShell.Commands.FormatDefaultCommand 29 | Microsoft.PowerShell.Commands.FunctionProvider 30 | Microsoft.PowerShell.Commands.FunctionProviderDynamicParameters 31 | Microsoft.PowerShell.Commands.GetCommandCommand 32 | Microsoft.PowerShell.Commands.GetExperimentalFeatureCommand 33 | Microsoft.PowerShell.Commands.GetHelpCodeMethods 34 | Microsoft.PowerShell.Commands.GetHelpCommand 35 | Microsoft.PowerShell.Commands.GetHistoryCommand 36 | Microsoft.PowerShell.Commands.GetJobCommand 37 | Microsoft.PowerShell.Commands.GetModuleCommand 38 | Microsoft.PowerShell.Commands.GetPSSessionCommand 39 | Microsoft.PowerShell.Commands.HelpCategoryInvalidException 40 | Microsoft.PowerShell.Commands.HelpNotFoundException 41 | Microsoft.PowerShell.Commands.HistoryInfo 42 | Microsoft.PowerShell.Commands.ImportModuleCommand 43 | Microsoft.PowerShell.Commands.Internal.Format.FrontEndCommandBase 44 | Microsoft.PowerShell.Commands.Internal.Format.OuterFormatShapeCommandBase 45 | Microsoft.PowerShell.Commands.Internal.Format.OuterFormatTableAndListBase 46 | Microsoft.PowerShell.Commands.Internal.Format.OuterFormatTableBase 47 | Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods 48 | Microsoft.PowerShell.Commands.InvokeCommandCommand 49 | Microsoft.PowerShell.Commands.InvokeHistoryCommand 50 | Microsoft.PowerShell.Commands.JobCmdletBase 51 | Microsoft.PowerShell.Commands.ModuleCmdletBase 52 | Microsoft.PowerShell.Commands.ModuleSpecification 53 | Microsoft.PowerShell.Commands.NewModuleCommand 54 | Microsoft.PowerShell.Commands.NewModuleManifestCommand 55 | Microsoft.PowerShell.Commands.NewPSRoleCapabilityFileCommand 56 | Microsoft.PowerShell.Commands.NewPSSessionCommand 57 | Microsoft.PowerShell.Commands.NewPSTransportOptionCommand 58 | Microsoft.PowerShell.Commands.NounArgumentCompleter 59 | Microsoft.PowerShell.Commands.ObjectEventRegistrationBase 60 | Microsoft.PowerShell.Commands.OpenMode 61 | Microsoft.PowerShell.Commands.OutDefaultCommand 62 | Microsoft.PowerShell.Commands.OutHostCommand 63 | Microsoft.PowerShell.Commands.OutLineOutputCommand 64 | Microsoft.PowerShell.Commands.OutNullCommand 65 | Microsoft.PowerShell.Commands.PSEditionArgumentCompleter 66 | Microsoft.PowerShell.Commands.PSExecutionCmdlet 67 | Microsoft.PowerShell.Commands.PSPropertyExpression 68 | Microsoft.PowerShell.Commands.PSPropertyExpressionResult 69 | Microsoft.PowerShell.Commands.PSRemotingBaseCmdlet 70 | Microsoft.PowerShell.Commands.PSRemotingCmdlet 71 | Microsoft.PowerShell.Commands.PSRunspaceCmdlet 72 | Microsoft.PowerShell.Commands.ReceiveJobCommand 73 | Microsoft.PowerShell.Commands.RemoveJobCommand 74 | Microsoft.PowerShell.Commands.RemoveModuleCommand 75 | Microsoft.PowerShell.Commands.RemovePSSessionCommand 76 | Microsoft.PowerShell.Commands.ResumeJobCommand 77 | Microsoft.PowerShell.Commands.SaveHelpCommand 78 | Microsoft.PowerShell.Commands.SessionFilterState 79 | Microsoft.PowerShell.Commands.SessionStateProviderBase 80 | Microsoft.PowerShell.Commands.SessionStateProviderBaseContentReaderWriter 81 | Microsoft.PowerShell.Commands.SetPSDebugCommand 82 | Microsoft.PowerShell.Commands.SetStrictModeCommand 83 | Microsoft.PowerShell.Commands.StartJobCommand 84 | Microsoft.PowerShell.Commands.StopJobCommand 85 | Microsoft.PowerShell.Commands.SuspendJobCommand 86 | Microsoft.PowerShell.Commands.TestModuleManifestCommand 87 | Microsoft.PowerShell.Commands.UpdatableHelpCommandBase 88 | Microsoft.PowerShell.Commands.UpdateHelpCommand 89 | Microsoft.PowerShell.Commands.UpdateHelpScope 90 | Microsoft.PowerShell.Commands.VariableProvider 91 | Microsoft.PowerShell.Commands.WaitJobCommand 92 | Microsoft.PowerShell.Commands.WhereObjectCommand 93 | Microsoft.PowerShell.Commands.WSManConfigurationOption 94 | Microsoft.PowerShell.CoreClr.Stubs.AuthenticationLevel 95 | Microsoft.PowerShell.CoreClr.Stubs.ImpersonationLevel 96 | Microsoft.PowerShell.DeserializingTypeConverter 97 | Microsoft.PowerShell.DesiredStateConfiguration.ArgumentToConfigurationDataTransformationAttribute 98 | Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache 99 | Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscRemoteOperationsClass 100 | Microsoft.PowerShell.ExecutionPolicy 101 | Microsoft.PowerShell.ExecutionPolicyScope 102 | Microsoft.PowerShell.ProcessCodeMethods 103 | Microsoft.PowerShell.PSAuthorizationManager 104 | Microsoft.PowerShell.ToStringCodeMethods 105 | System.Management.Automation.ActionPreference 106 | System.Management.Automation.ActionPreferenceStopException 107 | System.Management.Automation.AliasAttribute 108 | System.Management.Automation.AliasInfo 109 | System.Management.Automation.Alignment 110 | System.Management.Automation.AllowEmptyCollectionAttribute 111 | System.Management.Automation.AllowEmptyStringAttribute 112 | System.Management.Automation.AllowNullAttribute 113 | System.Management.Automation.ApplicationFailedException 114 | System.Management.Automation.ApplicationInfo 115 | System.Management.Automation.ArgumentCompleterAttribute 116 | System.Management.Automation.ArgumentCompletionsAttribute 117 | System.Management.Automation.ArgumentTransformationAttribute 118 | System.Management.Automation.ArgumentTransformationMetadataException 119 | System.Management.Automation.AuthorizationManager 120 | System.Management.Automation.BreakException 121 | System.Management.Automation.Breakpoint 122 | System.Management.Automation.BreakpointUpdatedEventArgs 123 | System.Management.Automation.BreakpointUpdateType 124 | System.Management.Automation.CachedValidValuesGeneratorBase 125 | System.Management.Automation.CallStackFrame 126 | System.Management.Automation.ChildItemCmdletProviderIntrinsics 127 | System.Management.Automation.Cmdlet 128 | System.Management.Automation.CmdletAttribute 129 | System.Management.Automation.CmdletBindingAttribute 130 | System.Management.Automation.CmdletCommonMetadataAttribute 131 | System.Management.Automation.CmdletInfo 132 | System.Management.Automation.CmdletInvocationException 133 | System.Management.Automation.CmdletProviderInvocationException 134 | System.Management.Automation.CmdletProviderManagementIntrinsics 135 | System.Management.Automation.CmsMessageRecipient 136 | System.Management.Automation.CommandBreakpoint 137 | System.Management.Automation.CommandCompletion 138 | System.Management.Automation.CommandInfo 139 | System.Management.Automation.CommandInvocationIntrinsics 140 | System.Management.Automation.CommandLookupEventArgs 141 | System.Management.Automation.CommandMetadata 142 | System.Management.Automation.CommandNotFoundException 143 | System.Management.Automation.CommandOrigin 144 | System.Management.Automation.CommandParameterInfo 145 | System.Management.Automation.CommandParameterSetInfo 146 | System.Management.Automation.CommandTypes 147 | System.Management.Automation.CompletionCompleters 148 | System.Management.Automation.CompletionResult 149 | System.Management.Automation.CompletionResultType 150 | System.Management.Automation.ConfigurationInfo 151 | System.Management.Automation.ConfirmImpact 152 | System.Management.Automation.ContainerParentJob 153 | System.Management.Automation.ContentCmdletProviderIntrinsics 154 | System.Management.Automation.ContinueException 155 | System.Management.Automation.ConvertThroughString 156 | System.Management.Automation.CopyContainers 157 | System.Management.Automation.CredentialAttribute 158 | System.Management.Automation.CustomControl 159 | System.Management.Automation.CustomControlBuilder 160 | System.Management.Automation.CustomControlEntry 161 | System.Management.Automation.CustomEntryBuilder 162 | System.Management.Automation.CustomItemBase 163 | System.Management.Automation.CustomItemExpression 164 | System.Management.Automation.CustomItemFrame 165 | System.Management.Automation.CustomItemNewline 166 | System.Management.Automation.CustomItemText 167 | System.Management.Automation.DataAddedEventArgs 168 | System.Management.Automation.DataAddingEventArgs 169 | System.Management.Automation.Debugger 170 | System.Management.Automation.DebuggerCommandResults 171 | System.Management.Automation.DebuggerResumeAction 172 | System.Management.Automation.DebuggerStopEventArgs 173 | System.Management.Automation.DebugModes 174 | System.Management.Automation.DebugRecord 175 | System.Management.Automation.DefaultParameterDictionary 176 | System.Management.Automation.DisplayEntry 177 | System.Management.Automation.DisplayEntryValueType 178 | System.Management.Automation.DriveManagementIntrinsics 179 | System.Management.Automation.DriveNotFoundException 180 | System.Management.Automation.DscLocalConfigurationManagerAttribute 181 | System.Management.Automation.DscPropertyAttribute 182 | System.Management.Automation.DscResourceAttribute 183 | System.Management.Automation.DscResourceInfo 184 | System.Management.Automation.DscResourcePropertyInfo 185 | System.Management.Automation.DSCResourceRunAsCredential 186 | System.Management.Automation.DynamicClassImplementationAssemblyAttribute 187 | System.Management.Automation.EngineIntrinsics 188 | System.Management.Automation.EntrySelectedBy 189 | System.Management.Automation.ErrorCategory 190 | System.Management.Automation.ErrorCategoryInfo 191 | System.Management.Automation.ErrorDetails 192 | System.Management.Automation.ErrorRecord 193 | System.Management.Automation.ExitException 194 | System.Management.Automation.ExperimentAction 195 | System.Management.Automation.ExperimentalAttribute 196 | System.Management.Automation.ExperimentalFeature 197 | System.Management.Automation.ExtendedTypeDefinition 198 | System.Management.Automation.ExtendedTypeSystemException 199 | System.Management.Automation.ExternalScriptInfo 200 | System.Management.Automation.FilterInfo 201 | System.Management.Automation.FlagsExpression`1 202 | System.Management.Automation.FlowControlException 203 | System.Management.Automation.FormatViewDefinition 204 | System.Management.Automation.ForwardedEventArgs 205 | System.Management.Automation.FunctionInfo 206 | System.Management.Automation.GetSymmetricEncryptionKey 207 | System.Management.Automation.GettingValueExceptionEventArgs 208 | System.Management.Automation.GetValueException 209 | System.Management.Automation.GetValueInvocationException 210 | System.Management.Automation.HaltCommandException 211 | System.Management.Automation.HiddenAttribute 212 | System.Management.Automation.Host.BufferCell 213 | System.Management.Automation.Host.BufferCellType 214 | System.Management.Automation.Host.ChoiceDescription 215 | System.Management.Automation.Host.ControlKeyStates 216 | System.Management.Automation.Host.Coordinates 217 | System.Management.Automation.Host.FieldDescription 218 | System.Management.Automation.Host.HostException 219 | System.Management.Automation.Host.IHostSupportsInteractiveSession 220 | System.Management.Automation.Host.IHostUISupportsMultipleChoiceSelection 221 | System.Management.Automation.Host.KeyInfo 222 | System.Management.Automation.Host.PromptingException 223 | System.Management.Automation.Host.PSHost 224 | System.Management.Automation.Host.PSHostRawUserInterface 225 | System.Management.Automation.Host.PSHostUserInterface 226 | System.Management.Automation.Host.ReadKeyOptions 227 | System.Management.Automation.Host.Rectangle 228 | System.Management.Automation.Host.Size 229 | System.Management.Automation.HostInformationMessage 230 | System.Management.Automation.HostUtilities 231 | System.Management.Automation.IArgumentCompleter 232 | System.Management.Automation.ICommandRuntime 233 | System.Management.Automation.ICommandRuntime2 234 | System.Management.Automation.IContainsErrorRecord 235 | System.Management.Automation.IDynamicParameters 236 | System.Management.Automation.IJobDebugger 237 | System.Management.Automation.IModuleAssemblyCleanup 238 | System.Management.Automation.IModuleAssemblyInitializer 239 | System.Management.Automation.ImplementedAsType 240 | System.Management.Automation.IncompleteParseException 241 | System.Management.Automation.InformationalRecord 242 | System.Management.Automation.InformationRecord 243 | System.Management.Automation.Internal.AutomationNull 244 | System.Management.Automation.Internal.ClassOps 245 | System.Management.Automation.Internal.CmdletMetadataAttribute 246 | System.Management.Automation.Internal.CommonParameters 247 | System.Management.Automation.Internal.DebuggerUtils 248 | System.Management.Automation.Internal.InternalCommand 249 | System.Management.Automation.Internal.InternalTestHooks 250 | System.Management.Automation.Internal.ParsingBaseAttribute 251 | System.Management.Automation.Internal.PSEmbeddedMonitorRunspaceInfo 252 | System.Management.Automation.Internal.PSMonitorRunspaceInfo 253 | System.Management.Automation.Internal.PSMonitorRunspaceType 254 | System.Management.Automation.Internal.PSStandaloneMonitorRunspaceInfo 255 | System.Management.Automation.Internal.ScriptBlockMemberMethodWrapper 256 | System.Management.Automation.Internal.SecuritySupport 257 | System.Management.Automation.Internal.SessionStateKeeper 258 | System.Management.Automation.Internal.ShouldProcessParameters 259 | System.Management.Automation.Internal.TransactionParameters 260 | System.Management.Automation.InvalidJobStateException 261 | System.Management.Automation.InvalidPowerShellStateException 262 | System.Management.Automation.InvocationInfo 263 | System.Management.Automation.IResourceSupplier 264 | System.Management.Automation.ItemCmdletProviderIntrinsics 265 | System.Management.Automation.ItemNotFoundException 266 | System.Management.Automation.IValidateSetValuesGenerator 267 | System.Management.Automation.Job 268 | System.Management.Automation.Job2 269 | System.Management.Automation.JobDataAddedEventArgs 270 | System.Management.Automation.JobDefinition 271 | System.Management.Automation.JobFailedException 272 | System.Management.Automation.JobIdentifier 273 | System.Management.Automation.JobInvocationInfo 274 | System.Management.Automation.JobManager 275 | System.Management.Automation.JobRepository 276 | System.Management.Automation.JobSourceAdapter 277 | System.Management.Automation.JobState 278 | System.Management.Automation.JobStateEventArgs 279 | System.Management.Automation.JobStateInfo 280 | System.Management.Automation.JobThreadOptions 281 | System.Management.Automation.Language.ArrayExpressionAst 282 | System.Management.Automation.Language.ArrayLiteralAst 283 | System.Management.Automation.Language.ArrayTypeName 284 | System.Management.Automation.Language.AssignmentStatementAst 285 | System.Management.Automation.Language.Ast 286 | System.Management.Automation.Language.AstVisitAction 287 | System.Management.Automation.Language.AstVisitor 288 | System.Management.Automation.Language.AstVisitor2 289 | System.Management.Automation.Language.AttributeAst 290 | System.Management.Automation.Language.AttributeBaseAst 291 | System.Management.Automation.Language.AttributedExpressionAst 292 | System.Management.Automation.Language.BaseCtorInvokeMemberExpressionAst 293 | System.Management.Automation.Language.BinaryExpressionAst 294 | System.Management.Automation.Language.BlockStatementAst 295 | System.Management.Automation.Language.BreakStatementAst 296 | System.Management.Automation.Language.CatchClauseAst 297 | System.Management.Automation.Language.CodeGeneration 298 | System.Management.Automation.Language.CommandAst 299 | System.Management.Automation.Language.CommandBaseAst 300 | System.Management.Automation.Language.CommandElementAst 301 | System.Management.Automation.Language.CommandExpressionAst 302 | System.Management.Automation.Language.CommandParameterAst 303 | System.Management.Automation.Language.CommentHelpInfo 304 | System.Management.Automation.Language.ConfigurationDefinitionAst 305 | System.Management.Automation.Language.ConfigurationType 306 | System.Management.Automation.Language.ConstantExpressionAst 307 | System.Management.Automation.Language.ContinueStatementAst 308 | System.Management.Automation.Language.ConvertExpressionAst 309 | System.Management.Automation.Language.DataStatementAst 310 | System.Management.Automation.Language.DefaultCustomAstVisitor 311 | System.Management.Automation.Language.DefaultCustomAstVisitor2 312 | System.Management.Automation.Language.DoUntilStatementAst 313 | System.Management.Automation.Language.DoWhileStatementAst 314 | System.Management.Automation.Language.DynamicKeyword 315 | System.Management.Automation.Language.DynamicKeywordBodyMode 316 | System.Management.Automation.Language.DynamicKeywordNameMode 317 | System.Management.Automation.Language.DynamicKeywordParameter 318 | System.Management.Automation.Language.DynamicKeywordProperty 319 | System.Management.Automation.Language.DynamicKeywordStatementAst 320 | System.Management.Automation.Language.ErrorExpressionAst 321 | System.Management.Automation.Language.ErrorStatementAst 322 | System.Management.Automation.Language.ExitStatementAst 323 | System.Management.Automation.Language.ExpandableStringExpressionAst 324 | System.Management.Automation.Language.ExpressionAst 325 | System.Management.Automation.Language.FileRedirectionAst 326 | System.Management.Automation.Language.FileRedirectionToken 327 | System.Management.Automation.Language.ForEachFlags 328 | System.Management.Automation.Language.ForEachStatementAst 329 | System.Management.Automation.Language.ForStatementAst 330 | System.Management.Automation.Language.FunctionDefinitionAst 331 | System.Management.Automation.Language.FunctionMemberAst 332 | System.Management.Automation.Language.GenericTypeName 333 | System.Management.Automation.Language.HashtableAst 334 | System.Management.Automation.Language.IAstPostVisitHandler 335 | System.Management.Automation.Language.ICustomAstVisitor 336 | System.Management.Automation.Language.ICustomAstVisitor2 337 | System.Management.Automation.Language.IfStatementAst 338 | System.Management.Automation.Language.IndexExpressionAst 339 | System.Management.Automation.Language.InputRedirectionToken 340 | System.Management.Automation.Language.InvokeMemberExpressionAst 341 | System.Management.Automation.Language.IScriptExtent 342 | System.Management.Automation.Language.IScriptPosition 343 | System.Management.Automation.Language.ITypeName 344 | System.Management.Automation.Language.LabeledStatementAst 345 | System.Management.Automation.Language.LabelToken 346 | System.Management.Automation.Language.LoopStatementAst 347 | System.Management.Automation.Language.MemberAst 348 | System.Management.Automation.Language.MemberExpressionAst 349 | System.Management.Automation.Language.MergingRedirectionAst 350 | System.Management.Automation.Language.MergingRedirectionToken 351 | System.Management.Automation.Language.MethodAttributes 352 | System.Management.Automation.Language.NamedAttributeArgumentAst 353 | System.Management.Automation.Language.NamedBlockAst 354 | System.Management.Automation.Language.NullString 355 | System.Management.Automation.Language.NumberToken 356 | System.Management.Automation.Language.ParamBlockAst 357 | System.Management.Automation.Language.ParameterAst 358 | System.Management.Automation.Language.ParameterBindingResult 359 | System.Management.Automation.Language.ParameterToken 360 | System.Management.Automation.Language.ParenExpressionAst 361 | System.Management.Automation.Language.ParseError 362 | System.Management.Automation.Language.Parser 363 | System.Management.Automation.Language.PipelineAst 364 | System.Management.Automation.Language.PipelineBaseAst 365 | System.Management.Automation.Language.PropertyAttributes 366 | System.Management.Automation.Language.PropertyMemberAst 367 | System.Management.Automation.Language.RedirectionAst 368 | System.Management.Automation.Language.RedirectionStream 369 | System.Management.Automation.Language.RedirectionToken 370 | System.Management.Automation.Language.ReflectionTypeName 371 | System.Management.Automation.Language.ReturnStatementAst 372 | System.Management.Automation.Language.ScriptBlockAst 373 | System.Management.Automation.Language.ScriptBlockExpressionAst 374 | System.Management.Automation.Language.ScriptExtent 375 | System.Management.Automation.Language.ScriptPosition 376 | System.Management.Automation.Language.ScriptRequirements 377 | System.Management.Automation.Language.StatementAst 378 | System.Management.Automation.Language.StatementBlockAst 379 | System.Management.Automation.Language.StaticBindingError 380 | System.Management.Automation.Language.StaticBindingResult 381 | System.Management.Automation.Language.StaticParameterBinder 382 | System.Management.Automation.Language.StringConstantExpressionAst 383 | System.Management.Automation.Language.StringConstantType 384 | System.Management.Automation.Language.StringExpandableToken 385 | System.Management.Automation.Language.StringLiteralToken 386 | System.Management.Automation.Language.StringToken 387 | System.Management.Automation.Language.SubExpressionAst 388 | System.Management.Automation.Language.SwitchFlags 389 | System.Management.Automation.Language.SwitchStatementAst 390 | System.Management.Automation.Language.ThrowStatementAst 391 | System.Management.Automation.Language.Token 392 | System.Management.Automation.Language.TokenFlags 393 | System.Management.Automation.Language.TokenKind 394 | System.Management.Automation.Language.TokenTraits 395 | System.Management.Automation.Language.TrapStatementAst 396 | System.Management.Automation.Language.TryStatementAst 397 | System.Management.Automation.Language.TypeAttributes 398 | System.Management.Automation.Language.TypeConstraintAst 399 | System.Management.Automation.Language.TypeDefinitionAst 400 | System.Management.Automation.Language.TypeExpressionAst 401 | System.Management.Automation.Language.TypeName 402 | System.Management.Automation.Language.UnaryExpressionAst 403 | System.Management.Automation.Language.UsingExpressionAst 404 | System.Management.Automation.Language.UsingStatementAst 405 | System.Management.Automation.Language.UsingStatementKind 406 | System.Management.Automation.Language.VariableExpressionAst 407 | System.Management.Automation.Language.VariableToken 408 | System.Management.Automation.Language.WhileStatementAst 409 | System.Management.Automation.LanguagePrimitives 410 | System.Management.Automation.LineBreakpoint 411 | System.Management.Automation.ListControl 412 | System.Management.Automation.ListControlBuilder 413 | System.Management.Automation.ListControlEntry 414 | System.Management.Automation.ListControlEntryItem 415 | System.Management.Automation.ListEntryBuilder 416 | System.Management.Automation.LoopFlowException 417 | System.Management.Automation.MetadataException 418 | System.Management.Automation.MethodException 419 | System.Management.Automation.MethodInvocationException 420 | System.Management.Automation.ModuleAccessMode 421 | System.Management.Automation.ModuleIntrinsics 422 | System.Management.Automation.ModuleType 423 | System.Management.Automation.NullValidationAttributeBase 424 | System.Management.Automation.OutputTypeAttribute 425 | System.Management.Automation.PagingParameters 426 | System.Management.Automation.ParameterAttribute 427 | System.Management.Automation.ParameterBindingException 428 | System.Management.Automation.ParameterMetadata 429 | System.Management.Automation.ParameterSetMetadata 430 | System.Management.Automation.ParentContainsErrorRecordException 431 | System.Management.Automation.ParseException 432 | System.Management.Automation.ParsingMetadataException 433 | System.Management.Automation.PathInfo 434 | System.Management.Automation.PathInfoStack 435 | System.Management.Automation.PathIntrinsics 436 | System.Management.Automation.PipelineClosedException 437 | System.Management.Automation.PipelineDepthException 438 | System.Management.Automation.PipelineStoppedException 439 | System.Management.Automation.Platform 440 | System.Management.Automation.PowerShell 441 | System.Management.Automation.PowerShellAssemblyLoadContextInitializer 442 | System.Management.Automation.PowerShellStreams`2 443 | System.Management.Automation.PowerShellStreamType 444 | System.Management.Automation.ProcessRunspaceDebugEndEventArgs 445 | System.Management.Automation.ProgressRecord 446 | System.Management.Automation.ProgressRecordType 447 | System.Management.Automation.PropertyCmdletProviderIntrinsics 448 | System.Management.Automation.PropertyNotFoundException 449 | System.Management.Automation.Provider.CmdletProvider 450 | System.Management.Automation.Provider.CmdletProviderAttribute 451 | System.Management.Automation.Provider.ContainerCmdletProvider 452 | System.Management.Automation.Provider.DriveCmdletProvider 453 | System.Management.Automation.Provider.ICmdletProviderSupportsHelp 454 | System.Management.Automation.Provider.IContentCmdletProvider 455 | System.Management.Automation.Provider.IContentReader 456 | System.Management.Automation.Provider.IContentWriter 457 | System.Management.Automation.Provider.IDynamicPropertyCmdletProvider 458 | System.Management.Automation.Provider.IPropertyCmdletProvider 459 | System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider 460 | System.Management.Automation.Provider.ItemCmdletProvider 461 | System.Management.Automation.Provider.NavigationCmdletProvider 462 | System.Management.Automation.Provider.ProviderCapabilities 463 | System.Management.Automation.ProviderCmdlet 464 | System.Management.Automation.ProviderInfo 465 | System.Management.Automation.ProviderIntrinsics 466 | System.Management.Automation.ProviderInvocationException 467 | System.Management.Automation.ProviderNameAmbiguousException 468 | System.Management.Automation.ProviderNotFoundException 469 | System.Management.Automation.ProxyCommand 470 | System.Management.Automation.PSAdaptedProperty 471 | System.Management.Automation.PSAliasProperty 472 | System.Management.Automation.PSArgumentException 473 | System.Management.Automation.PSArgumentNullException 474 | System.Management.Automation.PSArgumentOutOfRangeException 475 | System.Management.Automation.PSChildJobProxy 476 | System.Management.Automation.PSClassInfo 477 | System.Management.Automation.PSClassMemberInfo 478 | System.Management.Automation.PSCmdlet 479 | System.Management.Automation.PSCodeMethod 480 | System.Management.Automation.PSCodeProperty 481 | System.Management.Automation.PSCommand 482 | System.Management.Automation.PSControl 483 | System.Management.Automation.PSControlGroupBy 484 | System.Management.Automation.PSCredential 485 | System.Management.Automation.PSCredentialTypes 486 | System.Management.Automation.PSCredentialUIOptions 487 | System.Management.Automation.PSCustomObject 488 | System.Management.Automation.PSDataCollection`1 489 | System.Management.Automation.PSDataStreams 490 | System.Management.Automation.PSDebugContext 491 | System.Management.Automation.PSDefaultValueAttribute 492 | System.Management.Automation.PSDriveInfo 493 | System.Management.Automation.PSDynamicMember 494 | System.Management.Automation.PSEngineEvent 495 | System.Management.Automation.PSEvent 496 | System.Management.Automation.PSEventArgs 497 | System.Management.Automation.PSEventArgsCollection 498 | System.Management.Automation.PSEventHandler 499 | System.Management.Automation.PSEventJob 500 | System.Management.Automation.PSEventManager 501 | System.Management.Automation.PSEventReceivedEventHandler 502 | System.Management.Automation.PSEventSubscriber 503 | System.Management.Automation.PSEventUnsubscribedEventArgs 504 | System.Management.Automation.PSEventUnsubscribedEventHandler 505 | System.Management.Automation.PSInvalidCastException 506 | System.Management.Automation.PSInvalidOperationException 507 | System.Management.Automation.PSInvocationSettings 508 | System.Management.Automation.PSInvocationState 509 | System.Management.Automation.PSInvocationStateChangedEventArgs 510 | System.Management.Automation.PSInvocationStateInfo 511 | System.Management.Automation.PSJobProxy 512 | System.Management.Automation.PSJobStartEventArgs 513 | System.Management.Automation.PSLanguageMode 514 | System.Management.Automation.PSListModifier 515 | System.Management.Automation.PSListModifier`1 516 | System.Management.Automation.PSMemberInfo 517 | System.Management.Automation.PSMemberInfoCollection`1 518 | System.Management.Automation.PSMemberSet 519 | System.Management.Automation.PSMemberTypes 520 | System.Management.Automation.PSMemberViewTypes 521 | System.Management.Automation.PSMethod 522 | System.Management.Automation.PSMethodInfo 523 | System.Management.Automation.PSModuleAutoLoadingPreference 524 | System.Management.Automation.PSModuleInfo 525 | System.Management.Automation.PSNoteProperty 526 | System.Management.Automation.PSNotImplementedException 527 | System.Management.Automation.PSNotSupportedException 528 | System.Management.Automation.PSObject 529 | System.Management.Automation.PSObjectDisposedException 530 | System.Management.Automation.PSObjectPropertyDescriptor 531 | System.Management.Automation.PSObjectTypeDescriptionProvider 532 | System.Management.Automation.PSObjectTypeDescriptor 533 | System.Management.Automation.PSParameterizedProperty 534 | System.Management.Automation.PSParseError 535 | System.Management.Automation.PSParser 536 | System.Management.Automation.PSPrimitiveDictionary 537 | System.Management.Automation.PSProperty 538 | System.Management.Automation.PSPropertyAdapter 539 | System.Management.Automation.PSPropertyInfo 540 | System.Management.Automation.PSPropertySet 541 | System.Management.Automation.PSReference 542 | System.Management.Automation.PSScriptMethod 543 | System.Management.Automation.PSScriptProperty 544 | System.Management.Automation.PSSecurityException 545 | System.Management.Automation.PSSerializer 546 | System.Management.Automation.PSSessionTypeOption 547 | System.Management.Automation.PSSnapInInfo 548 | System.Management.Automation.PSSnapInSpecification 549 | System.Management.Automation.PSToken 550 | System.Management.Automation.PSTokenType 551 | System.Management.Automation.PSTraceSource 552 | System.Management.Automation.PSTraceSourceOptions 553 | System.Management.Automation.PSTransactionContext 554 | System.Management.Automation.PSTransportOption 555 | System.Management.Automation.PSTypeConverter 556 | System.Management.Automation.PSTypeName 557 | System.Management.Automation.PSTypeNameAttribute 558 | System.Management.Automation.PSVariable 559 | System.Management.Automation.PSVariableIntrinsics 560 | System.Management.Automation.PSVariableProperty 561 | System.Management.Automation.PSVersionHashTable 562 | System.Management.Automation.ReadOnlyPSMemberInfoCollection`1 563 | System.Management.Automation.RedirectedException 564 | System.Management.Automation.RegisterArgumentCompleterCommand 565 | System.Management.Automation.RemoteCommandInfo 566 | System.Management.Automation.RemoteException 567 | System.Management.Automation.RemoteStreamOptions 568 | System.Management.Automation.Remoting.CmdletMethodInvoker`1 569 | System.Management.Automation.Remoting.Internal.PSStreamObject 570 | System.Management.Automation.Remoting.Internal.PSStreamObjectType 571 | System.Management.Automation.Remoting.OriginInfo 572 | System.Management.Automation.Remoting.ProxyAccessType 573 | System.Management.Automation.Remoting.PSCertificateDetails 574 | System.Management.Automation.Remoting.PSDirectException 575 | System.Management.Automation.Remoting.PSIdentity 576 | System.Management.Automation.Remoting.PSPrincipal 577 | System.Management.Automation.Remoting.PSRemotingDataStructureException 578 | System.Management.Automation.Remoting.PSRemotingTransportException 579 | System.Management.Automation.Remoting.PSRemotingTransportRedirectException 580 | System.Management.Automation.Remoting.PSSenderInfo 581 | System.Management.Automation.Remoting.PSSessionConfiguration 582 | System.Management.Automation.Remoting.PSSessionConfigurationData 583 | System.Management.Automation.Remoting.PSSessionOption 584 | System.Management.Automation.Remoting.SessionType 585 | System.Management.Automation.Remoting.WSMan.ActiveSessionsChangedEventArgs 586 | System.Management.Automation.Remoting.WSMan.WSManServerChannelEvents 587 | System.Management.Automation.Remoting.WSManPluginManagedEntryInstanceWrapper 588 | System.Management.Automation.Remoting.WSManPluginManagedEntryWrapper 589 | System.Management.Automation.RemotingBehavior 590 | System.Management.Automation.RemotingCapability 591 | System.Management.Automation.Repository`1 592 | System.Management.Automation.ResolutionPurpose 593 | System.Management.Automation.ReturnContainers 594 | System.Management.Automation.RollbackSeverity 595 | System.Management.Automation.RunspaceMode 596 | System.Management.Automation.RunspacePoolStateInfo 597 | System.Management.Automation.RunspaceRepository 598 | System.Management.Automation.Runspaces.AliasPropertyData 599 | System.Management.Automation.Runspaces.AuthenticationMechanism 600 | System.Management.Automation.Runspaces.CodeMethodData 601 | System.Management.Automation.Runspaces.CodePropertyData 602 | System.Management.Automation.Runspaces.Command 603 | System.Management.Automation.Runspaces.CommandCollection 604 | System.Management.Automation.Runspaces.CommandParameter 605 | System.Management.Automation.Runspaces.CommandParameterCollection 606 | System.Management.Automation.Runspaces.ConstrainedSessionStateEntry 607 | System.Management.Automation.Runspaces.ContainerConnectionInfo 608 | System.Management.Automation.Runspaces.FormatTable 609 | System.Management.Automation.Runspaces.FormatTableLoadException 610 | System.Management.Automation.Runspaces.InitialSessionState 611 | System.Management.Automation.Runspaces.InitialSessionStateEntry 612 | System.Management.Automation.Runspaces.InitialSessionStateEntryCollection`1 613 | System.Management.Automation.Runspaces.InvalidPipelineStateException 614 | System.Management.Automation.Runspaces.InvalidRunspacePoolStateException 615 | System.Management.Automation.Runspaces.InvalidRunspaceStateException 616 | System.Management.Automation.Runspaces.MemberSetData 617 | System.Management.Automation.Runspaces.NamedPipeConnectionInfo 618 | System.Management.Automation.Runspaces.NotePropertyData 619 | System.Management.Automation.Runspaces.OutputBufferingMode 620 | System.Management.Automation.Runspaces.Pipeline 621 | System.Management.Automation.Runspaces.PipelineReader`1 622 | System.Management.Automation.Runspaces.PipelineResultTypes 623 | System.Management.Automation.Runspaces.PipelineState 624 | System.Management.Automation.Runspaces.PipelineStateEventArgs 625 | System.Management.Automation.Runspaces.PipelineStateInfo 626 | System.Management.Automation.Runspaces.PipelineWriter 627 | System.Management.Automation.Runspaces.PowerShellProcessInstance 628 | System.Management.Automation.Runspaces.PropertySetData 629 | System.Management.Automation.Runspaces.PSConsoleLoadException 630 | System.Management.Automation.Runspaces.PSSession 631 | System.Management.Automation.Runspaces.PSSessionConfigurationAccessMode 632 | System.Management.Automation.Runspaces.PSSessionType 633 | System.Management.Automation.Runspaces.PSSnapInException 634 | System.Management.Automation.Runspaces.PSThreadOptions 635 | System.Management.Automation.Runspaces.RemotingDebugRecord 636 | System.Management.Automation.Runspaces.RemotingErrorRecord 637 | System.Management.Automation.Runspaces.RemotingInformationRecord 638 | System.Management.Automation.Runspaces.RemotingProgressRecord 639 | System.Management.Automation.Runspaces.RemotingVerboseRecord 640 | System.Management.Automation.Runspaces.RemotingWarningRecord 641 | System.Management.Automation.Runspaces.Runspace 642 | System.Management.Automation.Runspaces.RunspaceAvailability 643 | System.Management.Automation.Runspaces.RunspaceAvailabilityEventArgs 644 | System.Management.Automation.Runspaces.RunspaceCapability 645 | System.Management.Automation.Runspaces.RunspaceConnectionInfo 646 | System.Management.Automation.Runspaces.RunspaceFactory 647 | System.Management.Automation.Runspaces.RunspaceOpenModuleLoadException 648 | System.Management.Automation.Runspaces.RunspacePool 649 | System.Management.Automation.Runspaces.RunspacePoolAvailability 650 | System.Management.Automation.Runspaces.RunspacePoolCapability 651 | System.Management.Automation.Runspaces.RunspacePoolState 652 | System.Management.Automation.Runspaces.RunspacePoolStateChangedEventArgs 653 | System.Management.Automation.Runspaces.RunspaceState 654 | System.Management.Automation.Runspaces.RunspaceStateEventArgs 655 | System.Management.Automation.Runspaces.RunspaceStateInfo 656 | System.Management.Automation.Runspaces.ScriptMethodData 657 | System.Management.Automation.Runspaces.ScriptPropertyData 658 | System.Management.Automation.Runspaces.SessionStateAliasEntry 659 | System.Management.Automation.Runspaces.SessionStateApplicationEntry 660 | System.Management.Automation.Runspaces.SessionStateAssemblyEntry 661 | System.Management.Automation.Runspaces.SessionStateCmdletEntry 662 | System.Management.Automation.Runspaces.SessionStateCommandEntry 663 | System.Management.Automation.Runspaces.SessionStateFormatEntry 664 | System.Management.Automation.Runspaces.SessionStateFunctionEntry 665 | System.Management.Automation.Runspaces.SessionStateProviderEntry 666 | System.Management.Automation.Runspaces.SessionStateProxy 667 | System.Management.Automation.Runspaces.SessionStateScriptEntry 668 | System.Management.Automation.Runspaces.SessionStateTypeEntry 669 | System.Management.Automation.Runspaces.SessionStateVariableEntry 670 | System.Management.Automation.Runspaces.SSHConnectionInfo 671 | System.Management.Automation.Runspaces.TargetMachineType 672 | System.Management.Automation.Runspaces.TypeData 673 | System.Management.Automation.Runspaces.TypeMemberData 674 | System.Management.Automation.Runspaces.TypeTable 675 | System.Management.Automation.Runspaces.TypeTableLoadException 676 | System.Management.Automation.Runspaces.VMConnectionInfo 677 | System.Management.Automation.Runspaces.WSManConnectionInfo 678 | System.Management.Automation.RuntimeDefinedParameter 679 | System.Management.Automation.RuntimeDefinedParameterDictionary 680 | System.Management.Automation.RuntimeException 681 | System.Management.Automation.ScopedItemOptions 682 | System.Management.Automation.ScriptBlock 683 | System.Management.Automation.ScriptBlockToPowerShellNotSupportedException 684 | System.Management.Automation.ScriptCallDepthException 685 | System.Management.Automation.ScriptInfo 686 | System.Management.Automation.ScriptRequiresException 687 | System.Management.Automation.SecurityDescriptorCmdletProviderIntrinsics 688 | System.Management.Automation.SemanticVersion 689 | System.Management.Automation.SessionCapabilities 690 | System.Management.Automation.SessionState 691 | System.Management.Automation.SessionStateCategory 692 | System.Management.Automation.SessionStateEntryVisibility 693 | System.Management.Automation.SessionStateException 694 | System.Management.Automation.SessionStateUnauthorizedAccessException 695 | System.Management.Automation.SettingValueExceptionEventArgs 696 | System.Management.Automation.SetValueException 697 | System.Management.Automation.SetValueInvocationException 698 | System.Management.Automation.ShouldProcessReason 699 | System.Management.Automation.Signature 700 | System.Management.Automation.SignatureStatus 701 | System.Management.Automation.SignatureType 702 | System.Management.Automation.SigningOption 703 | System.Management.Automation.SplitOptions 704 | System.Management.Automation.StartRunspaceDebugProcessingEventArgs 705 | System.Management.Automation.SteppablePipeline 706 | System.Management.Automation.SupportsWildcardsAttribute 707 | System.Management.Automation.SwitchParameter 708 | System.Management.Automation.TableControl 709 | System.Management.Automation.TableControlBuilder 710 | System.Management.Automation.TableControlColumn 711 | System.Management.Automation.TableControlColumnHeader 712 | System.Management.Automation.TableControlRow 713 | System.Management.Automation.TableRowDefinitionBuilder 714 | System.Management.Automation.TerminateException 715 | System.Management.Automation.Tracing.EtwActivity 716 | System.Management.Automation.Tracing.PowerShellTraceKeywords 717 | System.Management.Automation.Tracing.PowerShellTraceSource 718 | System.Management.Automation.Tracing.PowerShellTraceSourceFactory 719 | System.Management.Automation.Tracing.PowerShellTraceTask 720 | System.Management.Automation.Tracing.Tracer 721 | System.Management.Automation.TypeInferenceRuntimePermissions 722 | System.Management.Automation.ValidateArgumentsAttribute 723 | System.Management.Automation.ValidateCountAttribute 724 | System.Management.Automation.ValidateDriveAttribute 725 | System.Management.Automation.ValidateEnumeratedArgumentsAttribute 726 | System.Management.Automation.ValidateLengthAttribute 727 | System.Management.Automation.ValidateNotNullAttribute 728 | System.Management.Automation.ValidateNotNullOrEmptyAttribute 729 | System.Management.Automation.ValidatePatternAttribute 730 | System.Management.Automation.ValidateRangeAttribute 731 | System.Management.Automation.ValidateRangeKind 732 | System.Management.Automation.ValidateScriptAttribute 733 | System.Management.Automation.ValidateSetAttribute 734 | System.Management.Automation.ValidateUserDriveAttribute 735 | System.Management.Automation.ValidationMetadataException 736 | System.Management.Automation.VariableAccessMode 737 | System.Management.Automation.VariableBreakpoint 738 | System.Management.Automation.VariablePath 739 | System.Management.Automation.VerbInfo 740 | System.Management.Automation.VerboseRecord 741 | System.Management.Automation.VerbsCommon 742 | System.Management.Automation.VerbsCommunications 743 | System.Management.Automation.VerbsData 744 | System.Management.Automation.VerbsDiagnostic 745 | System.Management.Automation.VerbsLifecycle 746 | System.Management.Automation.VerbsOther 747 | System.Management.Automation.VerbsSecurity 748 | System.Management.Automation.WarningRecord 749 | System.Management.Automation.WhereOperatorSelectionMode 750 | System.Management.Automation.WideControl 751 | System.Management.Automation.WideControlBuilder 752 | System.Management.Automation.WideControlEntryItem 753 | System.Management.Automation.WildcardOptions 754 | System.Management.Automation.WildcardPattern 755 | System.Management.Automation.WildcardPatternException 756 | System.Management.Automation.WorkflowInfo 757 | -------------------------------------------------------------------------------- /doc/assets/PSS5.txt: -------------------------------------------------------------------------------- 1 | Microsoft.PowerShell.Cim.CimInstanceAdapter 2 | Microsoft.PowerShell.Cmdletization.BehaviorOnNoMatch 3 | Microsoft.PowerShell.Cmdletization.CmdletAdapter`1 4 | Microsoft.PowerShell.Cmdletization.MethodInvocationInfo 5 | Microsoft.PowerShell.Cmdletization.MethodParameter 6 | Microsoft.PowerShell.Cmdletization.MethodParameterBindings 7 | Microsoft.PowerShell.Cmdletization.QueryBuilder 8 | Microsoft.PowerShell.Cmdletization.Xml.ConfirmImpact 9 | Microsoft.PowerShell.Cmdletization.Xml.ItemsChoiceType 10 | Microsoft.PowerShell.Commands.AddHistoryCommand 11 | Microsoft.PowerShell.Commands.AliasProvider 12 | Microsoft.PowerShell.Commands.AliasProviderDynamicParameters 13 | Microsoft.PowerShell.Commands.ClearHistoryCommand 14 | Microsoft.PowerShell.Commands.DebugJobCommand 15 | Microsoft.PowerShell.Commands.EnterPSSessionCommand 16 | Microsoft.PowerShell.Commands.EnvironmentProvider 17 | Microsoft.PowerShell.Commands.ExitPSSessionCommand 18 | Microsoft.PowerShell.Commands.ExportModuleMemberCommand 19 | Microsoft.PowerShell.Commands.FileSystemClearContentDynamicParameters 20 | Microsoft.PowerShell.Commands.FileSystemContentDynamicParametersBase 21 | Microsoft.PowerShell.Commands.FileSystemContentReaderDynamicParameters 22 | Microsoft.PowerShell.Commands.FileSystemContentWriterDynamicParameters 23 | Microsoft.PowerShell.Commands.FileSystemItemProviderDynamicParameters 24 | Microsoft.PowerShell.Commands.FileSystemProvider 25 | Microsoft.PowerShell.Commands.FileSystemProviderGetItemDynamicParameters 26 | Microsoft.PowerShell.Commands.FileSystemProviderRemoveItemDynamicParameters 27 | Microsoft.PowerShell.Commands.ForEachObjectCommand 28 | Microsoft.PowerShell.Commands.FormatDefaultCommand 29 | Microsoft.PowerShell.Commands.FunctionProvider 30 | Microsoft.PowerShell.Commands.FunctionProviderDynamicParameters 31 | Microsoft.PowerShell.Commands.GetCommandCommand 32 | Microsoft.PowerShell.Commands.GetHelpCodeMethods 33 | Microsoft.PowerShell.Commands.GetHelpCommand 34 | Microsoft.PowerShell.Commands.GetHistoryCommand 35 | Microsoft.PowerShell.Commands.GetJobCommand 36 | Microsoft.PowerShell.Commands.GetModuleCommand 37 | Microsoft.PowerShell.Commands.GetPSSessionCommand 38 | Microsoft.PowerShell.Commands.HelpCategoryInvalidException 39 | Microsoft.PowerShell.Commands.HelpNotFoundException 40 | Microsoft.PowerShell.Commands.HistoryInfo 41 | Microsoft.PowerShell.Commands.ImportModuleCommand 42 | Microsoft.PowerShell.Commands.Internal.Format.FrontEndCommandBase 43 | Microsoft.PowerShell.Commands.Internal.Format.OuterFormatShapeCommandBase 44 | Microsoft.PowerShell.Commands.Internal.Format.OuterFormatTableAndListBase 45 | Microsoft.PowerShell.Commands.Internal.Format.OuterFormatTableBase 46 | Microsoft.PowerShell.Commands.InternalSymbolicLinkLinkCodeMethods 47 | Microsoft.PowerShell.Commands.InvokeCommandCommand 48 | Microsoft.PowerShell.Commands.InvokeHistoryCommand 49 | Microsoft.PowerShell.Commands.JobCmdletBase 50 | Microsoft.PowerShell.Commands.ModuleCmdletBase 51 | Microsoft.PowerShell.Commands.ModuleSpecification 52 | Microsoft.PowerShell.Commands.NewModuleCommand 53 | Microsoft.PowerShell.Commands.NewModuleManifestCommand 54 | Microsoft.PowerShell.Commands.NewPSRoleCapabilityFileCommand 55 | Microsoft.PowerShell.Commands.NewPSTransportOptionCommand 56 | Microsoft.PowerShell.Commands.NounArgumentCompleter 57 | Microsoft.PowerShell.Commands.ObjectEventRegistrationBase 58 | Microsoft.PowerShell.Commands.OpenMode 59 | Microsoft.PowerShell.Commands.OutDefaultCommand 60 | Microsoft.PowerShell.Commands.OutHostCommand 61 | Microsoft.PowerShell.Commands.OutLineOutputCommand 62 | Microsoft.PowerShell.Commands.OutNullCommand 63 | Microsoft.PowerShell.Commands.PSEditionArgumentCompleter 64 | Microsoft.PowerShell.Commands.PSExecutionCmdlet 65 | Microsoft.PowerShell.Commands.PSRemotingBaseCmdlet 66 | Microsoft.PowerShell.Commands.PSRemotingCmdlet 67 | Microsoft.PowerShell.Commands.PSRunspaceCmdlet 68 | Microsoft.PowerShell.Commands.ReceiveJobCommand 69 | Microsoft.PowerShell.Commands.RemoveJobCommand 70 | Microsoft.PowerShell.Commands.RemoveModuleCommand 71 | Microsoft.PowerShell.Commands.RemovePSSessionCommand 72 | Microsoft.PowerShell.Commands.ResumeJobCommand 73 | Microsoft.PowerShell.Commands.SaveHelpCommand 74 | Microsoft.PowerShell.Commands.SessionFilterState 75 | Microsoft.PowerShell.Commands.SessionStateProviderBase 76 | Microsoft.PowerShell.Commands.SessionStateProviderBaseContentReaderWriter 77 | Microsoft.PowerShell.Commands.SetPSDebugCommand 78 | Microsoft.PowerShell.Commands.SetStrictModeCommand 79 | Microsoft.PowerShell.Commands.StartJobCommand 80 | Microsoft.PowerShell.Commands.StopJobCommand 81 | Microsoft.PowerShell.Commands.SuspendJobCommand 82 | Microsoft.PowerShell.Commands.TestModuleManifestCommand 83 | Microsoft.PowerShell.Commands.UpdatableHelpCommandBase 84 | Microsoft.PowerShell.Commands.UpdateHelpCommand 85 | Microsoft.PowerShell.Commands.VariableProvider 86 | Microsoft.PowerShell.Commands.WaitJobCommand 87 | Microsoft.PowerShell.Commands.WhereObjectCommand 88 | Microsoft.PowerShell.Commands.WSManConfigurationOption 89 | Microsoft.PowerShell.DeserializingTypeConverter 90 | Microsoft.PowerShell.ExecutionPolicy 91 | Microsoft.PowerShell.ExecutionPolicyScope 92 | Microsoft.PowerShell.PSAuthorizationManager 93 | Microsoft.PowerShell.ToStringCodeMethods 94 | System.Management.Automation.ActionPreference 95 | System.Management.Automation.ActionPreferenceStopException 96 | System.Management.Automation.AliasAttribute 97 | System.Management.Automation.AliasInfo 98 | System.Management.Automation.Alignment 99 | System.Management.Automation.AllowEmptyCollectionAttribute 100 | System.Management.Automation.AllowEmptyStringAttribute 101 | System.Management.Automation.AllowNullAttribute 102 | System.Management.Automation.ApplicationFailedException 103 | System.Management.Automation.ApplicationInfo 104 | System.Management.Automation.ArgumentCompleterAttribute 105 | System.Management.Automation.ArgumentTransformationAttribute 106 | System.Management.Automation.ArgumentTransformationMetadataException 107 | System.Management.Automation.AuthorizationManager 108 | System.Management.Automation.BreakException 109 | System.Management.Automation.Breakpoint 110 | System.Management.Automation.BreakpointUpdatedEventArgs 111 | System.Management.Automation.BreakpointUpdateType 112 | System.Management.Automation.CallStackFrame 113 | System.Management.Automation.ChildItemCmdletProviderIntrinsics 114 | System.Management.Automation.Cmdlet 115 | System.Management.Automation.CmdletAttribute 116 | System.Management.Automation.CmdletBindingAttribute 117 | System.Management.Automation.CmdletCommonMetadataAttribute 118 | System.Management.Automation.CmdletInfo 119 | System.Management.Automation.CmdletInvocationException 120 | System.Management.Automation.CmdletProviderInvocationException 121 | System.Management.Automation.CmdletProviderManagementIntrinsics 122 | System.Management.Automation.CmsMessageRecipient 123 | System.Management.Automation.CommandBreakpoint 124 | System.Management.Automation.CommandCompletion 125 | System.Management.Automation.CommandInfo 126 | System.Management.Automation.CommandInvocationIntrinsics 127 | System.Management.Automation.CommandLookupEventArgs 128 | System.Management.Automation.CommandMetadata 129 | System.Management.Automation.CommandNotFoundException 130 | System.Management.Automation.CommandOrigin 131 | System.Management.Automation.CommandParameterInfo 132 | System.Management.Automation.CommandParameterSetInfo 133 | System.Management.Automation.CommandTypes 134 | System.Management.Automation.CompletionCompleters 135 | System.Management.Automation.CompletionResult 136 | System.Management.Automation.CompletionResultType 137 | System.Management.Automation.ConfigurationInfo 138 | System.Management.Automation.ConfirmImpact 139 | System.Management.Automation.ContainerParentJob 140 | System.Management.Automation.ContentCmdletProviderIntrinsics 141 | System.Management.Automation.ContinueException 142 | System.Management.Automation.ConvertThroughString 143 | System.Management.Automation.CopyContainers 144 | System.Management.Automation.CredentialAttribute 145 | System.Management.Automation.CustomControl 146 | System.Management.Automation.CustomControlBuilder 147 | System.Management.Automation.CustomControlEntry 148 | System.Management.Automation.CustomEntryBuilder 149 | System.Management.Automation.CustomItemBase 150 | System.Management.Automation.CustomItemExpression 151 | System.Management.Automation.CustomItemFrame 152 | System.Management.Automation.CustomItemNewline 153 | System.Management.Automation.CustomItemText 154 | System.Management.Automation.DataAddedEventArgs 155 | System.Management.Automation.DataAddingEventArgs 156 | System.Management.Automation.Debugger 157 | System.Management.Automation.DebuggerCommandResults 158 | System.Management.Automation.DebuggerResumeAction 159 | System.Management.Automation.DebuggerStopEventArgs 160 | System.Management.Automation.DebugModes 161 | System.Management.Automation.DebugRecord 162 | System.Management.Automation.DefaultParameterDictionary 163 | System.Management.Automation.DisplayEntry 164 | System.Management.Automation.DisplayEntryValueType 165 | System.Management.Automation.DriveManagementIntrinsics 166 | System.Management.Automation.DriveNotFoundException 167 | System.Management.Automation.DscLocalConfigurationManagerAttribute 168 | System.Management.Automation.DscPropertyAttribute 169 | System.Management.Automation.DscResourceAttribute 170 | System.Management.Automation.DscResourceInfo 171 | System.Management.Automation.DscResourcePropertyInfo 172 | System.Management.Automation.DSCResourceRunAsCredential 173 | System.Management.Automation.DynamicClassImplementationAssemblyAttribute 174 | System.Management.Automation.EngineIntrinsics 175 | System.Management.Automation.EntrySelectedBy 176 | System.Management.Automation.ErrorCategory 177 | System.Management.Automation.ErrorCategoryInfo 178 | System.Management.Automation.ErrorDetails 179 | System.Management.Automation.ErrorRecord 180 | System.Management.Automation.ExitException 181 | System.Management.Automation.ExtendedTypeDefinition 182 | System.Management.Automation.ExtendedTypeSystemException 183 | System.Management.Automation.ExternalScriptInfo 184 | System.Management.Automation.FilterInfo 185 | System.Management.Automation.FlagsExpression`1 186 | System.Management.Automation.FlowControlException 187 | System.Management.Automation.FormatViewDefinition 188 | System.Management.Automation.ForwardedEventArgs 189 | System.Management.Automation.FunctionInfo 190 | System.Management.Automation.GettingValueExceptionEventArgs 191 | System.Management.Automation.GetValueException 192 | System.Management.Automation.GetValueInvocationException 193 | System.Management.Automation.HaltCommandException 194 | System.Management.Automation.HiddenAttribute 195 | System.Management.Automation.Host.BufferCell 196 | System.Management.Automation.Host.BufferCellType 197 | System.Management.Automation.Host.ChoiceDescription 198 | System.Management.Automation.Host.ControlKeyStates 199 | System.Management.Automation.Host.Coordinates 200 | System.Management.Automation.Host.FieldDescription 201 | System.Management.Automation.Host.HostException 202 | System.Management.Automation.Host.IHostSupportsInteractiveSession 203 | System.Management.Automation.Host.IHostUISupportsMultipleChoiceSelection 204 | System.Management.Automation.Host.KeyInfo 205 | System.Management.Automation.Host.PromptingException 206 | System.Management.Automation.Host.PSHost 207 | System.Management.Automation.Host.PSHostRawUserInterface 208 | System.Management.Automation.Host.PSHostUserInterface 209 | System.Management.Automation.Host.ReadKeyOptions 210 | System.Management.Automation.Host.Rectangle 211 | System.Management.Automation.Host.Size 212 | System.Management.Automation.HostInformationMessage 213 | System.Management.Automation.HostUtilities 214 | System.Management.Automation.IArgumentCompleter 215 | System.Management.Automation.ICommandRuntime 216 | System.Management.Automation.ICommandRuntime2 217 | System.Management.Automation.IContainsErrorRecord 218 | System.Management.Automation.IDynamicParameters 219 | System.Management.Automation.IJobDebugger 220 | System.Management.Automation.IModuleAssemblyCleanup 221 | System.Management.Automation.IModuleAssemblyInitializer 222 | System.Management.Automation.ImplementedAsType 223 | System.Management.Automation.IncompleteParseException 224 | System.Management.Automation.InformationalRecord 225 | System.Management.Automation.InformationRecord 226 | System.Management.Automation.Internal.AutomationNull 227 | System.Management.Automation.Internal.ClassOps 228 | System.Management.Automation.Internal.CmdletMetadataAttribute 229 | System.Management.Automation.Internal.CommonParameters 230 | System.Management.Automation.Internal.DebuggerUtils 231 | System.Management.Automation.Internal.InternalCommand 232 | System.Management.Automation.Internal.InternalTestHooks 233 | System.Management.Automation.Internal.ParsingBaseAttribute 234 | System.Management.Automation.Internal.PSEmbeddedMonitorRunspaceInfo 235 | System.Management.Automation.Internal.PSMonitorRunspaceInfo 236 | System.Management.Automation.Internal.PSMonitorRunspaceType 237 | System.Management.Automation.Internal.PSStandaloneMonitorRunspaceInfo 238 | System.Management.Automation.Internal.ScriptBlockMemberMethodWrapper 239 | System.Management.Automation.Internal.SecuritySupport 240 | System.Management.Automation.Internal.SessionStateKeeper 241 | System.Management.Automation.Internal.ShouldProcessParameters 242 | System.Management.Automation.InvalidJobStateException 243 | System.Management.Automation.InvalidPowerShellStateException 244 | System.Management.Automation.InvocationInfo 245 | System.Management.Automation.IResourceSupplier 246 | System.Management.Automation.ItemCmdletProviderIntrinsics 247 | System.Management.Automation.ItemNotFoundException 248 | System.Management.Automation.Job 249 | System.Management.Automation.Job2 250 | System.Management.Automation.JobDataAddedEventArgs 251 | System.Management.Automation.JobDefinition 252 | System.Management.Automation.JobFailedException 253 | System.Management.Automation.JobIdentifier 254 | System.Management.Automation.JobInvocationInfo 255 | System.Management.Automation.JobManager 256 | System.Management.Automation.JobRepository 257 | System.Management.Automation.JobSourceAdapter 258 | System.Management.Automation.JobState 259 | System.Management.Automation.JobStateEventArgs 260 | System.Management.Automation.JobStateInfo 261 | System.Management.Automation.JobThreadOptions 262 | System.Management.Automation.Language.ArrayExpressionAst 263 | System.Management.Automation.Language.ArrayLiteralAst 264 | System.Management.Automation.Language.ArrayTypeName 265 | System.Management.Automation.Language.AssignmentStatementAst 266 | System.Management.Automation.Language.Ast 267 | System.Management.Automation.Language.AstVisitAction 268 | System.Management.Automation.Language.AstVisitor 269 | System.Management.Automation.Language.AstVisitor2 270 | System.Management.Automation.Language.AttributeAst 271 | System.Management.Automation.Language.AttributeBaseAst 272 | System.Management.Automation.Language.AttributedExpressionAst 273 | System.Management.Automation.Language.BaseCtorInvokeMemberExpressionAst 274 | System.Management.Automation.Language.BinaryExpressionAst 275 | System.Management.Automation.Language.BlockStatementAst 276 | System.Management.Automation.Language.BreakStatementAst 277 | System.Management.Automation.Language.CatchClauseAst 278 | System.Management.Automation.Language.CodeGeneration 279 | System.Management.Automation.Language.CommandAst 280 | System.Management.Automation.Language.CommandBaseAst 281 | System.Management.Automation.Language.CommandElementAst 282 | System.Management.Automation.Language.CommandExpressionAst 283 | System.Management.Automation.Language.CommandParameterAst 284 | System.Management.Automation.Language.CommentHelpInfo 285 | System.Management.Automation.Language.ConfigurationDefinitionAst 286 | System.Management.Automation.Language.ConfigurationType 287 | System.Management.Automation.Language.ConstantExpressionAst 288 | System.Management.Automation.Language.ContinueStatementAst 289 | System.Management.Automation.Language.ConvertExpressionAst 290 | System.Management.Automation.Language.DataStatementAst 291 | System.Management.Automation.Language.DefaultCustomAstVisitor 292 | System.Management.Automation.Language.DefaultCustomAstVisitor2 293 | System.Management.Automation.Language.DoUntilStatementAst 294 | System.Management.Automation.Language.DoWhileStatementAst 295 | System.Management.Automation.Language.DynamicKeyword 296 | System.Management.Automation.Language.DynamicKeywordBodyMode 297 | System.Management.Automation.Language.DynamicKeywordNameMode 298 | System.Management.Automation.Language.DynamicKeywordParameter 299 | System.Management.Automation.Language.DynamicKeywordProperty 300 | System.Management.Automation.Language.DynamicKeywordStatementAst 301 | System.Management.Automation.Language.ErrorExpressionAst 302 | System.Management.Automation.Language.ErrorStatementAst 303 | System.Management.Automation.Language.ExitStatementAst 304 | System.Management.Automation.Language.ExpandableStringExpressionAst 305 | System.Management.Automation.Language.ExpressionAst 306 | System.Management.Automation.Language.FileRedirectionAst 307 | System.Management.Automation.Language.FileRedirectionToken 308 | System.Management.Automation.Language.ForEachFlags 309 | System.Management.Automation.Language.ForEachStatementAst 310 | System.Management.Automation.Language.ForStatementAst 311 | System.Management.Automation.Language.FunctionDefinitionAst 312 | System.Management.Automation.Language.FunctionMemberAst 313 | System.Management.Automation.Language.GenericTypeName 314 | System.Management.Automation.Language.HashtableAst 315 | System.Management.Automation.Language.IAstPostVisitHandler 316 | System.Management.Automation.Language.ICustomAstVisitor 317 | System.Management.Automation.Language.ICustomAstVisitor2 318 | System.Management.Automation.Language.IfStatementAst 319 | System.Management.Automation.Language.IndexExpressionAst 320 | System.Management.Automation.Language.InputRedirectionToken 321 | System.Management.Automation.Language.InvokeMemberExpressionAst 322 | System.Management.Automation.Language.IScriptExtent 323 | System.Management.Automation.Language.IScriptPosition 324 | System.Management.Automation.Language.ITypeName 325 | System.Management.Automation.Language.LabeledStatementAst 326 | System.Management.Automation.Language.LabelToken 327 | System.Management.Automation.Language.LoopStatementAst 328 | System.Management.Automation.Language.MemberAst 329 | System.Management.Automation.Language.MemberExpressionAst 330 | System.Management.Automation.Language.MergingRedirectionAst 331 | System.Management.Automation.Language.MergingRedirectionToken 332 | System.Management.Automation.Language.MethodAttributes 333 | System.Management.Automation.Language.NamedAttributeArgumentAst 334 | System.Management.Automation.Language.NamedBlockAst 335 | System.Management.Automation.Language.NullString 336 | System.Management.Automation.Language.NumberToken 337 | System.Management.Automation.Language.ParamBlockAst 338 | System.Management.Automation.Language.ParameterAst 339 | System.Management.Automation.Language.ParameterBindingResult 340 | System.Management.Automation.Language.ParameterToken 341 | System.Management.Automation.Language.ParenExpressionAst 342 | System.Management.Automation.Language.ParseError 343 | System.Management.Automation.Language.Parser 344 | System.Management.Automation.Language.PipelineAst 345 | System.Management.Automation.Language.PipelineBaseAst 346 | System.Management.Automation.Language.PropertyAttributes 347 | System.Management.Automation.Language.PropertyMemberAst 348 | System.Management.Automation.Language.RedirectionAst 349 | System.Management.Automation.Language.RedirectionStream 350 | System.Management.Automation.Language.RedirectionToken 351 | System.Management.Automation.Language.ReflectionTypeName 352 | System.Management.Automation.Language.ReturnStatementAst 353 | System.Management.Automation.Language.ScriptBlockAst 354 | System.Management.Automation.Language.ScriptBlockExpressionAst 355 | System.Management.Automation.Language.ScriptExtent 356 | System.Management.Automation.Language.ScriptPosition 357 | System.Management.Automation.Language.ScriptRequirements 358 | System.Management.Automation.Language.StatementAst 359 | System.Management.Automation.Language.StatementBlockAst 360 | System.Management.Automation.Language.StaticBindingError 361 | System.Management.Automation.Language.StaticBindingResult 362 | System.Management.Automation.Language.StaticParameterBinder 363 | System.Management.Automation.Language.StringConstantExpressionAst 364 | System.Management.Automation.Language.StringConstantType 365 | System.Management.Automation.Language.StringExpandableToken 366 | System.Management.Automation.Language.StringLiteralToken 367 | System.Management.Automation.Language.StringToken 368 | System.Management.Automation.Language.SubExpressionAst 369 | System.Management.Automation.Language.SwitchFlags 370 | System.Management.Automation.Language.SwitchStatementAst 371 | System.Management.Automation.Language.ThrowStatementAst 372 | System.Management.Automation.Language.Token 373 | System.Management.Automation.Language.TokenFlags 374 | System.Management.Automation.Language.TokenKind 375 | System.Management.Automation.Language.TokenTraits 376 | System.Management.Automation.Language.TrapStatementAst 377 | System.Management.Automation.Language.TryStatementAst 378 | System.Management.Automation.Language.TypeAttributes 379 | System.Management.Automation.Language.TypeConstraintAst 380 | System.Management.Automation.Language.TypeDefinitionAst 381 | System.Management.Automation.Language.TypeExpressionAst 382 | System.Management.Automation.Language.TypeName 383 | System.Management.Automation.Language.UnaryExpressionAst 384 | System.Management.Automation.Language.UsingExpressionAst 385 | System.Management.Automation.Language.UsingStatementAst 386 | System.Management.Automation.Language.UsingStatementKind 387 | System.Management.Automation.Language.VariableExpressionAst 388 | System.Management.Automation.Language.VariableToken 389 | System.Management.Automation.Language.WhileStatementAst 390 | System.Management.Automation.LanguagePrimitives 391 | System.Management.Automation.LineBreakpoint 392 | System.Management.Automation.ListControl 393 | System.Management.Automation.ListControlBuilder 394 | System.Management.Automation.ListControlEntry 395 | System.Management.Automation.ListControlEntryItem 396 | System.Management.Automation.ListEntryBuilder 397 | System.Management.Automation.LoopFlowException 398 | System.Management.Automation.MetadataException 399 | System.Management.Automation.MethodException 400 | System.Management.Automation.MethodInvocationException 401 | System.Management.Automation.ModuleAccessMode 402 | System.Management.Automation.ModuleIntrinsics 403 | System.Management.Automation.ModuleType 404 | System.Management.Automation.NullValidationAttributeBase 405 | System.Management.Automation.OutputTypeAttribute 406 | System.Management.Automation.PagingParameters 407 | System.Management.Automation.ParameterAttribute 408 | System.Management.Automation.ParameterBindingException 409 | System.Management.Automation.ParameterMetadata 410 | System.Management.Automation.ParameterSetMetadata 411 | System.Management.Automation.ParentContainsErrorRecordException 412 | System.Management.Automation.ParseException 413 | System.Management.Automation.ParsingMetadataException 414 | System.Management.Automation.PathInfo 415 | System.Management.Automation.PathInfoStack 416 | System.Management.Automation.PathIntrinsics 417 | System.Management.Automation.PipelineClosedException 418 | System.Management.Automation.PipelineDepthException 419 | System.Management.Automation.PipelineStoppedException 420 | System.Management.Automation.PowerShell 421 | System.Management.Automation.PowerShellStreams`2 422 | System.Management.Automation.PowerShellStreamType 423 | System.Management.Automation.ProgressRecord 424 | System.Management.Automation.ProgressRecordType 425 | System.Management.Automation.PropertyCmdletProviderIntrinsics 426 | System.Management.Automation.PropertyNotFoundException 427 | System.Management.Automation.Provider.CmdletProvider 428 | System.Management.Automation.Provider.CmdletProviderAttribute 429 | System.Management.Automation.Provider.ContainerCmdletProvider 430 | System.Management.Automation.Provider.DriveCmdletProvider 431 | System.Management.Automation.Provider.ICmdletProviderSupportsHelp 432 | System.Management.Automation.Provider.IContentCmdletProvider 433 | System.Management.Automation.Provider.IContentReader 434 | System.Management.Automation.Provider.IContentWriter 435 | System.Management.Automation.Provider.IDynamicPropertyCmdletProvider 436 | System.Management.Automation.Provider.IPropertyCmdletProvider 437 | System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider 438 | System.Management.Automation.Provider.ItemCmdletProvider 439 | System.Management.Automation.Provider.NavigationCmdletProvider 440 | System.Management.Automation.Provider.ProviderCapabilities 441 | System.Management.Automation.ProviderCmdlet 442 | System.Management.Automation.ProviderInfo 443 | System.Management.Automation.ProviderIntrinsics 444 | System.Management.Automation.ProviderInvocationException 445 | System.Management.Automation.ProviderNameAmbiguousException 446 | System.Management.Automation.ProviderNotFoundException 447 | System.Management.Automation.ProxyCommand 448 | System.Management.Automation.PSAdaptedProperty 449 | System.Management.Automation.PSAliasProperty 450 | System.Management.Automation.PSArgumentException 451 | System.Management.Automation.PSArgumentNullException 452 | System.Management.Automation.PSArgumentOutOfRangeException 453 | System.Management.Automation.PSChildJobProxy 454 | System.Management.Automation.PSClassInfo 455 | System.Management.Automation.PSClassMemberInfo 456 | System.Management.Automation.PSCmdlet 457 | System.Management.Automation.PSCodeMethod 458 | System.Management.Automation.PSCodeProperty 459 | System.Management.Automation.PSCommand 460 | System.Management.Automation.PSControl 461 | System.Management.Automation.PSControlGroupBy 462 | System.Management.Automation.PSCredential 463 | System.Management.Automation.PSCredentialTypes 464 | System.Management.Automation.PSCredentialUIOptions 465 | System.Management.Automation.PSCustomObject 466 | System.Management.Automation.PSDataCollection`1 467 | System.Management.Automation.PSDataStreams 468 | System.Management.Automation.PSDebugContext 469 | System.Management.Automation.PSDefaultValueAttribute 470 | System.Management.Automation.PSDriveInfo 471 | System.Management.Automation.PSDynamicMember 472 | System.Management.Automation.PSEngineEvent 473 | System.Management.Automation.PSEvent 474 | System.Management.Automation.PSEventArgs 475 | System.Management.Automation.PSEventArgsCollection 476 | System.Management.Automation.PSEventHandler 477 | System.Management.Automation.PSEventJob 478 | System.Management.Automation.PSEventManager 479 | System.Management.Automation.PSEventReceivedEventHandler 480 | System.Management.Automation.PSEventSubscriber 481 | System.Management.Automation.PSEventUnsubscribedEventArgs 482 | System.Management.Automation.PSEventUnsubscribedEventHandler 483 | System.Management.Automation.PSInvalidCastException 484 | System.Management.Automation.PSInvalidOperationException 485 | System.Management.Automation.PSInvocationSettings 486 | System.Management.Automation.PSInvocationState 487 | System.Management.Automation.PSInvocationStateChangedEventArgs 488 | System.Management.Automation.PSInvocationStateInfo 489 | System.Management.Automation.PSJobProxy 490 | System.Management.Automation.PSJobStartEventArgs 491 | System.Management.Automation.PSLanguageMode 492 | System.Management.Automation.PSListModifier 493 | System.Management.Automation.PSListModifier`1 494 | System.Management.Automation.PSMemberInfo 495 | System.Management.Automation.PSMemberInfoCollection`1 496 | System.Management.Automation.PSMemberSet 497 | System.Management.Automation.PSMemberTypes 498 | System.Management.Automation.PSMemberViewTypes 499 | System.Management.Automation.PSMethod 500 | System.Management.Automation.PSMethodInfo 501 | System.Management.Automation.PSModuleAutoLoadingPreference 502 | System.Management.Automation.PSModuleInfo 503 | System.Management.Automation.PSNoteProperty 504 | System.Management.Automation.PSNotImplementedException 505 | System.Management.Automation.PSNotSupportedException 506 | System.Management.Automation.PSObject 507 | System.Management.Automation.PSObjectDisposedException 508 | System.Management.Automation.PSObjectPropertyDescriptor 509 | System.Management.Automation.PSObjectTypeDescriptionProvider 510 | System.Management.Automation.PSObjectTypeDescriptor 511 | System.Management.Automation.PSParameterizedProperty 512 | System.Management.Automation.PSPrimitiveDictionary 513 | System.Management.Automation.PSProperty 514 | System.Management.Automation.PSPropertyAdapter 515 | System.Management.Automation.PSPropertyInfo 516 | System.Management.Automation.PSPropertySet 517 | System.Management.Automation.PSReference 518 | System.Management.Automation.PSScriptMethod 519 | System.Management.Automation.PSScriptProperty 520 | System.Management.Automation.PSSecurityException 521 | System.Management.Automation.PSSerializer 522 | System.Management.Automation.PSSessionTypeOption 523 | System.Management.Automation.PSTraceSource 524 | System.Management.Automation.PSTraceSourceOptions 525 | System.Management.Automation.PSTransactionContext 526 | System.Management.Automation.PSTransportOption 527 | System.Management.Automation.PSTypeConverter 528 | System.Management.Automation.PSTypeName 529 | System.Management.Automation.PSTypeNameAttribute 530 | System.Management.Automation.PSVariable 531 | System.Management.Automation.PSVariableIntrinsics 532 | System.Management.Automation.PSVariableProperty 533 | System.Management.Automation.ReadOnlyPSMemberInfoCollection`1 534 | System.Management.Automation.RedirectedException 535 | System.Management.Automation.RegisterArgumentCompleterCommand 536 | System.Management.Automation.RemoteCommandInfo 537 | System.Management.Automation.RemoteException 538 | System.Management.Automation.RemoteStreamOptions 539 | System.Management.Automation.Remoting.CmdletMethodInvoker`1 540 | System.Management.Automation.Remoting.Internal.PSStreamObject 541 | System.Management.Automation.Remoting.Internal.PSStreamObjectType 542 | System.Management.Automation.Remoting.OriginInfo 543 | System.Management.Automation.Remoting.ProxyAccessType 544 | System.Management.Automation.Remoting.PSCertificateDetails 545 | System.Management.Automation.Remoting.PSDirectException 546 | System.Management.Automation.Remoting.PSIdentity 547 | System.Management.Automation.Remoting.PSPrincipal 548 | System.Management.Automation.Remoting.PSRemotingDataStructureException 549 | System.Management.Automation.Remoting.PSRemotingTransportException 550 | System.Management.Automation.Remoting.PSRemotingTransportRedirectException 551 | System.Management.Automation.Remoting.PSSenderInfo 552 | System.Management.Automation.Remoting.PSSessionConfiguration 553 | System.Management.Automation.Remoting.PSSessionConfigurationData 554 | System.Management.Automation.Remoting.PSSessionOption 555 | System.Management.Automation.Remoting.SessionType 556 | System.Management.Automation.Remoting.WSManPluginManagedEntryInstanceWrapper 557 | System.Management.Automation.Remoting.WSManPluginManagedEntryWrapper 558 | System.Management.Automation.RemotingBehavior 559 | System.Management.Automation.RemotingCapability 560 | System.Management.Automation.Repository`1 561 | System.Management.Automation.ResolutionPurpose 562 | System.Management.Automation.ReturnContainers 563 | System.Management.Automation.RollbackSeverity 564 | System.Management.Automation.RunspaceMode 565 | System.Management.Automation.RunspacePoolStateInfo 566 | System.Management.Automation.RunspaceRepository 567 | System.Management.Automation.Runspaces.AliasPropertyData 568 | System.Management.Automation.Runspaces.AuthenticationMechanism 569 | System.Management.Automation.Runspaces.CodeMethodData 570 | System.Management.Automation.Runspaces.CodePropertyData 571 | System.Management.Automation.Runspaces.Command 572 | System.Management.Automation.Runspaces.CommandCollection 573 | System.Management.Automation.Runspaces.CommandParameter 574 | System.Management.Automation.Runspaces.CommandParameterCollection 575 | System.Management.Automation.Runspaces.ConstrainedSessionStateEntry 576 | System.Management.Automation.Runspaces.ContainerConnectionInfo 577 | System.Management.Automation.Runspaces.FormatTable 578 | System.Management.Automation.Runspaces.FormatTableLoadException 579 | System.Management.Automation.Runspaces.InitialSessionState 580 | System.Management.Automation.Runspaces.InitialSessionStateEntry 581 | System.Management.Automation.Runspaces.InitialSessionStateEntryCollection`1 582 | System.Management.Automation.Runspaces.InvalidPipelineStateException 583 | System.Management.Automation.Runspaces.InvalidRunspacePoolStateException 584 | System.Management.Automation.Runspaces.InvalidRunspaceStateException 585 | System.Management.Automation.Runspaces.MemberSetData 586 | System.Management.Automation.Runspaces.NamedPipeConnectionInfo 587 | System.Management.Automation.Runspaces.NotePropertyData 588 | System.Management.Automation.Runspaces.OutputBufferingMode 589 | System.Management.Automation.Runspaces.PipelineResultTypes 590 | System.Management.Automation.Runspaces.PipelineState 591 | System.Management.Automation.Runspaces.PropertySetData 592 | System.Management.Automation.Runspaces.PSConsoleLoadException 593 | System.Management.Automation.Runspaces.PSSession 594 | System.Management.Automation.Runspaces.PSSessionConfigurationAccessMode 595 | System.Management.Automation.Runspaces.PSSessionType 596 | System.Management.Automation.Runspaces.PSThreadOptions 597 | System.Management.Automation.Runspaces.RemotingDebugRecord 598 | System.Management.Automation.Runspaces.RemotingErrorRecord 599 | System.Management.Automation.Runspaces.RemotingInformationRecord 600 | System.Management.Automation.Runspaces.RemotingProgressRecord 601 | System.Management.Automation.Runspaces.RemotingVerboseRecord 602 | System.Management.Automation.Runspaces.RemotingWarningRecord 603 | System.Management.Automation.Runspaces.Runspace 604 | System.Management.Automation.Runspaces.RunspaceAvailability 605 | System.Management.Automation.Runspaces.RunspaceAvailabilityEventArgs 606 | System.Management.Automation.Runspaces.RunspaceCapability 607 | System.Management.Automation.Runspaces.RunspaceConnectionInfo 608 | System.Management.Automation.Runspaces.RunspaceFactory 609 | System.Management.Automation.Runspaces.RunspaceOpenModuleLoadException 610 | System.Management.Automation.Runspaces.RunspacePool 611 | System.Management.Automation.Runspaces.RunspacePoolAvailability 612 | System.Management.Automation.Runspaces.RunspacePoolCapability 613 | System.Management.Automation.Runspaces.RunspacePoolState 614 | System.Management.Automation.Runspaces.RunspacePoolStateChangedEventArgs 615 | System.Management.Automation.Runspaces.RunspaceState 616 | System.Management.Automation.Runspaces.RunspaceStateEventArgs 617 | System.Management.Automation.Runspaces.RunspaceStateInfo 618 | System.Management.Automation.Runspaces.ScriptMethodData 619 | System.Management.Automation.Runspaces.ScriptPropertyData 620 | System.Management.Automation.Runspaces.SessionStateAliasEntry 621 | System.Management.Automation.Runspaces.SessionStateApplicationEntry 622 | System.Management.Automation.Runspaces.SessionStateAssemblyEntry 623 | System.Management.Automation.Runspaces.SessionStateCmdletEntry 624 | System.Management.Automation.Runspaces.SessionStateCommandEntry 625 | System.Management.Automation.Runspaces.SessionStateFormatEntry 626 | System.Management.Automation.Runspaces.SessionStateFunctionEntry 627 | System.Management.Automation.Runspaces.SessionStateProviderEntry 628 | System.Management.Automation.Runspaces.SessionStateProxy 629 | System.Management.Automation.Runspaces.SessionStateScriptEntry 630 | System.Management.Automation.Runspaces.SessionStateTypeEntry 631 | System.Management.Automation.Runspaces.SessionStateVariableEntry 632 | System.Management.Automation.Runspaces.TargetMachineType 633 | System.Management.Automation.Runspaces.TypeData 634 | System.Management.Automation.Runspaces.TypeMemberData 635 | System.Management.Automation.Runspaces.TypeTable 636 | System.Management.Automation.Runspaces.TypeTableLoadException 637 | System.Management.Automation.Runspaces.WSManConnectionInfo 638 | System.Management.Automation.RuntimeDefinedParameter 639 | System.Management.Automation.RuntimeDefinedParameterDictionary 640 | System.Management.Automation.RuntimeException 641 | System.Management.Automation.ScopedItemOptions 642 | System.Management.Automation.ScriptBlock 643 | System.Management.Automation.ScriptBlockToPowerShellNotSupportedException 644 | System.Management.Automation.ScriptCallDepthException 645 | System.Management.Automation.ScriptInfo 646 | System.Management.Automation.ScriptRequiresException 647 | System.Management.Automation.SecurityDescriptorCmdletProviderIntrinsics 648 | System.Management.Automation.SessionCapabilities 649 | System.Management.Automation.SessionState 650 | System.Management.Automation.SessionStateCategory 651 | System.Management.Automation.SessionStateEntryVisibility 652 | System.Management.Automation.SessionStateException 653 | System.Management.Automation.SessionStateUnauthorizedAccessException 654 | System.Management.Automation.SettingValueExceptionEventArgs 655 | System.Management.Automation.SetValueException 656 | System.Management.Automation.SetValueInvocationException 657 | System.Management.Automation.ShouldProcessReason 658 | System.Management.Automation.Signature 659 | System.Management.Automation.SignatureStatus 660 | System.Management.Automation.SignatureType 661 | System.Management.Automation.SigningOption 662 | System.Management.Automation.SplitOptions 663 | System.Management.Automation.SteppablePipeline 664 | System.Management.Automation.SupportsWildcardsAttribute 665 | System.Management.Automation.SwitchParameter 666 | System.Management.Automation.TableControl 667 | System.Management.Automation.TableControlBuilder 668 | System.Management.Automation.TableControlColumn 669 | System.Management.Automation.TableControlColumnHeader 670 | System.Management.Automation.TableControlRow 671 | System.Management.Automation.TableRowDefinitionBuilder 672 | System.Management.Automation.TerminateException 673 | System.Management.Automation.ValidateArgumentsAttribute 674 | System.Management.Automation.ValidateCountAttribute 675 | System.Management.Automation.ValidateDriveAttribute 676 | System.Management.Automation.ValidateEnumeratedArgumentsAttribute 677 | System.Management.Automation.ValidateLengthAttribute 678 | System.Management.Automation.ValidateNotNullAttribute 679 | System.Management.Automation.ValidateNotNullOrEmptyAttribute 680 | System.Management.Automation.ValidatePatternAttribute 681 | System.Management.Automation.ValidateRangeAttribute 682 | System.Management.Automation.ValidateScriptAttribute 683 | System.Management.Automation.ValidateSetAttribute 684 | System.Management.Automation.ValidateUserDriveAttribute 685 | System.Management.Automation.ValidationMetadataException 686 | System.Management.Automation.VariableAccessMode 687 | System.Management.Automation.VariableBreakpoint 688 | System.Management.Automation.VariablePath 689 | System.Management.Automation.VerboseRecord 690 | System.Management.Automation.VerbsCommon 691 | System.Management.Automation.VerbsCommunications 692 | System.Management.Automation.VerbsData 693 | System.Management.Automation.VerbsDiagnostic 694 | System.Management.Automation.VerbsLifecycle 695 | System.Management.Automation.VerbsOther 696 | System.Management.Automation.VerbsSecurity 697 | System.Management.Automation.WarningRecord 698 | System.Management.Automation.WhereOperatorSelectionMode 699 | System.Management.Automation.WideControl 700 | System.Management.Automation.WideControlBuilder 701 | System.Management.Automation.WideControlEntryItem 702 | System.Management.Automation.WildcardOptions 703 | System.Management.Automation.WildcardPattern 704 | System.Management.Automation.WildcardPatternException 705 | -------------------------------------------------------------------------------- /doc/assets/export-TypeDoc.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | $tlist = Import-CSV TypeComparison.csv 5 | @' 6 | # PowerShell Standard Library 5 7 | 8 | '@ 9 | 10 | $unavailableHeader = @' 11 | ## Unavailable Types 12 | 13 | There are a number of types which while exist in both PowerShell 5.1 and PowerShell 6, have been excluded from PowerShell Standard 5. 14 | The following lists the reason for exclusion and types excluded from PowerShell Standard 5. 15 | 16 | '@ 17 | 18 | $unavailableTypes = $tlist |Where-Object {$_.PowerShell51 -eq "True" -and $_.PowerShell61 -eq "True" -and $_.PSStandard5 -eq "False"} 19 | 20 | $unavailableHeader 21 | $unavailableTypes | Sort-Object ExclusionReason | Group-Object ExclusionReason | %{ 22 | " - {0}" -f $_.Name 23 | $_.Group | %{ " - {0}" -f $_.FullName } 24 | } 25 | 26 | $urlBase = "https://docs.microsoft.com/en-us/dotnet/api/" 27 | $view = "view=pscore-6.0.0" 28 | $command = "Microsoft.PowerShell.Commands.DisablePSRemotingCommand" 29 | 30 | $availableTypes = $tlist |Where-Object {$_.PSStandard5 -eq "True"} 31 | $groupedTypes = $availableTypes | group { $fragments = $_.fullname.split("."); $fragments[0..($fragments.count - 2)] -join "." } 32 | 33 | $typelistHeader = @' 34 | 35 | ## Available Types 36 | 37 | The following table is a table of available types in PowerShell Standard by Namespace with links to online documentation. 38 | 39 | '@ 40 | 41 | $ColumnCount = 2 42 | $emptyCell = " " 43 | $typelistHeader 44 | "" 45 | $groupedTypes | %{ 46 | $name = $_.name 47 | # Sigh - no way to span columns in markdown 48 | "" 49 | "" 50 | $group = $_.group 51 | # $gTypes = @($_.group | %{$_.fullname.split(".")[-1] }) 52 | for($i = 0; $i -lt $group.Count; $i += ${ColumnCount} ) { 53 | $t = $group[$i..($i+${columnCount}-1)] | %{ 54 | $fullname = $_.fullname -replace "``","-" # " 55 | $name = $fullname.split(".")[-1] 56 | "" 57 | } 58 | # pad the collection 59 | $addlCellCount = ${ColumnCount} - @($t).Count 60 | if ( $addlCellCount -gt 0 ) { 61 | $t += @($emptyCell) * $addlCellCount 62 | } 63 | "" + ($t -join "") + "" 64 | } 65 | } 66 | "
${name}
${name}
" 67 | "" 68 | -------------------------------------------------------------------------------- /doc/assets/export-typecompare.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | class CommonType { 5 | [string]$Fullname 6 | [bool]$PowerShell51 7 | [bool]$PowerShell61 8 | [bool]$PSStandard5 9 | [string]$ExclusionReason 10 | CommonType([string]$n) { 11 | $this.Fullname = $n 12 | } 13 | } 14 | 15 | $PS51 = Get-Content PS51.txt 16 | $PS61 = Get-Content PS6.txt 17 | $PSSA = Get-Content PSS5.txt 18 | $ALL = .{ $PS51; $PS61; $PSSA } |Sort-Object -Unique 19 | $ALL | %{ 20 | $ct = [CommonType]::new($_) 21 | $ct.PowerShell51 = $PS51 -contains $_ 22 | $ct.PowerShell61 = $PS61 -contains $_ 23 | $ct.PSStandard5 = $PSSA -contains $_ 24 | $ct 25 | } | export-csv TypeComparison.csv 26 | 27 | -------------------------------------------------------------------------------- /src/3/PowerShellStandard.Library.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | PowerShellStandard.Library 5 | 3.0.0-preview-02 6 | Microsoft 7 | Microsoft,PowerShellTeam 8 | https://github.com/PowerShell/PowerShellStandard 9 | https://github.com/PowerShell/PowerShell/blob/master/assets/Powershell_64.png 10 | https://github.com/PowerShell/PowerShell/blob/master/LICENSE.txt 11 | false 12 | Common APIs available to both Windows PowerShell 3.0 (and newer) and PowerShell Core 6 to enable the same C# module to work in both environments. 13 | (c) Microsoft Corporation. All rights reserved. 14 | PowerShell, reference, netstandard2, netstandard2.0 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/3/System.Management.Automation-lib.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0;net451 4 | True 5 | ..\signing\visualstudiopublic.snk 6 | System.Management.Automation 7 | 3.0.0 8 | 3.0.0 9 | True 10 | RUNTIME_SERIALIZATION 11 | ./PowershellStandard.Library.nuspec 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/5/PowerShellStandard.Library.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | PowerShellStandard.Library 5 | 7.0.0-preview.1 6 | PowerShellStandard.Library 7 | Microsoft 8 | Microsoft,PowerShellTeam 9 | https://github.com/PowerShell/PowerShellStandard 10 | images\PowerShell_64.png 11 | MIT 12 | false 13 | Common APIs available to both Windows PowerShell 5.1 and PowerShell 7 to enable the same C# module to work in both environments. 14 | © Microsoft Corporation. All rights reserved. 15 | PowerShell, reference, net452, netstandard2, netstandard2.0 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/5/System.Management.Automation-lib.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0;net452 4 | True 5 | ..\signing\visualstudiopublic.snk 6 | System.Management.Automation 7 | 3.0.0 8 | 7.0.0 9 | True 10 | RUNTIME_SERIALIZATION 11 | ./PowershellStandard.Library.nuspec 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/5/images/PowerShell_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/PowerShellStandard/59998dced0948864a33fe6aed5f0a07bd12a91a6/src/5/images/PowerShell_64.png -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | netstandard2.0 4 | ./Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template.nuspec 5 | false 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.PowerShell.Standard.Module.Template 5 | 7.0.0-preview.1 6 | PowerShell Standard module 7 | Microsoft 8 | Microsoft,PowerShellTeam 9 | https://github.com/PowerShell/PowerShellStandard 10 | https://secure.gravatar.com/avatar/cfba7016de8e12d5b3017130f75ef8ed 11 | images/PowerShell_64.png 12 | MIT 13 | false 14 | 15 | Creates a PowerShell Standard 7 based C# module. 16 | 17 | (c) Microsoft Corporation. All rights reserved. 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/.template.config/dotnetcli.host.json: -------------------------------------------------------------------------------- 1 | { 2 | "symbolInfo": { 3 | "skipRestore": { 4 | "longName": "no-restore", 5 | "shortName": "" 6 | }, 7 | "PowerShellStandardVersion": { 8 | "longName": "powershell-standard-version", 9 | "shortName": "v" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/.template.config/template.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/template", 3 | "author": "Microsoft Corporation", 4 | "classifications": [ "Library", "PowerShell", "Module" ], 5 | "name": "PowerShell Standard Module", 6 | "identity": "Microsoft.PowerShell.Standard.Module.Template", 7 | "groupIdentity": "Microsoft.PowerShell.Standard.Module.Template", 8 | "shortName": "psmodule", 9 | "tags": { 10 | "language": "C#", 11 | "type":"project" 12 | }, 13 | "preferNameDirectory": true, 14 | "sourceName": "Microsoft.PowerShell.Standard.Module.Template", 15 | "symbols":{ 16 | "PowerShellStandardVersion":{ 17 | "type": "parameter", 18 | "datatype":"choice", 19 | "defaultValue": "5.1.0", 20 | "choices": [ 21 | { 22 | "choice": "5.1.0", 23 | "description": "PowerShell Standard 5.1" 24 | }, 25 | { 26 | "choice": "3.0.0-preview-02", 27 | "description": "PowerShell Standard 3.0" 28 | } 29 | ], 30 | "replaces": "5.1.0" 31 | }, 32 | "skipRestore": { 33 | "type": "parameter", 34 | "datatype": "bool", 35 | "description": "If specified, skips the automatic restore of the project on create.", 36 | "defaultValue": "false" 37 | } 38 | }, 39 | "postActions": [ 40 | { 41 | "condition": "(!skipRestore)", 42 | "description": "Restore NuGet packages required by this project.", 43 | "manualInstructions": [ 44 | { "text": "Run 'dotnet restore'" } 45 | ], 46 | "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", 47 | "continueOnError": true 48 | } 49 | ], 50 | "primaryOutputs": [ 51 | { "path": "Microsoft.PowerShell.Standard.Module.Template.csproj" } 52 | ] 53 | } 54 | -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Microsoft.PowerShell.Standard.Module.Template 6 | 7 | 8 | 9 | 10 | All 11 | 12 | 13 | 14 | PreserveNewest 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template.psd1: -------------------------------------------------------------------------------- 1 | # 2 | # Module manifest for module 'Microsoft.PowerShell.Standard.Module.Template' 3 | # 4 | 5 | @{ 6 | 7 | # Script module or binary module file associated with this manifest. 8 | RootModule = 'Microsoft.PowerShell.Standard.Module.Template.dll' 9 | 10 | # Version number of this module. 11 | ModuleVersion = '0.1.0' 12 | 13 | # Supported PSEditions 14 | CompatiblePSEditions = @('Desktop','Core') 15 | 16 | # ID used to uniquely identify this module 17 | GUID = '00000000-0000-0000-0000-000000000000' 18 | 19 | # Author of this module 20 | Author = 'Unknown' 21 | 22 | # Company or vendor of this module 23 | CompanyName = 'Unknown' 24 | 25 | # Copyright statement for this module 26 | Copyright = '(c) 2019 Unknown. All rights reserved.' 27 | 28 | # Description of the functionality provided by this module 29 | # Description = '' 30 | 31 | # Minimum version of the Windows PowerShell engine required by this module 32 | # PowerShellVersion = '' 33 | 34 | # Name of the Windows PowerShell host required by this module 35 | # PowerShellHostName = '' 36 | 37 | # Minimum version of the Windows PowerShell host required by this module 38 | # PowerShellHostVersion = '' 39 | 40 | # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. 41 | # DotNetFrameworkVersion = '' 42 | 43 | # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. 44 | # CLRVersion = '' 45 | 46 | # Processor architecture (None, X86, Amd64) required by this module 47 | # ProcessorArchitecture = '' 48 | 49 | # Modules that must be imported into the global environment prior to importing this module 50 | # RequiredModules = @() 51 | 52 | # Assemblies that must be loaded prior to importing this module 53 | # RequiredAssemblies = @() 54 | 55 | # Script files (.ps1) that are run in the caller's environment prior to importing this module. 56 | # ScriptsToProcess = @() 57 | 58 | # Type files (.ps1xml) to be loaded when importing this module 59 | # TypesToProcess = @() 60 | 61 | # Format files (.ps1xml) to be loaded when importing this module 62 | # FormatsToProcess = @() 63 | 64 | # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess 65 | # NestedModules = @() 66 | 67 | # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. 68 | FunctionsToExport = @() 69 | 70 | # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. 71 | CmdletsToExport = @('Test-SampleCmdlet') 72 | 73 | # Variables to export from this module 74 | VariablesToExport = @() 75 | 76 | # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. 77 | AliasesToExport = @() 78 | 79 | # DSC resources to export from this module 80 | # DscResourcesToExport = @() 81 | 82 | # List of all modules packaged with this module 83 | # ModuleList = @() 84 | 85 | # List of all files packaged with this module 86 | # FileList = @() 87 | 88 | # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. 89 | PrivateData = @{ 90 | 91 | PSData = @{ 92 | 93 | # Tags applied to this module. These help with module discovery in online galleries. 94 | # Tags = @() 95 | 96 | # A URL to the license for this module. 97 | # LicenseUri = '' 98 | 99 | # A URL to the main website for this project. 100 | # ProjectUri = '' 101 | 102 | # A URL to an icon representing this module. 103 | # IconUri = '' 104 | 105 | # ReleaseNotes of this module 106 | # ReleaseNotes = '' 107 | 108 | } # End of PSData hashtable 109 | 110 | } # End of PrivateData hashtable 111 | 112 | # HelpInfo URI of this module 113 | # HelpInfoURI = '' 114 | 115 | # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. 116 | # DefaultCommandPrefix = '' 117 | 118 | } 119 | 120 | -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/TestSampleCmdletCommand.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | using System; 5 | using System.Management.Automation; 6 | using System.Management.Automation.Runspaces; 7 | 8 | namespace Microsoft.PowerShell.Standard.Module.Template 9 | { 10 | [Cmdlet(VerbsDiagnostic.Test,"SampleCmdlet")] 11 | [OutputType(typeof(FavoriteStuff))] 12 | public class TestSampleCmdletCommand : PSCmdlet 13 | { 14 | [Parameter( 15 | Mandatory = true, 16 | Position = 0, 17 | ValueFromPipeline = true, 18 | ValueFromPipelineByPropertyName = true)] 19 | public int FavoriteNumber { get; set; } 20 | 21 | [Parameter( 22 | Position = 1, 23 | ValueFromPipelineByPropertyName = true)] 24 | [ValidateSet("Cat", "Dog", "Horse")] 25 | public string FavoritePet { get; set; } = "Dog"; 26 | 27 | // This method gets called once for each cmdlet in the pipeline when the pipeline starts executing 28 | protected override void BeginProcessing() 29 | { 30 | WriteVerbose("Begin!"); 31 | } 32 | 33 | // This method will be called for each input received from the pipeline to this cmdlet; if no input is received, this method is not called 34 | protected override void ProcessRecord() 35 | { 36 | WriteObject(new FavoriteStuff { 37 | FavoriteNumber = FavoriteNumber, 38 | FavoritePet = FavoritePet 39 | }); 40 | } 41 | 42 | // This method will be called once at the end of pipeline execution; if no input is received, this method is not called 43 | protected override void EndProcessing() 44 | { 45 | WriteVerbose("End!"); 46 | } 47 | } 48 | 49 | public class FavoriteStuff 50 | { 51 | public int FavoriteNumber { get; set; } 52 | public string FavoritePet { get; set; } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/images/PowerShell_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/PowerShellStandard/59998dced0948864a33fe6aed5f0a07bd12a91a6/src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/images/PowerShell_64.png -------------------------------------------------------------------------------- /src/dotnetTemplate/README.md: -------------------------------------------------------------------------------- 1 | # PowerShell Standard based C# module template 2 | 3 | A `dotnet new` template that creates an example PowerShell C# module that uses PowerShellStandard. 4 | 5 | ```powershell 6 | dotnet new psmodule 7 | ``` 8 | 9 | ## Installation 10 | 11 | To use the template, you must first install it so that it is recognized in `dotnet new`. 12 | 13 | ### From nuget.org 14 | 15 | ```powershell 16 | dotnet new -i Microsoft.PowerShell.Standard.Module.Template 17 | ``` 18 | 19 | Now checkout the [usage](#usage). 20 | 21 | ### From source 22 | 23 | 1. Clone the repo. 24 | 2. Install the template: 25 | 26 | ```powershell 27 | dotnet new -i ./src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template 28 | ``` 29 | 30 | Now checkout the [usage](#usage). 31 | 32 | ## Usage 33 | 34 | Once the template is installed, you will see it in your template list: 35 | 36 | ```text 37 | PS> dotnet new -l 38 | 39 | Usage: new [options] 40 | 41 | Options: 42 | -h, --help Displays help for this command. 43 | -l, --list Lists templates containing the specified name. If no name is specified, lists all templates. 44 | -n, --name The name for the output being created. If no name is specified, the name of the current directory is used. 45 | -o, --output Location to place the generated output. 46 | -i, --install Installs a source or a template pack. 47 | -u, --uninstall Uninstalls a source or a template pack. 48 | --type Filters templates based on available types. Predefined values are "project", "item" or "other". 49 | --force Forces content to be generated even if it would change existing files. 50 | -lang, --language Specifies the language of the template to create. 51 | 52 | 53 | Templates Short Name Language Tags 54 | --------------------------------------------------------------------------------------------------------------------- 55 | Console Application console [C#], F#, VB Common/Console 56 | PowerShell Standard Module psmodule [C#] Common/Console/PowerShell/Module 57 | Class library classlib [C#], F#, VB Common/Library 58 | Unit Test Project mstest [C#], F#, VB Test/MSTest 59 | xUnit Test Project xunit [C#], F#, VB Test/xUnit 60 | ASP.NET Core Empty web [C#], F# Web/Empty 61 | ASP.NET Core Web App (Model-View-Controller) mvc [C#], F# Web/MVC 62 | ASP.NET Core Web App razor [C#] Web/MVC/Razor Pages 63 | ASP.NET Core with Angular angular [C#] Web/MVC/SPA 64 | ASP.NET Core with React.js react [C#] Web/MVC/SPA 65 | ASP.NET Core with React.js and Redux reactredux [C#] Web/MVC/SPA 66 | ASP.NET Core Web API webapi [C#], F# Web/WebAPI 67 | global.json file globaljson Config 68 | NuGet Config nugetconfig Config 69 | Web Config webconfig Config 70 | Solution File sln Solution 71 | Razor Page page Web/ASP.NET 72 | MVC ViewImports viewimports Web/ASP.NET 73 | MVC ViewStart viewstart Web/ASP.NET 74 | ``` 75 | 76 | To get more details, add the `-h` flag: 77 | 78 | ```text 79 | PS > dotnet new psmodule -h 80 | Usage: new [options] 81 | 82 | Options: 83 | -h, --help Displays help for this command. 84 | -l, --list Lists templates containing the specified name. If no name is specified, lists all templates. 85 | -n, --name The name for the output being created. If no name is specified, the name of the current directory is used. 86 | -o, --output Location to place the generated output. 87 | -i, --install Installs a source or a template pack. 88 | -u, --uninstall Uninstalls a source or a template pack. 89 | --type Filters templates based on available types. Predefined values are "project", "item" or "other". 90 | --force Forces content to be generated even if it would change existing files. 91 | -lang, --language Specifies the language of the template to create. 92 | 93 | 94 | PowerShell Standard Module (C#) 95 | Author: Microsoft Corporation 96 | Options: 97 | -v|--powershell-standard-version 98 | 7.0.0-preview.1 - PowerShell Standard 7.0.0-preview.1 99 | 3.0.0-preview-02 - PowerShell Standard 3.0 100 | Default: 7.0.0-preview.1 101 | 102 | --no-restore If specified, skips the automatic restore of the project on create. 103 | bool - Optional 104 | Default: false 105 | ``` 106 | 107 | To create a template using the defaults: 108 | 109 | ```text 110 | > dotnet new psmodule 111 | The template "PowerShell Standard Module" was created successfully. 112 | 113 | Processing post-creation actions... 114 | Running 'dotnet restore' on /Users/tylerleonhardt/Downloads/MyProject/MyProject.csproj... 115 | Restoring packages for /Users/tylerleonhardt/Downloads/MyProject/MyProject.csproj... 116 | Generating MSBuild file /Users/tylerleonhardt/Downloads/MyProject/obj/MyProject.csproj.nuget.g.props. 117 | Generating MSBuild file /Users/tylerleonhardt/Downloads/MyProject/obj/MyProject.csproj.nuget.g.targets. 118 | Restore completed in 275.57 ms for /Users/tylerleonhardt/Downloads/MyProject/MyProject.csproj. 119 | 120 | Restore succeeded. 121 | ``` 122 | 123 | Notice that it restores automatically. 124 | 125 | You can optionally specify PowerShell Standard V3 by running: 126 | 127 | ```text 128 | dotnet new psmodule --powershell-standard-version 3.0.0-preview-02 129 | ``` 130 | 131 | This template will create: 132 | 133 | * `*.csproj` - a project file that uses the same name as the folder it was created in 134 | * `TestSampleCmdletCommand.cs` - an example PowerShell cmdlet class 135 | * `obj` - a folder generated by the restore 136 | -------------------------------------------------------------------------------- /src/signing/visualstudiopublic.snk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PowerShell/PowerShellStandard/59998dced0948864a33fe6aed5f0a07bd12a91a6/src/signing/visualstudiopublic.snk -------------------------------------------------------------------------------- /test/3/core/Class1.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | using System; 5 | using System.Management.Automation; 6 | 7 | namespace PSStandard 8 | { 9 | [Cmdlet("get","thing")] 10 | public class Class1 : PSCmdlet 11 | { 12 | [Parameter()] 13 | [Credential()] 14 | public PSCredential Credential { get; set; } 15 | 16 | protected override void EndProcessing() { 17 | WriteObject("Success!"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/3/core/PSS3.Tests.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | Describe "PowerShell Standard 3" { 5 | BeforeAll { 6 | $cmdletAssembly = "bin/Release/netstandard2.0/Demo.Cmdlet.dll" 7 | $assemblyPath = Join-Path "$PSScriptRoot" $cmdletAssembly 8 | $PSBin = (Get-Process -id $PID).MainModule.FileName 9 | } 10 | It "Can build a reference assembly" { 11 | dotnet restore 12 | dotnet build --configuration Release 13 | $assemblyPath | Should Exist 14 | } 15 | It "Can execute the compiled cmdlet" { 16 | $result = & $PSBin -c "import-module $assemblyPath; Get-Thing" 17 | $result | Should Be "success!" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/3/core/PSStandard.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Demo.Cmdlet 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/3/full/Class1.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | using System; 5 | using System.Management.Automation; 6 | 7 | namespace PSStandard 8 | { 9 | [Cmdlet("get","thing")] 10 | public class Class1 : PSCmdlet 11 | { 12 | [Parameter()] 13 | [Credential()] 14 | public PSCredential Credential { get; set; } 15 | 16 | protected override void EndProcessing() { 17 | WriteObject("Success!"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /test/3/full/PSS3.Tests.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | Describe "PowerShell Standard 3" { 5 | BeforeAll { 6 | $cmdletAssembly = "bin/Release/net452/Demo.Cmdlet.dll" 7 | $assemblyPath = Join-Path "$PSScriptRoot" $cmdletAssembly 8 | $PSBin = (Get-Process -id $PID).MainModule.FileName 9 | } 10 | It "Can build a reference assembly" { 11 | dotnet restore 12 | dotnet build --configuration Release 13 | $assemblyPath | Should Exist 14 | } 15 | It "Can execute the compiled cmdlet" { 16 | $result = & $PSBin -c "import-module $assemblyPath; Get-Thing" 17 | $result | Should Be "success!" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/3/full/PSStandard.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net452 5 | Demo.Cmdlet 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/5/core/Class1.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | using System; 5 | using System.Management.Automation; 6 | using System.Management.Automation.Runspaces; 7 | 8 | namespace PSStandard 9 | { 10 | [Cmdlet("get","thing")] 11 | public class Class1 : PSCmdlet 12 | { 13 | [Parameter()] 14 | [Credential()] 15 | public PSCredential Credential { get; set; } 16 | 17 | [Parameter()] 18 | [ValidateSet("a","b","c")] 19 | public string p1 { get; set; } 20 | 21 | protected override void BeginProcessing() { 22 | WriteVerbose(Runspace.DefaultRunspace.Name); 23 | PSObject p = new PSObject(DateTime.Now); 24 | WriteVerbose(p.Properties["DateTime"].ToString()); 25 | } 26 | protected override void EndProcessing() { 27 | WriteObject("Success!"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/5/core/PSS5.Tests.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | Describe 'PowerShell Standard 5' { 5 | 6 | BeforeAll { 7 | $repoRoot = git rev-parse --show-toplevel 8 | $libraryPath = "${repoRoot}/src/5/bin/Release/netstandard2.0/System.Management.Automation.dll" 9 | $assemblyExists = test-path $libraryPath 10 | if ( $assemblyExists ) { 11 | $standardAssembly = [System.Reflection.Assembly]::LoadFile($libraryPath) 12 | } 13 | } 14 | 15 | Context 'Creating a cmdlet' { 16 | BeforeAll { 17 | $cmdletAssembly = 'bin/Release/netstandard2.0/Demo.Cmdlet.dll' 18 | $assemblyPath = Join-Path "$PSScriptRoot" $cmdletAssembly 19 | $PSBin = (Get-Process -id $PID).MainModule.FileName 20 | } 21 | It 'Can build a reference assembly' { 22 | try { 23 | Push-Location $PSScriptRoot 24 | dotnet restore 25 | dotnet build --configuration Release 26 | $assemblyPath | Should -Exist 27 | } 28 | finally { 29 | Pop-Location 30 | } 31 | } 32 | It 'Can execute the compiled cmdlet' { 33 | $result = & $PSBin -c "import-module $assemblyPath; Get-Thing" 34 | $result | Should -Be 'success!' 35 | } 36 | } 37 | 38 | Context 'Reflection tests' { 39 | 40 | $testCases = @{ 41 | Name = "Issue 52: ValidateArgumentsAttribute.Validate method is not abstract" 42 | ScriptBlock = { 43 | $t = $standardAssembly.GetType('System.Management.Automation.ValidateArgumentsAttribute') 44 | $m = $t.GetMember('Validate','Public,NonPublic,Instance,Static,DeclaredOnly') 45 | $m.IsAbstract |Should -Be $true 46 | } 47 | }, 48 | @{ 49 | Name = "Issue 50: PSEventUnsubscribedEventHander argument type should be PSEventUnsubscribedEventArgs" 50 | ScriptBlock = { 51 | $t = $standardAssembly.GetType('System.Management.Automation.PSEventUnsubscribedEventHandler') 52 | $m = $t.GetMethod('Invoke') 53 | $parameters = $m.GetParameters() 54 | $parameters[1].ParameterType.FullName | Should -Be 'System.Management.Automation.PSEventUnsubscribedEventArgs' 55 | } 56 | }, 57 | @{ 58 | Name = "Issue 44: FunctionMemberAst.Parameters should be accessible" 59 | ScriptBlock = { 60 | $t = $standardAssembly.GetType('System.Management.Automation.Language.FunctionMemberAst') 61 | $p = $t.GetProperty('Parameters') 62 | $p.GetMethod.IsPublic | Should -Be $true 63 | } 64 | }, 65 | @{ 66 | Name = "Issue 42: Runspace.Default should not contain public CreateNestedPipeline" 67 | ScriptBlock = { 68 | $t = $standardAssembly.GetType('System.Management.Automation.Runspaces.Runspace') 69 | $t.GetMembers('Public,NonPublic,Instance,Static')|?{$_.Name -match 'CreatedNestedPipeline'}|Should -BeNullOrEmpty 70 | } 71 | }, 72 | @{ 73 | Name = "Issue 36: PSMemberInfo.Copy is marked 'virtual' but should be 'abstract'" 74 | ScriptBlock = { 75 | $t = $standardAssembly.GetType('System.Management.Automation.PSMemberInfo') 76 | $m = $t.GetMethod('Copy') 77 | $m.IsAbstract | Should -Be $true 78 | } 79 | }, 80 | @{ 81 | Name = "Issue 26: Several properties missing from CmdletProvider (also issue 14)" 82 | ScriptBlock = { 83 | $t = $standardAssembly.GetType('System.Management.Automation.Provider.CmdletProvider') 84 | $t.GetProperty('CurrentPSTransaction') | Should -Not -BeNullOrEmpty 85 | $t.GetProperty('DynamicParameters',[Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 86 | $t.GetProperty('PSDriveInfo',[Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 87 | $t.GetProperty('ProviderInfo',[Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 88 | } 89 | }, 90 | @{ 91 | Name = "Issue 19: SetJobState missing from Job class" 92 | ScriptBlock = { 93 | $t = $standardAssembly.GetType('System.Management.Automation.Job') 94 | $t.GetMethod('SetJobState',[System.Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 95 | } 96 | }, 97 | @{ 98 | Name = "Issue 18: Debugger does not contain protected parameterless constructor" 99 | ScriptBlock = { 100 | $t = $standardAssembly.GetType('System.Management.Automation.Debugger') 101 | # no public constructors 102 | $t.GetConstructors().Count | Should -Be 0 103 | # one protected, parameterless constructor 104 | $constructor = $t.GetConstructors('NonPublic,Instance') 105 | @($constructor).Count | Should -Be 1 106 | $constructor.IsFamily | Should -Be $true 107 | $constructor.GetParameters().Count | Should -Be 0 108 | } 109 | }, 110 | @{ 111 | Name = "Issue 17: ScriptExtent does not inherit IScriptExtent" 112 | ScriptBlock = { 113 | $t = $standardAssembly.GetType('System.Management.Automation.Language.ScriptExtent') 114 | $t.GetInterface('System.Management.Automation.Language.IScriptExtent')|Should -Not -BeNullOrEmpty 115 | } 116 | }, 117 | @{ 118 | Name = "Issue 16: ICustomAstVistor2 does not inherit ICustomAstVistor" 119 | ScriptBlock = { 120 | $t = $standardAssembly.GetType('System.Management.Automation.Language.ICustomAstVisitor2') 121 | $t.GetInterface('System.Management.Automation.Language.ICustomAstVisitor')|Should -Not -BeNullOrEmpty 122 | } 123 | }, 124 | @{ 125 | Name = "Issue 11: Missing cmdletization types" 126 | ScriptBlock = { 127 | $typeList = 'Microsoft.PowerShell.Cmdletization.BehaviorOnNoMatch', 128 | 'Microsoft.PowerShell.Cmdletization.CmdletAdapter`1', 129 | 'Microsoft.PowerShell.Cmdletization.MethodInvocationInfo', 'Microsoft.PowerShell.Cmdletization.MethodParameter', 130 | 'Microsoft.PowerShell.Cmdletization.MethodParameterBindings', 131 | 'Microsoft.PowerShell.Cmdletization.QueryBuilder', 132 | 'Microsoft.PowerShell.Cmdletization.Xml.ConfirmImpact', 'Microsoft.PowerShell.Cmdletization.Xml.ItemsChoiceType' 133 | foreach ( $t in $typeList ) { 134 | $standardAssembly.GetType($t) | Should -Not -BeNullOrEmpty 135 | } 136 | } 137 | }, 138 | @{ 139 | Name = "Issue 8: DefaultRunspace should be a static property" 140 | ScriptBlock = { 141 | $t = $standardAssembly.GetType('System.Management.Automation.Runspaces.Runspace') 142 | $p = $t.GetProperty('DefaultRunspace',[System.Reflection.BindingFlags]'Public,Static') 143 | $p | Should -Not -BeNullOrEmpty 144 | } 145 | }, 146 | @{ 147 | Name = "Issue 7: params keyword is left out for array type parameters" 148 | ScriptBlock = { 149 | $t = $standardAssembly.GetType('System.Management.Automation.OutputTypeAttribute') 150 | foreach ($c in $t.GetConstructors()) { 151 | $c.GetParameters()[-1].CustomAttributes.AttributeType.FullName | Should -Be System.ParamArrayAttribute 152 | } 153 | } 154 | }, 155 | @{ 156 | Name = "Issue 6: PSObject.Properties is using int instead of string" 157 | ScriptBlock = { 158 | $t = $standardAssembly.GetType('System.Management.Automation.PSObject') 159 | $p = $t.GetProperty('Properties') 160 | $p.PropertyType.GetMember('Item').GetIndexParameters().ParameterType.FullName | Should -Be 'System.String' 161 | } 162 | }, 163 | @{ 164 | Name = "Issue 4: CreatePipeline should not be available" 165 | ScriptBlock = { 166 | $t = $standardAssembly.GetType('System.Management.Automation.Runspaces.Runspace') 167 | $t.GetMembers('Public,NonPublic,Instance,Static')|?{$_.Name -match 'CreatePipeline'} | Should -BeNullOrEmpty 168 | } 169 | } 170 | 171 | It '' -testcases $testCases -skip:(! $assemblyExists) { 172 | param ( [string]$name, [scriptblock]$ScriptBlock ) 173 | & ${ScriptBlock} 174 | } 175 | } 176 | 177 | Context 'The type list is expected' { 178 | BeforeAll { 179 | $smaT = [psobject].assembly.GetTypes()|?{$_.IsPublic}|Sort-Object FullName 180 | $asmT = $standardAssembly.GetTypes()|?{$_.IsPublic}|Sort-Object FullName 181 | # These are the types which we expect to not be in the standard library 182 | $expectedMissingTypes = @{ Name = 'Microsoft.PowerShell.ProcessCodeMethods' }, 183 | @{ Name = 'Microsoft.PowerShell.DesiredStateConfiguration.ArgumentToConfigurationDataTransformationAttribute' }, 184 | @{ Name = 'Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscRemoteOperationsClass' }, 185 | @{ Name = 'Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache' }, 186 | @{ Name = 'Microsoft.PowerShell.Commands.GetExperimentalFeatureCommand' }, 187 | @{ Name = 'Microsoft.PowerShell.Commands.PSPropertyExpressionResult' }, 188 | @{ Name = 'Microsoft.PowerShell.Commands.PSPropertyExpression' }, 189 | @{ Name = 'Microsoft.PowerShell.Commands.UpdateHelpScope' }, 190 | @{ Name = 'Microsoft.PowerShell.CoreClr.Stubs.AuthenticationLevel' }, 191 | @{ Name = 'Microsoft.PowerShell.CoreClr.Stubs.ImpersonationLevel' }, 192 | @{ Name = 'System.Management.Automation.PowerShellAssemblyLoadContextInitializer' }, 193 | @{ Name = 'System.Management.Automation.Platform' }, 194 | @{ Name = 'System.Management.Automation.ValidateRangeKind' }, 195 | @{ Name = 'System.Management.Automation.CachedValidValuesGeneratorBase' }, 196 | @{ Name = 'System.Management.Automation.IValidateSetValuesGenerator' }, 197 | @{ Name = 'System.Management.Automation.ArgumentCompletionsAttribute' }, 198 | @{ Name = 'System.Management.Automation.GetSymmetricEncryptionKey' }, 199 | @{ Name = 'System.Management.Automation.StartRunspaceDebugProcessingEventArgs' }, 200 | @{ Name = 'System.Management.Automation.ProcessRunspaceDebugEndEventArgs' }, 201 | @{ Name = 'System.Management.Automation.ExperimentalFeature' }, 202 | @{ Name = 'System.Management.Automation.ExperimentAction' }, 203 | @{ Name = 'System.Management.Automation.ExperimentalAttribute' }, 204 | @{ Name = 'System.Management.Automation.PSSnapInSpecification' }, 205 | @{ Name = 'System.Management.Automation.PSParseError' }, 206 | @{ Name = 'System.Management.Automation.PSParser' }, 207 | @{ Name = 'System.Management.Automation.PSToken' }, 208 | @{ Name = 'System.Management.Automation.PSTokenType' }, 209 | @{ Name = 'System.Management.Automation.TypeInferenceRuntimePermissions' }, 210 | @{ Name = 'System.Management.Automation.PSVersionHashTable' }, 211 | @{ Name = 'System.Management.Automation.SemanticVersion' }, 212 | @{ Name = 'System.Management.Automation.LocationChangedEventArgs' }, 213 | @{ Name = 'System.Management.Automation.WorkflowInfo' }, 214 | @{ Name = 'System.Management.Automation.PSSnapInInfo' }, 215 | @{ Name = 'System.Management.Automation.VerbInfo' }, 216 | @{ Name = 'System.Management.Automation.Remoting.WSMan.WSManServerChannelEvents' }, 217 | @{ Name = 'System.Management.Automation.Remoting.WSMan.ActiveSessionsChangedEventArgs' }, 218 | @{ Name = 'System.Management.Automation.Runspaces.PipelineStateInfo' }, 219 | @{ Name = 'System.Management.Automation.Runspaces.PipelineStateEventArgs' }, 220 | @{ Name = 'System.Management.Automation.Runspaces.Pipeline' }, 221 | @{ Name = 'System.Management.Automation.Runspaces.PowerShellProcessInstance' }, 222 | @{ Name = 'System.Management.Automation.Runspaces.SSHConnectionInfo' }, 223 | @{ Name = 'System.Management.Automation.Runspaces.VMConnectionInfo' }, 224 | @{ Name = 'System.Management.Automation.Runspaces.PSSnapInException' }, 225 | @{ Name = 'System.Management.Automation.Runspaces.PipelineReader`1' }, 226 | @{ Name = 'System.Management.Automation.Runspaces.PipelineWriter' }, 227 | @{ Name = 'System.Management.Automation.Tracing.EtwActivity' }, 228 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceTask' }, 229 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceKeywords' }, 230 | @{ Name = 'System.Management.Automation.Tracing.Tracer' }, 231 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceSource' }, 232 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceSourceFactory' }, 233 | @{ Name = 'System.Management.Automation.Internal.TransactionParameters' }, 234 | # Removed in 7 235 | @{ Name = 'System.Management.Automation.JobDataAddedEventArgs' }, 236 | @{ Name = 'System.Management.Automation.PSChildJobProxy' }, 237 | @{ Name = 'System.Management.Automation.PSJobProxy' }, 238 | @{ Name = 'System.Management.Automation.Runspaces.PSSessionType' } 239 | } 240 | 241 | It "There should be no types in standard which are not in the product" -skip:(! $assemblyExists) { 242 | Compare-Object -reference $smaT -difference $asmT | ?{$_.SideIndicator -eq '=>' } | Should -BeNullOrEmpty 243 | } 244 | 245 | It " should not be in the standard library" -skip:(! $assemblyExists) -testcase $expectedMissingTypes { 246 | param ( $Name ) 247 | $Name | Should -BeIn @($expectedMissingTypes.Values) 248 | } 249 | } 250 | } 251 | -------------------------------------------------------------------------------- /test/5/core/PSStandard.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | Demo.Cmdlet 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/5/full/Class1.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. 2 | // Licensed under the MIT License. 3 | 4 | using System; 5 | using System.Management.Automation; 6 | using System.Management.Automation.Runspaces; 7 | 8 | namespace PSStandard 9 | { 10 | [Cmdlet("get","thing")] 11 | public class Class1 : PSCmdlet 12 | { 13 | [Parameter()] 14 | [Credential()] 15 | public PSCredential Credential { get; set; } 16 | 17 | [Parameter()] 18 | [ValidateSet("a","b","c")] 19 | public string p1 { get; set; } 20 | 21 | protected override void BeginProcessing() { 22 | WriteVerbose(Runspace.DefaultRunspace.Name); 23 | PSObject p = new PSObject(DateTime.Now); 24 | WriteVerbose(p.Properties["DateTime"].ToString()); 25 | } 26 | protected override void EndProcessing() { 27 | WriteObject("Success!"); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /test/5/full/PSS5.Tests.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | Describe 'PowerShell Standard 5 - Full CLR' { 5 | 6 | BeforeAll { 7 | $repoRoot = git rev-parse --show-toplevel 8 | $libraryPath = "${repoRoot}/src/5/bin/Release/net452/System.Management.Automation.dll" 9 | $assemblyExists = test-path $libraryPath 10 | if ( $assemblyExists ) { 11 | $standardAssembly = [System.Reflection.Assembly]::LoadFile($libraryPath) 12 | } 13 | } 14 | 15 | Context 'Creating a cmdlet' { 16 | BeforeAll { 17 | $cmdletAssembly = 'bin/Release/net452/Demo.Cmdlet.dll' 18 | $assemblyPath = Join-Path "$PSScriptRoot" $cmdletAssembly 19 | $PSBin = (Get-Process -id $PID).MainModule.FileName 20 | } 21 | It 'Can build a reference assembly' { 22 | try { 23 | Push-Location $PSScriptRoot 24 | dotnet restore 25 | dotnet build --configuration Release 26 | $assemblyPath | Should -Exist 27 | } 28 | finally { 29 | Pop-Location 30 | } 31 | } 32 | It 'Can execute the compiled cmdlet' { 33 | $result = & $PSBin -c "import-module $assemblyPath; Get-Thing" 34 | $result | Should -Be 'success!' 35 | } 36 | } 37 | 38 | Context 'Reflection tests' { 39 | 40 | $testCases = @{ 41 | Name = "Issue 52: ValidateArgumentsAttribute.Validate method is not abstract" 42 | ScriptBlock = { 43 | $t = $standardAssembly.GetType('System.Management.Automation.ValidateArgumentsAttribute') 44 | $m = $t.GetMember('Validate','Public,NonPublic,Instance,Static,DeclaredOnly') 45 | $m.IsAbstract |Should -Be $true 46 | } 47 | }, 48 | @{ 49 | Name = "Issue 50: PSEventUnsubscribedEventHander argument type should be PSEventUnsubscribedEventArgs" 50 | ScriptBlock = { 51 | $t = $standardAssembly.GetType('System.Management.Automation.PSEventUnsubscribedEventHandler') 52 | $m = $t.GetMethod('Invoke') 53 | $parameters = $m.GetParameters() 54 | $parameters[1].ParameterType.FullName | Should -Be 'System.Management.Automation.PSEventUnsubscribedEventArgs' 55 | } 56 | }, 57 | @{ 58 | Name = "Issue 44: FunctionMemberAst.Parameters should be accessible" 59 | ScriptBlock = { 60 | $t = $standardAssembly.GetType('System.Management.Automation.Language.FunctionMemberAst') 61 | $p = $t.GetProperty('Parameters') 62 | $p.GetMethod.IsPublic | Should -Be $true 63 | } 64 | }, 65 | @{ 66 | Name = "Issue 42: Runspace.Default should not contain public CreateNestedPipeline" 67 | ScriptBlock = { 68 | $t = $standardAssembly.GetType('System.Management.Automation.Runspaces.Runspace') 69 | $t.GetMembers('Public,NonPublic,Instance,Static')|?{$_.Name -match 'CreatedNestedPipeline'}|Should -BeNullOrEmpty 70 | } 71 | }, 72 | @{ 73 | Name = "Issue 36: PSMemberInfo.Copy is marked 'virtual' but should be 'abstract'" 74 | ScriptBlock = { 75 | $t = $standardAssembly.GetType('System.Management.Automation.PSMemberInfo') 76 | $m = $t.GetMethod('Copy') 77 | $m.IsAbstract | Should -Be $true 78 | } 79 | }, 80 | @{ 81 | Name = "Issue 26: Several properties missing from CmdletProvider (also issue 14)" 82 | ScriptBlock = { 83 | $t = $standardAssembly.GetType('System.Management.Automation.Provider.CmdletProvider') 84 | $t.GetProperty('CurrentPSTransaction') | Should -Not -BeNullOrEmpty 85 | $t.GetProperty('DynamicParameters',[Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 86 | $t.GetProperty('PSDriveInfo',[Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 87 | $t.GetProperty('ProviderInfo',[Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 88 | } 89 | }, 90 | @{ 91 | Name = "Issue 19: SetJobState missing from Job class" 92 | ScriptBlock = { 93 | $t = $standardAssembly.GetType('System.Management.Automation.Job') 94 | $t.GetMethod('SetJobState',[System.Reflection.BindingFlags]'NonPublic,Instance') | Should -Not -BeNullOrEmpty 95 | } 96 | }, 97 | @{ 98 | Name = "Issue 18: Debugger does not contain protected parameterless constructor" 99 | ScriptBlock = { 100 | $t = $standardAssembly.GetType('System.Management.Automation.Debugger') 101 | # no public constructors 102 | $t.GetConstructors().Count | Should -Be 0 103 | # one protected, parameterless constructor 104 | $constructor = $t.GetConstructors('NonPublic,Instance') 105 | @($constructor).Count | Should -Be 1 106 | $constructor.IsFamily | Should -Be $true 107 | $constructor.GetParameters().Count | Should -Be 0 108 | } 109 | }, 110 | @{ 111 | Name = "Issue 17: ScriptExtent does not inherit IScriptExtent" 112 | ScriptBlock = { 113 | $t = $standardAssembly.GetType('System.Management.Automation.Language.ScriptExtent') 114 | $t.GetInterface('System.Management.Automation.Language.IScriptExtent')|Should -Not -BeNullOrEmpty 115 | } 116 | }, 117 | @{ 118 | Name = "Issue 16: ICustomAstVistor2 does not inherit ICustomAstVistor" 119 | ScriptBlock = { 120 | $t = $standardAssembly.GetType('System.Management.Automation.Language.ICustomAstVisitor2') 121 | $t.GetInterface('System.Management.Automation.Language.ICustomAstVisitor')|Should -Not -BeNullOrEmpty 122 | } 123 | }, 124 | @{ 125 | Name = "Issue 11: Missing cmdletization types" 126 | ScriptBlock = { 127 | $typeList = 'Microsoft.PowerShell.Cmdletization.BehaviorOnNoMatch', 128 | 'Microsoft.PowerShell.Cmdletization.CmdletAdapter`1', 129 | 'Microsoft.PowerShell.Cmdletization.MethodInvocationInfo', 'Microsoft.PowerShell.Cmdletization.MethodParameter', 130 | 'Microsoft.PowerShell.Cmdletization.MethodParameterBindings', 131 | 'Microsoft.PowerShell.Cmdletization.QueryBuilder', 132 | 'Microsoft.PowerShell.Cmdletization.Xml.ConfirmImpact', 'Microsoft.PowerShell.Cmdletization.Xml.ItemsChoiceType' 133 | foreach ( $t in $typeList ) { 134 | $standardAssembly.GetType($t) | Should -Not -BeNullOrEmpty 135 | } 136 | } 137 | }, 138 | @{ 139 | Name = "Issue 8: DefaultRunspace should be a static property" 140 | ScriptBlock = { 141 | $t = $standardAssembly.GetType('System.Management.Automation.Runspaces.Runspace') 142 | $p = $t.GetProperty('DefaultRunspace',[System.Reflection.BindingFlags]'Public,Static') 143 | $p | Should -Not -BeNullOrEmpty 144 | } 145 | }, 146 | @{ 147 | Name = "Issue 7: params keyword is left out for array type parameters" 148 | ScriptBlock = { 149 | $t = $standardAssembly.GetType('System.Management.Automation.OutputTypeAttribute') 150 | foreach ($c in $t.GetConstructors()) { 151 | $c.GetParameters()[-1].CustomAttributes.AttributeType.FullName | Should -Be System.ParamArrayAttribute 152 | } 153 | } 154 | }, 155 | @{ 156 | Name = "Issue 6: PSObject.Properties is using int instead of string" 157 | ScriptBlock = { 158 | $t = $standardAssembly.GetType('System.Management.Automation.PSObject') 159 | $p = $t.GetProperty('Properties') 160 | $p.PropertyType.GetMember('Item').GetIndexParameters().ParameterType.FullName | Should -Be 'System.String' 161 | } 162 | }, 163 | @{ 164 | Name = "Issue 4: CreatePipeline should not be available" 165 | ScriptBlock = { 166 | $t = $standardAssembly.GetType('System.Management.Automation.Runspaces.Runspace') 167 | $t.GetMembers('Public,NonPublic,Instance,Static')|?{$_.Name -match 'CreatePipeline'} | Should -BeNullOrEmpty 168 | } 169 | } 170 | 171 | It '' -testcases $testCases -skip:(! $assemblyExists) { 172 | param ( [string]$name, [scriptblock]$ScriptBlock ) 173 | & ${ScriptBlock} 174 | } 175 | } 176 | 177 | Context 'The type list is expected' { 178 | BeforeAll { 179 | $smaT = [psobject].assembly.GetTypes()|?{$_.IsPublic}|Sort-Object FullName 180 | $asmT = $standardAssembly.GetTypes()|?{$_.IsPublic}|Sort-Object FullName 181 | # These are the types which we expect to not be in the standard library 182 | $expectedMissingTypes = @{ Name = 'Microsoft.PowerShell.ProcessCodeMethods' }, 183 | @{ Name = 'Microsoft.PowerShell.DesiredStateConfiguration.ArgumentToConfigurationDataTransformationAttribute' }, 184 | @{ Name = 'Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscRemoteOperationsClass' }, 185 | @{ Name = 'Microsoft.PowerShell.DesiredStateConfiguration.Internal.DscClassCache' }, 186 | @{ Name = 'Microsoft.PowerShell.Commands.GetExperimentalFeatureCommand' }, 187 | @{ Name = 'Microsoft.PowerShell.Commands.PSPropertyExpressionResult' }, 188 | @{ Name = 'Microsoft.PowerShell.Commands.PSPropertyExpression' }, 189 | @{ Name = 'Microsoft.PowerShell.Commands.UpdateHelpScope' }, 190 | @{ Name = 'Microsoft.PowerShell.CoreClr.Stubs.AuthenticationLevel' }, 191 | @{ Name = 'Microsoft.PowerShell.CoreClr.Stubs.ImpersonationLevel' }, 192 | @{ Name = 'System.Management.Automation.PowerShellAssemblyLoadContextInitializer' }, 193 | @{ Name = 'System.Management.Automation.Platform' }, 194 | @{ Name = 'System.Management.Automation.ValidateRangeKind' }, 195 | @{ Name = 'System.Management.Automation.CachedValidValuesGeneratorBase' }, 196 | @{ Name = 'System.Management.Automation.IValidateSetValuesGenerator' }, 197 | @{ Name = 'System.Management.Automation.ArgumentCompletionsAttribute' }, 198 | @{ Name = 'System.Management.Automation.GetSymmetricEncryptionKey' }, 199 | @{ Name = 'System.Management.Automation.StartRunspaceDebugProcessingEventArgs' }, 200 | @{ Name = 'System.Management.Automation.ProcessRunspaceDebugEndEventArgs' }, 201 | @{ Name = 'System.Management.Automation.ExperimentalFeature' }, 202 | @{ Name = 'System.Management.Automation.ExperimentAction' }, 203 | @{ Name = 'System.Management.Automation.ExperimentalAttribute' }, 204 | @{ Name = 'System.Management.Automation.PSSnapInSpecification' }, 205 | @{ Name = 'System.Management.Automation.PSParseError' }, 206 | @{ Name = 'System.Management.Automation.PSParser' }, 207 | @{ Name = 'System.Management.Automation.PSToken' }, 208 | @{ Name = 'System.Management.Automation.PSTokenType' }, 209 | @{ Name = 'System.Management.Automation.TypeInferenceRuntimePermissions' }, 210 | @{ Name = 'System.Management.Automation.PSVersionHashTable' }, 211 | @{ Name = 'System.Management.Automation.SemanticVersion' }, 212 | @{ Name = 'System.Management.Automation.LocationChangedEventArgs' }, 213 | @{ Name = 'System.Management.Automation.WorkflowInfo' }, 214 | @{ Name = 'System.Management.Automation.PSSnapInInfo' }, 215 | @{ Name = 'System.Management.Automation.VerbInfo' }, 216 | @{ Name = 'System.Management.Automation.Remoting.WSMan.WSManServerChannelEvents' }, 217 | @{ Name = 'System.Management.Automation.Remoting.WSMan.ActiveSessionsChangedEventArgs' }, 218 | @{ Name = 'System.Management.Automation.Runspaces.PipelineStateInfo' }, 219 | @{ Name = 'System.Management.Automation.Runspaces.PipelineStateEventArgs' }, 220 | @{ Name = 'System.Management.Automation.Runspaces.Pipeline' }, 221 | @{ Name = 'System.Management.Automation.Runspaces.PowerShellProcessInstance' }, 222 | @{ Name = 'System.Management.Automation.Runspaces.SSHConnectionInfo' }, 223 | @{ Name = 'System.Management.Automation.Runspaces.VMConnectionInfo' }, 224 | @{ Name = 'System.Management.Automation.Runspaces.PSSnapInException' }, 225 | @{ Name = 'System.Management.Automation.Runspaces.PipelineReader`1' }, 226 | @{ Name = 'System.Management.Automation.Runspaces.PipelineWriter' }, 227 | @{ Name = 'System.Management.Automation.Tracing.EtwActivity' }, 228 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceTask' }, 229 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceKeywords' }, 230 | @{ Name = 'System.Management.Automation.Tracing.Tracer' }, 231 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceSource' }, 232 | @{ Name = 'System.Management.Automation.Tracing.PowerShellTraceSourceFactory' }, 233 | @{ Name = 'System.Management.Automation.Internal.TransactionParameters' } 234 | } 235 | 236 | It "There should be no types in standard which are not in the product" -skip:(! $assemblyExists) { 237 | Compare-Object -reference $smaT -difference $asmT | ?{$_.SideIndicator -eq '=>' } | Should -BeNullOrEmpty 238 | } 239 | 240 | It " should not be in the standard library" -skip:(! $assemblyExists) -testcase $expectedMissingTypes { 241 | param ( $Name ) 242 | $Name | Should -BeIn @($expectedMissingTypes.Values) 243 | } 244 | } 245 | } 246 | -------------------------------------------------------------------------------- /test/5/full/PSStandard.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net452 5 | Demo.Cmdlet 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/Build.Tests.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | Describe "Ensure that the created file versions match what is in the Signing.xml file" { 5 | BeforeAll { 6 | $baseDir = Resolve-Path (Join-Path $PsScriptRoot "..") 7 | $signingFilePath = Join-Path $baseDir "tools/releaseBuild/signing.xml" 8 | $signingXml = [xml](Get-Content $signingFilePath) 9 | $testCases = $signingXml.SelectNodes(".//file").src | 10 | Foreach-Object { @{ FileName = $_.split(([char[]]"/\"))[-1] } } 11 | } 12 | It "the file '' should exist" -testcases $testCases { 13 | param ( $FileName ) 14 | "$baseDir/$fileName" | Should -Exist 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/dotnetTemplate/dotnetTemplate.Tests.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | Describe "PowerShell Standard C# Module Template" { 5 | Context "Targeting PowerShell Standard 5.1" { 6 | BeforeAll { 7 | $testFolder = "./foo" 8 | $publishDir = "./bin/Release/netstandard2.0/publish/" 9 | $PSBin = (Get-Process -id $PID).MainModule.FileName 10 | 11 | $FavoriteNumber = 4 12 | $FavoritePet = "Cat" 13 | $DefaultFavoritePet = "Dog" 14 | 15 | dotnet new -i "$PSScriptRoot/../../src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/" 16 | New-Item $testFolder -ItemType Directory 17 | Push-Location $testFolder 18 | dotnet new psmodule 19 | } 20 | It "Can package the module that was created" { 21 | dotnet publish --configuration Release 22 | $LASTEXITCODE | Should -Be 0 23 | Test-Path $publishDir | Should -BeTrue 24 | Test-Path foo.csproj | Should -BeTrue 25 | Test-Path TestSampleCmdletCommand.cs | Should -BeTrue 26 | Test-Path obj | Should -BeTrue 27 | } 28 | It "Can execute the compiled cmdlet" { 29 | $result = & $PSBin -o XML -c "import-module $publishDir/foo.dll; (Test-SampleCmdlet -FavoriteNumber $FavoriteNumber)" 30 | $result.FavoriteNumber | Should -Be $FavoriteNumber 31 | $result.FavoritePet | Should -Be "Dog" 32 | 33 | $result = & $PSBin -o XML -c "import-module $publishDir/foo.dll; (Test-SampleCmdlet -FavoriteNumber $FavoriteNumber -FavoritePet $FavoritePet)" 34 | $result.FavoriteNumber | Should -Be $FavoriteNumber 35 | $result.FavoritePet | Should -Be "Cat" 36 | } 37 | AfterAll { 38 | dotnet new -u "$PSScriptRoot/../../src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/" 39 | Pop-Location 40 | Remove-Item -Path ./foo -Recurse 41 | } 42 | } 43 | 44 | Context "Targeting PowerShell Standard 3" { 45 | BeforeAll { 46 | $testFolder = "./foo" 47 | $publishDir = "./bin/Release/netstandard2.0/publish/" 48 | $PSBin = (Get-Process -id $PID).MainModule.FileName 49 | 50 | $FavoriteNumber = 4 51 | $FavoritePet = "Cat" 52 | $DefaultFavoritePet = "Dog" 53 | 54 | dotnet new -i "$PSScriptRoot/../../src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/" 55 | New-Item $testFolder -ItemType Directory 56 | Push-Location $testFolder 57 | dotnet new psmodule -v 3.0.0-preview-02 58 | } 59 | It "Can package the module that was created" { 60 | dotnet publish --configuration Release 61 | $LASTEXITCODE | Should -Be 0 62 | Test-Path $publishDir | Should -BeTrue 63 | Test-Path foo.csproj | Should -BeTrue 64 | Test-Path TestSampleCmdletCommand.cs | Should -BeTrue 65 | Test-Path obj | Should -BeTrue 66 | } 67 | It "Can execute the compiled cmdlet" { 68 | $result = & $PSBin -o XML -c "import-module $publishDir/foo.dll; (Test-SampleCmdlet -FavoriteNumber $FavoriteNumber)" 69 | $result.FavoriteNumber | Should -Be $FavoriteNumber 70 | $result.FavoritePet | Should -Be "Dog" 71 | 72 | $result = & $PSBin -o XML -c "import-module $publishDir/foo.dll; (Test-SampleCmdlet -FavoriteNumber $FavoriteNumber -FavoritePet $FavoritePet)" 73 | $result.FavoriteNumber | Should -Be $FavoriteNumber 74 | $result.FavoritePet | Should -Be "Cat" 75 | } 76 | AfterAll { 77 | dotnet new -u "$PSScriptRoot/../../src/dotnetTemplate/Microsoft.PowerShell.Standard.Module.Template/Microsoft.PowerShell.Standard.Module.Template/" 78 | Pop-Location 79 | Remove-Item -Path ./foo -Recurse 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /tools/releaseBuild/Image/DockerFile: -------------------------------------------------------------------------------- 1 | # escape=` 2 | #0.3.6 (no powershell 6) 3 | FROM microsoft/dotnet-framework:4.7.2-sdk 4 | LABEL maintainer='PowerShell Team ' 5 | LABEL description="This Dockerfile for Windows Server Core with git installed via chocolatey." 6 | 7 | SHELL ["C:\\windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "-command"] 8 | # Install Git, and platyPS 9 | # Git installs to C:\Program Files\Git 10 | # nuget installs to C:\ProgramData\chocolatey\bin\NuGet.exe 11 | COPY dockerInstall.psm1 containerFiles/dockerInstall.psm1 12 | 13 | RUN Import-Module PackageManagement; ` 14 | Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force; ` 15 | Import-Module ./containerFiles/dockerInstall.psm1; ` 16 | Install-ChocolateyPackage -PackageName git -Executable git.exe; ` 17 | Install-ChocolateyPackage -PackageName nuget.commandline -Executable nuget.exe -Cleanup; ` 18 | Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/cli/master/scripts/obtain/dotnet-install.ps1 -outfile C:/dotnet-install.ps1; ` 19 | C:/dotnet-install.ps1 -Channel Release -Version 2.1.4; ` 20 | Add-Path C:/Users/ContainerAdministrator/AppData/Local/Microsoft/dotnet; 21 | 22 | # RUN Import-Module ./containerFiles/dockerInstall.psm1; ` 23 | # git clone https://Github.com/PowerShell/PSScriptAnalyzer; ` 24 | # Install-ChocolateyPackage -PackageName dotnet4.5; 25 | 26 | # Install-ChocolateyPackage -PackageName netfx-4.5.1-devpack; 27 | #RUN Import-Module ./containerFiles/dockerInstall.psm1; ` 28 | # Install-ChocolateyPackage -PackageName netfx-4.7.2-devpack; ` 29 | # Install-ChocolateyPackage -PackageName dotnetfx; 30 | 31 | COPY buildStandard.ps1 containerFiles/buildStandard.ps1 32 | 33 | ENTRYPOINT ["C:\\windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe", "-command"] 34 | 35 | -------------------------------------------------------------------------------- /tools/releaseBuild/Image/buildStandard.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | param ( [string]$target ) 5 | if ( ! (test-path ${target} ) ) { 6 | new-item -type directory ${target} 7 | } 8 | else { 9 | if ( test-path -pathtype leaf ${target} ) { 10 | remove-item -force ${target} 11 | new-item -type directory ${target} 12 | } 13 | } 14 | push-location C:/PowerShellStandard 15 | ./build.ps1 -pack 16 | Copy-Item -verbose C:/PowerShellStandard/*.nupkg ${target} 17 | -------------------------------------------------------------------------------- /tools/releaseBuild/Image/dockerInstall.psm1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | function Install-ChocolateyPackage 5 | { 6 | param( 7 | [Parameter(Mandatory=$true)] 8 | [string] 9 | $PackageName, 10 | 11 | [Parameter(Mandatory=$false)] 12 | [string] 13 | $Executable, 14 | 15 | [string[]] 16 | $ArgumentList, 17 | 18 | [switch] 19 | $Cleanup, 20 | 21 | [int] 22 | $ExecutionTimeout = 2700, 23 | 24 | [string] 25 | $Version 26 | ) 27 | 28 | if(-not(Get-Command -name Choco -ErrorAction SilentlyContinue)) 29 | { 30 | Write-Verbose "Installing Chocolatey provider..." -Verbose 31 | Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression 32 | } 33 | 34 | Write-Verbose "Installing $PackageName..." -Verbose 35 | $extraCommand = @() 36 | if($Version) 37 | { 38 | $extraCommand += '--version', $version 39 | } 40 | choco install -y $PackageName --no-progress --execution-timeout=$ExecutionTimeout $ArgumentList $extraCommands 41 | 42 | if($executable) 43 | { 44 | Write-Verbose "Verifing $Executable is in path..." -Verbose 45 | $exeSource = $null 46 | $exeSource = Get-ChildItem -path "$env:ProgramFiles\$Executable" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName 47 | if(!$exeSource) 48 | { 49 | Write-Verbose "Falling back to x86 program files..." -Verbose 50 | $exeSource = Get-ChildItem -path "${env:ProgramFiles(x86)}\$Executable" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName 51 | } 52 | 53 | # Don't search the chocolatey program data until more official locations have been searched 54 | if(!$exeSource) 55 | { 56 | Write-Verbose "Falling back to chocolatey..." -Verbose 57 | $exeSource = Get-ChildItem -path "$env:ProgramData\chocolatey\$Executable" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName 58 | } 59 | 60 | # all obvious locations are exhausted, use brute force and search from the root of the filesystem 61 | if(!$exeSource) 62 | { 63 | Write-Verbose "Falling back to the root of the drive..." -Verbose 64 | $exeSource = Get-ChildItem -path "/$Executable" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName 65 | } 66 | 67 | if(!$exeSource) 68 | { 69 | throw "$Executable not found" 70 | } 71 | 72 | $exePath = Split-Path -Path $exeSource 73 | Add-Path -path $exePath 74 | } 75 | 76 | if($Cleanup.IsPresent) 77 | { 78 | Remove-Folder -Folder "$env:temp\chocolatey" 79 | } 80 | } 81 | 82 | function Add-Path 83 | { 84 | param 85 | ( 86 | $path 87 | ) 88 | $machinePathString = [System.Environment]::GetEnvironmentVariable('path',[System.EnvironmentVariableTarget]::Machine) 89 | $machinePath = $machinePathString -split ';' 90 | 91 | if($machinePath -inotcontains $path) 92 | { 93 | $newPath = "$machinePathString;$path" 94 | Write-Verbose "Adding $path to path..." -Verbose 95 | [System.Environment]::SetEnvironmentVariable('path',$newPath,[System.EnvironmentVariableTarget]::Machine) 96 | Write-Verbose "Added $path to path." -Verbose 97 | $env:Path += ";$newPath" 98 | } 99 | else 100 | { 101 | Write-Verbose "$path already in path." -Verbose 102 | } 103 | } 104 | 105 | function Remove-Folder 106 | { 107 | param( 108 | [string] 109 | $Folder 110 | ) 111 | 112 | Write-Verbose "Cleaning up $Folder..." -Verbose 113 | $filter = Join-Path -Path $Folder -ChildPath * 114 | [int]$measuredCleanupMB = (Get-ChildItem $filter -Recurse | Measure-Object -Property Length -Sum).Sum / 1MB 115 | Remove-Item -recurse -force $filter -ErrorAction SilentlyContinue 116 | Write-Verbose "Cleaned up $measuredCleanupMB MB from $Folder" -Verbose 117 | } 118 | -------------------------------------------------------------------------------- /tools/releaseBuild/build.json: -------------------------------------------------------------------------------- 1 | { 2 | "Windows": { 3 | "Name": "win7-x64", 4 | "RepoDestinationPath": "C:\\PowerShellStandard", 5 | "BuildCommand": "C:\\containerFiles\\buildStandard.ps1 -target _DockerVolume_", 6 | "DockerFile": ".\\tools\\releaseBuild\\Image\\DockerFile", 7 | "DockerImageName": "powershellstandard", 8 | "BinaryBucket": "release", 9 | "PublishAsFolder": true, 10 | "AdditionalContextFiles" : [ 11 | ".\\tools\\releaseBuild\\Image\\buildStandard.ps1", 12 | ".\\tools\\releaseBuild\\Image\\dockerInstall.psm1" 13 | ] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tools/releaseBuild/signing.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tools/releaseBuild/vstsbuild.ps1: -------------------------------------------------------------------------------- 1 | # Copyright (c) Microsoft Corporation. 2 | # Licensed under the MIT License. 3 | 4 | [cmdletbinding()] 5 | param() 6 | 7 | Begin 8 | { 9 | $ErrorActionPreference = 'Stop' 10 | 11 | $gitBinFullPath = (Get-Command -Name git -CommandType Application).Path | Select-Object -First 1 12 | if ( ! $gitBinFullPath ) 13 | { 14 | throw "Git is missing! Install from 'https://git-scm.com/download/win'" 15 | } 16 | 17 | # clone the release tools 18 | $releaseToolsDirName = "PSRelease" 19 | $releaseToolsLocation = Join-Path -Path $PSScriptRoot -ChildPath PSRelease 20 | if ( Test-Path $releaseToolsLocation ) 21 | { 22 | Remove-Item -Force -Recurse -Path $releaseToolsLocation 23 | } 24 | & $gitBinFullPath clone -b master --quiet https://github.com/PowerShell/${releaseToolsDirName}.git $releaseToolsLocation 25 | Import-Module "$releaseToolsLocation/vstsBuild" -Force 26 | Import-Module "$releaseToolsLocation/dockerBasedBuild" -Force 27 | } 28 | 29 | End { 30 | 31 | $AdditionalFiles = .{ 32 | Join-Path $PSScriptRoot -child "Image/buildStandard.ps1" 33 | Join-Path $PSScriptRoot -child "Image/dockerInstall.psm1" 34 | } 35 | $buildPackageName = $null 36 | 37 | # defined if building in VSTS 38 | if($env:BUILD_STAGINGDIRECTORY) 39 | { 40 | # Use artifact staging if running in VSTS 41 | $destFolder = $env:BUILD_STAGINGDIRECTORY 42 | } 43 | else 44 | { 45 | # Use temp as destination if not running in VSTS 46 | $destFolder = $env:temp 47 | } 48 | 49 | $resolvedRepoRoot = (Resolve-Path (Join-Path -Path $PSScriptRoot -ChildPath "../../")).Path 50 | 51 | try 52 | { 53 | Write-Verbose "Starting build at $resolvedRepoRoot ..." -Verbose 54 | Clear-VstsTaskState 55 | 56 | $buildParameters = @{ 57 | ReleaseTag = $ReleaseTag 58 | } 59 | $buildArgs = @{ 60 | RepoPath = $resolvedRepoRoot 61 | BuildJsonPath = './tools/releaseBuild/build.json' 62 | Parameters = $buildParameters 63 | AdditionalFiles = $AdditionalFiles 64 | Name = "win7-x64" 65 | } 66 | Invoke-Build @buildArgs 67 | } 68 | catch 69 | { 70 | Write-VstsError -Error $_ 71 | } 72 | finally{ 73 | Write-VstsTaskState 74 | exit 0 75 | } 76 | } 77 | --------------------------------------------------------------------------------