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.
  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. Shared or Custom-Common Parameters for PowerShell Modules

    I would like a way to define common parameters that all functions within that module or perhaps session share. I moved to a new position and am refactoring my automation to work in a new paradigm. This means changing a bunch of parameter names to make sense. It's about 100 cmdlets and only slightly more complex than search and replace, but still I thought to myself "There has to be a better way"

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  2. Allow Us to Use our MSA to Report Errors in Microsoft Documentation

    I will NOT create another account (in GetHub) to report errors in the official Microsoft documentation. I should use my MSA account. There are several errors in the documentation for Set-ADUser, for example, that I reported years ago in Connect (now retired). The documentation for the -Office and -Replace parameters are wrong.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  3. Change sorting of Get-ChildItem -Recurse, it currently tears content appart

    > Get-ChildItem -Name -Recurse -Directory

    ... currently tears directories appart because it FIRST iterates through a directory and THEN iterates through its childen recursively (I added blank lines to the output here to emphasize the issue):

    a
    b
    c

    a\1
    a\2
    a\3

    a\1\x

    b\a
    b\b
    b\c

    b\b\a
    b\b\b

    b\b\a\x
    b\b\b\1
    b\b\b\2

    c\1
    c\2
    c\3

    I believe this kind of sorting doesn't make much sense.

    I couldn't think of any use case to deal with some parent information item without processing its children and then, after other parent information items have been dealt with (probably even relying on a thorough processing…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  4. Represent $null values Active Directory fields when exporting to CSV files

    Using Export-CSV should represent $null values from Active Directory by printing "null" in the column instead of just removing the column for that line.

    When using the Get-ADUser cmdlet to export properties of User accounts to a CSV file (Export-CSV), $null values are not represented and therefore end up being removed from the CSV. For example, if I am exporting the properties for SAMAccountName, Title, and Manager to my CSV and User A has all three properties but User B has no Title, then User B's Manager is now listed in the Title column of the CSV, which causes data…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  5. Test-NetConnection doesn't fully honor -ErrorAction

    When I run:
    > Test-NetConnection my.host.net -port 443 -ErrorAction Ignore

    An error ends up in $Error like:
    Resolve-DnsName : my.host.net : DNS record does not exist
    At C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\NetTCPIP\Test-NetConnection.psm1:314 char:63
    + ... ecords = @( Resolve-DnsName $ComputerName -LlmnrNetbiosOnly -NoHost ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ResourceUnavailable: (my.host.net:String) [Resolve-DnsName], Win32Exception
    
    + FullyQualifiedErrorId : RECORD_DOES_NOT_EXIST,Microsoft.DnsClient.Commands.ResolveDnsName

    Looks like Test-NetConnection.psm1 @ lines 313 - 315 has the error preference for the Resolve-DNSName calls hard coded. Specifying -Ignore should not result in anything in $Error.

    $PSVersionTable

    Name Value


    PSVersion 5.1.16299.248
    PSEdition Desktop
    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0, 5.0, 5.1.16299.248}
    BuildVersion 10.0.16299.248
    CLRVersion 4.0.30319.42000
    WSManStackVersion 3.0
    PSRemotingProtocolVersion…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  6. Format-Table: Add ForegroundColor and BackgroundColor to a calculated property

    When using calculated properties in Format-Table, you can define:
    - Name/Label (the column heading/calculated property name)
    - Expression
    - Width (define column width)
    - FormatString (to format numbers/strings)
    - Alignment (alignment in table cell/column

    What's missing is a way to output a calculated property in a different color. For example, use red for negative number, green for positive number, and additionally, a way to specify the background color (for the table cell). Adding ForegroundColor (to specify text color) and BackgroundColor (for cell color) to calculated properties would resolve this.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  7. Issue: Verbosity within ScriptsToProcess upon Importing a Module with Verbose switch

    Upon running the Import-Module with the verbose flag my script within "ScriptsToProcess" section contains verbose logging but does not output to the console. I am not sure if this is by design, but I thought by passing in the Verbose option would update the session $VerbosePrefence value and have any verbose logging within the ScriptsToProcess output, but it does not.

    Is this by design? If yes, then what is your suggestion to output the verbose logging?

    My local env:

    Name Value


    PSVersion 4.0

    WSManStackVersion 3.0

    SerializationVersion 1.1.0.1

    CLRVersion 4.0.30319.42000

    BuildVersion 6.3.9600.18773

    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}

    PSRemotingProtocolVersion 2.2

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  8. something killed my directories under PackageManagement - need repair (how ?)

    Something killed my Directory for all Packages.... How can i repair the Powershell-Installation withing Windows 10 ?
    Already tried deactivating / activation of the feature withing windows, sfc /scannow , etc.
    but i cannot use my powershell completely anymore...

    $PSVersionTable

    Name Value


    PSVersion 5.1.15063.786

    PSEdition Desktop

    PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}

    BuildVersion 10.0.15063.786

    CLRVersion 4.0.30319.42000

    WSManStackVersion 3.0

    PSRemotingProtocolVersion 2.3

    SerializationVersion 1.1.0.1

    Example of issue:
    Method invocation failed because [Microsoft.PowerShell.Commands.MatchInfo] does not contain a method named 'Trimstart'.

    so also basics are not even working .....

    can anyone help me ?

    thanks

    Markus

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  9. A strange idea: why not work using pipeline objects, e.g. in Add-WindowsCapability?

    Microsoft is proud that PowerShell works with objects and never gets tired of announcing this wonderful achievement everywhere.

    Now I have an apparently extraordinary idea:

    Why does M$ not always and mandatory work with the objects, so that commands of the same subject automatically understand each other?

    This would allow us commands as we expect it. Without googling for solutions... once more. Such commands must simply work:

    Get-WindowsCapability -Online? Name -like' OpenSSH. Client*'. | Add-WindowsCapability

    The current M$ "solution" is that very often we have to handle properties and therefore we fall back to the string handling.

    Annoyoing.
    Very Annoyoing…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  10. write-error writes entire script code to error window before writing the error message

    write-error writes entire script code to error window before writing the error message.

    If you use write-error to write an error message in Azure Automation or in an unsaved script in PowerShell ISE, it will write the entire script to the error stream before writing the actual error message.

    Running this in the PowerShell ISE

    write-verbose "We shouldn't see this in the error stream"
    get-process notepad
    Write-Error -Message "Error"

    Returns this

    PS C:\Users\bmcder> write-verbose "We shouldn't see this in the error stream"
    get-process notepad
    Write-Error -Message "Error"

    Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName


    272      14     3120      14076       1.00
    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  11. convertfrom-string and rounding

    I have been parsing some log files into JSON type data and have run across a couple of 'issues'. As response is appreciated as I have searched for two weeks and not found any references to these 'issues'.

    Converting the following line results in the truncation of the decimal.

    convertfrom-string "Sat Dec 16 00:00:04 2017 Info: ICID 182588587 REJECT SG BLACKLIST match sbrs[-10.0:-3.0] SBRS -4.4 country United States"

    Results in:
    P1 : Sat
    P2 : Dec
    P3 : 16
    P4 : 00:00:04
    P5 : 2017
    P6 : Info:
    P7 : ICID
    P8 : 182588587
    P9 : REJECT
    P10 : SG …

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  12. get-adcomputer will not bind properly to another function even when it contains a valid string parameter with the 'name' alias.

    Bug filing.

    According to other articles I read this problem may be prevalent in other/all AD cmdlets. To work around this bug you have to use | Select * | as an intermediate step to correctly bind to your $computername/$name parameter.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  13. DPM's Get-DPMCloudSubscription does not work when run inside a scheduled task.

    If you run a regular DPM report PowerShell script and wish to include the total used space in Azure, the Get-DPMCloudSubscription command fails.

    If you run the script manually you are given the information you need, but the scheduled task reports always show 0 space used. For instance here is the command and result in the ISE:

    SubscriptionName : Azure Backup
    UsedSpace : 272188669250
    TotalSpace : 322122547200
    StorageQueriedTime : 09/01/2018 00:24:02
    RegistrationStatus : AgentInstalledAndRegistered

    but the same part of the report when in a scheduled task shows:
    SubscriptionName : Azure Backup
    UsedSpace : 0
    TotalSpace : 322122547200
    StorageQueriedTime : 09/01/2018…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  14. SSMS 17 - Start Powershell returns 'No SQL Server cmdlets found on this computer' but sqlserver module is installed

    SSMS 17 - Start Powershell returns 'No SQL Server cmdlets found on this computer' but sqlserver module is installed and works outside of SSMS 17

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  15. Add Recipient Property 'Capabilities' to be filterable by Set-DynamicDistributionGroup

    When trying to create Dynamic Distribution Groups via Powershell with the Set-DynamicDistributionGroup cmdlet, there are many filterable properties. The properties are supposed to be what you see via 'Get-Recipient'.

    One Property in particular, 'Capabilities' does not appear to be valid for use with Set-DynamicDistributionGroup.

    Could this be added, as it would be very useful to filter people based on what license(s) they have assigned.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  16. Set-DynamicDistributionGroup ProhibitSendReceiveQuota filter doesn't work

    When trying to create a Dynamic Distribution Group via PowerShell using Set-DynamicDistributionGroup, TechNet lists many filterable properties, including 'ProhibitSendReceiveQuota'. However, it doesn't appear to actually work.

    The only way I've gotten it to produce any results is to say:

    Get-Recipient -RecipientPreviewFilter {(ProhibitSendReceiveQuota -lile "*")}

    If you do a 'Get-Recipient', 'ProhibitSendReceiveQuota' isn't even a property returned.

    https://technet.microsoft.com/en-us/library/bb125127(v=exchg.160).aspx

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  17. new-service, assign virtual service account

    When creating a new service, I would like to set the user account to a virtual service account. Since the -Credential parameter expects a PSCredential object, which doesn't seem to accept predefined local accounts at all, this isn't currently possible.

    Having a -VirtualAccount switch would be great.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  18. Get-MpPreference .AttackSurfaceReductionRules_Actions returns incorrect value(s)

    Get-MpPreference .AttackSurfaceReductionRules_Actions returns incorrect value(s) compared to registry. Specifically a value of 2 is always returned for rule id BE9BA2D9-53EA-4CDC-84E5-9B1EEEE46550. There may be other anomalies that I haven't yet found for different rule id's.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  19. [bug]register-scheduledjob and new-jobtrigger bug report

    If I scheduled a job for weekly running on specific days it will always fail with error code Task Scheduler stopped instance "{[GUID]}" of task "\Microsoft\Windows\PowerShell\ScheduledJobs[myjob]" as request by user [my windows logon]

    However the job works with the -daily switch. It only fails with -daysofweek

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  20. Test-Path returns false for quoted path

    Test-Path returns false for valid paths contained within quotes. See example below. Due to the frequent need to quote paths containing spaces, this leads to needless bugs.

    Repro follows.

    PS C:\WINDOWS\system32> Test-Path 'C:\Windows\System32\ntdll.dll'
    True

    PS C:\WINDOWS\system32> Test-Path '"C:\Windows\System32\ntdll.dll"'
    False

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Microsoft.PowerShell.* Modules  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Feedback and Knowledge Base