Navigation

    Inedo Community Forums

    Forums

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. lucas_001
    L
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    lucas_001

    @lucas_001

    0
    Reputation
    2
    Posts
    1
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    lucas_001 Follow

    Best posts made by lucas_001

    This user hasn't posted anything yet.

    Latest posts made by lucas_001

    • RE: Otter - PSEnsure script failed

      Hello Alana,

      Yes, you are right. AHVALUEDRIFTED has to be a boolean value. The name implies it actually but I did not connect the dots.

      Thank you for the help!

      posted in Support
      L
      lucas_001
    • Otter - PSEnsure script failed

      Hello,

      I'm evaluating Otter Version 2023.6 (Build 2).
      I'm trying to write a remediating drift powershell script:

      <# 
      .DESCRIPTION
      This script ensures that the specified environment variable is set to the desired value.
      
      .PARAMETER EnvironmentVariableName
      Environment variable name.
      
      .PARAMETER EnvironmentVariableValue
      Desired value for the environment variable.
      
      .AHEXECMODE 
      $ExecutionMode
      
      .AHDESIREDVALUE 
      $EnvironmentVariableDesiredValue
      
      .AHCURRENTVALUE 
      $EnvironmentVariableCurrentValue
      
      .AHVALUEDRIFTED
      $EnvironmentVariableDriftedValue
      #>
      
      param ([string]$EnvironmentVariableName, [string]$EnvironmentVariableValue)
      
      $EnvironmentVariableDesiredValue = $EnvironmentVariableValue
      $EnvironmentVariableCurrentValue = [System.Environment]::GetEnvironmentVariable($EnvironmentVariableName, [System.EnvironmentVariableTarget]::Machine)
      
      Write-Host "Current value of environment variable '$EnvironmentVariableName' is '$EnvironmentVariableCurrentValue'."
      
      if ($ExecutionMode -eq "Collect") {
        if ($EnvironmentVariableValue -ne $EnvironmentVariableCurrentValue) {
          Write-Information "Environment variable '$EnvironmentVariableName' has drifted from the desired value."
          $EnvironmentVariableDriftedValue = $EnvironmentVariableCurrentValue
          return $false
        } 
        else {
          Write-Information "Environment variable '$EnvironmentVariableName' is set to the desired value."
          return $true
        }
      } 
        
      elseif ($ExecutionMode -eq "Configure") {     
        if ($EnvironmentVariableValue -ne $EnvironmentVariableCurrentValue) {
          [System.Environment]::SetEnvironmentVariable($EnvironmentVariableName, $EnvironmentVariableValue, [System.EnvironmentVariableTarget]::Machine)
          Write-Information "Environment variable '$EnvironmentVariableName' has been set to the desired value."
      
        } 
        else {
          Write-Information "Environment variable '$EnvironmentVariableName' is set to the desired value."
        }
      }   
      

      When this script is executed on a server it fails with following error:

      DEBUG: 2024-10-03 10:05:11Z - Beginning collection run...
      DEBUG: 2024-10-03 10:05:12Z - Collecting current configuration from server...
      DEBUG: 2024-10-03 10:05:12Z - Using Windows PowerShell 5.1...
      DEBUG: 2024-10-03 10:05:12Z - Importing ExecutionMode...
      DEBUG: 2024-10-03 10:05:12Z - Assigning parameter EnvironmentVariableName...
      DEBUG: 2024-10-03 10:05:12Z - Assigning parameter EnvironmentVariableValue...
      INFO : 2024-10-03 10:05:12Z - Current value of environment variable 'MyTestVar' is ''.
      INFO : 2024-10-03 10:05:12Z - Environment variable 'MyTestVar' is set to the desired value.
      ERROR: 2024-10-03 10:05:12Z - Unhandled exception: System.Management.Automation.Remoting.PSRemotingTransportException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
       ---> System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
         at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
         at System.Text.Json.Utf8JsonReader.Read()
         at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack)
         at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter)
         at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 json, JsonDocumentOptions options)
         at Inedo.Extensions.Scripting.PowerShell.PowerShellScriptRunner.ParseJson(ReadOnlyMemory`1 json) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E380919\Src\Scripting\InedoExtension\PowerShell\PowerShellScriptRunner.cs:line 387
         at Inedo.Extensions.Scripting.PowerShell.PowerShellScriptRunner.<>c__DisplayClass32_0.<RunAsync>b__0(Object s, DataAddedEventArgs e) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E380919\Src\Scripting\InedoExtension\PowerShell\PowerShellScriptRunner.cs:line 217
         at System.Management.Automation.PSDataCollection`1.RaiseEvents(Guid psInstanceId, Int32 index)
         at System.Management.Automation.PSDataCollection`1.InternalAddRange(Guid psInstanceId, ICollection collection)
         at System.Management.Automation.Internal.PSDataCollectionStream`1.Write(Object obj, Boolean enumerateCollection)
         at System.Management.Automation.Runspaces.Internal.ClientRemotePowerShell.HandleOutputReceived(Object sender, RemoteDataEventArgs`1 eventArgs)
         at System.Management.Automation.Internal.ClientPowerShellDataStructureHandler.ProcessReceivedData(RemoteDataObject`1 receivedData)
         at System.Management.Automation.Remoting.ClientRemoteSessionDSHandlerImpl.ProcessNonSessionMessages(RemoteDataObject`1 rcvdData)
         at System.Management.Automation.Remoting.BaseTransportManager.OnDataAvailableCallback(RemoteDataObject`1 remoteObject)
         at System.Management.Automation.Remoting.Client.BaseClientTransportManager.ServicePendingCallbacks(Object objectToProcess)
         --- End of inner exception stack trace ---
         at System.Management.Automation.Runspaces.AsyncResult.EndInvoke()
         at System.Management.Automation.PowerShell.EndInvoke(IAsyncResult asyncResult)
         at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
      --- End of stack trace from previous location ---
         at Inedo.Extensions.Scripting.PowerShell.PowerShellScriptRunner.RunAsync(String script, Dictionary`2 variables, Dictionary`2 parameters, Dictionary`2 outVariables, String workingDirectory, CancellationToken cancellationToken) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E380919\Src\Scripting\InedoExtension\PowerShell\PowerShellScriptRunner.cs:line 267
         at Inedo.Extensions.Scripting.PowerShell.ExecutePowerShellJob.StandardRunner.ExecuteAsync(String script, Dictionary`2 variables, Dictionary`2 parameters, String[] outVariables, String workingDirectory, CancellationToken cancellationToken) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E380919\Src\Scripting\InedoExtension\PowerShell\ExecutePowerShellJob.cs:line 278
         at Inedo.Extensions.Scripting.PowerShell.ExecutePowerShellJob.ExecuteAsync(CancellationToken cancellationToken) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E380919\Src\Scripting\InedoExtension\PowerShell\ExecutePowerShellJob.cs:line 37
         at Inedo.Agents.AgentCommand`1.Inedo.Agents.IAgentCommandWithResponse.ExecuteAsync(Stream responseStream)
         at Inedo.Agents.AgentCommandDispatcher.ExecuteCommandAsync(AgentCommand command, IClientConnection connection)
      ERROR: 2024-10-03 10:05:12Z - Collection run failed.
      

      I would like to add that when I removed all augmented help metadata then this script would run with no issues.

      Can you tell me what is the problem?

      posted in Support
      L
      lucas_001