# 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.
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.

## Please feel free to provide feedback or file bugs here.

(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

• Hot ideas
• Top ideas
• New ideas
• My feedback
1. ## PowerShell to select SSID

Many companies have several wifi ssids. You know, "Corp" "Guest" "Upstairs Lab"
Very very common.

How? How do you select one via PowerShell ?

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## Add support for SSRS Mobile reports to Out-RsFolderContent

Out-RsfolderContent fails when exporting Mobile Reports because the 'TypeName' MobileReport is not covered in the function.

I added the following remedy to my system. may be nice for others.
I have not yet tested for PowerBI reports ... but neither have the people making these nice modules ...

if (($item.TypeName -eq 'MobileReport') ) {$relativePath = $item.Path if($RsFolder -ne "/") { $relativePath = Clear-Substring -string$relativePath -substring $RsFolder -position front }$relativePath = $relativePath.Replace("/", "\")$newFolder = $Destination +$relativePath
Write-Verbose "Creating folder $newFolder" New-Item$newFolder -ItemType Directory -Force | Out-Null
Write-Verbose "Folder: $newFolder was created successfully." } 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## How to compare current and next Iteration values of foreach loop in Powershell. Hi,I have a loop like below. In that, I want to compare next iteration value with current iteration value. If current value is not match with next value then I need to do some process. So I want to know like how to get the next Iteration value of a loop in powershell.$var = ('abc','abc','bcd','cdf','cdf')
Foreach($i in$var){
If($i -ne$nextiterationvalue)
{       do something  }
else  {     do something  }}

Thanks,Dinesh

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## Import-PfxCertificate and relates commands don't exist on linux/macos powershell

our .net core projects use powershell. The lack of these commands impedes our cross-platform activities.

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## Unable to use PowerShell Transcription with Active Directory Administrative Console (ADAC)

Setup group policy to enable PowerShell Transcripting. From a machine that has that policy applied, launch ADAC. The error "Cannot connect to any domain. Refresh or try again when connection is available." pops up and ADAC can't be used.

https://github.com/PowerShell/PowerShell/issues/3021

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## OpenSource NetTCPIP and put it in a GitHub repo.

I am extremely annoyed by Test-NetConnection and would like to make it better. Why is there not a skip ICMP flag, or a timeout flag?

Please, OpenSource this so the community could improve this tooling for all.

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## powershell.exe does not preserve current directory when launched from command prompt

Given a script with the contents:


$location = Get-Location Write-Host "current directory [$($location.Path)]"  Actual: From command prompt:  e:\projects\test>powershell -File ..\cleanBinObj.ps1 current directory [E:\projects]  From powershell:  E:\projects\test> ..\cleanBinObj.ps1 current directory [E:\projects\test]  Expected: calling powershell from the command prompt should preserve the current directory and print "E:\projects\test" instead of "E:\projects" 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## Powershell cmdlets to retrieve and collect specific versions of policies in the policy store for AGPM The existing powershell cmdlets for AGPM only allow manipulation of the current versions of policies. Please enhance these cmdlets to allow querying / returning of specific versions of policies stored in the policy store. For example Get-ControlledGpo only allows returning of a list of the latest versions of GPO's. Please include an additional parameter return a specific version or all versions of a policy, and include the GPO version in the standard returned object. This would allow powershell driven versions of policy rollback, ie: Get-ControlledGpo -Domain "TSQA.Contoso.com" | Where {$_.Name -eq "A Great Policy" -and $_.PolicyVersion -eq 10 } |… 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## DISM cmdlets crash if you supply -Online:$false

The cmdlet throws an exception that cannot be caught by scripts. It seems that the team that wrote the cmdlets was using the presence of -Online parameter to determine the parameter set, and pretended that -Online is always $true if is it supplied. It might not be -- it is perfectly valid to supply$false to the switch.

This should be considered a bug, as it crashes PowerShell. Presumably an ill-supplied set of parameters should result an ErrorRecord being written.

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## Dynamic param is silently ignored

Dynamic param is silently ignored, and no errors are thrown when CmdletBinding is not defined.

[CmdletBinding()]
Param()

The following code should either run successfully, or throw an error:

DynamicParam {
$ParamAttribute = New-Object Parameter$ParamAttribute.Mandatory = $true$ParamAttribute.ParameterSetName = '__AllParameterSets'

$AttributeCollection = New-Object System.Collections.ObjectModel.Collection[System.Attribute]$AttributeCollection.Add($ParamAttribute)$controlTypes = @("TextBox", "Label", "DataGrid")

$AttributeCollection.Add((New-Object ValidateSet($controlTypes)))

$RuntimeParam = New-Object System.Management.Automation.RuntimeDefinedParameter('Type', [string],$AttributeCollection)

$RuntimeParamDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary$RuntimeParamDictionary.Add('Type', $RuntimeParam) return$RuntimeParamDictionary
}

Process {
Write-Host ($PSBoundParameters['Type']) } } Add-Control -Type "Test" #$null

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## New-Volume does not work with SMR drives

I can create a storage pool with or without storage tiers and then use new-virtualdisk to create disks on the storage pool. I can then format-volume and add access paths with add-PartitionAccessPath. All the separate parts work fine.

but...if I make a storage pool and try something like:

New-Volume -StoragePoolFriendlyName Test_Pool -FriendlyName Test0 -Size 10TB -ResiliencySettingName Simple -FileSystem ReFS -AccessPath M:\access_path0

...it will work one time. Any other volumes attempted on the same storage pool (with different names and access_paths) will fail on both ReFS and NTFS file systems. The same command run on PMR HDDs will work repeatedly just…

1 vote
Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## BUG: binary module loading fails silently on Fall Creators update on some machines

occurs in PS 5.1 on Windows 10, Fall Creators update
First observed with SqlServer module 21.0.17199
Also occurs with PsWindowsUpdate v2.0.0.0 , SqlServer 21.0.17224

Pretty much what it says - with either autoload or Import-Module, the module loads with no complaints but the cmdlets aren't there. The assemblies _do_ get loaded into the appdomain. I found no obvious clues poking around with ProcMon and Trace-Command (obvious to me, anyway). Happens on some machines, not others. Reported by 3 users (that I know of), in each case after updating to the Fall Creators update. If you have any debugging hints, they'd…

Check!
(thinking…)
Reset
Signed in as (Sign out)

We’ll send you updates on this idea

• ## PowerShell sessions don't support mixed-culture values such as 'en-DE'

Note: This may ultimately require resolution in the .NET framework.

Recent versions of Windows 10 support mixed culture values such as en-DE (sic) (since version 1703 - see https://msdn.microsoft.com/en-us/library/cc233982.aspx)

After using, e.g., Set-Culture en-DE to set the culture for future PowerShell sessions (which in itself succeeds, as you can verify at registry location [HKEY_CURRENT_USER\Control Panel\International]), subsequent PowerShell sessions quietly fall back onto culture 'en-US', as reflected in $PSCulture and [cultureinfo]::CurrentCulture. Note that such a mixed culture *is* honored in PowerShell *Core*. 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## anaconda Anaconda (Python Environments) Syntax Support 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## having the Remove-NetFirewallRule remove all rules implicitly without setting --all is one of the most BS in ps scenarious I expenrienced 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## Get-Certificate -SubjectAlternativeName Provide a means to specify an alternative Subject Alternative Name in the Certificate request. I have a need for requesting certificates with a specific CN for the subject name and they need to be supplied with a UPN in the subject Alternative Name Field. Currently the only option appears to be a -DNSName flag 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## [Bug] Paste doesn't work in ReadConsole() windows api prompt This bug may present a low-risk security concern for unaware end users, as reported in openssl here: https://github.com/openssl/openssl/issues/5864 This bug should provide enough detail about the "password paste" problem we were seeing in powershell. In my opinion clipboard text should be able to be pasted (though not visible, as is the case with regular keyboard typing). 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## utf-8 without bom Bug: Scripts encoded with utf-8 without bom are producing errors when the character "Ä" is used between double quotation marks. Frequency: always How to reproduce: Create a powershell file with the following contents:$test = "Ä"

Save it with the encoding "utf-8 without bom" (often just called utf-8. The counterpart, utf-8 with bom, can also be called "utf-8 signature").

Run the file, and you will get the following error:

At C:\location\to\file\test.ps1:1 char:9
+ $test = "Ã„" + ~~~~ The string is missing the terminator: ". + CategoryInfo : ParserError: (:) [], ParseException + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString 4 votes Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## Set-SqlAvailabilityReplica -ReadOnlyRoutingList not working When executing the Set-SqlAvailabilityReplica with the -ReadOnlyRoutingList parameter it doesn't update the read only routing list. If I supply the -script parameter the script is correct. 1 vote Sign in Check! (thinking…) Reset or sign in with Signed in as (Sign out) We’ll send you updates on this idea • ## After years: please allow your customers(!) to repair PowerShell Good day We have only about 150 computers running Windows 10, and PowerShell regularly stops working. The current case: Install-Module : The term 'Install-Module' is not recognized as the name of a cmdlet, ... Because Install-Module is part of the Windows 10 PowerShell basic installation, we don't want to patch until it is running again. We simply remove PowerShell, restart the computer and reinstall PowerShell. (Of course) since Windows 7 M$\$ is still not able to solve this bug. We get since years:

Install-Module : The term 'Install-Module' is not recognized as the name of a cmdlet, ...

So: Microsoft…

1 vote
Check!
(thinking…)
Reset