Commit graph

1672 commits

Author SHA1 Message Date
Steve Lee
13f8ba284f Set the output encoding to [Console]::OutputEncoding for native commands (#10824) 2019-10-19 10:09:44 +05:00
Robert Holt
2f4ed146ae Fix pure expressions setting $? in pipeline chains (#10836) 2019-10-18 14:57:56 -07:00
Robert Holt
2a518fcfe2 Support the pipeline chain operators && and || in PowerShell language (#9849) 2019-10-17 14:43:46 -07:00
Aditya Patwardhan
425bc36a6f Implement Null Coalescing and Null Coalescing assignment operators (#10636) 2019-10-17 10:21:24 -07:00
Steve Lee
d8d32d79c2 Implement Get-Error cmdlet as Experimental Feature (#10727) 2019-10-15 14:32:14 -07:00
Joel Sallow (/u/ta11ow)
2e951793af Format-Hex: Improve mixed-collection piped input and piped streams of input (#8674) 2019-10-15 11:04:45 -07:00
Patrick Meinecke
beb8b44420 Use type conversion in SSHConnection hashtables when value doesn't match expected type (#10720)
Before the change if the hashtable value does not match the expected type exactly, an exception is thrown stating that the value was null.
2019-10-15 22:16:49 +05:00
Eugene Samoylov
d528bf5d3d Fix for Get-Content -ReadCount 0 behavior when -TotalCount is set (#10749) 2019-10-14 17:32:37 -07:00
Steve Lee
0842fe8b8d Enable tab completion for variable assignment that is enum (#10646) 2019-10-14 09:53:11 -07:00
Stephen Valdinger
6a807a2a1c Add -Delimiter to ConvertFrom-StringData (#10665)
@steviecoaster Thank you!
2019-10-11 14:03:02 -07:00
Steve Lee
1fa73e360f Add back Get-HotFix cmdlet (#10740) 2019-10-11 22:51:43 +05:00
Marco Schmid
0f9ca32d6d Adding positional parameter for ScriptBlock when using Invoke-Command with SSH (#10721) 2019-10-10 11:29:31 -07:00
Derek Xia
4a4dc4c751 Adds emphasis to Select-String default formatter (#8963) 2019-10-08 16:11:10 -07:00
Travis Plunk
bf91246029 Replace CR and new line with a 0x23CE character (#10616) 2019-10-07 11:42:23 -07:00
Ilya
6a36bb4b7d
$PSCulture follows CurrentThread.CurrentCulture (#10138) 2019-10-07 14:17:11 +05:00
Dongbo Wang
ec105da3f1 Some code cleanup work (#10698)
* Move Utils.GetUserConfigurationDirectory to Platform.ConfigDirectory
* Unify the use of Platform.ConfigDirectory and Platform.CacheDirectory
2019-10-07 14:15:01 +05:00
Steve Lee
8cf9c01800 Add ConciseView for $ErrorView (#10641) 2019-10-04 16:52:57 -07:00
Paul Higinbotham
adfbac0c9d Set current working directory of each ForEach-Object -Parallel running script to the same location as the calling script. (#10672) 2019-10-04 10:04:04 -07:00
Ilya
d7458c45b2 Add Get-ChildItem test (#10507) 2019-10-03 17:15:41 -07:00
PRASOON KARUNAN V
768e79a999 Adding -SecurityDescriptorSDDL parameter to New-Service (#10483) 2019-10-03 17:12:17 -07:00
romero126
0e90120b9a Replace Ambiguous language for tests from switch to parameter for accuracy (#10666) 2019-10-03 20:54:08 +05:00
Ilya
91bf34679c
Read special reparse points without accessing it (#10662)
* Enhance enum FileDesiredAccess with zero value GenericZero
* Use the GenericZero as desired access mode to read reparse point without access it

From docs:
If desired access is zero, the application can query certain metadata such as file, directory, or device attributes without accessing that file or device, even if GENERIC_READ access would have been denied
2019-10-03 19:41:18 +05:00
Ilya
950e4ba082
Direct Clear-Host output to terminal (#10681)
Clear-Host on Unix calls clear command which issues escapes. Before the change we write them to PowerShell output stream and it could be unwantedly intercepted. After the change we write the escapes directly to console.
2019-10-03 08:51:07 +05:00
Steve Lee
77ddec1614 Add back newline for grouping with Format-Table and -Property (#10653) 2019-10-02 12:11:55 -07:00
Steve Lee
d8eca6a729 Remove [ValidateNotNullOrEmpty] from -InputObject on Get-Random to allow empty string (#10644)
* Remove [ValidateNotNullOrEmpty] from -InputObject on Get-Random

* address feedback to allow $null for -InputObject

* address Ilya's feedback

* address CodeFactor issues
2019-10-01 04:32:43 +00:00
dependabot-preview[bot]
83453d1e5c Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603) 2019-09-23 15:42:39 -07:00
Travis Plunk
60ffea59e3
Update PSDesiredStateConfiguration to 2.0.3 and bring new test… (#10516) 2019-09-12 14:39:11 -07:00
Andrew
ed29ad1506 Adding PSCore group policy definitions (#10468) 2019-09-12 13:41:59 -07:00
Sotiris Nanopoulos
f69f30ba49 Add working directory parameter to Start-Job (#10324) 2019-09-11 10:51:32 -07:00
Kirk Munro
096a78fbe3 Remove the event handler that was causing breakpoint changes to be erroneously replicated to the host runspace debugger (#10503)
* fix #10167

* Update test/powershell/SDK/Breakpoint.Tests.ps1

Co-Authored-By: Ilya <darpa@yandex.ru>
2019-09-10 22:47:50 +00:00
Kirk Munro
139cd942b2 Transition ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#10317) 2019-09-07 23:45:36 +05:00
Kirk Munro
cc0fed479a Add APIs for breakpoint management in runspaces and enable attach to process without BreakAll for PSES (#10338) 2019-09-05 11:30:25 -07:00
Dongbo Wang
f6c220cdd9
Revert the PR "Make ForEach-Object faster for its commonly used scenarios" (#10485)
It turns out this optimization brings in a breaking change: `$MyInvocation` is different comparing to before the optimization change. I tried to fix the breaking change, but couldn't without introducing more hacky code. Given that, that PR should be reverted.
2019-09-04 22:12:30 -07:00
Dongbo Wang
5069c7d6a6 Support ternary operator in PowerShell language (#10367) 2019-09-04 13:22:33 -07:00
PRASOON KARUNAN V
f6877022c3 Fix wrong output for New-Service in variable assignment and -OutVariable (#10444) 2019-09-03 11:11:14 -07:00
Dongbo Wang
ff29282713 Make ForEach-Object faster for its commonly used scenarios (#10454) 2019-08-30 12:09:19 -07:00
James Truher [MSFT]
3943f18c28 Alpine validation changes (#10428) 2019-08-24 11:35:34 -07:00
Kirk Munro
8b9f4124ce Add support to ActionPreference.Break to break into debugger (#8205) 2019-08-23 10:34:10 -07:00
Dongbo Wang
b77228906d Skip auto-loading PSReadLine on Windows if the NVDA screen reader is active (#10385) 2019-08-23 09:09:34 +05:00
Steve Lee
82e3480bbf Increase built-with-PowerShell module versions to 7.0.0.0 (#10356) 2019-08-22 15:33:30 -07:00
Ilya
356355c325
Block type update in Add-Type cmdlet (#9609) 2019-08-22 09:35:36 +05:00
Kirk Munro
8128803f2e Add experimental check for ForEach-Object -Parallel tests (#10354) 2019-08-19 14:02:19 -07:00
Steve Lee
00949ab352 .CPL should be added to PATHEXT (#9828) 2019-08-17 22:45:13 +05:00
Dan Thompson
fb333fac99 Formatting: Handle XTPUSHSGR and XTPOPSGR control sequences (#10208) 2019-08-16 13:37:01 -07:00
James Truher [MSFT]
fe2cc6aca8 Additional Telemetry - Implementation of RFC0036 (#10336) 2019-08-15 16:13:53 -07:00
Kirk Munro
c8e72d1e66 Fix minor breakpoint re-hydration bug (#10339) 2019-08-15 14:55:45 -07:00
Kirk Munro
eb81fb749a Mark -parallel and -throttlelimit reserved for foreach and switch statements (#10328) 2019-08-15 14:41:41 -07:00
Kirk Munro
ca86d75754 Deprecate workflow debugging code (#10321) 2019-08-15 08:29:18 +05:00
Robert Holt
14960b5772 pwsh -Login support (#10050) 2019-08-14 13:18:43 -07:00
Steve Lee
5974afaa8d Add support for AppX reparse points (#10331) 2019-08-13 17:45:41 -07:00
Paul Higinbotham
fbfc57a00c Implement ForEach-Object -Parallel feature (#10229) 2019-08-13 13:40:58 -07:00
Ben Gelens
ccc791c0a3 Fix #requires -version for pwsh 7 to include 6.1 and 6.2 in PSCompatibleVersions (#9943) 2019-08-12 15:25:28 -07:00
Travis Plunk
11d8cd3230 Make module name matching for get-module -FullyQualifiedName… (#10329) 2019-08-12 14:45:08 -07:00
Steve Lee
882cbf367f Enable Experimental Features by default on Preview builds (#10228) 2019-08-08 11:37:25 -07:00
Dongbo Wang
0d817aa547 Update 'Microsoft.PowerShell.CoreCLR.Eventing' to resolve conflict with 'System.Diagnostics.EventLog' (#10305)
* Update 'Microsoft.PowerShell.CoreCLR.Eventing' to resolve conflicts
* Add reference to 'System.Diagnostics.EventLog' to build Microsoft.PowerShell.Commands.Diagnostics on Unix
* Stop compiling Get/New-WinEvent on Unix
2019-08-08 17:44:54 +05:00
Paul Higinbotham
7034c8ba55 Fix debugger disable performance regression (#10269) 2019-08-05 13:27:49 -07:00
Dongbo Wang
d2e81dbc13 Special case the posix locale in WildcardPattern (#10186) 2019-07-26 10:58:37 -07:00
Steve Lee
2ed9abc99b Enable -sta and -mta switches for pwsh (#10061) 2019-07-25 12:38:52 -07:00
Jos Koelewijn
48c7e112db Add -Raw switch to Select-String for convenience (#9901) 2019-07-19 13:21:39 -07:00
Travis Plunk
6f0dacddc1
Merge branch 'release/v7.0.0-preview.2' into master
# Conflicts:
#	test/nanoserver/nanoserver.tests.ps1
2019-07-17 14:30:34 -07:00
Aditya Patwardhan
7dfcff9287 Merged PR 9168: Disable Enter-PSHostProcess cmdlet when system in lock down mode
This is based on an issue, where Enter-PSHostProcess on a locked down (WDAC enforced) machine allows any admin to connect to any another local hosted PowerShell process and execute commands as that user. This amounts to privilege escalation on the policy locked down machine and something we want to prevent.

Fix is to check for system lock down and disable Enter-PSHostProcess cmdlet with an error message.
2019-07-16 00:49:24 +00:00
Travis Plunk
c64a28eaf1 Merged PR 5767: Fix RegEx DoS issues
Fix RegEx DoS issues
2019-07-15 19:52:01 +00:00
Ilya
0ae7d50d5c
Remove 'kill' alias for Stop-Process cmdlet on Unix (#10098) 2019-07-15 08:12:26 +05:00
Aditya Patwardhan
ea4895c849
Mark Set-Service tests with password as Pending (#10146) 2019-07-12 16:50:58 -07:00
Steve Lee
431ef0372a Fix test password generation rule to meet Windows complexity requirements (#10143) 2019-07-12 12:11:45 -07:00
Ilya
18ff2b6b1d
Cleanup workflow - remove PSProxyJob (#10083) 2019-07-12 07:56:27 +05:00
PRASOON KARUNAN V
ffb1549aa9 Add -SecurityDescriptorSddl parameter to Set-Service (#8626) 2019-07-11 13:23:57 -07:00
Christoph Bergmeister [MVP]
fe56f9d902 Upgrade .Net Core 3 SDK from preview5 to preview6 and related out of band Nuget packages from 2.1 to 3.0-preview6 (#9888) 2019-07-09 14:35:08 -07:00
Ilya
5d98b901be
Cleanup workflow code (#9638)
* Remove WorkFlowInfo type

* Remove condition for UseSharedProcess

* Remove PSWorkflowJob condition

* Remove workflow from ValidateSet

* Remove workflow from CommandTypes enum

* Remove workflow from EventManager

* Remove workflow from Get-Help

* Remove WorkflowFileExtension ".xaml" from ModuleIntrinsics

* Remove WorkflowFileExtension ".xaml" from ModuleCmdletBase

* Remove workflow from PSModuleInfo

* Remove workflow from CustomShellCommands

* Remove workflow from InitialSessionStateProvider

* Remove WriteWorkflowDebugNotSupportedError()

* Remove unneeded resource strings from Module.cs

* Remove xaml from valid extension list
2019-07-07 01:03:03 +05:00
xtqqczze
0d55a7249b Suppress PossibleIncorrectUsageOfAssignmentOperator rule violation by adding extra parenthesis (#9460) 2019-07-02 13:23:58 -07:00
Mark Kraus
2285ece613 Set request headers when request body is empty in Web Cmdlets (#10034) 2019-07-02 12:01:06 -07:00
Joel Sallow (/u/ta11ow)
b34e331d63 Consider DBNull.Value and NullString.Value the same as $null when comparing with $null and casting to bool (#9794)
- Adds `LanguagePrimitives.IsNullLike()` method to account for `DBNull.Value` and `NullString.Value` so that they can be considered the same as a null value where sensible in PowerShell.
- Updates `-ne` and `-eq` binders to treat `DBNull.Value` and `NullString.Value` as equal to null/AutomationNull.
- Update code paths for comparing objects in LanguagePrimitives to ensure consistency with how the `-eq` and `-ne` binders work when calling LanguagePrimitives methods to do the comparisons.
- Make `LanguagePrimitives.IsNull()` and `LanguagePrimitives.IsNullLike()` public methods.
- Added tests for null behaviours in `NullRepresentatives.Tests.ps1`
2019-06-28 11:39:34 -07:00
Amit Saraf
7bce46bc5b Download latest version (6.2.0) of PSDesiredStateConfiguration nuget package. (#9932) 2019-06-27 10:22:32 -07:00
Joel Sallow (/u/ta11ow)
86a1697da9 Allow methods to be named after keywords (#9812) 2019-06-25 11:04:00 -07:00
robdy
aa07eef187 Add test for New-Item -Force (#9971) 2019-06-25 11:03:07 -07:00
Joel Sallow (/u/ta11ow)
17b2cec163 Cleanup Parser tests (#9792)
Co-Authored-By: Ilya <darpa@yandex.ru>
2019-06-24 11:22:54 -07:00
nbkalex
358d12ea93 Display com method signature with argument names (#9858) 2019-06-20 13:22:30 -07:00
Dongbo Wang
c684902fba Use the original precision (prior-dotnet-core-3) for double/fload-to-string conversion (#9893)
.NET Core changes to return "shortest roundtrippable string" by default for the ToString() method of double and float types. This results in ToString() for double/float values sometimes return a string in 17-digit/9-digit precision format. This PR updated the double/float-to-string conversion in PowerShell to continue using the old precision specifier before the change in .NET Core 3.0.
2019-06-19 08:56:43 +05:00
Steve Lee
981c990d74 Make UseAbbreviationExpansion and TempDrive official features (#9872) 2019-06-13 13:05:37 -07:00
Kirk Munro
aac4c6ff21 Add module to support Pester tests for automating debugger commands (stepInto, stepOut, etc.), along with basic tests (#9825) 2019-06-13 07:19:13 -07:00
Steve Lee
89db7505d6 Have console host not enter command prompt mode when using Read-Host -Prompt (#9743)
`Read-Host` calls into `$Host.UI.Prompt()`.  However, this method is also used when the host prompts for mandatory parameters that aren't provided.  The method expects to be called when given a `FieldDescription` and if the input starts with `!` it enters `CommandPromptMode`.  In this mode, you can type `!?` to request help, for example.  However this mode is not something you can use via `Read-Host` (only if calling `$Host.UI.Prompt()` directly passing in a well constructed `FieldDescription`).  When using `Read-Host -Prompt`, the cmdlet creates a `FieldDescription` where the name is the prompt and the rest of the properties are empty.

The fix is that if `Label` is empty, we can assume it's being called from `Read-Host` rather than being called to prompt for a mandatory parameter and thus not enter `CommandPromptMode`.
2019-06-09 07:55:11 -07:00
Amit Saraf
689434e535 Support DSC compilation on Linux. (#9834) 2019-06-07 11:50:14 -07:00
Joel Sallow (/u/ta11ow)
f5e3de036e Improve whitespace for Parser tests (#9806) 2019-06-05 10:09:45 +05:00
Steve Lee
b4e2423fab Fix use of Start-Process http://bing.com (#9793) 2019-06-04 14:36:12 -07:00
Jacob Scott
f222a686c5 Support negative numbers in -split operator (#8960) 2019-06-03 16:33:54 -07:00
dependabot-preview[bot]
c2cedccfbd Build(deps): Bump Microsoft.ApplicationInsights from 2.9.1 to 2.10.0 (#9757) 2019-05-31 11:43:47 -07:00
kwkam
f0133bed8e Fix Get-ChildItem -Path with wildcard char (#9257)
Unescape non-literal, non-glob path before existence checking.
2019-05-31 10:14:39 -07:00
Aditya Patwardhan
8ea15c9f13 Merged PR 8529: Add cleanup before building test package
Add cleanup before building test package
2019-05-29 00:31:14 +00:00
Travis Plunk
bb726da6fd
Disable the debugger when in system lock-down mode (#9645)
Disable the debugger when in system lock-down mode

Fixing master for CVE-2019-0733
2019-05-22 15:19:23 -07:00
Steve Lee
29e21470d9 Port PowerShell to .NET Core 3.0 (#9597) 2019-05-21 13:43:51 +08:00
Travis Plunk
1d94e8c947 Make sure we always return an object in command searcher (#9623) 2019-05-20 11:22:34 -07:00
Kirk Munro
112401ed37 Support line continuance with pipe at the start of a line (#8938)
Expands line continuance for pipelines to allow lines to continue automatically without backticks with the pipe symbol at the start of a line.
This adds to the existing functionality where pipes can be used to continue lines by placing them at the end of a line.
2019-05-13 22:57:57 -07:00
Steve Lee
a96b4c0404 Update use of "PowerShell Core" to just "PowerShell" (#9513) 2019-05-10 15:34:27 -07:00
Aditya Patwardhan
ade85b4faa
Multiple test fixes and improved logging for fragile tests (#9569) 2019-05-10 10:56:12 -07:00
Chris Dent
374e0cf54d Add support for ValidateRangeKind to ParameterMetadata.GetProxyAttributeData (#9059) 2019-05-07 12:15:38 -07:00
Andrew
e3e37a8e35
Merge pull request #9528 from SteveL-MSFT/login-shell
Add support for `-l` to pwsh so that it is compatible with POSIX shell expectations
2019-05-07 11:55:45 -07:00
Steve Lee
346ab8c9d4 Change MatchType for EnumerationOptions to be Win32 (#9529) 2019-05-06 17:20:08 -07:00
Mark Kraus
935e164a6d Add Support for Null Usernames in Web Cmdlet Basic Auth (#9536) 2019-05-06 17:15:04 -07:00
Steve Lee
592f897d21 allow test to work in cases where you can't create $profile 2019-05-04 07:44:30 -07:00
Steve Lee
3b5663ee97 correctly delete $profile in all cases 2019-05-04 07:12:53 -07:00