62 Commits
Author SHA1 Message Date
Kirtikumar Anandrao RamchandaniandJustin Chung f83ccddf80 Add New-TemporaryDirectory cmdlet (#27549)
Co-authored-by: Justin Chung <124807742+jshigetomi@users.noreply.github.com>
2026-08-17 13:35:04 -05:00
Dongbo Wang 943257b247 Make some experimental features stable (#26348)
The following experimental features are made stable:
- PSNativeWindowsTildeExpansion
- PSRedirectToVariable
- PSSubsystemPluginModel
2025-10-30 14:26:03 -07:00
Armaan Mcleod b39b5f4252 Add ConvertTo-CliXml and ConvertFrom-CliXml cmdlets (#21063) 2024-07-26 22:12:44 +05:00
James Truher [MSFT] c444645b09 Change how 'isPreview' is determined for default cmdlets tests (#19650) 2023-05-15 10:25:12 -07:00
James Truher [MSFT] a533cefc8b Change logic for testing missing or extra cmdlets. (#19635) 2023-05-11 14:07:56 -07:00
Steve LeeandJames Truher [MSFT] a153446a01 Add Get-SecureRandom cmdlet (#19587)
* Add `Get-SecureRandom` cmdlet

* update comments

* address Paul and Travis' comments

* Update test/powershell/Modules/Microsoft.PowerShell.Utility/Get-SecureRandom.Tests.ps1

Co-authored-by: James Truher [MSFT] <jimtru@microsoft.com>

* address codefactor

* address Ilya's feedback creating a base class for both cmdlets

* remove unused `using`

---------

Co-authored-by: James Truher [MSFT] <jimtru@microsoft.com>
2023-05-02 10:54:39 -07:00
James Truher [MSFT] a7898d2886 Harden 'All approved Cmdlets present' test (#19530) 2023-04-20 16:14:09 -07:00
James Truher [MSFT] 059b9524aa WIP: Harden default command test. (#19416) 2023-04-06 23:24:44 +00:00
Steve Lee 9ae18ab0d1 Change exec from alias to function to handle arbitrary arguments (#18567) 2022-11-17 12:14:27 -08:00
Steve Lee 918bb8c952 Make experimental feature PSExec stable (#18045) 2022-09-07 10:28:17 -07:00
Paul Higinbotham a8d55851e0 Add the -ConfigurationFile command line parameter to pwsh to support local session configuration (#17447) 2022-06-06 12:12:53 -07:00
Thomas Larsen 62bb436e71 Change CimCmdlets to use AliasAttribute (#12617) 2020-05-22 12:56:47 -07:00
xtqqczze f4382202ae Use correct casing for cmdlet name and cmdlet parameter name in *.ps1 files (#12584) 2020-05-07 17:00:30 +05:00
Steve Lee b7cb335f03 Update copyright notice to latest guidance (#12190) 2020-03-24 11:08:37 -07:00
mikeTWC1984 69bf7043c0 Update CmsCommands to use Store vs cert provider (#11643) 2020-02-06 15:38:17 -08:00
Brendan BurnsandIlya 127fec5eb9 Refactor and implement Restart-Computer for Un*x and macOS (#11319)
Co-authored-by: Ilya <darpa@yandex.ru>
2020-02-03 14:57:17 -08:00
xtqqczze 6d97b3a4a4 Correct case of $IsCoreCLR special variable 2020-01-13 19:27:48 +00:00
Ilya 99cf9fd859 Re-balance CI tests (#11420) 2020-01-05 13:01:42 +05:00
Ilya b221c2afa2 Correct pwsh run (#11486) 2020-01-05 12:17:41 +05:00
Travis Plunk 3cdab0d18d Add Unblock-File for macOS (#11137) 2019-12-02 17:51:36 -08:00
Brendan Burns d38541fdce Add an implementation of Stop-Computer for Linux and macOS (#11151) 2019-12-02 17:29:11 -08:00
Andrew b218e6f6cc Support using non-compatible Windows PowerShell modules in PowerShell Core (#10973) 2019-11-18 10:44:55 -08:00
Steve Lee 7ddfb825e4 Add back Get-Counter cmdlet for Windows (#10933) 2019-11-05 16:48:11 -08:00
Steve LeeandIlya b74a26bb91 Added cross-platform Get-Clipboard and Set-Clipboard (#10340)
Co-Authored-By: Ilya <darpa@yandex.ru>



Co-Authored-By: Ilya <darpa@yandex.ru>
2019-11-04 11:28:58 -08:00
Steve Lee 6882ad56fd Add back Out-Printer command (#10906) 2019-11-01 11:27:12 -07:00
Steve Lee ca68d9dbc5 Add GraphicalHost assembly to enable Out-GridView, Show-Command, and Get-Help -ShowWindow (#10899) 2019-11-01 10:05:32 -07:00
Steve Lee 0b12ea057a Add back Update-List command (#10922) 2019-10-30 11:05:30 -07:00
Steve Lee ca1b6fb4c5 Add back Clear-RecycleBin for Windows (#10909) 2019-10-28 08:18:26 +05:00
Steve Lee d8d32d79c2 Implement Get-Error cmdlet as Experimental Feature (#10727) 2019-10-15 14:32:14 -07:00
Steve Lee 1fa73e360f Add back Get-HotFix cmdlet (#10740) 2019-10-11 22:51:43 +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
Steve Lee 00949ab352 .CPL should be added to PATHEXT (#9828) 2019-08-17 22:45:13 +05:00
Steve Lee 882cbf367f Enable Experimental Features by default on Preview builds (#10228) 2019-08-08 11:37:25 -07:00
Ilya 0ae7d50d5c Remove 'kill' alias for Stop-Process cmdlet on Unix (#10098) 2019-07-15 08:12:26 +05:00
xtqqczze 0d55a7249b Suppress PossibleIncorrectUsageOfAssignmentOperator rule violation by adding extra parenthesis (#9460) 2019-07-02 13:23:58 -07:00
Tyler James Leonhardt 13fd3af810 New New-PSBreakpoint cmdlet & new -Breakpoint parameter for Debug-Runspace (#8923)
This PR does 4 things:

* Adds a new cmdlet `New-PSBreakpoint` which creates new `Breakpoint` objects and writes them to the pipeline
* Adds a `-Breakpoint` parameter to `Debug-Runspace` which will receive `Breakpoint` objects
* Makes the constructors for `*Breakpoint` public for use with the API
* Makes `Debugger.GetBreakpoint(string id)` and `Debugger.GetBreakpoints()` public since `SetBreakpoints` is public

Note: `New-PSBreakpoint` and `Set-PSBreakpoint` (which already exists) are similar... but `Set-PSBreakpoint` also sets the breakpoints in the _current_ runspace. This is not ideal if we want to set breakpoints in a _different runspace than the current one_.

## PR Context  

The "Attach to process" debugging experience in the PowerShell extension for VSCode is _ok_ but it's not great.

The reason it's not great is due to the `BreakAll` feature of PowerShell debugging which, when you run `Debug-Runspace`, will break at the first piece of code that gets run. This is not ideal when you "Attach to process" _and then_ run your code in the other runspace.

Today, the experience drops you in `PSReadLine`'s psm1 if PSRL is available or in the vscode PowerShell helper psm1.

It's unexpected for the user and not ideal.

This PR will allow the extension to pass in the breakpoints that need to be set initially with `BreakAll` turned off for none of this silly behavior.

### Silly behavior example

If you want a repro, try this:

PowerShell instance 1:
```
Enter-PSHostProcess -Id $otherprocesspid
Debug-Runspace 1
```

PowerShell instance 2:
```
./runfoo.ps1
```

Note that you end up NOT `runfoo.ps1`
2019-04-13 19:14:53 -07: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
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
Joel Sallow (/u/ta11ow) 64bbdbe61c Add Tests for ConfirmImpact Ratings (#8214) 2018-12-20 23:15:42 +05: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
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
Paul Higinbotham 06571637e4 Add SkipCA and SkipCN check requirement to WinRM/OMI HTTPS connection (#8279) 2018-11-27 16:16:00 -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
Aditya Patwardhan e711c5dcc3 [Feature] Address code review comments 2018-07-12 17:17:50 -07:00
Aditya Patwardhan 731afbf14d [Feature] Add markdown cmdlets to default commands list 2018-07-12 17:17:50 -07:00
Dongbo Wang d2e9151fff [Feature] Add tests for experimental feature work 2018-07-06 13:28:20 -07:00
Ilya c1026b3ae8 Remove 'more' function and move the $env:PAGER capability into the help function (#6059) 2018-05-04 09:25:05 -07:00
Dongbo Wang e0b1f1f3af Fix line ending in 'DefaultCommands.Tests.ps1' from CRLF to LF (#6553) 2018-04-03 13:32:16 -07:00
Ilya 24cf020442 Add ported Test-Connection cmdlet (#5328)
The Test-Connection cmdlet works on Windows and Unix.

Implemented:
Ping
Continues Ping
Traceroute
Detect MTU size (seems don't work on Unix because of .Net Core issue)
Connect to TCP port
Not jet implemented:
I'm putting this off for the future.

Detect blackhole routers
PingPath
Additional considerations
As you can see in the tests .Net Core has issues in API implementation. As a result, some tests are skipped on Unix. There is also one issue on Windows. Related comments added to tests.
I'm going to open an issue(s) in CoreFX repo.

I think we should break the feedback into two parts:

scripting functionality
interactive functionality (display output)
Now I have implemented the output to the screen as the progress bar and as text (without ETS) - we have to decide what is best to use.
2018-04-03 11:59:26 -07:00