Get-Content function:prompt
Get-Item function:prompt
Get-Content function:global:prompt
Get-Item function:global:prompt
Get-Content variable:ConfirmPreference
Get-Item variable:ConfirmPreference
Get-Content variable:global:ConfirmPreference
Get-Item variable:global:ConfirmPreference
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) ";
# .Link
# https://go.microsoft.com/fwlink/?LinkID=225750
# .ExternalHelp System.Management.Automation.dll-help.xml
CommandType Name Version Source
----------- ---- ------- ------
Function prompt
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) ";
# .Link
# https://go.microsoft.com/fwlink/?LinkID=225750
# .ExternalHelp System.Management.Automation.dll-help.xml
CommandType Name Version Source
----------- ---- ------- ------
Function prompt
High
Name Value
---- -----
ConfirmPreference High
High
Name Value
---- -----
ConfirmPreference High
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) ";
# .Link
# https://go.microsoft.com/fwlink/?LinkID=225750
# .ExternalHelp System.Management.Automation.dll-help.xml
CommandType Name Version Source
----------- ---- ------- ------
Function prompt
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) ";
# .Link
# https://go.microsoft.com/fwlink/?LinkID=225750
# .ExternalHelp System.Management.Automation.dll-help.xml
High
Name Value
---- -----
ConfirmPreference High
High
The final Get-Item call in both cases returns _nothing_. No error, no output. But _all_ Get-Content calls successfully find the targeted item. As @mklement0 notes, this affects the Alias provider as well as Function and Variable providers.
Name Value
---- -----
PSVersion 6.1.0
PSEdition Core
GitCommitId 6.1.0
OS Microsoft Windows 10.0.17763
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Nice find; also affects the Alias provider, which has scoped definitions too.
Note that namespace variable notation isn't affected, as it is the equivalent of the Get-Content calls; e.g., ${function:global:prompt} works fine.
Indeed, namespace variable notation is what I was toying with when I stumbled across this weird inconsistency!
This is a really interesting find.
Get-ChildItem behaves the same way.
I've been digging into this, and it _looks_ like the code from the affected providers all traces back to somewhere in SessionStateProvider and the methods buried deeply in there somewhere. I'm having difficulty tracing back exactly where this is going wrong at the moment, but I'll keep looking a bit later.