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. |
-
Copy headers when copying from Out-GridView
It would be great to copy headers for all the columns when copying data from the Out-GridView table lists.
11 votes -
Out-Gridview should provide a count of the number of objects displayed
It would be very useful if Out-Gridview provided a build in display of the number of objects in the grid. This could be in a status bar at the bottom or at the top along with the Add Criteria button.
This would update as the filters are applied. It would also be nice if the selected items had a count as well.
It would be especially useful with -passthru as you could have an estimate on the number of objects being passed to the next cmdlet in the pipeline.
You can come up with the count by using measure-object, but…
17 votesIt would certainly be cool, but we’re not really investing in Out-GridView at this point in time. I’ll leave this open as a Survey to see if the demand surpasses our bar (though I’d caveat that demand would have to be fairly high).
Thanks,
Joey -
Create a SendTo-SysLog cmdlet and include it by default
Please include by default a SendTo-Syslog cmdlet to send log messages to UNIX, Linux and SIEMs.
If you were to add a syslog service role to send or accept syslog messages in a scalable way which integrated with the Windows event logs, that would be great too, but a cmdlet to just send UDP packets is easy enough to include in PoSh 5.1 right now.
Thanks!
26 votesYeah, that’d be cool. Probably wouldn’t be too complex, but it also is probably outside the scope of the PowerShell core cmdlets. Maybe someone would be willing to publish something like this to the Gallery?
-
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 -
Add IsWindows to PS5.1 to allow cleaner code
PowerShell for Linux and OSX added IsLinux, IsOSX, and IsCore (?). IsWindows was added for PowerShellCore.
Can you add IsWindows to allow cleaner code to not have to assume if it is False for Linux,OSX,Core, it's full Windows (not nano), etc?
5 votes -
Make Cmdlets pick up app.config, especially binding redirects
I can't believe this hasn't been resolved already.
Surely adding assemblies to the GAC and mofiying machine.config is not a great solution.
http://stackoverflow.com/questions/18542812/powershell-cmdlet-missing-assembly-google-api
5 votes -
Get-Process VM output column should not be truncated with ellipsis
By default, the tabular output of Get-Process truncates the VM(M) column by default, showing ellipsis (...) for the VM memory size. This is an output formatting bug and should be VERY easy to fix.
Please either properly autosize the columns in the output of Get-Process to avoid the ellipsis for the VM property, or don't show the VM property by default at all. Thanks.
2 votes -
Drop Uservoice and open a GitHub repo for tracking issues
Seriously. How is this any good for tracking issues? You "upvote" an issue? Cmon.
1 voteWe do have a github for tracking issues, and encourage users to post where they feel more comfortable. https://github.com/PowerShell/
-
encourage youth to PowerShell
It would be a great motivation for young admins (e.g. students) to start learn PowerShell if it out of a box has commands concerning desktop computers in a workgroup environment. I think of managing local users, groups, dealing with screen resolution or power management, system updates - just simple stuff for everyday use.
2 votesFeel free to add more specific suggestions below for our consideration.
-
TechNet URL broken
TechNet url: https://technet.microsoft.com/library/dn521028(v=sc.20).aspx, the last "Windows Azure: Web Sites 4.0.100.0" url is broken, current is: http://technet.corp.microsoft.com/library/dn521032(v=sc.20).aspx, the correct one is http://technet.microsoft.com/library/dn521032(v=sc.20).aspx
1 voteTechnically not a part of our organization, but I’ll try and track down the Azure doc owner for that page and let them know.
-
Windows Server as a REST API
Delegating access to Windows Server functions (e.g., create a DHCP reservation, modify a DNS record, provision a share, etc.) in a heterogeneous, modern, self-service environment is greatly hindered by available protocols. While RPC, CIM, psremoting/wsman/soap, et al. are technically open, they are far enough from modern mainstream app heterogeneous ease of use that they are practically Windows only.
Windows should provide a facility to easily expose Windows functions as simple REST-ish APIs accessible to any calling platform. JEA makes a great engine for executing delegated functions, so I would imagine using JEA or similar as the execution context, but with…6 votes -
Limiting the new User PSDrive in JEA in WMF 5.1
Now that you can set a user PSdrive in JEA to to allow copying files, would be nice to have the ability to include to exclude files allows to be copied to the drive and from the drive as part of the configuration script to create the endpoints
1 vote -
[BUG] Group-Object with -AsHashTable and custom expressions
There seems to be a bug in Group-Object when using the -AsHashTable switch and where any custom expression that returns a string is used. The hashtable is created, can be enumerated, but trying to get an entry from it using the indexer doesn't work. This seems to be the case exclusively when the expression returns a string.
Consider the following:
PS C:\Windows> $Items = Get-ChildItem | Group-Object -Property Extension -AsHashTable
PS C:\Windows> $ItemsName Value
---- -----
.DMP {MEMORY.DMP}
.bin {mib.bin}
.xml {Enterprise.xml, Starter.xml}
.NET {Microsoft.NET}
.INI {HPMProp.INI, init.ini, msdfmap.ini, SMSCFG.INI...}
.dat {bootstat.dat, ConnectionProfiles.dat}
.dll {ISMIF32.dll, twain.dll, twain_32.dll}
.exe {bfsvc.exe,…5 votes -
Workflow: activities in nested workflows invoked from ForEach -Parallel execute on wrong machines
Consider a workflow which is given a list of servers. The workflow contains a ForEach -Parallel block, which invokes a nested workflow tor each server from the list (using -PSComputerName). In this scenario, activities from some of the nested workflow instances sometimes execute on different servers than they should.
Repro:
workflow Reproduce-ForEachParallelRemotingBugChild
{
…Param ([string] $s)
Write-Verbose "(s=$s) PSComputerName $PSComputerName"
Write-Verbose "(s=$s) sleeping"
Start-Sleep -Seconds 1
Write-Verbose "(s=$s) getting item"
$x = Get-Item -Path C:\
Write-Verbose "(s=$s) $($x.Name) $($x.PSComputerName)"
Write-Verbose "(s=$s) PSComputerName $PSComputerName" # this is OK (PSComputerName does not get corrupted)
if ($x.PSComputerName -ne $s)
{
Write-Error "BUG! This4 votes -
Req: JEA add ability to define parameter as mandatory in psrc
Currently you can define what parameters are exposes and if needed, you can provide a validateset or validatepattern for the parameter. What I can't do is specify the parameter in question should be mandatory even though the cmdlet or function does not enforce its usage.
E.g.: I define the following in my psrc
VisibleCmdlets = @{Name = 'Get-Process'
Parameters = @{
Name = 'Name'
ValidateSet = 'ZoomIt'
}}
this does not restrict the user from just typing Get-Service and have every service returned.
Current workaround is to create a proxy function and expose that instead of the cmdlet. …11 votes -
Bug: Powershell 5: Transcription doesn't anymore capture warnings and verbose output from invoke-command.
This used to work with Powershell 4.
Try following code (call 'Test-TranscriptWarningFromInvokeCommand') and inspect the transcription file - the warning and verbose output from the 'remote' machine (visible on the console) is not in there!
function Test-TranscriptWarningFromInvokeCommand {
…Start-Transcript -LiteralPath:"C:\Users\Public\Documents\Transcript-$(Get-Date -Format:"yyyy'-'MM'-'dd HH'-'mm'-'ss").txt" -Force
Write-Host "Local: This is a write-host!"
Write-Warning "Local: This is a write-warning!"
Write-Verbose "Local: This is a write-verbose!" -Verbose
#Write-Error "Local: This is a write-error!"
try {
Invoke-Command -ComputerName:$Env:ComputerName `
-ScriptBlock:{ Write-Host "Remote: This is a write-host!"
Write-Warning "Remote: This is a write-warning!"
Write-Verbose "Remote: This is a write-Verbose!" -Verbose
#Write-Error "Remote: This is a write-error!"
}5 votes -
Bug: [string]::Equals and -eq inconsistency when strings contain "`0"
"`0xyz" -eq 'xyz' # True - NUL character is ignored
same with"`0" -eq '' # True
2 votes -
WMF5.1 Incorrect code completion of Set-StrictMode -v
In a PowerShell console type
Set-StrictMode -v
and press
Tab
repeatedly.
As a result code completion iterates through two results:
-Version
-vIn previous versions, I believe, two results were:
-Version
-Verbose2 votes -
Add parameters to Select-String for matching all lines from (StartPattern) to (EndPattern)
To get blocks of text from a file, e.g. config sections from an opening tag to a closing line. All log lines for a reboot, starting with "System Booting at" and ending with "Boot Finished".
Example:
Select-String -Beginning '^FastEthernet' -Ending '^!'
Output: Multiple arrays of lines taken from a Cisco switch config, each array containing the lines for a FastEthernet interface configuration.
Example:
Select-String -Between '^User: .*'
Output: Arrays of lines from one "User: name" line to the next, to isolate blocks of settings for each user. Probably including the first match and excluding the second match, in the same…
4 votes -
BUG: Show-Command - Additional ^M displayed at the end of the command when you select the RUN button on Windows Server 2016 TP5.
Using RUN button from the Show-Command prompt for New-NanoServerImage command parameters input will generate and load the entire command syntax into the PowerShell console with an additional ^M characters at the end of the command syntax and has to manually backspace to delete the ^M characters prior to hitting ENTER return on the PowerShell console.
This need to be fixed on Show-Command to exclude the ^M characters when selecting the RUN button.
2 votes
- Don't see your idea?