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

Inject HP and Lenovo drivers, applications such as Office, Google Chrome, Mozilla Firefox, VLC media player and fonts like Garamond, and Avenir light, demi, and regular into the Windows 11 images

Scheduled Pinned Locked Moved Unsolved
FOG Problems
3
5
612
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.
  • P
    professorb24
    last edited by Dec 13, 2023, 5:21 PM

    Is it possible to inject HP and Lenovo drivers, applications such as Office, Google Chrome, etc… Is there also a way to inject fonts such as Garamond and Avenir Pro light, demi, and regular into customized Windows 11 image that I could create using FOG?

    G 1 Reply Last reply Dec 13, 2023, 5:48 PM Reply Quote 0
    • G
      george1421 Moderator @professorb24
      last edited by Dec 13, 2023, 5:48 PM

      @professorb24 The quick answer is YES.

      The bit longer answer is around your deployment techniques.

      Lets go with the driver aspect first. I have a few tutorials around this (pertaining to windows 10 and earlier but should work with windows 11 too since its built on the windows 10 kernel). While this is an older tutorial its still accurate and functional: https://forums.fogproject.org/topic/11126/using-fog-postinstall-scripts-for-windows-driver-injection-2017-ed Its just the unattend.xml section doesn’t work correctly now where there is a post that discusses using the pnputil.exe program called from the setupcomplete.cmd batch file.

      For the applications and fonts, you can install them using FOG Snapins function to deploy those apps with FOG. Myself personally I would create a golden (mother) image and preload all of the apps that don’t use a GUID for identification (enterprise AV comes to mind) and preload them onto the golden image (using audit mode) prior to using sysprep and capturing the image with FOG. Then for one off or GUID based applications install them post deployment with FOG Snapins.

      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!

      P 1 Reply Last reply Dec 22, 2023, 4:59 PM Reply Quote 0
      • P
        professorb24 @george1421
        last edited by Dec 22, 2023, 4:59 PM

        @george1421 I tried adding the applications to the FOG snapins, and none of them would install using the FOG snapin function on the FOG server GUI. Can you please show me an example of using the FOG Snapins function?

        T 1 Reply Last reply Dec 22, 2023, 5:02 PM Reply Quote 0
        • T
          Tom Elliott @professorb24
          last edited by Tom Elliott Dec 22, 2023, 11:04 AM Dec 22, 2023, 5:02 PM

          @professorb24 First,

          Creating your base image should include installing the software you need:

          Fonts
          VLC, Firefox, Chrome, Office, etc…

          While it is “possible” to do so with snapins, this isn’t really the point of them.

          is there a reason you couldn’t install these always needed things and capture the image with that?

          Second

          Drivers could be installed via Snapins, but probably better using the driver injection that George is talking about.

          Third,
          Snapins are handled like tasks.

          You create the Snapins in the UI
          Associate the snapins to the Host
          Deploy the specific Snapins or the all associated snapins like you would any other task.

          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.

          Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

          Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

          P 1 Reply Last reply Feb 2, 2024, 12:19 AM Reply Quote 0
          • P
            professorb24 @Tom Elliott
            last edited by Feb 2, 2024, 12:19 AM

            @Tom-Elliott i’ve tried this fog.custominstall

            Create the following file named fog.custominstall in the following path on the FOG server /images/postdownloadscripts.
            Copy the content into that newly created file
            #!/bin/bash
            . /usr/share/fog/lib/funcs.sh
            [[ -z $postdownpath ]] && postdownpath=“/images/postdownloadscripts/”
            case $osid in
            5|6|7|9)
            clear
            [[ ! -d /ntfs ]] && mkdir -p /ntfs
            getHardDisk
            if [[ -z $hd ]]; then
            handleError “Could not find hdd to use”
            fi
            getPartitions $hd
            for part in $parts; do
            umount /ntfs >/dev/null 2>&1
            fsTypeSetting “$part”
            case $fstype in
            ntfs)
            dots “Testing partition $part”
            ntfs-3g -o force,rw $part /ntfs
            ntfsstatus=“$?”
            if [[ ! $ntfsstatus -eq 0 ]]; then
            echo “Skipped”
            continue
            fi
            if [[ ! -d /ntfs/windows && ! -d /ntfs/Windows && ! -d /ntfs/WINDOWS ]]; then
            echo “Not found”
            umount /ntfs >/dev/null 2>&1
            continue
            fi
            echo “Success”
            break
            ;;
            )
            echo " * Partition $part not NTFS filesystem"
            ;;
            esac
            done
            if [[ ! $ntfsstatus -eq 0 ]]; then
            echo “Failed”
            debugPause
            handleError "Failed to mount $part ($0)\n Args: $
            "
            fi
            echo “Done”
            debugPause
            . ${postdownpath}fog.copydrivers
            # . ${postdownpath}fog.updateunattend
            umount /ntfs
            ;;
            *)
            echo “Non-Windows Deployment”
            debugPause
            return
            ;;
            esac

            Save and exit your text editor.
            Make the script executable with chmod 755 /images/postdownloadscripts/fog.custominstall **this part i get chmod: cannot * chmod 755 ‘/images/postdownloadscripts/fog.custominstall’ :No such file or directory please help!!!
            fog.copydrivers

            Create the following file named fog.copydrivers in the following path on the FOG server /images/postdownloadscripts.
            Copy the content into that newly created file
            #!/bin/bash
            ceol=tput el;
            manu=dmidecode -s system-manufacturer;
            dots “Identifying hardware”
            case $manu in
            [Ll][Ee][Nn][Oo][Vv][Oo])
            machine=$(dmidecode -s system-version)
            ;;
            [Dd][Ee][Ll][Ll])
            machine=$(dmidecode -s system-product-name)
            ;;
            I[Nn][Tt][Ee][Ll])
            # For the Intel NUC and intel mobo pick up the system type from the
            # baseboard product name
            machine=$(dmidecode -s baseboard-product-name)
            ;;
            *)
            # Technically, we can remove the Dell entry above as it is the same as this [default]
            machine=$(dmidecode -s system-product-name)
            ;;
            esac

            if the machine isn’t identified then no need to continue with this script, just return to caller

            if [[ -z $machine ]]; then
            echo “Unable to identify the hardware for manufacturer ${manu}”;
            debugPause;
            return;
            fi
            echo “${machine} Identified”;

            Removes Spaces in machine name, works better with path definitions

            machine=“${machine%”${machine##*[![:space:]]}“}”;

            14-Sep-23 Jeffrey Boulais posted that the above code did not work for his install. He

            supplied this code as an alternative. If you run in to a problem using my code

            comment out my code and see if his code works better for your installation. The

            only right way is the one that works. Thank you Jeff for your input.

            machine=“$(echo -e “${machine}” | tr -d ‘[:space:]’)”

            03-Jan-24 marsface posted that he could not get either of the two above machine clean up commands to work correctly so he provided this one below which worked for him.

            machine=“${machine//[[:space:]]/}”

            dots “Verifying we’ve found the OS disk”
            if [[ ! -d /ntfs/windows && ! -d /ntfs/Windows && ! -d /ntfs/WINDOWS ]]; then
            echo “! OS root Not found !”;
            debugPause
            return;
            fi
            echo “Found”;

            dots “Verifying target Arch”
            system64=“/ntfs/Windows/SysWOW64/regedit.exe”
            [[ ! -f $system64 ]] && arch=“x86” || arch=“x64”
            echo “${arch} found”;

            debugPause

            set osn path names based on the osid set in the FOG WebGui

            case $osid in
            5) osn=“win7” ;;
            6) osn=“win8” ;;
            7) osn=“win8.1” ;;
            9) osn=“win10” ;;
            esac

            dots “Preparing Drivers”
            clientdriverpath=“/ntfs/Drivers”
            remotedriverpath=“/images/drivers/$machine/$osn/$arch”

            debugPause

            if [[ ! -d “${remotedriverpath}” ]]; then
            echo “failed”;
            echo " ! Driver package not found for ${machine}/$osn/$arch ! ";
            debugPause;
            return;
            fi
            echo “Ready”;

            debugPause

            [[ ! -d $clientdriverpath ]] && mkdir -p “$clientdriverpath” >/dev/null 2>&1
            echo -n “In Progress”

            rsync -aqz “$remotedriverpath” “$clientdriverpath” >/dev/null 2>&1

            [[ ! $? -eq 0 ]] && handleError “Failed to download driver information for [$machine/$osn/$arch]”

            debugPause

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

            224

            Online

            12.0k

            Users

            17.3k

            Topics

            155.2k

            Posts
            Copyright © 2012-2024 FOG Project