I faced a specific behavior while using verbose output in class.
This works like a charm:
# SomeModule.psm1
class SomeClass {
SomeClass() {
Write-Verbose "It works!"
}
}
function Test-SomeModule {
[CmdletBinding()]
param()
[SomeClass]::new()
}
And console output looks as expected:
PS C:\> Test-SomeModule -Verbose
VERBOSE: It works!
PS C:\>
But! if we move the class to a separate file and import it to root module:
# SomeClass.psm1
class SomeClass {
SomeClass() {
Write-Verbose "It works!"
}
}
# SomeModule.psm1
using module .\SomeClass.psm1
function Test-SomeModule {
[CmdletBinding()]
param()
[SomeClass]::new()
}
There will be no verbose out, even -Verbose parameter is specified:
PS C:\> Test-SomeModule -Verbose
PS C:\>
Can anybody explain me this? Is there any way to passthrough verbose preference to the class, imported with "using module"?