PowerShell
The PowerShell forum accepts bug reports as well as feedback and suggestions. For more information, check out the PowerShell Homepage
The following is a list of the states we use to track items.
status | meaning |
---|---|
survey | We saw this and we are considering it. Please upvote if it’s important to you. |
needs more information | We don’t understand the issue and need additional details. |
investigating | We are looking at this internally to understand things like: scenario, reproduction of issue, costing, or other technical details. |
in queue | The issue is understood and in our unprioritized backlog. Your votes will be used to drive prioritization of this work. |
-
Convert Group Policy to use PowerShell DSC
I think it's time for an overhaul of Group Policy and GP Preferences. You can still keep the GUI to allow everyone to have something familiar, but I would love to see if Group Policy can be converted to start using PowerShell DSC under the hood. I think this would make things much simpler in terms of deployment and wouldn't require logon/logoff or restarts anymore (unless you wanted a script to run at those times). For everything else like IE/Edge settings, registry settings, mapped drives/printers, desktop backgrounds and such I think having everything exposed in PowerShell would both make it…
22 voteshttps://github.com/microsoft/baselinemanagement might be useful. It explicitly has “ConvertFrom-GPO”. It doesn’t support all GP resources yet, though.
-
How do I create an Azure Automation schedule with PowerShell using the Az Cmdlet New-AzAutomationSchedule?
When I attempt to run the Cmdlet below with the following parameters, it fails:
$AutomationAccountName = "CZEU1-INF-NP-0faa84be-AAA-01"
$ResourceGroupName = "czeu2-app-np-rgp-01"
$vmStartTime = (Get-Date "08:00:00").AddDays(1)
$vmStopTime = (Get-Date "18:00:00")
$timeZone = [TimeZoneInfo]::Local.DisplayName
$vmStartupScheduleName = "Startup VMs 08:00 Daily Weekdays:
$timeZone"
$vmShutdownScheduleName = "Shutdown VMs 18:00 Daily
Weekdays: $timeZone"
[System.DayOfWeek[]]$WeekDays = @([System.DayOfWeek]::Monday..[System.DayOfWeek]::Friday)
New-AzAutomationSchedule -AutomationAccountName $AutomationAccountName -Name $vmStartupScheduleName -StartTime $vmStartTime -WeekInterval 1 -DaysOfWeek $WeekDays -ResourceGroupName $ResourceGroupName -Verbose
The error is: New-AzAutomationSchedule : Exception of type 'Microsoft.Azure.Management.Automation.Models.ErrorResponseException' was thrown. At line:1 char:1 + New-AutomationSchedule -AutomationAccountName $AutomationAccountNam... + CategoryInfo : CloseError: (:) [New-AzAutomationSchedule], ErrorResponseException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Automation.Cmdlet.NewAzureAutomationShedule
21 votes -
add tcpdump equivalent cmdlet in powershell
I hope powershell have a cool module about the network tool ,make them work like tcpdump , netcat in linux.
It's very very cool things , will make me fly in our daily task.
20 votes -
Would be better if the exit command in PowerShell ISE only closed the current tab
In PowerShell ISE, if you invoke the exit command, it closes the entire application regardless of how many tabs you have open. It would be better if the exit command simply closed the current tab (if you have multiple tabs open) or the entire application if you only have one runspace open. This would prevent accidentally closing runspaces that you wanted to go back to just because you used the all-too-familiar exit command.
Also, making this change would address this issue within PowerShell ISE: when you invoke exit, the Runspace.StateChanged event is only fired for the current/active runspace (tab), even…
20 votesSee David’s response below
-
new-modulemanifest doesn't support ExternalModuleDependencies
In order to register external module dependencies (dependencies living in another repository), the name has to be registered in a string array property within the PSData Hashtable property in the PrivateData section in the psd1 manifest like so for registering module 'psFtp':
PrivateData = @{
PSData = @{ExternalModuleDependencies
ExternalModuleDependencies = @('psFtp')
}
} # End of PrivateData hashtableHowever, the new-modulemanifest doesn't have an -ExternalModuleDepencies parameter, nor is it possible to register externalmoduledependencies like so:
-PrivateData @{ PSData = @{ ExternalModuleDependencies = @('psFtp') } }
Which from a client perspective of the the existing new-modulemanifest api, would be an…
20 votesThanks for the comment. We will be monitoring this to see how many users are impacted by / recommending it.
-
Find in ISE needs to be able to wrap rather than stopping when it reaches the end of the file
Find in ISE starts from the cursor position and stops at the end of the file. This is extremely annoying behavior since to perform a full file search you need to move the cursor to the beginning of the file before beginning "Find".
Find needs the ability to find within an entire file from anywhere the search is started -- just like notepad++, notepad2, and any other modern text editor.
20 votesHi Adam,
You’re right, that’s really annoying. We’d like to do it as some point in the ISE Preview: https://blogs.msdn.microsoft.com/powershell/2016/01/20/introducing-the-windows-powershell-ise-preview/
Thanks,
Joey -
Add A "Start In" Directory for Enter-PSSession
By default, we are placed into Documents (at least I am), then have to change directories. It would be nice to be able to specify a directory we'd like to start in using Enter-PSSession.
19 votes -
Get-ComputerInfo should have remoting capabilities
Get-ComputerInfo was introduced in PowerShell Desktop 5.1.14361.0 and provides the ability to return various information about the local computer. It would be very useful if this cmdlet could also query remote computers, without relying on PowerShell Remoting.
For example:
Get-ComputerInfo -ComputerName SRV0119 votes -
Invoke-DSCResource on WindowsFeatureSet fails
As subject says. Example is below
PS C:\Windows\system32> Invoke-DscResource -Name WindowsFeatureSet -Property @{Name = "Storage-Services"; Ensure = "Present" } -Method test -ModuleName PSDesiredStateConfiguration
Invoke-DscResource : Failed to serialize properties into CimInstance.
At line:1 char:1
+ Invoke-DscResource -Name WindowsFeatureSet -Property @{Name = "Storag ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : NotSpecified: (:) [Invoke-DscResource], SerializationException
+ FullyQualifiedErrorId : System.Runtime.Serialization.SerializationException,Microsoft.PowerShell.DesiredStateConfiguration.Commands.InvokeDscResourceMethodCommand
19 votesThanks for the feedback! Based on its current ranking compared to other feedback items and product schedule, work on this item is pending (and will be driven by) further customer input. If you did not open this issue and are also impacted by it, please vote this item up.
MarkG
-
Enhance Set-PSBreakpoint to allow us to set Exception breakpoints
It is annoying when I’m debugging in the ISE and an unhandled exception occurs - the ISE debugger just exits. It gives me no chance to debug the issue that caused the unhandled exception while still debugging. The importance of stopping in the debugger, is that I can examine the state of variables throughout the call stack which can be very helpful in tracking down "why" the unhandled exception occurred.
So first, I want to set an "unhandled" exception breakpoint that would cause PowerShell to “break into” the debugger on any unhandled exception i.e. put the brakes on just before…
19 votes -
v5 regression: Get-ChildItem -LiteralPath -Recurse ignores -Include and gets all items
I have just installed Windows Management Framework (WMF) 5.0 RTM on my Windows
7 SP1 and tested it.Get-ChildItem -LiteralPath -Include -Recurse
started to
work differently in v5.This command
Get-ChildItem -Path $PSHOME -Include *.exe -Recurse
gets expected powershell.exe and powershell_ise.exe.
The same command with
-LiteralPath
instead of-Path
Get-ChildItem -LiteralPath $PSHOME -Include *.exe -Recurse
in PowerShell v5 RTM unexpectedly gets all items in
$PSHOME
.I cannot test this with previous versions right now (by the way,
PowerShell.exe -Version 2
seems to have the same issue in v5 RTM). But I
believe in PowerShell v3 and v4 this…19 votes -
Enable users to stop pipeline/making StopUpstreamCommandsException public
Votes from Connect: 24
Original Date Submitted: 10/25/2012 1:54:42 PM
Description:
Contact Information
Handle: TobiasWeltner
Site Name: PowerShell
Feedback ID: 768650
Frequency: Always Happens
Regression: No, this is new to the most recent versionProblem Description:
In PSv3, the pipeline can be stopped. Select-Object supports this with its -First parameter by raising a (non-public) StopUpstreamCommandsException exception.It is of great value to be able to stop the pipeline if your mission is completed before the emitting cmdlet has provided all results.
In fact, the PS pipeline would gain a completely new "feature". Currently, it is a memory throttle and provides…
19 votes -
PowerShell should support .Net extension methods
Votes from Connect: 35
Original Date Submitted: 9/22/2010 9:56:58 PM
Description:
Contact Information
Handle: Joel "Jaykul" Bennett
Site Name: PowerShell
Feedback ID: 603415
Frequency: Always Happens
Regression: Yes, this happens in all previous versionsProblem Description:
Currently PowerShell has it's own system (based on type.ps1xml files) for creating extension methods -- while this would have been admirable in the .Net 1.1 or 2.0 era, in the modern .Net Framework we already have Extension methods, and they do not work in PowerShell.As more and more of the .Net Framework itself and 3rd Party APIs begins to depend on extension methods…
19 votes -
Bug: Powershell Get-Help does not work with Exchange Online cmdlets
We've been lucky, from what I'm gathering from web searches! Until December last year, Exchange Online Powershell cmdlet help was available using Get-Help in the shell. However, after the Christmas break, the only response we get is:
Get-Help : Exception calling "Invoke" with "0" argument(s): "Cannot find path '' because it does
not exist."
At line:1 char:1
+ Get-Help Get-Mailbox
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo : NotSpecified: (:) [Get-Help], MethodInvocationException
+ FullyQualifiedErrorId : CmdletInvocationExceptionIt's the same issue irrespective of the cmdlet.
Consequently, I'm forced to contend with painful searches of the documentation website for information of the relevant cmdlets.
Raised…
18 votes -
Make PowerShell PKI module cross-platform with PS Core incl New-SelfSignedCertificate
PowerShell Core doesn't include the PKI module, which has the New-SelfSignedCertificate cmdlet. It would be great to have it available cross-platform.
Hence the feature request to make the PKI module cross-platform and compatible with PS Core to be distributed in the PowerShell Gallery: https://www.powershellgallery.com
Feature request with PS Core team and the reference to this UserVoice here:
https://github.com/PowerShell/PowerShell/issues/371518 votes -
Bug: Console output appears out of order
In 5.0, objects returned from a script will appear in the console only after the script has completely finished if no formatting data is defined for that object type.
Example:
Write-Warning "Before"
Get-Service E* | select Status, Name, DisplayName
Write-Warning "After"Output:
WARNING: Before
WARNING: After
Status Name DisplayName
------ ---- -----------
Stopped EapHost Extensible Authentication Protocol
Running EFS Encrypting File System (EFS)
Running eventlog Windows Event Log
Running EventSystem COM+ Event SystemDetails
- This did not happen before PowerShell 5.0
- This happens both in the PowerShell console and ISE
- The issue affects all objects that have…18 votes -
Shared Partial Configurations (ConfigurationNames) and encrypted credentials.
At the moment to use encrypted credentials in partial configurations with ConfigurationNames it is necessary to share certificate across all nodes, else decryption will fail. I believe it should be technically possible to use more dynamic approach:
- encrypt MOF with certificate for which pull server has private key
- during registration client would send over certificate for which it has private key so that pull server can encrypt any credentials in the mofs sent to this node with this certificate.At the moment it's manual labour on the operators side: make sure that encrypt/decrypt just works. It would be…
18 votes -
Comment-Based Help: Allow multi-line examples
Votes from Connect: 8
Original Date Submitted: 8/22/2014 11:58:54 PM
Description:
Contact Information
Handle: Aaron Jensen
Site Name: PowerShell
Feedback ID: 952833
Frequency: Always Happens
Regression: Yes, this happens in all previous versionsProblem Description:
Currently, when using comment-based help, you're limited to one line of code for an example. This is extremely limiting, especially when trying to document DSC resources, since they span multiple lines by default. Also, some examples would be more useful with some extra lines. The current alternative is to use XML-based help, but the MAML schema is extremely verbose and complicated.What I'd like to…
18 votes -
Duplicate help files in PSWorkflow module break Get-Help
At some point in the 5.0 time period, Update-Help installed About topic files in the en-US directory for the PSWorkflow module with .txt (not .help.txt) file name extensions.
e.g. about_Foreach-Parallel.txt
Later, this was fixed and Update-Help installed the same help files in the same directory with the (correct) ".help.txt" file name extension.
e.g. about_Foreach-Parallel.help.txt
Now, the PSWorkflow\en-US directory has 9 pairs of files that are identical except for the file name extension.
aboutActivityCommonParameters.help.txt
aboutActivityCommonParameters.txt
aboutCheckpoint-Workflow.help.txt
aboutCheckpoint-Workflow.txt
aboutForeach-Parallel.help.txt
aboutForeach-Parallel.txt
aboutInlineScript.help.txt
aboutInlineScript.txt
aboutParallel.help.txt
aboutParallel.txt
aboutSequence.help.txt
aboutSequence.txt
aboutSuspend-Workflow.help.txt
aboutSuspend-Workflow.txt …17 votes -
Allow Environment Variable as default value for function parameter.
When defining a function, I would like to use an environment variable as the default value. If the environment variable exists and has a value that value will be used. For example,
function Get-Info ([Alias("name")] [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)] [string] $projectName = $env:Project_Name)
{
}Instead of having to passing in the Project Name for each call I would like to store it in an environment variable. When I do it would allow me to call Get-Info with no parameters and the value in the environment variable would be used. If the environment variable does not exist or is empty the user…
17 votesInteresting! As you say, there’s obviously workarounds here, but that syntax would make things easier. I don’t immediately have an edge case that adding this would break, but it miiiight exist.
Would one of you be so kind as to write up Adam’s generalized suggestion in a GitHub Issue at https://github.com/powershell/issues where the language is currently being developed.
- Don't see your idea?