Products · Product
PowerShell
Raised as a usability problem by 336 people on Hacker News over 19 years (2008–2026), in 235 threads.
No issue was raised by at least 3 people in 3 threads this year.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
Every issue, all time, most people first
Shell is slow to start, making users wait seconds to typeUnreviewed
20082026- Shell takes seconds to start and processes text and pipelines slowly2026-01-07
- Software takes long to load, keeping the user waiting before the UI appears2025-12-25
- Shell feels laggy and takes seconds to start before typing works2024-04-29
Commands are verbose and tedious to type for experienced usersUnreviewed
20082026- Commands are too long and verbose, with hundreds of specialized ones instead of short combinable tools2026-04-02
- Commands are so long that typing and memorizing them is tedious2024-09-18
- Verbose syntax with no guessable commands forces constant memorization and wrestling with autocomplete2024-07-04
Syntax is verbose and hard to learn and switch betweenUnreviewed
20082026- Syntax is so weird and verbose that it is hard to internalize2024-04-29
- Syntax is weird and verbose, hard to learn and switch between2024-04-29
- Language is inconsistent, dynamically typed in confusing ways, and has convoluted complexity2023-12-08
Verbose cmdlet names are hard to memorize and discoverUnreviewed
20082026- Cmdlet names like Test-Connection are too verbose to type for quick network commands2026-10-22
- Verbose cmdlet syntax is unusable for everyday interactive typing in a terminal2026-10-22
- Verbose cmdlet names add noise, are hard to visually distinguish and a pain to type or edit2024-09-18
Feels noticeably slower than cmd.exe, so users avoid itUnreviewed
20082026- PowerShell is too slow at parsing files, making it impractical for common users2024-07-04
- Starting PowerShell and interacting with it is very slow, so the commenter avoids it2023-04-11
- Windows PowerShell takes up to 10 seconds to start, worse with profile modules2021-01-20
Tab completions load slowly, making the shell laggyUnreviewed
20082026- Commands are too long to type and default tab completion forces lots of backspacing2026-07-13
- Tab completion freezes for 10+ seconds while modules load, happening almost daily2025-12-25
- Tab completions load slowly, making the shell laggy to use2024-09-11
Tab cycles through options instead of completing to common prefixUnreviewed
20082026- Tab autocomplete converts slashes in typed paths to backslashes, changing what the user typed2024-04-28
- Tab cycles through options instead of completing to common prefix, hard to get used to2021-01-19
- Tab shows one completion then cycles through options, hiding what's available2020-04-24
Object pipelines are complex to build and verbose to writeUnreviewed
20082026- Long, verbose parameters and object pipelines require digging through APIs to chain commands2024-09-10
- Passing objects through pipes makes scripts hard to understand and debug; also very slow2021-08-22
- Object pipes make building meaningful pipelines complex, and the syntax is verbose2020-08-08
Writing scripts is far more verbose and slower than in bashUnreviewed
20082026- Shell syntax is confusing and convoluted, and the shell is slow2026-10-22
- Syntax is harder than bash quoting, and advanced tasks are annoying to do2026-10-12
- Some syntax is clunky and the shell is slow compared to others2023-11-30
Unintended output silently changes what a function returnsUnreviewed
20082026- Commands without a trailing semicolon dump their output unexpectedly into the enclosing function2026-07-10
- Unintended function call outputs silently become return values, making bugs easy to introduce2024-09-10
- Any stdout output silently becomes the return value, and it is hard to silence2021-09-11
Multiple PowerShell versions silently open the wrong one, breaking scriptsUnreviewed
20082026- Multiple coexisting PowerShell versions cause the wrong one to open silently, breaking scripts2026-10-22
- Outlook scripts often fail because of COM and PowerShell mismatch2024-02-04
- Many critical Windows features have multiple buggy overlapping PowerShell implementations of the same thing2020-06-03
Inconsistent design makes it hard to use interactivelyUnreviewed
20082026- Shell commands behave unexpectedly compared to bash, with no easy undo2021-04-08
- Too complex to be a good shell with many bizarre idiosyncrasies2018-09-02
- Inconsistent design makes it hard to use as a shell, feels like programming2018-07-18
Iterating through text files is ridiculously slowUnreviewed
20082026- Very slow when used for text processing, nearly unusable2024-09-11
- Iterating through text files is ridiculously slow2024-05-25
- Cumbersome for scripting and very slow when processing many items2021-12-08
Scripts are so verbose they become hard to readUnreviewed
20082026- Quirks like implicit returns and verbose syntax make scripts hard to read2022-09-08
- Scripts feel unfamiliar and hard to learn, and information is harder to find online2020-01-21
- Scripts are so verbose and wordy they become unreadable2019-08-17
Default execution policy blocks scripts unless admins change it or sign themUnreviewed
20082026- Security defaults and GPOs block running scripts, forcing users through hoops to run them2023-07-09
- Scripts are blocked by a config setting until the user changes it, failing at the first step2014-09-01
- Restrictive default execution policy blocks scripts unless admins change it or sign every script2014-06-26
Cmdlets are hard to enable, install, and useUnreviewed
20082026- Format, Out and Convert cmdlet choices are very confusing for new users2023-03-16
- Long-winded cmdlets make simple tasks take more lines and are harder to read and write2016-03-30
- Cmdlets are hard for users to enable, install, and use2013-11-02
Default encodings changed across versions, producing unexpected file encodingsUnreviewed
20082026- Writes files in a different encoding than it reads them, confusing users2025-11-25
- Encoding behaviour is frustrating, and users must read docs to learn what to expect2024-09-11
- Encoding names and default behavior changed across versions, so writing and reading files produces unexpected encodings2024-09-11
Default aliases shadow curl and grep, blocking their use until removedUnreviewed
20082026- Aliases like ls run native commands instead of PowerShell cmdlets, so piping breaks unexpectedly2026-10-22
- Commands are hard to remember and aliases like curl behave differently than expected2023-10-24
- Unix-style command aliases like ls and grep behave differently than expected, confusing users2023-04-20
Get- prefix makes autocomplete useless with thousands of cmdletsUnreviewed
20082026- Tab autocomplete for cmdlet names is too slow, taking far longer than a blink2025-12-25
- Get- prefix makes autocomplete useless with thousands of cmdlets2021-08-20
- Most tools like git, CMake and InnoSetup have no autocompletion in PowerShell2020-05-21
Basic commands sometimes take many seconds, disrupting workflowUnreviewed
20082026- Commands differ from those used elsewhere, making common tasks hard to run2024-12-31
- Many conflicting answers across versions make simple tasks take hours to figure out2018-08-03
- Even basic commands sometimes take many seconds, disrupting intense workflow2014-09-02
Copying multiline text requires pasting elsewhere to fix line breaksUnreviewed
20082026- Paste behaviour is inconsistent and 'command not found' errors are puzzling2025-10-30
- Pasting wrapped multi-line commands inserts unwanted newlines2014-01-13
- Copying multiline text requires pasting into another editor and fixing line breaks2013-10-27
Tab completion and copy/paste are missing or awkwardUnreviewed
20082026- Basic shell features like tab completion and copy/paste are missing or awkward2017-06-15
- Command completion is awful, making it a terrible shell to use2015-07-10
- Basic actions like copy and paste are not easy in the shell2010-03-21
Unreviewed issues were grouped by machine: Claude Haiku labelled each comment as a usability complaint, named what it's about and summed up the problem in a line, and a small model grouped similar problems. Nobody has checked them by hand. Expect mistakes.
The newest 50 complaints
- Multiple coexisting PowerShell versions cause the wrong one to open silently, breaking scripts2026-10-22
- Same -eq-style syntax used for named arguments, so readers can't tell which is meant2026-10-22
- Cmdlet names like Test-Connection are too verbose to type for quick network commands2026-10-22
- Shell syntax is confusing and convoluted, and the shell is slow2026-10-22
- Verbose cmdlet syntax is unusable for everyday interactive typing in a terminal2026-10-22
- Aliases like ls run native commands instead of PowerShell cmdlets, so piping breaks unexpectedly2026-10-22
- Syntax is harder than bash quoting, and advanced tasks are annoying to do2026-10-12
- Commands are too long to type and default tab completion forces lots of backspacing2026-07-13
- Commands without a trailing semicolon dump their output unexpectedly into the enclosing function2026-07-10
- Commands are too long and verbose, with hundreds of specialized ones instead of short combinable tools2026-04-02
- Must learn structured return and input formats of every command2026-03-29
- Syntax is so poor the commenter avoids doing anything significant with it2026-01-28
- Errors are silenced by default and need several different incantations to fix2026-01-14
- Shell takes seconds to start and processes text and pipelines slowly2026-01-07
- Takes a minute or two to reach a prompt on spinning disks2026-01-07
- Tab completion freezes for 10+ seconds while modules load, happening almost daily2025-12-25
- Tab autocomplete for cmdlet names is too slow, taking far longer than a blink2025-12-25
- Software takes long to load, keeping the user waiting before the UI appears2025-12-25
- Wget silently aliases Invoke-WebRequest, causing repeated mistakes in CI jobs2025-12-06
- Extract-Archive is painfully slow compared to using ZipFile directly2025-12-06
- Typing wget silently runs Invoke-WebRequest, which behaves differently from the real wget2025-12-06
- Invoke-WebRequest runs very slowly unless the progress bar is manually disabled2025-12-06
- Setting an environment variable requires a verbose, hard-to-read command with brackets and uppercase names2025-11-25
- Writes files in a different encoding than it reads them, confusing users2025-11-25
- Paste behaviour is inconsistent and 'command not found' errors are puzzling2025-10-30
- Default Windows shell feels unlike bash and is hard to work with2025-09-16
- Empty arrays silently convert to null, causing unexpected behavior for users2025-08-19
- Get-ChildItem is painfully slow on large directories2025-07-18
- Select-String lacks a -o option to output only matched text, forcing awkward workarounds2025-02-10
- Commands differ from those used elsewhere, making common tasks hard to run2024-12-31
- Archive extracts 273 files into current directory, and pwsh isn't executable after extraction2024-12-20
- Verbose cmdlet names add noise, are hard to visually distinguish and a pain to type or edit2024-09-18
- Commands are so long that typing and memorizing them is tedious2024-09-18
- Must type .\ before program name, which feels unnecessary extra typing2024-09-15
- Falls short and loses its advantage once tasks need anything beyond builtins2024-09-14
- User is always lost in PowerShell and can't reach goals without searching the web2024-09-12
- Encoding behaviour is frustrating, and users must read docs to learn what to expect2024-09-11
- Tab completions load slowly, making the shell laggy to use2024-09-11
- Navigating PowerShell's object hierarchy and consuming APIs is ugly, with poor intuitiveness and documentation2024-09-11
- Encoding names and default behavior changed across versions, so writing and reading files produces unexpected encodings2024-09-11
- Very slow when used for text processing, nearly unusable2024-09-11
- Long, verbose parameters and object pipelines require digging through APIs to chain commands2024-09-10
- Unintended function call outputs silently become return values, making bugs easy to introduce2024-09-10
- Hash table keys are case-insensitive by default, breaking code that expects case-sensitive keys2024-08-28
- Feels badly designed and painful; default terminal not usable for the commenter2024-08-24
- Can't find documentation or which operating systems are supported2024-08-03
- Many everyday Windows tasks lack convenient PowerShell interfaces, and finding scriptable solutions is hard2024-07-24
- Hit an obscure pipeline limitation, unable to turn one input into many outputs easily2024-07-04
- Creating an AD forest needs knowing the right cmdlet and parameters, which are hard to discover2024-07-04
- Switching back to bash required more effort than thinking in PowerShell after long disuse2024-07-04