• Recent
  • Unsolved
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login
  • Recent
  • Unsolved
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login

SnapinPack not deploying

Scheduled Pinned Locked Moved
FOG Problems
3
8
1.9k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T
    Troye Johnson
    last edited by Joe Schmitt Mar 29, 2017, 1:13 PM Mar 29, 2017, 6:17 PM

    Hi all,

    I am having issues with a snapin pack deployment and I am not sure where to start troubleshooting any guidance would be appreciated.

    First my server version

    Wed Mar 29, 2017 14:10 pm
    CentOS
    Running Version 1.3.4
    SVN Revision: 6066

    I am trying to use a PS script within a snapin pack. The script works fine outside of fog its just having issues when being called by fog I honestly cant even tell if the zip is downloading to the machine in the fog temp directory.
    0_1490811422806_fogsnapin.PNG

    The client logs is below

    ------------------------------------------------------------------------------
    ---------------------------------SnapinClient---------------------------------
    ------------------------------------------------------------------------------
     3/29/2017 2:06 PM Client-Info Client Version: 0.11.9
     3/29/2017 2:06 PM Client-Info Client OS:      Windows
     3/29/2017 2:06 PM Client-Info Server Version: 1.3.4
     3/29/2017 2:06 PM Middleware::Response Success
     3/29/2017 2:06 PM SnapinClient Snapin Found:
     3/29/2017 2:06 PM SnapinClient     ID: 106
     3/29/2017 2:06 PM SnapinClient     Name: PDQ
     3/29/2017 2:06 PM SnapinClient     Created: 2017-03-29 14:06:37
     3/29/2017 2:06 PM SnapinClient     Action: 
     3/29/2017 2:06 PM SnapinClient     Pack: True
     3/29/2017 2:06 PM SnapinClient     Hide: False
     3/29/2017 2:06 PM SnapinClient     Server: 
     3/29/2017 2:06 PM SnapinClient     TimeOut: 60
     3/29/2017 2:06 PM SnapinClient     SnapinPack File: powershell.exe
     3/29/2017 2:06 PM SnapinClient     SnapinPack Args: -ExecutionPolicy Bypass -File "[FOG_SNAPIN_PATH]\pdqman_deploy.ps1" -DeployComputerName "pdq-01" -Packagename "Fedline"
     3/29/2017 2:06 PM SnapinClient     File: pdqremote.zip
     3/29/2017 2:06 PM Middleware::Communication Download: http://fogserver/fog/service/snapins.file.php?mac=18:A9:05:F5:60:9E||00:00:00:00:00:00:00:E0&taskid=106
     3/29/2017 2:07 PM SnapinClient C:\Program Files\FOG\tmp\pdqremote.zip
     3/29/2017 2:07 PM SnapinClient Processing SnapinPack pdqremote.zip
     3/29/2017 2:07 PM SnapinClient Extracting SnapinPack
     3/29/2017 2:07 PM SnapinClient Processing SnapinPack settings
     3/29/2017 2:07 PM SnapinClient New SnapinPack File: powershell.exe
     3/29/2017 2:07 PM SnapinClient New SnapinPack Args: -ExecutionPolicy Bypass -File "C:\Program Files\FOG\tmp\PDQ\pdqman_deploy.ps1" -DeployComputerName "pdq-01" -Packagename "Fedline"
     3/29/2017 2:07 PM Bus {
      "self": true,
      "channel": "Notification",
      "data": "{\r\n  \"title\": \"Installing PDQ\",\r\n  \"message\": \"Please do not shutdown until this is completed\"\r\n}"
    }
     3/29/2017 2:07 PM Bus Emmiting message on channel: Notification
     3/29/2017 2:07 PM SnapinClient Starting snapin...
     3/29/2017 2:07 PM SnapinClient Snapin finished
     3/29/2017 2:07 PM SnapinClient Return Code: 0
     3/29/2017 2:07 PM Bus {
      "self": true,
      "channel": "Notification",
      "data": "{\r\n  \"title\": \"PDQ installed\",\r\n  \"message\": \"Installation has finished and is now ready for use\"\r\n}"
    }
     3/29/2017 2:07 PM Bus Emmiting message on channel: Notification
     3/29/2017 2:07 PM Middleware::Communication URL: http://fogserver/fog/service/snapins.checkin.php?taskid=106&exitcode=0&mac=18:A9:05:F5:60:9E||00:00:00:00:00:00:00:E0&newService&json
    ------------------------------------------------------------------------------
    

    Thank you for any help.

    Fog Server information

    Cent OS 7
    Running Version 1.5.2

    1 Reply Last reply Reply Quote 0
    • J
      Joe Schmitt Senior Developer
      last edited by Mar 29, 2017, 7:15 PM

      @Troye-Johnson you need to keep in mind snapins run as SYSTEM . This usually results in some permissions issues. I’d recommend debugging the script by making it log to some file such as C:\pdqman_deploy.txt to ensure its running, and track down which command isn’t working.

      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

      T 1 Reply Last reply Mar 29, 2017, 7:38 PM Reply Quote 0
      • T
        Troye Johnson @Joe Schmitt
        last edited by Troye Johnson Mar 29, 2017, 2:23 PM Mar 29, 2017, 7:38 PM

        @Joe-Schmitt

        Yes I am aware it runs as system. The script has credentials embedded for network access, but it does not seem to even be making it that far is there a way for me to ensure the zip is being downloaded extracted and ran?

        Fog Server information

        Cent OS 7
        Running Version 1.5.2

        1 Reply Last reply Reply Quote 0
        • J
          Joe Schmitt Senior Developer
          last edited by Mar 29, 2017, 7:45 PM

          @Troye-Johnson said in SnapinPack not deploying:

          Yes I am aware it runs as system. The script has credentials embedded for network access, but it does not seem to even be making it that far is there a wasy for me to ensure the zip is being downloaded extracted and ran?

          Per my first post:

          I’d recommend debugging the script by making it log to some file such as C:\pdqman_deploy.txt to ensure its running, and track down which command isn’t working.

          Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

          T 1 Reply Last reply Mar 29, 2017, 8:47 PM Reply Quote 0
          • T
            Troye Johnson @Joe Schmitt
            last edited by Troye Johnson Mar 29, 2017, 2:51 PM Mar 29, 2017, 8:47 PM

            @Joe-Schmitt

            Something strange is definitely going on I tried to send the same snapin to another computer and it changed my snapin here are the logs

            0_1490820687086_foglogs.PNG

            The highlighted lines

            was not how it was before. the thing is this time I actually was able to see the Zip file download and extract and attempt to run on the machine.

            Fog Server information

            Cent OS 7
            Running Version 1.5.2

            B 1 Reply Last reply Mar 29, 2017, 8:52 PM Reply Quote 0
            • B
              Bob Henderson @Troye Johnson
              last edited by Mar 29, 2017, 8:52 PM

              @Troye-Johnson I know I sound like I’m a broken record here, but have you attempted to have your pdq script itself dump to a log file, to see if it’s even being alled and the like?

              Also, those &quot symbols are usually found to replace " in commands. Could attempt pulling them out and going to like ’ in your command, or perhaps using variables to call the relevant data instead?

              T 1 Reply Last reply Mar 29, 2017, 9:05 PM Reply Quote 0
              • T
                Troye Johnson @Bob Henderson
                last edited by Joe Schmitt Mar 29, 2017, 4:45 PM Mar 29, 2017, 9:05 PM

                @Bob-Henderson

                Its ok Bob, but yes the pdq script it self does dump a script when it runs. The script it self can be run outside of the fog snapin feature flawlessly. by me logging into a machine locally not on the domain and running the script. the problem is the fog is not running the script and I cannot find logs to tell me why its not running correctly.

                If it helps here is the script.

                <#
                .SYNOPSIS
                Start a PDQ Deploy Deployment on a target machine
                
                .DESCRIPTION
                Trigger a PDQ Deploy deployment to start locally or on a remote machine with PDQ Deploy installed
                
                .EXAMPLE
                Start-Deployment -PackageName "Example Package" -Targets "Wolverine"
                
                .EXAMPLE
                Start-Deployment -ScheduleName "Example Schedule" -Targets "Wolverine"
                
                .EXAMPLE
                Start-Deployment -ScheduleID 123 -Targets "Wolverine"
                
                .PARAMETER DeployComputerName
                The machine with PDQ Deploy installed. This defaults to the local machine
                
                .PARAMETER PackageName
                The names of packages on DeployMachine that you wish to use
                
                .PARAMETER ScheduleName
                The names of schedules on DeployMachine that you wish to use
                
                .PARAMETER ScheduleID
                The schedule IDs on DeployMachine that you wish to use
                
                .PARAMETER Targets
                A list of targets that you wish to deploy a package or schedule to. Leave blank if you wish to target the local machine.
                #>
                [cmdletbinding(
                    SupportsShouldProcess = $True
                )]
                Param(
                
                    [String]$DeployComputerName = $env:COMPUTERNAME,
                
                    [Parameter(ParameterSetName = "Package")]
                    [string]$PackageName,
                
                    [Parameter(ParameterSetName = "Package")]
                    [String[]]$Targets = $env:COMPUTERNAME,
                
                    [Parameter(ParameterSetName = "Schedule")]
                    [string]$ScheduleName,
                
                    [Parameter(ParameterSetName = "ScheduleID")]
                    [Int]$ScheduleID
                
                )
                
                Process {
                    
                    # Add parameters to a hashtable to easily push into invoke-command as an argument
                    $MyParameters = @{
                        DeployComputerName = $DeployComputerName
                        PackageName        = $PackageName
                        Targets            = $Targets
                        ScheduleName       = $ScheduleName
                        ScheduleID         = $ScheduleID
                        DeploymentType     = $PSCmdlet.ParameterSetName
                    }
                	#OS Check
                	
                	$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
                	
                	#Credentials
                
                $User = "pdqtest"
                $PasswordFile = "$PSScriptRoot\Password.txt"
                $KeyFile = "$PSScriptRoot\AES.key"
                $key = Get-Content $KeyFile
                $MyCredential = New-Object -TypeName System.Management.Automation.PSCredential `
                 -ArgumentList $User, (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key)
                
                    # This outputs a powershell.log to the root directory of the target machine
                    $MyParameters | Out-String | Out-File C:\powershell.log
                
                    # Testing to see if PSRemoting is enabled
                    If (Test-WSMan -ComputerName $DeployComputerName) {
                            
                        Write-Verbose "Test-WSMan test passed on $DeployComputerName"
                
                        # Added -Whatif capability to script
                        If ( $PSCmdlet.ShouldProcess($DeployComputerName, "Starting deployment with the following parameters:`n $($MyParameters | Out-String)") ) {
                            
                            # Connect to Deploy machine and attempts to start a deployment
                            Invoke-Command -ComputerName $DeployComputerName -credential $MyCredential -ArgumentList ($MyParameters) -ScriptBlock {
                                Param ($MyParameters)
                
                                # This outputs a powershell.log to the root directory of the deploy machine
                                $MyParameters | Out-String | Out-File C:\powershell.log
                
                                # Build command string based on deployment type
                                Switch ($MyParameters.DeploymentType) {
                
                                    "Package" {
                
                                        $PDQDeployCommand = "pdqdeploy deploy -package ""$($MyParameters.PackageName)"" -targets $($MyParameters.Targets)"
                                    
                                    }
                        
                                    "Schedule" {
                                    
                                        $DB = "$env:ProgramData\Admin Arsenal\PDQ Deploy\Database.db"
                                        $SQL = "SELECT ScheduleID FROM Schedules WHERE Name = '$($MyParameters.ScheduleName)' COLLATE NOCASE;"
                                        $ScheduleID = $SQL | sqlite3.exe $db
                                        $PDQDeployCommand = "pdqdeploy StartSchedule -ScheduleId $ScheduleID"
                                    
                                    }
                
                                    "ScheduleID" {
                                    
                                        $PDQDeployCommand = "pdqdeploy StartSchedule -ScheduleId $($MyParameters.ScheduleID)"
                                    
                                    }
                                }                    
                
                                # Append the actual command that will be run to powershell.log
                                "Invoke-command: $PDQDeployCommand" | Out-File C:\powershell.log -Append
                
                                # Create and invoke scriptblock
                                $PDQDeployCommand = [ScriptBlock]::Create($PDQDeployCommand)
                                $PDQDeployCommand.Invoke()
                
                            } 
                        }
                    }
                }
                }
                

                While it may say the script successfully it didn’t actually run.

                Fog Server information

                Cent OS 7
                Running Version 1.5.2

                1 Reply Last reply Reply Quote 0
                • T
                  Troye Johnson
                  last edited by Mar 30, 2017, 7:29 PM

                  Good news this morning I rebooted the server gave it another try and it all worked.

                  Fog Server information

                  Cent OS 7
                  Running Version 1.5.2

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  1 / 1
                  • First post
                    6/8
                    Last post

                  152

                  Online

                  12.0k

                  Users

                  17.3k

                  Topics

                  155.2k

                  Posts
                  Copyright © 2012-2024 FOG Project