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

    Webcast: Imaging with FOG, Managing with PDQ

    Scheduled Pinned Locked Moved
    Tutorials
    10
    41
    18.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.
    • george1421G
      george1421 Moderator
      last edited by george1421

      @PDQ If there were FOG specific questions posted in chat or asked where you deferred to the FOG Project, if you could repost them here. We will answer them where we can (maybe better idea another clean thread). This was a very lively session that touched on a lot of things.

      Thank you for taking the time to set this up and give a great overview of how the best of FOG and the best of PDQ Deploy can work together.

      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!

      PDQP 1 Reply Last reply Reply Quote 3
      • x23piracyX
        x23piracy
        last edited by x23piracy

        to complete this:

        https://www.adminarsenal.com/blog/automating-software-installs-for-imaged-computers/
        https://www.adminarsenal.com/wp-content/uploads/2017/02/pdq-deploy-start-deployment.txt

        
        <#
        .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
            }
        
            # This outputs a pwoershell.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 -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()
        
                    } 
                }
            }
        }
        

        the webcast contains a lot of questions regarding to fog that couldn’t been answered by the two scotch loving guys. 😜

        Regards X23

        ║▌║█║▌│║▌║▌█

        1 Reply Last reply Reply Quote 2
        • x23piracyX
          x23piracy
          last edited by

          Here are the questions from the webcast… the more or less regarding to FOG 😜

          1. How can you image using FOG on Windows 10? Also can you use FOG with Intel Gen 6 Processors? -OCSD A.

          2. FOG is one of my favorite tools, but we purchased quite a few Lenovo M78 desktops in the past few years that will not boot with FOG’s iPXE. Is there a workaround to use on just these desktops or a way to push out bios updates safely? -Chris R.

          3. What do you guys at PDQ use FOG for? What could we do if we incorparated FOG with our current PDQ use? -Zach M.

          4. When you create a baseline, are those updated to the latest updates as they come out? If not is there away to make sure your baselines are always updated? -Paul K.

          5. Are there significant advantages to FOG over MDT for an evironment that does not have remote assets that are not VPN’d in? -Zach M.

          6. Can you create an image on FOG using an SSD? -OCSD A.

          7. Our HP desktops can boot via PXE, but our dell vostro 260’s are no longer working. I was abte to create the image, but now they are no longer working. Any ideas? -Paul K.

          8. Does fog allow offline imaging via usb key? -jorlando d.

          9. How does FOG and PDQ handle windows updates? -Ryan M.

          10. I haven’t worked with Snapins much but after I Image with Fog is there a way ti set the OOBE answers (i.e. user that will be using this computer, etc), using the snapin feature for when I image Windows 10? -C P.

          11. Are there any network card driver issues using FOG imaging? -Rod C.

          12. Do you create a Windows 7 image with full updates or are you updating with Rollup packages? -Chris W.

          13. Can I use existing SCCM images with FOG or do I need to create all new images? -Doug K.

          Regards X23

          ║▌║█║▌│║▌║▌█

          1 Reply Last reply Reply Quote 1
          • PDQP
            PDQ @george1421
            last edited by

            This post is deleted!
            1 Reply Last reply Reply Quote 0
            • x23piracyX
              x23piracy
              last edited by

              What was in this deleted post from PDQ?

              ║▌║█║▌│║▌║▌█

              PDQP 1 Reply Last reply Reply Quote 0
              • PDQP
                PDQ @x23piracy
                last edited by PDQ

                @x23piracy I was responding to george about starting a new thread with the questions, but then I noticed that you had already posted them

                We now have timestamps posted on the video for easy access to the answers

                george1421G x23piracyX 2 Replies Last reply Reply Quote 3
                • george1421G
                  george1421 Moderator @PDQ
                  last edited by george1421

                  @PDQ I think moving it to a new “clean” thread is a good idea. I’ll take care of that a bit later. I’ll move the questions and then we can answer them in one location. Thanks for adding the time codes too. That will make referencing the exact spot a bit easier.

                  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!

                  x23piracyX 1 Reply Last reply Reply Quote 0
                  • x23piracyX
                    x23piracy @george1421
                    last edited by x23piracy

                    @george1421 answering that questions only makes sense if we have the connection to the askers.
                    Also i am wondering about some questions, why we have not seen this kind of questions before? Maybe they didn’t find the forum or it’s the gap between registering an account, formulating a question and wait for the answer 😉

                    Regards X23

                    ║▌║█║▌│║▌║▌█

                    1 Reply Last reply Reply Quote 0
                    • x23piracyX
                      x23piracy @PDQ
                      last edited by x23piracy

                      @PDQ i love your employers, drinking at work 😄 are you even allowed to smoke? Do you have jobs to offer?.. just joking 😉

                      ║▌║█║▌│║▌║▌█

                      george1421G 1 Reply Last reply Reply Quote 0
                      • george1421G
                        george1421 Moderator @x23piracy
                        last edited by

                        @x23piracy said in Webcast: Imaging with FOG, Managing with PDQ:

                        Do you have jobs to offer?.. just joking 😉

                        If you “watched” the video, they are looking for a sys admin. So yes they do.

                        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!

                        1 Reply Last reply Reply Quote 0
                        • T
                          Troye Johnson
                          last edited by

                          @PDQ & @george1421 Hi guys I have a question how did you guys pass the PDQ background user credentials from fog. Did you change the fog service user to match that user?

                          Fog Server information

                          Cent OS 7
                          Running Version 1.5.2

                          george1421G 1 Reply Last reply Reply Quote 0
                          • george1421G
                            george1421 Moderator @Troye Johnson
                            last edited by

                            @Troye-Johnson I think that part needs to be answered by the PDQ guys. I can tell you by default the FOG client runs as the SYSTEM account.

                            I could see its possible that if the fog service account was changed to run as a domain user account and that domain user account had local admin rights (on the target computer) as well as rights to reach out to the PDQ Deploy server, and listed as a console user in PDQ Deploy that would work and still keep everything secure and functional.

                            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!

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              Troye Johnson @george1421
                              last edited by

                              @george1421 I did try this and it worked, but also in the webcast I heard them say “did you remove your password from the script” my boss thinks they have a way to run the script as any user from from the fog console. @PDQ can you explain how that process works?

                              Fog Server information

                              Cent OS 7
                              Running Version 1.5.2

                              B 1 Reply Last reply Reply Quote 1
                              • J
                                Joe Schmitt Senior Developer
                                last edited by Joe Schmitt

                                @george1421 the FOG client should never be set to run a domain user. The client’s security model relies on the assumption of running as SYSTEM/root. In addition if the client runs a domain user then it will not be able to rename, join, or leave a domain. Since when the client needs to temporary leave remove a machine from the domain, the client would loose all privileges.

                                Ultimately the client may or may not work as non-SYSTEM users, but its not something we recommend or will officially support.

                                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.

                                1 Reply Last reply Reply Quote 4
                                • B
                                  Bob Henderson @x23piracy
                                  last edited by

                                  @x23piracy said in Webcast: Imaging with FOG, Managing with PDQ:

                                  😄 Sounds great how do you guys want to manage fog images in a better way as it is? Little details please?
                                  FYI i am a paying PDQ Deploy Customer 😉 Lovely tool.

                                  What i found so far:

                                  http://bobhenderson.org/fog-zero-touch-imaging-with-pdq-deploy/
                                  http://bobhenderson.org/pdq-deploy-fog-imaging-happiness-take-2/

                                  Regards X23

                                  Mod edited

                                  ha, holy crap, that’s me!

                                  george1421G 1 Reply Last reply Reply Quote 2
                                  • george1421G
                                    george1421 Moderator @Bob Henderson
                                    last edited by

                                    @Bob-Henderson == Now famous.

                                    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!

                                    B 1 Reply Last reply Reply Quote 0
                                    • B
                                      Bob Henderson @george1421
                                      last edited by

                                      @george1421 Actually reminded me to renew the domain name on that one before I lost it! God I need to post more updates.

                                      We’re still using FOG and PDQ to image out our 1:1 fleet of computers, as well as having it tied into our server deployments automated via Ansible onto our Proxmox KVM boxes. It’s working fantastically.

                                      The next thing I’m working on (shoot for the moon, right?) is to use FOG to host Snapins and make them accessible outside of the LAN, that’ll then pull down some powershell to grab files via HTTPS from our web cluster to do remote installations if needed. I’ve got a proof of concept working, but I’m a 1 man shop and haven’t had time to do much more on it. But if it works, I’ll effectively be able to push installs both on and offsite, without having to use DirectAccess as the tie back. The powershell has some if’s in there to see if they’re on the LAN, which will then tell it to grab PDQ’s packages, but if they’re off, it’ll grab them from the HTTPS repository and fire off msiexec on them manually.

                                      It’s poor mans SCCM!

                                      B 1 Reply Last reply Reply Quote 1
                                      • B
                                        bmorris @Troye Johnson
                                        last edited by

                                        @Troye-Johnson Did you ever get an answer to your question? I am running into the exact same problem. Since the service runs as SYSTEM, it doesn’t have permissions to even remote powershell to our PDQ server.

                                        Fog Server Info

                                        Ubuntu 16.04.2 LTS
                                        Running Version 1.4.0
                                        SVN Revision: 6069

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          Troye Johnson
                                          last edited by Troye Johnson

                                          @bmorris Yes I we created a domain user added that users under the “pdq deploy> Preferences>Credentials” to allow it access to deploy apps and then added those credentials into the PDQdeploy script by powershell. Here is my script I encrypted the password for best practices.

                                          
                                          <#
                                          .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 = "domain\user"
                                          $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()
                                          
                                                      } 
                                                  }
                                              }
                                          }
                                          

                                          Im not sure if it works with server mode of PDQ deploy that was just released yet though I have not tested it. If you get a chance to please let me know.

                                          Fog Server information

                                          Cent OS 7
                                          Running Version 1.5.2

                                          B 4 Replies Last reply Reply Quote 0
                                          • B
                                            bmorris @Troye Johnson
                                            last edited by

                                            @Troye-Johnson Thank you very much for this. I will report back if this works for server mode of PDQ Deploy.

                                            Fog Server Info

                                            Ubuntu 16.04.2 LTS
                                            Running Version 1.4.0
                                            SVN Revision: 6069

                                            T 1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 1 / 3
                                            • First post
                                              Last post

                                            193

                                            Online

                                            12.0k

                                            Users

                                            17.3k

                                            Topics

                                            155.2k

                                            Posts
                                            Copyright © 2012-2024 FOG Project