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. Powershell 5.1 returns error on special characters when passing in an array of arguments

    Hello,

    I have Set the arguments in the code:

    $installArguments = ""-p" "$ISMFileFolder" -o "$MergeModuleFolder" -y "$VersionNumber" $PathVariableArguments -b "$MediaOutputFolder""

    and run the exe with arguments:
    & $IScmdBldRootDir $installArguments
    The same scripts is running fine on Windows server 2008 R2 that has the Powershell 4.0 and it fails and return error on Windows server 2016 that has the Powershell 5.1.
    The error is:
    -1113: The 'p E:\Builds\Installer' switch is not recognized.

    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. Add commandlets to configure NAT in the RemoteAccess module

    Please, expand the RemoteAccess module with commandlets that allow you to configure simple NAT like you would do with the RRAS GUI.
    So far, the module allow you to configure Direct Access and VPN but not NAT and it feels like it's missing.

    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. Add SNMP Cmdlets (Get, Walk, Table, etc.)

    Hi,

    it would be very useful to have SNMP cmdlets available. SNMP is still defacto standard for managing many kinds of 'network-devices'.

    It could help also considering IOT devices.

    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. TrimStart() method trimming more than specified

    Attempting to compare two strings. When constructing one of the strings, the TrimStart method is trimming more of the string than it should. Example:

    (Get-Content -Path 'C:\Program Files\SplunkUniversalForwarder\etc\system\local\server.conf' | Select-String -Pattern 'serverName').ToString().TrimStart('serverName = ')

    returns

    rver1.domain.company.com

    expected output is

    server1.domain.company.com

    I expanded the TrimStart method like so:

    (Get-Content -Path 'C:\Program Files\SplunkUniversalForwarder\etc\system\local\server.conf' | Select-String -Pattern 'serverName').ToString().TrimStart('serverName').TrimStart(' ').TrimStart('=').TrimStart(' ')

    and get the same erroneous output. The problem appears to be with trimming the last space character.

    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 →
  5. Write-Verbose should be controllable

    Hello

    Although "UserVoice" is misused by M$$ to silence customers(!) (e.g. errors(!), which are easy to correct, are ignored for years)
    I still write a suggestion for improvement.

    Usually, the -verbose switch is used if one would like to get more information about one module or script.
    The reality is, however, that we're flooded with verbose messages.

    Therefore it would be great if -verbose could be controlled. Just two ideas:
    - By specifying a nesting level, e.g. -Verbose <NestingLevel>
    -Verbose 2 would activate verbose messages in the directly called script and in all commands which are called by the script…

    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. 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 →
  7. 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 →
  8. 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 →
  9. 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 →
  10. 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 →
  11. 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 →
  12. 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 →
  13. 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 →
  14. 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 →
  15. 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 →
  16. 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 →
  17. 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 →
  18. 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 →
  19. 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 →
  20. 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 →
  • Don't see your idea?

Feedback and Knowledge Base