PowerShell/docs/KNOWNISSUES.md

119 lines
4.1 KiB
Markdown
Raw Normal View History

2016-01-20 21:29:06 +01:00
# Known Issues
2016-06-22 04:06:04 +02:00
## Files excluded from the build
2016-06-22 04:06:04 +02:00
#### Microsoft.PowerShell.Commands.Management
- The file `ControlPanelItemCommand.cs` is excluded from all frameworks in `Microsoft.PowerShell.Commands.Management`
because it has dependency on `[Shell32.ShellFolderItem]` for FullCLR builds.
2016-06-22 04:06:04 +02:00
#### Microsoft.PowerShell.GraphicalHost
```
"ManagementList/CommonControls/ExpanderButtonAutomationPeer.cs",
"ManagementList/CommonControls/ExpanderButton.cs",
"ManagementList/CommonControls/ExpanderButton.Generated.cs",
"ManagementList/Common/PopupControlButton.cs",
"ManagementList/Common/PopupControlButton.Generated.cs"
```
2016-06-22 04:06:04 +02:00
Excluded because they requires `UIAutomationTypes.dll`
#### Microsoft.PowerShell.ConsoleHost
These are excluded from all builds with `#if !PORTABLE`.
They require .NET types that are currently missing.
```
singleshell/installer/EngineInstaller.cs
singleshell/installer/MshHostMshSnapin.cs
```
2016-05-19 23:18:24 +02:00
## Jobs
The PowerShell jobs fail, see [#1010][].
[#1010]: https://github.com/PowerShell/PowerShell/issues/1010
2016-01-20 21:29:06 +01:00
## xUnit
The xUnit tests are disabled pending implementation of a new runner.
2016-01-20 21:29:06 +01:00
## Console Output
Performance issues have been seen in some scenarios, such as nested SSH
sessions. We believe this is likely an issue with `Console.ReadKey()` and are
investigating.
## Non-interactive console bugs
The `ConsoleHost` is buggy when running under an environment without a proper
TTY. This is due to exceptions thrown in the `RawUI` class from `System.Console`
that are silenced in the formatting subsystem. See issue [#984][].
[#984]: https://github.com/PowerShell/PowerShell/issues/984
2016-05-18 19:36:52 +02:00
## Sessions
2016-06-17 01:09:38 +02:00
On Linux, PowerShell sessions do not work because of remoting requirements, so
2016-05-18 19:36:52 +02:00
`New-PSSession` etc. crash.
2016-05-18 19:43:16 +02:00
## Aliases
The aliases that conflict with native Linux / OS X commands are removed. This is
an open discussion in issue [#929][]. See commit 7d9f43966 for their removal,
and 3582bb421 for the merge.
[#929]: https://github.com/PowerShell/PowerShell/issues/929
### ExecutionPolicy unavailable on non-Windows platforms
ExecutionPolicy is not implemented on non-Windows platforms.
`Get-ExecutionPolicy` will always return `Unrestricted` which is the correct operating mode.
`Set-ExecutionPolicy` will throw `PlatformNotSupported`.
```
Set-ExecutionPolicy : Operation is not supported on this platform.
At line:1 char:1
+ Set-ExecutionPolicy AllSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], PlatformNotSupportedException
+ FullyQualifiedErrorId : System.PlatformNotSupportedException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand
```
## File paths with literal backward slashes
On some filesystems (Linux, OS X), file paths are allowed to contain literal
backward slashes, '\', as valid filename characters. These slashes, when
escaped, are not directory separators. In Bash, the backward slash is the escape
character, so a `path/with/a\\slash` is two directories, `path` and `with`, and
one file, `a\slash`. In PowerShell, we *will* support this using the normal
backtick escape character, so a `path\with\a``\slash` or a
`path/with/a``\slash`, but this edge case is *currently unsupported*.
That being said, native commands will work as expected. Thus this is the current
scenario:
```powershell
PS > Get-Content a`\slash
Get-Content : Cannot find path '/home/andrew/src/PowerShell/a/slash' because it does not exist.
At line:1 char:1
+ Get-Content a`\slash
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (/home/andrew/src/PowerShell/a/slash:String) [Get-Co
ntent], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
PS > /bin/cat a\slash
hi
```
The PowerShell cmdlet `Get-Content` cannot yet understand the escaped backward
slash, but the path is passed literally to the native command `/bin/cat`. Most
file operations are thus implicitly supported by the native commands. The
notable exception is `cd` since it is not a command, but a shell built-in,
`Set-Location`. So until this issue is resolved, PowerShell cannot change to a
directory whose name contains a literal backward slash.