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.
• Hot ideas
• Top ideas
• New ideas
• My feedback

The cmdlet Install-ProvisioningPackage does not allow to deploy a password protected provisioning package.

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

2. Failed to populate environments in settings

EDIT: Our Win 2016 server was recently patched with KB4569746 (.NET Framework 4.8 cumulative). Could that be the cause?

Hi, we're getting the following error when trying to connect to Power BI Service using PBI modules MicrosoftPowerBIMgmt:

Login-PowerBI : Failed to populate environments in settings
At line:1 char:1
+ ~~~~~~~~~~~~~

+ CategoryInfo          : WriteError: (Microsoft.Power...IServiceAccount:ConnectPowerBIServiceAccount) [Connect-PowerBIServiceAccount], Exception
+ FullyQualifiedErrorId : Failed to populate environments in settings,Microsoft.PowerBI.Commands.Profile.ConnectPowerBIServiceAccount


We also tried connecting via Get-Credential and using registered App credentials. The Powershell script has been working for months.

Here are the things we've tried but to no avail: …

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

3. New Parameter on Format-List to exclude null/empty properties

Format-List (and perhaps Format-Table) should have a parameter to exclude null/empty properties. This would allow finding relevant data more quickly.

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

4. Bug: HTTP Content-Type of 'application/json' is not handled as UTF-8 by default

Microsoft.PowerShell.Utility has Invoke-WebRequest cmdlet (and Invoke-RestMethod among potentially others) which allow JSON to be requested from a remote server.

If the remote server provides a Content-Type header of 'application/json;charset=utf-8' then the WebResponseObject Content is properly parsed. However, if the Content-Type header only sets 'application/json' then ISO-8859-1 is assumed as the encoding by PowerShell 5.

One can manually transform the response content such as:
However such manual work is not helpful for Invoke-RestMethod cmdlet as the data has already been parsed into key-value mappings, and cannot be easily bulk-converted.

RFC 8259 at https://tools.ietf.org/html/rfc8259#section-8.1 clearly says "JSON text exchanged between systems that…

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

5. Get- cmdlets - sort properties descending for an object

Output of the properties for Get- cmdlets (example Get-Mailbox user1 | fl * ) should be automatically sorted (descending). It would be much easier to search the output for a specific properties if they would be sorted - especially if object does have many properties like Get-User ... :)
Counts for all powershell modules (Exchange, SharePoint, AD, *) of course

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

6. Get-ADUser should be able to use UserPrincipalName for the Identity field

Currently the Get-ADUser cmdlet does not support the usage of User Principal Names to identify user accounts. This is less than optimal when you need to correlate UPNs sourced from one data source, like an Intune-generated CSV, to the respective user accounts. It would be really nice to get that rather basic functionality added.

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

Forgive me if this has been posted previously but I cannot locate a ticket for it. When using New-ScheduledTaskAction in PowerShell, 5.1.19041.1, to create an action to call a PowerShell script there are incorrect characters being added to the arguments.

For example, please consider the following script
 $action = New-ScheduledTaskAction -Execute &quot;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&quot; –Argument &quot;-ExecutionPolicy Bypass -File &quot;C:\PathToScript\Script.ps1&quot;&quot;  When added to a scheduled task this action will not execute, further inspection revealed that under ANSI encoding the final &quot;is actually being sent over as the special aE symbol. And if you try to wrap everything in single quotes and concatenate… 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 8. Get-Disk is broken under batch logon Cmdlet Get-Disk fails under batch logon. 1. Create a scheduled task to run powershell -Command &quot;Get-Disk | Write-Output &gt; &#39;c:\users\&lt;username&gt;\yo.txt&#39;&quot;. Check the box to enable running when the user is not logged in. (You’ll need the Local Security Policy priv allowing batch logon for your user.) 2. Run the scheduled task directly from Scheduled Tasks. Open output file, observe success. 3. Delete output file, run the scheduled task on a trigger. Open output file, observe failure. 2 votes Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 9. Add support for LiteralPath to Get-DfsrFileHash cmdlet The Get-DfsrFileHash cmdlet would be a lot more versatile if it included support for the LiteralPath argument as other cmdlets like Get-FileHash and Get-ChildItem do. Without support for the argument the cmdlet currently generates an error when file paths containing special characters (such as []) are passed via the pipeline into the cmdlet. This makes obtaining DFS-R file hashes for files in bulk very difficult. 2 votes Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 10. EDB File Recovery Exchange I would like to recommend you to use this brilliant software derived by SysInspire named EDB to PST free. All the users can try out the free demo version of the software to know about the functioning of the software and after satisfied with the performance can buy a premium version of the software for advanced features. Users can use the check and un-check feature while EDB file recovery Exchange to recover only required items no need to waste time on the recovery of the whole EDB file. To Know More:- https://www.sysinspire.com/edb-to-pst-converter/ 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 11. Exchange Corrupt EDB Recovery Now the Exchange corrupt EDB recovery becomes easy by using the SysInspire EDB to PST Converter software. To run this software the user doesn’t need to have any professional knowledge because in the software there are simple guided steps available in a few 4-5 steps user recover the whole EDB file and convert it into PST Outlook format. The software has the capability to work with all versions of Exchange Server and MS Outlook 2016, 2013, 2010, 2007, 2003, 2002, 2000, and 97. To Know More:- https://www.sysinspire.com/edb-to-pst-converter/ 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 12. Export Mailbox EDB to PST Download this most effective tool derived by SysInspire that enables the users to recover the mailbox items according to their requirement no need to recover the whole EDB file the software named as SysInspire EDB to PST Converter software. It export mailbox EDB to PST and other four more formats (EMLX, MSG, HTML, and EML) without losing any single information. And the user can download the free demo version of the software that can recover items from every folder of the EDB file. For More Info:- https://www.sysinspire.com/export-exchange-mailbox.html 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 13. Need Teams PS cmdlet to create bulk or multiple teams Current New-team does not work as expected in for each loop ps script. need new bulk create cmdlet 2 votes Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 14. Bug: New-SelfSignedCertificate removes zero-length Name Constraints I'm trying to create a root CA certificate with a Name Constraints extension (2.5.29.30) containing zero-length token values. Adding DirectoryName=, Email= and URL= in the Excluded subtree ensures that the certificate may not be used to sign certificates for any names of these types (i.e. wildcard blacklisting). Unfortunately, New-SelfSignedCertificate removes these zero-length token values and only keeps tokens with a non-zero-length value. Removal of DirectoryName=, Email= and URL= in the Excluded subtree loosens the constraints and allows signing of certificates for arbitrary names of these types. See https://github.com/PowerShell/PowerShell/issues/14206 for details. 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 15. Export all Mailboxes to PST Exchange 2010 Use this powerful SysInspire Free EDB to PST Converter software that can repair the corrupt, damaged, and inaccessible EDB file without doing any moderation in the data. It also exports all mailboxes to PST Exchange 2010 and all other updated versions of the Exchange server. The user can export EDB files into multiple formats such as EMLX, EML, MSG, HTML, and PST with maintaining every structure of the folder. For More Info:- https://www.sysinspire.com/edb-to-pst-converter/ 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 16. Export Exchange EDB By making the use of this SysInspire EDB to PST Converter software the user can export Exchange EDB file into multiple formats such as EML, EMLX, MSG, PST, and HTML without doing any moderation in the data. This software also exports the database of pub1.edb file and priv1.edb file with maintaining every structure of the folder. You can also try out the free demo version of the software to know about the performance of the software. For More Info:- https://www.sysinspire.com/edb-to-pst-converter/ 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 17. i think this is it that can help us 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 18. i think this is it that can help us 1 vote Sign in (thinking…) Sign in with: Facebook Google Signed in as (Sign out) We’ll send you updates on this idea 19. AzureAD - Cannot properly read System.Byte[] value even when loading the module using "-UseWindowsPowerShell". AzureAD - Cannot properly read System.Byte[] value even when loading the module using "-UseWindowsPowerShell". Whenever I troubleshoot Conditional Access issues, I use to retrieve the certificate hash of AzureADDevice. Long story short, I retrieve "AlternativeSecurityIds.Key" property of AzureADDevice. Get-AzureADDevice -SearchString XXXX| fl displayname,deviceid,objectid,@{n='DevCerHash';e={ [System.Text.Encoding]::Unicode.GetString($_.AlternativeSecurityIds.key).substring(21,40) }}

I know that PS7 isn't compatible with AzureAD module, and for this reason I use "-UseWindowsPowerShell" flag to load the module. Unfortunately, in PS5 the byte array is properly read, while in PS7 (-UseWindowsPowerShell) an object of wrong type is returned.

Get-AzureADDevice -SearchString XXXX| select AlternativeSecurityIds |gm

The above command returns "TypeName: Selected.Microsoft.Open.AzureAD.Model.Device" in PS5…

(thinking…)
Signed in as (Sign out)

We’ll send you updates on this idea

20. Dismount-VHD regression for vhds in shared folders

Bug - Regression in Dismount-VHD
(This is behavior that worked at some point in the last several months.)

To reproduce:
1) Mount a .vhdx file stored on a network share that requires domain credentials.

mount-vhd &quot;\\server\path\to\my.vhdx&quot; -NoDriveLetter

2) Open a Powershell session as a user that does not have domain credentials (such as System, or a local admin account).

3) In the non-domain Powershell session, Dismount the VHD by disk number:

Dismount-VHD -DiskNumber 2

Observe that the command reports error:
"Dismount-VHD: Windows cannot find a mounted virtual hard disk with the specified disk number."

Note: This command does still succeed…

1 vote