• Using FOG Postinstall scripts for Windows Driver injection 2017 ed.

    Pinned Locked
    4
    1 Votes
    4 Posts
    14k Views
    george1421G

    Update: With the later releases of Win10 post 1703, the offline servicing section doesn’t seem to load the drivers. As a fix, add the following lines to your setupcomplete.cmd batch file to load the drivers at the end of the OSD process.

    pnputil.exe /add-driver "C:\Drivers\*.inf" /subdirs /install pnputil.exe /add-driver "C:\Drivers\*.inf" /subdirs /install pnputil.exe /add-driver "C:\Drivers\*.inf" /subdirs /install

    Running pnputil 2 times seems to be the sweet spot to capture all of the hardware devices, because some hardware is hidden behind other hardware drivers (such as USB3 and PCI hardware)

    Update: if you want to use the pnputil.exe command with versions of windows before Win10 you will need to use this command instead, since the older versions of pnputil do not support the /subdir switch.

    forfiles /p "C:\Drivers" /s /m *.inf /c “cmd /c pnputil -a @Path” forfiles /p "C:\Drivers" /s /m *.inf /c “cmd /c pnputil -a @Path” forfiles /p "C:\Drivers" /s /m *.inf /c “cmd /c pnputil -a @Path”
  • FOG Post install script for Win Driver injection

    Pinned
    69
    8 Votes
    69 Posts
    58k Views
    JJ FullmerJ

    @Coolguy3289 Sorry for the crazy delayed reply, I just saw this, I must have missed the notification

    This is what my general structure looks like. You would not need to recreate that with the + pseudo wildcards, that is part of my windows side matching that I have now actually replaced with this modellist method. The grep line will search each model folder in the given make folder regardless of its name. I will probably end up changing those folders to be something like HP ElitePro G# or something like that.

    e880c851-3f3c-418d-adb9-8ff886199667-image.png

    Then say I have a HP Elite Mini 600 G9 Desktop PC

    This bit

    makePth="/images/drivers/${make}" cd $makePth;

    Should get me into the /images/drivers/hp folder

    Then this listFile=`grep -il "$model" ./*/*-ModelList.txt` should search each HP ModelList.txt for that model string using grep and return the matching modelList file with a match. In this case it would match /images/drivers/hp/HP + +00 G9+/HP + +00 G9+-ModelList.txt as that file looks like this where I have various possible matching model names these drivers apply to including the one being searched for

    HP Elite Mini 600 G9 Desktop PC HP Elitedesk 600 G9 DM HP Elite Mini 800 G9 Desktop PC HP Pro Mini 400 G9 Desktop PC HP EliteOne 840 23.8 inch G9 All-in-One Desktop PC

    And then this remotedriverpath="$makePth/${listFile%/*}" should point to the parent path of where the found ModelList.txt file was found and it will then proceed to inject that folder to `C:\Out-Of-Box Drivers\HP + +00 G9+

    And as to creating those modelList.txt files, it’s easier than it sounds, especially if you use the fog api powershell module FogApi (see my signature).

    For example, to get all my current HP (and any other make that stores the friendly name of their model in system-product-name) model names as they are detected by fog you would setup the FogApi module in powershell

    Install-Module FogApi; Set-FogServerSettings -interactive

    Then this one liner would get all your fog host inventories, select just the sysman and sysproduct fields, and then sort it to unique model names giving you a list of model names you have in your inventory

    (get-foghosts).inventory | select-object sysman,sysproduct | sort-object sysproduct -Unique

    You’d also what to run these other 2 commands to get lists of other model names stored in system-version or baseboard-product-name

    (get-foghosts).inventory | select-object sysman,sysversion | sort-object sysversion -Unique (get-foghosts).inventory | select-object sysman,mbproductname | sort-object mbproductname -Unique

    You could probably expound from there to programatically create to folder structure and the modelList files of your current hosts, but I don’t have time at the moment to get that deep into it. I don’t have that many different models and already had the folder structure so just getting those lists was all I needed to construct the model list files

  • Powershell API Module

    Pinned
    32
    4 Votes
    32 Posts
    13k Views
    JJ FullmerJ

    Another Release(s)! 2506.9.22
    https://github.com/darksidemilk/FogApi/releases/tag/2506.9.22

    2506.9.19-22 are a slew of releases where I kept finding issues in broader tests right after I released each version. So apologies for the over-releasing there.

    Fixed send-fogimage to work with more use cases and utilize more parameters available to scheduled tasks like bypassbitlocker. Also simplified the parameter sets to avoid errors when using the command with different parameter sets. Also added links to PSGallery and chocolatey in each github release going forward.

    Full Release Note History: https://fogapi.readthedocs.io/en/latest/ReleaseNotes/
    Powershell Gallery Listing for this version: https://www.powershellgallery.com/packages/FogApi/2506.9.22
    Chocolatey Package Listing for this version (may take 1-60 days from release to be approved by chocolatey moderators): https://community.chocolatey.org/packages/FogApi/2506.9.22

  • Inject drivers via Fog

    5
    0 Votes
    5 Posts
    3k Views
    D

    @george1421 Thanks for your help.

    I solve the problem with this AutoUnatted.xml

    <?xml version=“1.0” encoding=“utf-8”?>
    <unattend xmlns=“urn:schemas-microsoft-com:unattend”>
    <!-- Bypass OOBE -->
    <settings pass=“oobeSystem”>
    <component name=“Microsoft-Windows-Shell-Setup” processorArchitecture=“amd64” publicKeyToken=“31bf3856ad364e35” language=“neutral” versionScope=“nonSxS” xmlns:wcm=“http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <OOBE>
    <HideEULAPage>true</HideEULAPage>
    <HideLocalAccountScreen>true</HideLocalAccountScreen>
    <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
    <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
    <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
    <ProtectYourPC>3</ProtectYourPC>
    <SkipUserOOBE>true</SkipUserOOBE>
    <SkipMachineOOBE>true</SkipMachineOOBE>
    <UnattendEnableRetailDemo>false</UnattendEnableRetailDemo>
    <NetworkLocation>Other</NetworkLocation>
    </OOBE>
    </component>
    <component name=“Microsoft-Windows-International-Core” processorArchitecture=“amd64” publicKeyToken=“31bf3856ad364e35” language=“neutral” versionScope=“nonSxS” xmlns:wcm=“http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
    <SystemLocale>pt-PT</SystemLocale>
    <UILanguage>pt-PT</UILanguage>
    <UserLocale>pt-PT</UserLocale>
    <InputLocale>0816:00000816</InputLocale>
    </component>
    </settings>

    <!-- Run SetupComplete.cmd via PostOOBE --> <settings pass="specialize"> <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RunSynchronous> <RunSynchronousCommand wcm:action="add"> <Order>1</Order> <Path>reg add "HKEY_LOCAL_MACHINE\SYSTEM\Setup\FirstBoot\PostOobe" /v "00" /t REG_SZ /d "cmd /c C:\Windows\Setup\Scripts\SetupComplete.cmd &amp; exit /b 0" /f</Path> </RunSynchronousCommand> </RunSynchronous> </component> </settings>

    </unattend>

    The AutoUnatted.xml will call the the script C:\Windows\Setup\Scripts\SetupComplete.cmd

    I make the sysprep with AutoUnatted.xml

  • FOG Secure Boot with Shim

    1
    1 Votes
    1 Posts
    430 Views
    No one has replied
  • Getting started video

    Unsolved
    3
    0 Votes
    3 Posts
    599 Views
    C

    Thanks @george1421,
    I haven’t setup Fog yet so was looking for a step by step guide to getting it installed and configured.

  • confusion creating fos-usb stick

    1
    0 Votes
    1 Posts
    373 Views
    No one has replied
  • FOG: 1.5.4 -> How to setup NAS - Synology DiskStation as Master Node

    50
    1 Votes
    50 Posts
    21k Views
    L

    @Alex78 What do we need to do to gain access to the images? When clicking any of the links, I get “Not Found”.

  • Synology NAS as FOG Storage node

    31
    5 Votes
    31 Posts
    24k Views
    M

    @george1421
    for those struggling with permissions with dev folder.
    nfs creates a root:root with 775 permissions and fog ftpuser isn’t part of that group

    Just use setgid feature on filesystem . it will enable inheritance
    first change the owner of the folders and make “users” the group , lets say fog is your ftp user

    chown -R fog:users /volume1/images/

    #set inheritance to the dev folder

    chmod g+s /volume1/images/dev/

    now every new file under dev will have the directory group owner

    Regards

  • Windows Powershell script for DHCP config

    1
    1 Votes
    1 Posts
    891 Views
    No one has replied
  • Updating/Compiling the latest version of iPXE

    5
    1 Votes
    5 Posts
    15k Views
    JJ FullmerJ

    @george1421 https://docs.fogproject.org/en/latest/compile_ipxe_binaries
    Just throwing in the permalink to the doc on this process.

  • Basic Persistent groups and 1.3.0RC16

    24
    2 Votes
    24 Posts
    14k Views
    Tom ElliottT

    @yannickF You really should state your issues.

    If a feature isn’t available for whatever reason, we will tell you, but leaving us in “uh oh” isn’t really a good approach.

    What issue are you having?

  • Successfully booting Parted Magic

    2
    1 Votes
    2 Posts
    3k Views
    george1421G

    @renewedharry

    I’m sure some of these parameters are not relevant as I don’t really know what I’m doing,

    It looks like you are doing very well.

    I can add a little context as in the kernel parameter loads the linux kernel. The initrd commands load these image files onto a virtual hard drive created by iPXE so the kernel can locate them. The .img files would actually be mapped as hard drives to the kernel. The kernel would know how to connect to them and use them.

    As for the imgargs these are flags for the kernel as it boots. The different flags tell the startup scripts in the kernel how to react dynamically to the external environment. The alternative would be to build the flags into the kernel, but then you would need to recompile the kernel every time you wanted to make a change. Hint: kernel args are the way to go.

    I don’t see much room for improvements with this design. You are currently using http to transfer the boot files. Once the kernel starts up then iPXE is out of the picture. I’m going to suspect most of the slowness is because most of the files are the pmodules directory. iPXE should load bzImage, initrd.img, fu.img and m.img very quickly. Where most of your time is probably once bzImage starts to boot. Then you are at the mercy of what Parted Magic does.

  • Using FOG to PXE boot into your favorite installer images

    Locked
    38
    7 Votes
    38 Posts
    94k Views
    george1421G

    Parted Magic version from May 2023

    Please see this article posted by @renewedharry

    https://forums.fogproject.org/topic/17498/successfully-booting-parted-magic

  • Configure iVentoy as netboot-Option in boot menu

    5
    1 Votes
    5 Posts
    7k Views
    Y

    @llino

    i do not know how could you do it on web gui, but i can tell you how clould you deactive the web gui configuration file and instead use the CLI to edit the dhcpf.conf file directry then i will work. But remember after that any changes on webgui will not be effected that is mean you have put your new changes over CLI.

  • Basics for WinPE PXE boot using fog

    1
    3 Votes
    1 Posts
    1k Views
    No one has replied
  • VirtualBox FOG Server Download

    51
    0 Votes
    51 Posts
    42k Views
    T

    I would like to have a link

  • Clone over network

    5
    0 Votes
    5 Posts
    2k Views
    R

    @Tom-Elliott Tanks a lot, i gonna check the documentation about PXE boot.
    Have a nice day.

  • LDAP Authentication

    6
    0 Votes
    6 Posts
    1k Views
    N

    @Tom-Elliott I will try thanks.

  • FOG server Withou dhcp services

    Solved
    17
    0 Votes
    17 Posts
    2k Views
    E

    @george1421

    Yes, I changed it, exactly as you just mentioned, and it still didn’t work, it worked fine when I added those two lines of code I mentioned earlier.

    Anyway, thank you very much for your help and attention.

100

Online

12.2k

Users

17.4k

Topics

155.6k

Posts