Welcome › Forums › DSC (Desired State Configuration) › Powershell ISE vs console (DSC executing)
This topic contains 2 replies, has 2 voices, and was last updated by
-
AuthorPosts
-
February 20, 2017 at 3:20 pm #64711
Hello,
Can anybody tell me what is the difference between running DSC script by Powershell ISE vs standard console? When I run my script by PS ISE everything works fine, DSC applies to 2 servers incl. encryption. But when I run exactly the same script by "Run with Powershell" I'm getting such error messages:
System.Management.Automation.RuntimeException: You cannot call a method on a null-valued expression.
at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception
exception)
at System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)."line 1021 at , : line 1"
These errors point to the below line (in bold):
Configuration Config1
{
...
...
...
}
$configdata = @{
AllNodes = @(
@{
NodeName = "Server1"
PSDscAllowDomainUser = $true
CertificateFile = "$((Get-ChildItem "E:\" | ? {$_.Name -like "MyFolderName"}).fullname)\Server1.cer"
Thumbprint = ($Thumbs | ? {$_ -like "Server1*"}).Split("=")[1]
}@{
NodeName = "Server2"
PSDscAllowDomainUser = $true
CertificateFile = "$((Get-ChildItem "E:\" | ? {$_.Name -like "MyFolderName"}).fullname)\Server2.cer"
Thumbprint = ($Thumbs | ? {$_ -like "Server2*"}).Split("=")[1]
}
)
}The problem is with the Server2 (I'm running script on Server1). All paths are correct, can I use such syntax in the hashtable? the problem is with the standard powershell console, does anybody know why PS ISE does not return any errors?
-
February 20, 2017 at 3:25 pm #64761
The ISE maintains a more persistent environment than the console. At a guess, based on the error, $_ is a null expression when you're running it, which makes me suspect E: doesn't exist in that context.
-
February 20, 2017 at 4:34 pm #64807
I don't know what to say 🙂 I'm sure E: drive as well as "MyFolderName" exist on the Server 2, I see it now. I tested it by execute command get-item "$((Get-ChildItem "E:\" | ? {$_.Name -like "MyFolderName"}).fullname)\Server2.cer" on the Server2 with success.
Anyway if E: drive would not exist on the Server2 I guess PS ISE should also return an error.Maybe there is some authentication/permissions difference when running DSC by ISE or standard console?
-
AuthorPosts
The topic ‘Powershell ISE vs console (DSC executing)’ is closed to new replies.