Commit graph

1808 commits

Author SHA1 Message Date
Reece Dunham
da4930f2dc Added RequireSudoOnUnix tags to PowerShellGet tests and unmark as pending (#8954) 2019-03-05 11:55:20 -08:00
ThreeFive-O
6e383de251 Style fixes for ConvertTo-Xml tests (#9036) 2019-03-05 11:39:58 -08:00
dependabot[bot]
98506db714 Build(deps): Bump SelfSignedCertificate in /test/tools/Modules (#9055) 2019-03-05 11:32:40 -08:00
ThreeFive-O
017e472961 Align name schemes for test files (#9034) 2019-03-05 10:47:04 -08:00
Aditya Patwardhan
7062297e4e
Update version for PowerShell.Native and hosting tests (#8983) 2019-03-04 11:08:19 -08:00
Gaurav Kamath
f31b33863c Refactor Shuffle in Get-Random to save a full iteration of the objects. (#8969) 2019-03-01 17:11:37 +05:00
Ilya
18f9a36f2a Pending NamedPipeConnectionInfo test (#9003)
Related #8971. Pending the test until we fix a root case of failure.
2019-02-27 14:51:36 -08:00
mjanko5
7e0411fcd9 Add test for -WhatIf for New-FileCatalog (#8966) 2019-02-27 10:53:08 +05:00
Dongbo Wang
5d54f1aa38
Make xUnit tests run sequentially to avoid race conditions caused by manipulating 'powershell.config.json' in tests (#8945) 2019-02-22 11:57:10 -08:00
Tyler James Leonhardt
23eccfd641 [feature] Add -CustomPipeName to pwsh and Enter-PSHostProcess (#8889)
This allows a user to start PowerShell up with the name of the named pipe that is used for cross process communication (I.e. Enter-PSHostProcess).
2019-02-22 23:40:03 +05:00
Andrea Spadaccini
af86157855 Fix typo: aganist ➜ against (#8943) 2019-02-22 18:46:31 +05:00
Ilya
778920bbc4
Use verbatim string literals for paths (#8937) 2019-02-22 11:35:32 +05:00
Travis Plunk
57aeca428e
Port Security bypass fixes from 6.1.3 (#8915) 2019-02-21 13:44:08 -08:00
Travis Plunk
2c488fb4e5
Fix Markdown lint issues (#8929)
#8896 Broke the static analysis CI.  Fixing so CI passes
2019-02-20 13:24:26 -08:00
Steve Lee
b06ad6aa61 Enable discovering modules that have names same as a culture (e.g. Az) (#8777)
Here are the major changes:
- Add logic to skip checking for possible resource directories for the first set of sub directories from the top level.
- There was an additional skip if the folder is hidden, rather than doing an explicit attribute check, change the `EnumerationOption` to skip hidden folders.
- Since the `IsPossibleModuleDirectory()` helper now only checks to see if the name matches a culture, renamed to `IsPossibleResourceDirectory()`
- When getting the default modules, we don't search recursively into individual module folders, so removed additional check for possible resource directory.
2019-02-20 12:23:27 -08:00
Reece Dunham
4de3a72142 Fix code-of-conduct linting (#8896) 2019-02-20 11:57:31 +05:00
Adam Gauthier
caf8ac6a6a Add configurable maximum depth in ConvertFrom-Json with -Depth (#8199)
Adds an optional -Depth parameter to the cmdlet which lets the user to specify a maximum depth allowed for deserialization, which will overwrite the default maximum of 1024.
2019-02-20 10:37:37 +05:00
Mathias R. Jessen
0a570211df Flatten interface hierarchy when generating properties that implement interface properties (#8382)
`TypeBuilder.GetInterfaces()` returns only the interfaces that was explicitly passed to its constructor, so we need to flatten the interface hierarchy in order to properly support inherited interfaces.
2019-02-19 15:02:34 -08:00
Reece Dunham
c14d5dd67f Remove some of the last AppVeyor references (#8867)
This removes some of the last mentions of the AppVeyor name.  Don't change the title, we don't want the word to appear in the CLs
Also problem: the last references are in the changelogs but I don't want to modify them without committee approval.  

## PR Context  

it was removed, #8686
2019-02-19 12:44:00 -08:00
Travis Plunk
60ab54d737
Port DotNet fixes from 6.1.3 (#8914)
Addresses CVE-2019-0657
2019-02-19 10:45:40 -08:00
Reece Dunham
6cab2b474d Remove yet another appveyor reference (#8854) 2019-02-11 10:28:41 -08:00
Reece Dunham
3ab7e2ec4d Remove extra AppVeyor environment check (#8709)
Removes a check for AppVeyor env

## PR Context  
AppVeyor removed (#8686  extension)
2019-02-08 10:57:41 -08:00
Steve Lee
26a58670c1 Enable creating relative symlinks on Windows with New-Item (#8783) 2019-02-07 11:44:23 -08:00
Bruce Payette
6bc6257a55 Allow .exe files to be used as IL binary modules (#7281)
Fix for #6741 Allow .exe files to be used as binary modules. Basically anywhere a .dll could be used with modules, you can now use a .exe file. Also did a little clean up, replacing constant strings with the StringLiteral values instead.
2019-02-07 11:24:06 -08:00
Joel Sallow (/u/ta11ow)
130298bfae Parse numeric strings as numbers again during conversions (#8681) 2019-02-04 12:22:05 -08:00
Travis Plunk
003a141f31
Remove directory causing static analysis failure (#8812)
Remove directory causing static analysis failure
2019-02-01 18:03:12 -08:00
Steve Lee
313c8c06a1 Enable Write-Information to accept $null (#8774) 2019-01-31 13:16:34 -08:00
Reece Dunham
9e4e50a84e Remove appveyor functions from New-DockerTestBuild.psm1 (#8756) 2019-01-31 11:15:31 -08:00
Joshua T
c935bce1ac Adding parameter "ReplyTo" to Send-MailMessage (#8727) 2019-01-30 16:33:15 -08:00
Paul Higinbotham
f3efcab91e Change xUnit RunspaceTests to run sequentially (#8796) 2019-01-30 14:12:26 -08:00
pougetat
1d7651f233 Fix Get-Help PSTypeName issue with -Parameter when only one parameter is declared (#8754) 2019-01-30 08:55:33 -08:00
Ilya
5097e2ae1f Fix cleanup config files for the csharp xUnit tests (#8761) 2019-01-29 17:24:18 -08:00
Reece Dunham
5581c0a0ed Update some info in md-link-checks (#8757) 2019-01-29 08:54:23 +05:00
Travis Plunk
b779b88c79
Merge `release-v6.2.0-preview.4'
# Conflicts:
#	test/Test.Common.props
#	tools/packaging/packaging.psm1
2019-01-28 13:50:00 -08:00
Joel Sallow (/u/ta11ow)
db1b309800 Correctly Report impact level when SupportsShouldProcess is not set to 'true' (#8209)
Major changes are:
- Make all commands return 'ConfirmImpact.None' if `SupportsShouldProcess` is not set to `true`.
- Update some cmdlets to explicitly use `ConfirmImpact.Low`.
- Update `DefaultCommands.Tests.ps1` to test for 'ConfirmImpact' level.
2019-01-26 03:12:00 -08:00
Mark Kraus
ff83206e1c Fix Request Charset Issues in Web Cmdlets (#8742)
Instantiating a new MediaTypeHeaderValue object fails when the -ContentType parameter includes a charset such as application/json; charset=utf-8. This makes it impossible to set the content encoding on web requests. Moving to Parse() ensures we actually get a proper MediaTypeHeaderValue when the charset is present, thus allowing users to set their request encoding via proper -ContentType values.
2019-01-26 12:48:47 +05:00
Aditya Patwardhan
6ccbebda27 Improve check for developer mode by checking minimum required build number (#8749)
* Improve check for developer mode by checking minimum required build number

The test would fail if the developer mode is enabled but the machine has an older build than the minimum required build.
The change adds a check for the build version in the test.

* Update test/powershell/Modules/Microsoft.PowerShell.Management/New-Item.Tests.ps1
2019-01-25 13:14:29 -08:00
Sergey Vasin
a9841d98fa Make Join-String -InputObject 1,2,3 result equal to 1,2,3 | Join-String result (#8611)
Make `Join-String -InputObject 1,2,3` result equal to `1,2,3 | Join-String` result.

Fix #8610
2019-01-24 12:53:37 -08:00
xtqqczze
863528881f Use https in URLs where available (#8622)
Use https in URLS across the repository where the domain serves content by https.
2019-01-24 12:50:11 -08:00
dependabot[bot]
60edeb2c76 Build(deps): Bump XunitXml.TestLogger from 2.0.0 to 2.1.26 (#8731) 2019-01-24 11:01:24 -08:00
Steve Lee
3a8205018e Fix Enter-PSHostProcess test to wait until runspace is ready before attempting to enter (#8725)
This fixes CI test failure in Windows build.
2019-01-23 15:07:34 -08:00
Steve Lee
7e2cd7954f Add the experimental feature for creating 'Temp:\' drive when FileSystemProvider initializes (#8696)
Adds Experimental Feature called `PSTempDrive` that, if enabled, creates a PSDrive called `Temp:` that maps to `[System.IO.Path]::GetTempPath()`.
2019-01-23 13:53:04 -08:00
Dongbo Wang
9ceddc0dfe
Refactor ConvertTo-Json to expose JsonObject.ConvertToJson as a public API (#8682)
We have the public API `JsonObject.ConvertFromJson` to convert from JSON string in the PowerShell context. It would be good to have a public API for conversion to JSON. This PR refactors the `ConvertTo-Json` cmdlet to move the core implementation to `JsonObject.ConvertToJson`, and make `ConvertTo-Json` call that public method.

This would help the Azure Function PowerShell worker. Currently, we depends on [calling the cmdlet](729710d259/src/PowerShell/PowerShellManager.cs (L198-L205)) to convert object to JSON which is expensive. Once we have the public method `JsonObject.ConvertToJson` exposed, we can call the API directly to avoid a command invocation.

# Conflicts:
#	test/Test.Common.props
2019-01-23 10:41:19 -08:00
Dongbo Wang
c606b1ca37 Refactor ConvertTo-Json to expose JsonObject.ConvertToJson as a public API (#8682)
We have the public API `JsonObject.ConvertFromJson` to convert from JSON string in the PowerShell context. It would be good to have a public API for conversion to JSON. This PR refactors the `ConvertTo-Json` cmdlet to move the core implementation to `JsonObject.ConvertToJson`, and make `ConvertTo-Json` call that public method.

This would help the Azure Function PowerShell worker. Currently, we depends on [calling the cmdlet](729710d259/src/PowerShell/PowerShellManager.cs (L198-L205)) to convert object to JSON which is expensive. Once we have the public method `JsonObject.ConvertToJson` exposed, we can call the API directly to avoid a command invocation.
2019-01-23 10:39:12 -08:00
Travis Plunk
c4b2105a73 Merged PR 6648: Bump SDK and Runtime Versions
Bump SDK and Runtime Versions
  - Also, fix alpine docker file
  - Also, fix extra files being added to some Modules after these changes
2019-01-23 02:18:44 +00:00
Aditya Patwardhan
9e8f5bde33 Merged PR 6644: Update hosting tests and metadata.json for 6.2.0-preview.4 release
Update hosting tests and metadata.json for 6.2.0-preview.4 release
2019-01-22 21:43:47 +00:00
xtqqczze
1df96c7ed5 Remove broken HelpUri from CimTest (#8688) 2019-01-22 11:21:45 -08:00
Mark Kraus
2dd549e34b Fix Code Page Parsing Isssue in Invoke-RestMethod (#8694) 2019-01-22 10:45:40 -08:00
Mark Kraus
67004aa224 Fix expect 100-continue Issue with Web Cmdlets (#8679)
Web Cmdlets will no longer forcibly remove Expect: 100-continue from web requests.
This was a legacy setting that needed to be there because of platform differences that have since been resolved in CoreFX.
2019-01-19 11:16:18 +05:00
Michael Klement
20919ee793 Allow 'name' as an alias key for 'label' in ConvertTo-Html, allow the 'width' entry to be an integer (#8426) 2019-01-18 11:02:22 -08:00
Mathias R. Jessen
59a3696f70 Allow user-specified underlying type for enums (#8329)
Fix #8028 

This change adds support for specifying the underlying type for an enum:

```powershell
enum MyEnum : long 
{
  A = 0x0FFFFFFFFFFFFFFF
  B
}
# or
enum MyByte : byte 
{
  A = 0x01
  B = 0x02
  C = 0x03
  D
}
```
2019-01-17 14:22:10 -08:00
Reece Dunham
f29a04c1bd Remove appveyor environment checks (#8669) 2019-01-17 12:33:35 -08:00
Reece Dunham
41e63f6546 Create Support File (#8618) 2019-01-17 12:25:07 -08:00
Reece Dunham
9eb6fc927d docs(contributing): add link check information (#8659) 2019-01-16 15:30:55 -08:00
pougetat
4858afb613 Resolve :PAGER' if its path contains spaces (#8571) 2019-01-16 15:14:44 -08:00
PRASOON KARUNAN V
6b3e06893a Adding tests for PSDiagnostics Module (#8431) 2019-01-16 14:59:35 -08:00
Travis Plunk
03cd3a2548
Increase diagnosability of Link Checker failures (#8667)
Also use ThreadJobs for better perf
2019-01-16 14:28:10 -08:00
Ilya
782ef99465
Add support enum and char types in Format-Hex cmdlet (#8191) 2019-01-16 16:58:22 +05:00
Kirk Munro
41d9667307 Add -Stable to Sort-Object and related tests (#7862) 2019-01-15 17:14:39 -08:00
Sergey Vasin
279993bf39 Change Get-Help cmdlet -Parameter parameter so it accepts string arrays. (#8454) 2019-01-15 16:25:49 -08:00
Dongbo Wang
c2dfae8ccb Fix 'FixupFileName' to not load resolved assembly during module discovery (#8634) 2019-01-15 16:22:25 -08:00
Travis Plunk
7bf4641444
Fix broken urls (#8653)
Fix broken URL
  - Also, move other static analysis tests into that CI.
  - Also, make the link analysis a pester test (partly to make sure the step fails in case of an error)
2019-01-15 16:20:45 -08:00
xtqqczze
6126624b63 Revise use of Start-Sleep cmdlet (#8633)
* Avoid use of sleep alias (follow-up to #8546)
* Specify default parameter name
* Shorten overly specific comments
2019-01-15 12:31:52 +05:00
Steve Lee
c3cb6df809 Update 'CommandNotFound' fuzzy suggestion to only return unique results (#8640) 2019-01-14 14:28:15 -08:00
Jani
812456f84c Improve Start-Sleep cmdlet to accept fractional seconds (#8537) 2019-01-14 10:04:44 -08:00
Steve Lee
6fa5195589 Update fuzzy test to fix daily build (#8629) 2019-01-11 16:45:49 -08:00
Steve Lee
71e58f9439 Add the experimental feature 'PSUseAbbreviationExpansion' to support tab completion on abbreviated command names (#8109) 2019-01-10 16:11:43 -08:00
Steve Lee
b87cd1c0a3 Add support to show suggestions on CommandNotFound exception (#8458)
* support fuzzy matching with get-command and on CommandNotFound exception, show suggestion
* fix CodeFactor issues
* change algorithm to use Damerau-Levenshtein Distance which is more useful in finding close matches
2019-01-10 13:35:30 -08:00
Steve Lee
9793ed2c68 Change hashtable to use OrdinalIgnoreCase to be case-insensitive in all Cultures (#8566)
Ubuntu18.04 seems to default to C.UTF-8 for LANG (representing InvariantCulture) which results in a case-sensitive hashtable since CurrentCultureIgnoreCase doesn't work for that culture. Fix is to use OrdinalIgnoreCase instead.
2019-01-10 09:11:43 +05:00
Kirk Munro
1729a682ee Make S.M.A.PowerShell.GetSteppablePipeline method public (#8055)
* make GetSteppablePipeline method public
* updated PowerShell member count
2019-01-09 15:31:09 -08:00
Ilya
6647b29f41
Fix LiteralPath in Import-Csv to bind to Get-ChildItem output (#8277)
Added new tests.
2019-01-09 18:49:15 +05:00
Michael Klement
73716e9792 Make scriptblock-based calculated properties work again in ConvertTo-Html (#8427) 2019-01-09 13:55:03 +05:00
Sergey Vasin
6f071f0ba5 Fix Join-String cmdlet FormatString parameter logic (#8449) 2019-01-09 11:06:20 +05:00
Steve Lee
d6000fdea8 Allow Windows users in developer mode to create symlinks without elevation (#8534) 2019-01-08 10:43:24 -08:00
Steve Lee
64fcddcb53 Help function should only pass content to pager if content was found (#8528) 2019-01-08 09:56:56 -08:00
Steve Lee
031cbf0f16 Change clear-host to simply called [console]::clear and remove clear alias from Unix (#8603)
Based on @PowerShell/powershell-committee decision, standardizing on [Console]::Clear() on all platforms and removing clear alias on non-Windows.
2019-01-08 22:38:56 +05:00
Dongbo Wang
4a63201139 Remove 'en-us' from our doc links (#8602) 2019-01-07 17:11:17 -08:00
Steve Lee
d51b5fdc30 help function shouldn't use pager for AliasHelpInfo (#8552) 2019-01-07 13:39:57 -08:00
Kirk Munro
23f6e8ff40 Add S.M.A.PowerShell.Create method overload with Runspace argument (#8057) 2019-01-07 11:04:42 -08:00
Ilya
b8f9532b41 Style: Use the type alias 'string' instead of 'String' in places that are appropriate (#8573) 2019-01-07 10:46:00 -08:00
xtqqczze
379cbb60cd Correctly capitalize the ForEach operator in *.ps1 (#8583) 2019-01-06 17:00:56 +05:00
xtqqczze
f0f301bc5e Avoid use of mkdir alias in *.ps1 and *.psm1 (#8582) 2019-01-04 14:31:24 +05:00
xtqqczze
1a3aadfc4e Regularize redirection operator spacing in *.ps1 and *.ps1m (#8581)
Add space after redirection operator.
2019-01-03 12:59:14 +05:00
Ilya
dfd2f69369
Style: Change 'String.' to 'string.' (#8568) 2018-12-31 20:44:16 +05:00
Ilya
f31750c0d1
Fix typo in AMSI test (#8561) 2018-12-29 18:16:50 +05:00
xtqqczze
70de294fea Remove use of cmdlet aliases from .\test\powershell (#8546) 2018-12-28 13:48:23 +05:00
xtqqczze
b850d57c78 Style: Remove preceding spaces from C# preprocessor-type keywords (#8540) 2018-12-26 11:59:10 +05:00
Ilya
d8af22c33b
Style: Change 'Byte{}' to 'byte[]' (#8525) 2018-12-24 11:23:18 +05:00
Steve Lee
4af3068566 Code cleanup: Add space after closing brace where needed (#8530)
* Update TestService

* Update WebListener

* Update Controllers

* Update ExpTest

* Update MyApp

* Update Logic

* Update Logic

* Update MyApp

* Update Microsoft.Management.Infrastructure.CimCmdlets

* Update Microsoft.PowerShell.Commands.Diagnostics

* Update Microsoft.PowerShell.ScheduledJob

* Update Microsoft.WSMan.Management

* Update Microsoft.WSMan.Runtime

* Update ResGen

* Update TypeCatalogGen

* Update commands

* Update Eventing

* Update Reader

* Update utility

* Update ShowCommand

* Update trace

* Update WebCmdlet

* Update Common

* Update CoreCLR

* Update common

* Update format-object

* Update format-wide

* Update out-file

* Update out-printer

* Update out-string

* Update OutGridView

* Update LocalAccounts

* Update Commands

* Update security

* Update CoreCLR

* Update DscSupport

* Update engine

* Update help

* Update logging

* Update namespaces

* Update security

* Update utils

* Update config

* Update perfCounters

* Update tracing

* Update cmdletization

* Update other

* Update cim

* Update xml

* Update CoreCLR

* Update common

* Update DefaultFormatters

* Update out-console

* Update out-textInterface

* Update DisplayDatabase

* Update Utilities

* Update COM

* Update ComInterop

* Update CommandCompletion

* Update debugger

* Update ExperimentalFeature

* Update hostifaces

* Update interpreter

* Update lang

* Update Modules

* Update parser

* Update runtime

* Update client

* Update commands

* Update common

* Update fanin

* Update server

* Update WireDataFormat

* Update Binding

* Update Operations

* Update interface

* Update cmdletization

* Update cim

* Update management

* Update WindowsTaskbarJumpList

* Update msh
2018-12-24 11:20:06 +05:00
Mathias R. Jessen
0e971a42bf Fix xml nesting bug in CustomSerializer.WriteMemberInfoCollection() (#8476)
WriteMemberInfoCollection() calls WriteEndElement() at most once, even if WriteStartElement() has been called more than once. This commit moves the WriteEndElement() call up immediately after the elements text value has been written.
2018-12-22 22:50:11 +05:00
Steve Lee
2eb7ca8309 Fix formatting of header of table when center aligned (#8497) 2018-12-22 12:57:44 +05:00
Dongbo Wang
2bfbcd4f07 Remove empty lines; correct space on closing square brackets, negative signs, and generic brackets (#8508) 2018-12-21 12:23:04 +05:00
Luke Jeremy
56fc426f8b Add -UseMinimalHeader to Start-Transcript to minimize transcript header (#8402) 2018-12-20 11:12:14 -08:00
Steve Lee
110f78b818 Add -RepeatHeader to Format-Table to enable repeating header for each screen full (#8481)
When using a screen reader or just getting the output of a table with lots of rows, the header is no longer on the screen and the columns may no longer make sense without the context.  This change adds a `-RepeatHeader` switch to `Format-Table` to enable re-outputting the header after every screen full (minus 1 row).  Expectation is that the user is piping the output to a pager (e.g. less) which uses the bottom row for pager information.  I followed the `AutoSize` parameter as the way to get the parameter from the cmdlet into the deep formatting object where it's needed.
2018-12-20 11:05:34 -08:00
Joel Sallow (/u/ta11ow)
64bbdbe61c Add Tests for ConfirmImpact Ratings (#8214) 2018-12-20 23:15:42 +05:00
Ilya
c857392c34
Fix style issues in xUnit tests (#8465) 2018-12-18 21:11:21 +05:00
Ilya
a9f106da58 Move xUnit tests in new folder (#8356)
## Motivation

I have a PR where there are many new xUnit tests.
It would also be useful to create new xUnit tests for public APIs.
The number of xUnit tests will increase and their ordering is required.

## PR Summary

- Move C# xUnit tests in new folder. This allows to put new xUnit tests in directory structure in accordance with directory structure where cs files are.
- Use an xUnit TestCaseOrderer attribute to sequentially process tests for `powershell.config.json`.
- Update README.md
- A race condition was fixed which allowed  to run all XUnit tests in single batch job.
2018-12-13 14:22:07 -08:00
Aditya Patwardhan
551ed10b36 Fix EnvironmentVariable test and add missing null check in CommandHelpProvider (#8408)
* Disable NewItemUnauthorizedAccessError tests.
* Added expected value for $env:HOMEPATH for user with temporary profile.
* Added a missing null check in CommandHelpProvider.cs
2018-12-11 14:20:22 -08:00
Aditya Patwardhan
ee5fc080e2 Remove dotnet dependency to start WebListener (#8390)
WebListener.exe (which was already being built) is sufficient to start web listener. Remove the dependency on `dotnet` being present to start the web listener.

Use `Start-Process` instead of `Start-Job` to launch the WebListener.
2018-12-11 14:15:32 -08:00
Steve Lee
f17601298b Reset output attributes if column had ESC char when using Format-Table; Replace ... with unicode ellipsis (#8326)
change ellipsis when truncating to single unicode character
reset console output if previous column contains ESC
update existing format-table tests

If content included a VT100 ESC sequence (like changing color), this affected all output after that cell in the table.  Fix is to detect that a cell contained ESC and reset the console after it.  Also, change the 3 character ellipsis `...` to use the single unicode character `…` so that more text is available.

Fix https://github.com/PowerShell/PowerShell/issues/7767
2018-12-11 13:56:46 -08:00
Aditya Patwardhan
1d32d05157 Merged PR 6201: Update docs and csproj version
Update docs and csproj version
2018-12-07 18:24:07 +00:00
Dongbo Wang
2dcf52f3fc
Update folder path for storing optimization profile and add test to validate loaded assemblies and libraries on startup (#8406)
- Update folder path for storing optimization profile file.
- Add test to validate loaded assemblies and libraries on startup.
2018-12-06 14:26:09 -08:00
Dongbo Wang
c1e171622a
More changes and cleanup to reduce the startup time (#8396)
Major changes are:
- Rename `s_wasSystemPolicyDebugPolicy` to `s_allowDebugOverridePolicy` to make it less confusing. Also slightly refactor `HelperSecurity.psm1` and `ConstrainedLanguageDebugger.Tests.ps1` to remove unneeded code. There is no functional change in this commit.
- Remove the unneeded static property `IsInbox`, as PowerShell Core won't be shipped in-box with Windows in the foreseeable feature. Even if we do in future, we won't be needing it because Windows PowerShell will probably be gone by that time.
- Update 'BindRunspace' to avoid getting all commands and unneeded method calls.
- Avoid creating a `IsSafeValueVisitor` every time when `IsScriptBlockInFactASafeHashtable` runs.
2018-12-05 18:29:50 -08:00
Steve Lee
52aef57ab6 Add Enable-ExperimentalFeature and Disable-ExperimentalFeature cmdlets (#8318)
[breaking change]
Major changes are as follows:
- Add `Enable-ExperimentalFeature` and `Disable-ExperimentalFeature` cmdlets.
- Remove `-ListAvailable` from `Get-ExperimentalFeature`.
- Add `ArgumentCompleter` for `Get-ExperimentalFeature` cmdlet.
- Refactor some existing Experimental Feature tests.
- Make `ConfigScope` public and renamed `SystemWide` to `AllUsers`. Also update experimental feature code to prefer the current user config over the all user config.
2018-12-05 12:20:58 -08:00
Travis Plunk
142814c12a
Fix an intermittent failure in macOS logging tests (#8385)
Fix an intermittent failure in macOS logging tests
  - make tests wait for the correct number of log entries
  - make tests not fail with an `Index was outside the bounds of the array.` error
2018-12-03 14:29:49 -08:00
Aditya Patwardhan
a62eb62701 Remove all reference to AppVeyor and Travis CI from docs (#8376) 2018-12-03 10:14:11 -08:00
Dongbo Wang
a11810bf33
Improve powershell startup time (#8341)
Major changes are as follows:
- Avoid `SecuritySupport.IsProductBinary` and unnecessary AMSI/suspicious code scan at startup time
   - Update `CompiledScriptBlockData.IsProductCode` to avoid unnecessary calls to `IsProductBinary`, which attempts to retrieve catalog signature of the target file.
   - Update `PerformSecurityChecks` to skip AMSI and suspicious code scan for the `.psd1` file that contains a safe `HashtableAst` only.
- Use customized `ReadOnlyBag` instead of `ImmutableHashSet` so that we can avoid loading the `System.Collections.Immutable.dll` completely.
- Replace `SHA1` with `CRC32` when generating module analysis cache file name
   - This remove the loading of `System.Security.Cryptography.Algorithms.dll` at startup
- Move `ConvertFrom-SddlString` to C# to remove the `Utility.psm1` file.
- Crossgen `Microsoft.ApplicationInsights.dll` and enable tiered compilation
   - Even pwsh with crossgen assemblies spends a lot time in jitting at the startup, about `191.6ms` comparing with `24.7ms` for Windows PowerShell.
   - Jitting `Microsoft.ApplicationInsights.dll` takes about `51.6ms`.
   - By crossgen `Microsoft.ApplicationInsights.dll` and enable tiered compilation, the jitting time drops to about `98.9ms`.
2018-12-02 12:52:39 -08:00
Travis Plunk
2a469b7d0f
Revert "Remove workaround for fixed invalid json array deserializing bug (#8346)" (#8375)
Revert "Remove workaround for fixed invalid json array deserializing bug (#8346)"

This reverts commit 60a4e2f346.

This change caused the test which verified the functionality this workaround enabled, to start failing
2018-11-30 14:32:11 -08:00
Aditya Patwardhan
3794a5e39f
Created a csproj to pin test modules and updated build.psm1 accordingly (#8350) 2018-11-30 11:49:38 -08:00
Paul Higinbotham
743a964392 Fix Export-ModuleMember bug for scriptblocks having no context (#8363)
Export-ModuleMember cmdlet throws an exception if module functions are exported across language boundaries (Windows only).  But a scriptblock LanguageMode property can be null if the scriptblock is created without a PowerShell context, and this can happen through the PowerShell API called from C#.  In this case Export-ModuleMember throws erroneously when no language mode restrictions are in play.

Fix is to check if LanguageMode is null before comparing context and scriptblock language modes.
2018-11-30 11:45:33 -08:00
Aditya Patwardhan
13e2559392
Fix Get-Help for advanced functions with MAML help content (#8353) 2018-11-30 09:49:32 -08:00
Kirk Munro
e721f7bbc3 Debug parameter now sets debugpreference to continue (#8195)
With this commit, users who invoke a command with -Debug will no longer be presented with a prompt asking them if they want to enter a nested prompt, continue execution, or halt execution entirely. Instead, any messages sent to the debug stream will simply be sent to the debug stream and the script will continue execution.
2018-11-30 19:46:51 +05:00
Adam Gauthier
60a4e2f346 Remove workaround for fixed invalid json array deserializing bug (#8346) 2018-11-30 16:49:33 +05:00
Mathias R. Jessen
950377faab Conditionally mark getter/setter implementations virtual in generated classes (#8303)
When implementing interfaces, PowerShell incorrectly produces non-virtual get/set methods for interface-defined properties.
This commit adds a lookup method for interface-defined properties and marks get/set methods for properties with matching signatures virtual.
2018-11-30 16:48:27 +05:00
PRASOON KARUNAN V
6e523f21eb Fix for PSDrive creation with a UNC path with a trailing backslash or forward slash when combined with -Persist (#8305) 2018-11-30 08:49:22 +05:00
Aditya Patwardhan
8c3de33ae1
Update help content for TabCompletion tests only if it does not exist (#8355) 2018-11-29 16:16:36 -08:00
Luke Jeremy
0cc1f06be4 Remove Persist parameter from New-PSDrive on non-Windows platform (#8291) 2018-11-29 19:02:08 +05:00
Paul Higinbotham
06571637e4 Add SkipCA and SkipCN check requirement to WinRM/OMI HTTPS connection (#8279) 2018-11-27 16:16:00 -08:00
Paul Higinbotham
6a388f0b7d Add fix for Start-Job initialization script should not be executed as trusted in system lockdown (#8284) 2018-11-26 10:38:13 -08:00
Joel Sallow (/u/ta11ow)
775552c0f5 Test-Path: Return $false when given an empty or $null -Path/-LiteralPath value (#8080) 2018-11-21 10:08:31 +05:00
Hubert Bukowski
a8627b83e5 Token calculation fix for Get-Help executed on ScriptBlock for comment help. (#8238) 2018-11-20 11:11:17 -08:00
Aditya Patwardhan
f27dfea065
Skip Enter-PSHostProcess tests on Appveyor due to PSReadline issue (#8317) 2018-11-20 10:17:33 -08:00
Aditya Patwardhan
82091d6a45
Merge release-v6.2.0-preview.2 to master
Merge Release-v6.2.0-preview.2
2018-11-15 17:59:42 -08:00
Steve Lee
c5dd3bd2c9 Support 'Get-PSHostProcessInfo' and 'Enter-PSHostProcess' on Unix platforms (#8232)
There a some differences in support of named pipes for Windows and non-Windows.  Named pipes on Unix have a 104 character path limit.  On macOS, the `$env:TMPDIR` (on my system) is already 49 characters; corefx adds 12 more.  Since AppDomainName isn't really used, changed it from `DefaultAppDomain` to `None` to shorten the name.  Need to keep it since Windows PowerShell expects it.  Changed `starttime` part of pipe name to 8 hex characters which is to provide uniqueness to the pipe name.
2018-11-15 12:50:04 -08:00
Staffan Gustafsson
877b9a9fbf Add cmdlet 'Join-String' for creating text from pipeline input (#7660)
The cmdlet syntax is as follows:
```
Join-String [[-Property] <pspropertyexpression>] [[-Separator] <string>] [-OutputPrefix <string>] [-OutputSuffix <string>] [-UseCulture] [-InputObject <psobject>] [<CommonParameters>]

Join-String [[-Property] <pspropertyexpression>] [[-Separator] <string>] [-OutputPrefix <string>] [-OutputSuffix <string>] [-SingleQuote] [-UseCulture] [-InputObject <psobject>] [<CommonParameters>]

Join-String [[-Property] <pspropertyexpression>] [[-Separator] <string>] [-OutputPrefix <string>] [-OutputSuffix <string>] [-DoubleQuote] [-UseCulture] [-InputObject <psobject>] [<CommonParameters>]

Join-String [[-Property] <pspropertyexpression>] [[-Separator] <string>] [-OutputPrefix <string>] [-OutputSuffix <string>] [-FormatString <string>] [-UseCulture] [-InputObject <psobject>] [<CommonParameters>]
```
2018-11-14 13:52:44 -08:00
Steve Lee
43e0394d51 Remove extra newlines from formatting which resulted in necessary double newlines (#8247) 2018-11-14 08:28:05 +05:00
Aditya Patwardhan
20497d19c2 Merged PR 5822: Update version for dependencies
Update version for dependencies
2018-11-14 01:56:28 +00:00
Travis Plunk
79f21b41de
Consolidation of all Windows PowerShell work ported to PSCore6 (#8257)
Consolidation of all Windows PowerShell work ported to PSCore6

* Added ps1 file import restriction.  Refactored InvokeLanguageModeTestingSupportCmdlet to HelpersSecurity module
* JEA loop back fix.  Debugger running commands in CL mode.
* Support for new AMSI codes.  Changed to use AMSI buffer API.  Unhandled exception fix.
* Fixes for module bugs while running in ConstrainedLanguage mode
* Untrusted input tracking work
* Configuration keyword bug fix, PSRP protocol version check for reconstruct reconnect, Sharing InitialSessionState in runspace pool.
* Restricted remote session in UMCI, Applocker detection collision, Help command exposing functions, Null reference exception fix.
* Added mitigation for debugger function exposure
2018-11-13 16:16:29 -08:00
Robert Holt
aa76c6846d Fix incorrect name check when autoloading required modules (#8218) 2018-11-13 14:56:07 -08:00
Travis Plunk
18a181fc30
Fix CVE-2018-8415 (#8253)
If there is a null character in a scriptblock, translate it to a null replacement character before logging with scriptblock logging.
2018-11-13 11:30:48 -08:00
Travis Plunk
db60f0614a Revert "Ignoring backspace for empty lines on stdin/stdout mode (#8196)" (#8239)
This reverts commit b525b1f0bd.
2018-11-12 13:14:04 -08:00
bugale
b525b1f0bd Ignoring backspace for empty lines on stdin/stdout mode (#8196) 2018-11-10 18:55:28 +05:00
Paul Higinbotham
d4bf5c87bc Fix tests running in Azure DevOps (#8220) 2018-11-09 15:11:02 -08:00
kwkam
caad7ed471 Fix Rename-Item -Path with wildcard char (#7398) 2018-11-09 11:08:26 -08:00
Kevin Marquette
75fa6af9c0 Add test coverage for additional Get-Module parameters (#8137) 2018-11-07 17:16:53 +05:00
Paal Braathen
2e89efa1bc When using Start-Transcript and file exists, empty file rather than deleting (#8131) 2018-11-07 08:34:42 +05:00
Travis Plunk
5e47c73e27
Fix static secret in code (#8186) 2018-11-05 18:29:04 -08:00
Aditya Patwardhan
b5ab2ddd40 Load assembly from module base path before trying to load from GAC (#8073)
[Breaking Change]
When a binary module has the module assembly in GAC, we load the assembly from GAC before trying to load it from module base path.

This change attempts to load it from module base path before looking up in GAC.
2018-11-05 10:41:53 -08:00
Andrew Schwartzmeyer
54874180ce Remove build and doc references to Git submodules (#8177)
As of #7892, the PowerShell repository no longer uses Git submodules.
This is fantastic from a workflow standpoint, and so all the notes about
how to deal with submodules (and all the build steps explicitly
initializing and updating submodules) can be safely removed.
2018-11-05 10:39:29 -08:00
Robert Holt
5d06fba366 Refactor module version/GUID comparison logic (#7125) 2018-11-01 13:41:51 -07:00
Travis Plunk
c6910a12fa Fix conflict with Get-AdlStoreChildItem from az module in tab completion tests (#8167) 2018-11-01 12:03:03 -07:00
PRASOON KARUNAN V
f59353d5d9 Error message enhancement for clear-content cmdlet when targeting a directory (#8134) 2018-11-01 08:56:45 +05:00
Steve Lee
1eec123f48 Create $PROFILE if it does not exist for -WorkingDirectory processing test (#8152) 2018-10-30 22:06:19 -07:00
Paul Higinbotham
20f3a6a337 Experimental feature: Implicit remoting batching perf improvement (#8038) 2018-10-30 09:55:39 -07:00
Steve Lee
1aa5bb3576 Honor -OutputFormat if specified in noninteractive, redirected, encoded command used with pwsh (#8115)
[Breaking Change]

There is specific code that sets the `OutputFormat` to xml if pwsh is run non-interactive, with redirected output, and the command was encoded.  However, it ignored whether OutputFormat was specified.  Fix is to track whether `-OutputFormat` was used and respect that value rather than defaulting to xml.

Fix https://github.com/PowerShell/PowerShell/issues/5912
2018-10-29 17:51:21 -07:00
Steve Lee
b1e2745b53 move processing of -WorkingDirectory before processing of profiles (#8079) 2018-10-29 13:56:13 -07:00
dependabot[bot]
b3f315eb15 Bump xunit from 2.4.0 to 2.4.1 (#8140) 2018-10-29 13:28:02 -07:00
dependabot[bot]
cbfe2c8fe8 Bump xunit.runner.visualstudio from 2.4.0 to 2.4.1 (#8139) 2018-10-29 13:27:25 -07:00
Steve Lee
b27380dc51 Enable case-insensitive tab completion for files and folders on case-sensitive filesystem (#8128) 2018-10-28 09:48:49 +05:00
Steve Lee
9141b11c5e Enable Set-Location -LiteralPath to work with folders named "-" and "+" (#8089) 2018-10-24 09:37:59 +05:00