Commit Graph
825 Commits
Author SHA1 Message Date
Travis Plunk 41b3161830 Fix error in windows provider when the environment as an existing set of variables name that only differs by case (#6320)
- make the provider storage for the environment on windows ignore duplicates
- add tests to verify existing environment get-item behavior
2018-03-21 12:30:49 -07:00
Dongbo Wang 1b3c8aca50 Fix the NullRefException when using '-PipelineVariable' with 'DynamicParam' block (#6433) 2018-03-20 12:02:46 -07:00
kwkam 5f202d676f Add 'NullReference' checks to two code paths related to 'PseudoParameterBinder' (#5738)
1. Add a null check in the tab completion code on the binding result returned from `PseudoParameterBinder`;
2. Add a null check in `CommandDiscovery.LookupCommandProcessor` on the `CommandInfo` object returned from the method `LookupCommandInfo`.
2018-03-16 09:10:06 -07:00
Dongbo Wang 294def7b11 Fix 'PropertyOnlyAdapter' to allow calling base methods (#6394)
For a PropertyOnlyAdapter, the property may come from various sources, but methods, including parameterized properties, still come from DotNetAdapter. So, the binder can optimize on method calls for objects that map to a custom PropertyOnlyAdapter.
2018-03-15 15:09:38 -07:00
Dongbo Wang 7721042fd5 Pass the 'Match' object to $_ for the substitute script block in '-replace' operation (#6029) 2018-03-14 09:43:57 -07:00
Mathias R. Jessen 915639a177 Add lambda support to -replace operator
Add support for replacement lambdas when using the -replace operator.
Requires minimal changes to existing code by using the following overload:
    Regex.Replace(string input, MatchEvaluator evaluator)
when a ScriptBlock is passed in as the replacement argument.
2018-03-14 09:43:57 -07:00
kwkam ac53dff089 Minor code clean-up changes (#5737) 2018-03-13 11:18:49 -07:00
Mariah 8dc62afb5f Update CimDSCParser to fix Configuration compilation for DSC (#6225)
Update CimDSCParser to fix Configuration compilation for DSC
2018-03-02 17:01:59 -08:00
Chunqing Chen 502ee8f757 get-childitem -LiteralPath should accept 'Include' or 'Exclude' filter (#5462)
* get-childitem -LiteralPath should accept 'Include' or 'Exclude' filter
2018-03-02 14:34:53 -08:00
Kevin Marquette 548850d249 Add 'Path' alias to '-FilePath' parameters and others for several commands (#5817) 2018-02-27 13:05:58 -08:00
Steve Lee 3b70f7689b Fix table alignment and padding. (#6230)
- The original change to remove extra padding didn't take into account alignment.
  Fix logic to accommodate left, center, and right alignment in the table format and also add tests.
- Fix ImplicitRemoting test that validates formatting to use same instance due to formatting changes in this PR
- Only use loopback to same powershell instance for formatting test as the other tests implicitly expect Windows PowerShell.
2018-02-26 12:43:31 -08:00
Ilya b8a8e8e247 Set pipeline thread stack size to 10MB (#6224) 2018-02-23 18:00:41 -08:00
Steve Lee bdd6008846 Don't add trailing spaces to last column when using Format-Table (#5568)
* don't add trailing space to last column in table

* fix out-file tests to new behavior of no padding trailing spaces
2018-02-22 11:47:24 -08:00
Steve Lee d20c727d39 Enable $env:PAGER to work correctly if arguments are used (#6144)
Correctly parse $env:PAGER with args like 'less -w'.
2018-02-15 08:11:45 +04:00
Steve Lee c1c5344a88 Update copyright and license headers (#6134)
Based on standard practices, we need to have a copyright and license notice at the top of each source file. Removed existing copyrights and updated/added copyright notices for .h, .cpp, .cs, .ps1, and .psm1 files.

Updated module manifests for consistency to have Author = "PowerShell" and Company = "Microsoft Corporation". Removed multiple line breaks.

Separate PR coming to update contribution document for new source files: #6140

Manually reviewed each change.

Fix #6073
2018-02-13 09:23:53 -08:00
Ilya 0ad9fc9d70 [breaking-change] Fix range operator (#5732)
Breaking-change:  "0".."9" returns [char] previously in PowerShell Core (6.0.0, 6.0.1), now it returns [int]. After the change, the behavior is the same as in Windows PowerShell.
2018-02-11 14:22:45 +04:00
Chunqing Chen 40eb3b3e13 Get-ChildItem <PATH>/* -file should include <Path> as search directory (#5431)
* get-childitem <PATH>/* -file should include <Path> as search directory

* [Feature] Added check for -Directory and more tests

* [Feature] Added check for the dynamic parameter type
2018-02-07 16:30:14 -08:00
Steve Lee 8b05408b1b Improve table view for Certs and Signatures by adding EnhancedKeyUsageList and StatusMessage (#6123)
* add EnhancedKeyUsageList to default table view of X509Certs
add StatusMessage to default table view of cert signatures

* set fixed width of 20 to Subject so more room for EnhancedKeyUsageList content
change EnhancedKeyUsageList to script to just show the friendly name
2018-02-07 15:29:48 -08:00
Steve Lee 3a81c2b58f Enable setting PSSession Name when using SSHTransport and added Transport property (#5954)
When using New-PSSession -SSHTransport -Name ... the Name parameter wasn't being used when creating the remoterunspace so an automatically generated one was always created.
Fix is to explicitly pass the transport name when generating a runspace name including other transports like VMBus and Container.

Refactor runspace name generation code to produce "RunspaceN" and added a Transport property.

Tests will have to wait until we have the infrastructure for remoting tests and Enable-SSHRemoting work is complete.

Fix #5951
Fix #2426
2018-02-04 13:12:48 -08:00
Dan Travison 0191946fe3 Fix the filtering of analytic events on Unix platforms. (#6086)
- Remove previous `UseAlwaysAnalytic` workaround in `SysLogProvider.Log`
- Update Script Block logging to always log to the operational channel with `UseAlwaysOperational`
- Fix `PSChannel` on Linux to use a bitmask
- Handle `UseAlwaysOperational` and `UseAlwaysAnalytic` keywords but adding to `_keywordFilter` if the associated channels were selected in the configuration
2018-02-02 10:49:09 -08:00
Travis Plunk 1c5c7f5c3a add comments about where most of the packages are from (#6016) 2018-01-31 12:16:48 -08:00
Travis Plunk 3a33be87a7 Merge branch '6.0.1' into master
# Conflicts:
#	docker/release/fedora27/Dockerfile
#	docs/installation/linux.md
#	docs/installation/macos.md
#	tools/metadata.json
2018-01-25 16:35:25 -08:00
Dan Travison 43662809c7 Add '-settingsfile' to 'pwsh' to support loading a custom powershell config file. (#5920)
Support loading a custom `powershell.config.json` file via the command-line for use in testing.
This change supports replacing the default `powershell.config.json` file that's usually loaded from the `PSHome` directory with a custom version file.

The primary use-cases for this command-line option are as follows:
1. Allow the CI system to disable settings that impact test run times; such as disabling syslog usage on Linux and MacOS
2. Support testing of syslog and os_log without interfering with normal PowerShell operations during test runs via launching an instance with custom log settings.
2018-01-24 22:12:14 -08:00
Paul Higinbotham 27099c3f57 Fix a NullReference exception in Enter-PSHostProcess (#5995) 2018-01-24 13:59:29 -08:00
Travis Plunk a603cf3867 Update csproj files to the latest version of the package references (#5961)
* Add function which tells you packages which probably need to be updated
2018-01-22 12:06:50 -08:00
Dan Travison 65a4002990 Logging: Fix the escaped characters when generating '.resx' file from PowerShell ETW manifest. (#5892) 2018-01-19 08:55:20 -08:00
Steve Lee 7437f3dd3a Encoding for New-ModuleManifest on all platforms should be UTF-8 NoBOM (#5923)
* encoding for new-modulemanifest on all platforms should be utf8nobom
* fix test
2018-01-17 16:37:53 -08:00
Ilya 5674bf37be Remove 'PSv2' only code from 'Types_Ps1Xml.cs' and 'HostUtilities.cs' (#5907) 2018-01-17 09:39:28 -08:00
Steve Lee 7459b54639 Set-Location should use path with wildcard characters if it exists instead of globbing (#5839)
When InitialSessionState initializes it tries to SetLocation to current working directory,
 but if the directory name contains PowerShell wildcard characters, it fails and reverts
 to $PSHOME.
 The change affects Set-Location in that if the path exists (even if containing wildcard characters), just use it. It is a breaking change.
2018-01-17 08:58:55 +04:00
Dan Travison d911bac210 Do not pass ArgumentAst to CreateArgument for -encodedarguments (#5836)
When calling powershell from powershell (called the minishell for historical reasons), the arguments are passed as a base64 encoded string.

The native command parameter binder was trying to match up the ast to the argument value, which in this case, doesn't make sense.

The fix is to ignore the ast during parameter binding for this case of calling powershell from powershell.

Fix #5733
2018-01-12 12:41:17 -08:00
Travis Plunk db10411505 CimDscParser: Add better error message when a file is not found (#5838) 2018-01-10 18:16:41 -08:00
Jason Shirk 8bd53786d1 Fix ValidateSet with generator in a module (#5702)
The symbol resolver was properly resolving the type to the class
definition, but that resolution was ignored at runtime because we used
the string instead of the ITypeName - the ITypeName kept the reference
to the class definition.

Fix #5661
2018-01-09 13:43:54 +04:00
Steve Lee 08c455a4ee Remove sc alias which conflicts with sc.exe (#5827) 2018-01-08 18:09:00 -08:00
Aditya Patwardhan 0687d5a564 Updated Help Uri to point to latest help content for Microsoft.PowerShell.Core module (#5820) 2018-01-08 18:09:00 -08:00
Dongbo Wang 658960e3f9 Move group policy settings and enable policy controlled logging in PowerShell Core (#5791)
Make PowerShell Core reads group policy settings from different registry keys (Windows only) and the configuration files (both Windows and Unix).
- On Windows, move to different GPO registry keys.
- On both Windows and Unix, read GPO related settings from the configuration file `powershell.config.json`.
- On Windows, the policy settings in registry take precedence over the configuration file.
- Enable policy controlled logging and transcription on Unix.
2018-01-08 18:09:00 -08:00
Steve Lee 0d893a59c7 Remove sc alias which conflicts with sc.exe (#5827) 2018-01-08 17:20:00 -08:00
Aditya Patwardhan d6288a3e2f Updated Help Uri to point to latest help content for Microsoft.PowerShell.Core module (#5820) 2018-01-08 16:37:59 -08:00
Dongbo Wang d261e1f166 Move group policy settings and enable policy controlled logging in PowerShell Core (#5791)
Make PowerShell Core reads group policy settings from different registry keys (Windows only) and the configuration files (both Windows and Unix).
- On Windows, move to different GPO registry keys.
- On both Windows and Unix, read GPO related settings from the configuration file `powershell.config.json`.
- On Windows, the policy settings in registry take precedence over the configuration file.
- Enable policy controlled logging and transcription on Unix.
2018-01-08 12:03:23 -08:00
Dongbo Wang 01ecf4b3d3 [Feature] Address Steve's new comments 2018-01-08 09:54:28 -08:00
Dongbo Wang 6ee608ff58 [Feature] Consider a policy is undefined if none of its properties are set 2018-01-07 15:53:07 -08:00
Dongbo Wang 3b941735d2 [Feature] Change two methods to use 'private' modifier. 2018-01-05 16:34:13 -08:00
Dongbo Wang 3b5badca04 Rename 'PowerShellProperties.json' to 'powershell.config.json' 2018-01-05 16:06:36 -08:00
Dongbo Wang b4b864f5da Re-enable group policy settings from registry
On windows, group policy settings from registry takes precedence over the configuration file.
If a policy is not defined in GP, then we query from configuration file.
2018-01-05 14:33:37 -08:00
Ilya 6825182a6a Add ForEach and Where methods to [PSCustomobject] (#5756) 2018-01-05 22:54:31 +04:00
Dongbo Wang 167bbad1d1 Address one of Dan's comments 2018-01-04 21:00:13 -08:00
Dan Travison 63b80945a1 remoting: Handle DLLImport failure of libpsrpclient (#5622)
Issue #4029 exposed two problems when failing to load libpsrpclient.

WSManAPIDataCommon.ctor was not identifying the binary that failed DLLImport; hindering diagnosability
PrioritySendDataCollection.Clear() would throw a NullReferenceException when called from the finalizer after an error path.
This change addresses both of the above:

Guard against null arrays in PrioritySendDataCollection.Clear() - called from finalizer in error paths.

Diagnosability: Log the DllNotFoundException in WSManAPIDataCommon ctor and also include it as the internal exception when throwing PSRemotingTransportException.
2018-01-04 17:17:34 -08:00
Dongbo Wang a6c62bfc58 [Feature] Minor changes to make ScriptBlock logging work with SysLog 2018-01-04 13:40:51 -08:00
Dongbo Wang 41c66dbc26 Refactor GroupPolicy setting related code to use the configuration file 2018-01-04 13:40:50 -08:00
Dongbo Wang 6ab1ad7ea8 Rename file PropertyAccessor.cs to PSConfiguration.cs 2018-01-04 13:40:50 -08:00
Dongbo Wang 263ec24ae3 Rename 'PropertyScope' to 'ConfigScope' 2018-01-04 13:40:50 -08:00