Error: Variable is not assigned in the method
Aus Wiki-WebPerfect
You are writing a own PowerShell class and get the following error "Variable is not assigned in the method". -> Here is the solution for this.
Inhaltsverzeichnis
Error
Variable is not assigned in the method.
Cause
This error occurs because you are using a predefinied variable in a class method and the class method is in a different scope.
Example to reproduce the error
Class CustomClass { [String]$Version GetVersion() { If ($PSVersionTable) { $this.Version = $PSVersionTable.PSVersion } } } $CustomClass = [CustomClass]::new() $CustomClass.GetVersion() Write-Host $CustomClass.Version
Solution
- Add the Scope to your variable ($GLOBAL:<YOUR_VARIABLE>)
Here the solution for the example above:
Class CustomClass { [String]$Version GetVersion() { If ($GLOBAL:PSVersionTable) { $this.Version = $GLOBAL:PSVersionTable.PSVersion } } } $CustomClass = [CustomClass]::new() $CustomClass.GetVersion() Write-Host $CustomClass.Version