• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. Greg Plamondon
    3. Posts
    • Profile
    • Following 1
    • Followers 0
    • Topics 75
    • Posts 403
    • Groups 1

    Posts

    Recent Best Controversial
    • FOG Change Domain OU

      I think it would be great if FOG would change OU if it detects that the host assigned OU has changed, and it is not within the specified OU. Right now, if the PC already exists in AD it will not perform any more actions. It would be extremely beneficial as we have limited some of our admins and they are unable to move hosts to a different OU.

      The user assigned in FOG that enables domain domain joining does have permission to perform the OU moves. This is simply a request to enable more automated tracking and changing as possible.

      posted in Feature Request
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Wayne-Workman
      I said the method was sloppy not the code, (but that’s a matter of opinion)But your right it was urgent at the time and I already have a samba share at each node for drivers for imaging. I see now what your guide was accomplishing and it would have worked fine if I would have paid more attention to detail when reading your post. Thanks again.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Utilizing Postscripts (Rename, JoinDomain, Drivers, Snapins)

      @george1421 said in Utilizing Postscripts (Rename, JoinDomain, Drivers, Snapins):

      @Greg-Plamondon it should be in one or the other place. Panther is checked first. When you sysprep’d where did you tell sysprep to look for the file?

      i didnt i just ran sysprep.exe /oobe /generalize /reboot

      posted in Tutorials
      Greg PlamondonG
      Greg Plamondon
    • RE: Utilizing Postscripts (Rename, JoinDomain, Drivers, Snapins)

      @Lee-Rowlett Thanks for the base scripts and ideas behind them.
      @Tom-Elliott Thanks for helping me adjusting them for my needs.
      @Junkhacker Thanks for the fog log script, you dont know how many time I have forgotten to delete the damn fog.log
      Here are the scripts that @Tom-Elliott helped me with.

      fog.postdownload:

      #!/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
                  true
              done
              dots "Mounting partition $part"
              ntfs-3g -o force,rw $part /ntfs >/dev/null 2>&1
              if [[ ! $? -eq 0 ]]; then
                  echo "Failed"
                  debugPause
                  handleError "Failed to mount $part ($0)\n    Args: $*"
              fi
              echo "Done"
              debugPause
              . ${postdownpath}fog.log
              . ${postdownpath}fog.drivers
              . ${postdownpath}fog.ad
              umount /ntfs
              ;;
          *)
              echo "Invalid OS"
              debugPause
              return
              ;;
      esac
      

      fog.ad :

      #!/bin/bash
      hostadpwd="ADPASSWDHERRE"; #only downside to this method- this is the plain ad password
      unattend="/ntfs/Windows/Panther/unattend.xml";
      [[ ! -f $unattend ]] && return
      dots "Preparing Sysprep File"
      rm -f /ntfs/Windows/System32/sysprep/unattend.xml >/dev/null 2>&1
      if [[ ! $? -eq 0 ]]; then
          echo "Failed"
          debugPause
          handleError "Failed to remove original unattend file"
      fi
      echo "Done"
      debugPause
      dots "Writing Computer Name"
      sed -i "/ComputerName/s/*/$hostname/g" $unattend >/dev/null 2>&1
      if [[ ! $? -eq 0 ]]; then
          echo "Failed"
          debugPause
          handleError "Failed to update originating unattend file"
      fi
      echo "Done"
      echo "ComputerName set to $hostname"
      debugPause
      [[ -z $addomain ]] && return
      dots "Set PC to join the domain"
      sed -i "/<JoinWorkgroup>/d" $unattend >/dev/null 2>&1
      if [[ ! $? -eq 0 ]]; then
          echo "Failed"
          debugPause
          handleError "Failed to remove the Workgroup setter"
      fi
      sed -i \
          -e "s|<Password></Password>|<Password>${hostadpwd}</Password>|g" \
          -e "s|<Username></Username>|<Username>${addomain}\\\\${aduser}</Username>|g" \
          -e "s|<MachineObjectOU></MachineObjectOU>|<MachineObjectOU>${adou}</MachineObjectOU>|g" \
          -e "s|<JoinDomain></JoinDomain>|<JoinDomain>${addomain}</JoinDomain>|g" $unattend >/dev/null 2>&1
      if [[ ! $? -eq 0 ]]; then
          echo "Failed"
          debugPause
          handleError "Failed to update user, pass, ou, and domain setter"
      fi
      echo "Done"
      debugPause
      

      fog.drivers:
      For some reason Lenovo doesn’t play like most PC manufactures. I had to use the dmidecode variable of system-version to populate what the actual model of the PC was, with system-product-name it was returning the numerical machine type or serial number?

      #!/bin/bash
      ceol=`tput el`;
      manu=`dmidecode -s system-manufacturer`;
      case $manu in
          [Ll][Ee][Nn][Oo][Vv][Oo])
              machine=$(dmidecode -s system-version)
              ;;
          *[Dd][Ee][Ll][Ll]*)
              machine=$(dmidecode -s system-product-name) #pruduct is typo, just realized sorry :(
              ;;
          *)
              machine=$(dmidecode -s system-product-name) # Technically, we can remove the dell one as it's the "default"
              ;;
      esac
      [[ -z $machine ]] && return #assuming you want it to break if it is not lenovo or dell?
      machine="${machine%"${machine##*[![:space:]]}"}" #Removes Trailing Spaces
      system64="/ntfs/Windows/SysWOW64/regedit.exe" # sloppy detect if 64bit or not
      [[ ! -f $system64 ]] && setarch="x86" || setarch="x64"
      #############################################
      #this is not section necessary needed, it's just to make the path "human readable"
      #rather than using osid for filepath
      case $osid in
          5) osn="Win7" ;;
          6) osn="Win8" ;;
          7) osn="Win8.1" ;;
          9) osn="Win10" ;;
      esac
      #############################################
      dots "Preparing Drivers"
      # below creates local folder on imaged pc
      # this can be anywhere you want just remember
      # to make sure it matches throughout!
      clientdriverpath="/ntfs/Windows/DRV"
      remotedriverpath="/images/drivers/$osn/$machine"
      [[ ! -d $clientdriverpath ]] && mkdir -p "$clientdriverpath" >/dev/null 2>&1
      echo -n "In Progress"
      #there's 3 ways you could handle this,
      #driver cab file, extracted driver files or both
      #so on the server put extracted driver files to match below folder tree
      #i.e. Model Latitude E5410, Windows 7 x86 image would be:
      #/fog/Drivers/Win7/Latitude E5410/x86
      rsync -aqz "$remotedriverpath" "$clientdriverpath" >/dev/null 2>&1
      [[ ! $? -eq 0 ]] && handleError "Failed to download driver information"
      
      #if you wanted to use driver.cab use this line below.
      #i.e. /fog/Drivers/Win7/Latitude E5410/E5410-Win7-A07-KTT4G.CAB
      #cabextract -d "$clientdriverpath" "$remotedriverpath/*.CAB" >/dev/null 2>&1
      
      #if you wanted to mix both cab and extracted use these:
      #rsync -aqz --exclude='*.CAB' "$remotedriverpath" "$clientdriverpath" >/dev/null 2>&1
      #[[ ! $? -eq 0 ]] && handleError "Failed to sync cab and non-cab drivers"
      #cabextract -d "$clientdriverpath" "$remotedriverpath/*.CAB" >/dev/null 2>&1
      #[[ ! $? -eq 0 ]] && handleError "Failed to extract cab files"
      
      #this next bit adds driver location on pc to devicepath in registry (so sysprep uses it to reference)
      # remember to make devicepath= match the path you've used locally
      #also do not remove %SystemRoot%\inf
      #and to add more locations just use ; in between each location
      regfile="/ntfs/Windows/System32/config/SOFTWARE"
      key="\Microsoft\Windows\CurrentVersion\DevicePath"
      devpath="%SystemRoot%\inf;%SystemRoot%\DRV";
      reged -e "$regfile" &>/dev/null <<EOFREG
      ed $key
      $devpath
      q
      y
      EOFREG
      echo -e "\b\b\b\b\b\b\b\b\b\b\b${ceol}Done"; # this just removes "In Progress and replaces it with done :-)"
      

      fog.log:

      #!/bin/bash
      #deletes fog.log for Windows 7, 8, or 8.1 or 10
      #Greg Grammon (Junkhacker)
      #
       
      #funcs.sh allows us to use the functions that are used in the rest of
      #fog i.e. "dots" and use the vars already in place i.e. "$part" and "$osid"
      . /usr/share/fog/lib/funcs.sh;
      case $osid in
          [5-7]|9)
              [[ -f /ntfs/fog.log ]] && rm /ntfs/fog.log >/dev/null 2>&1 || true
              if [[ ! $? -eq 0 ]]; then
                  echo "Failed"
                  debugPause
                  handleError "Failed to remove original fog.log file"
              fi
              ;;
          *) return ;;
      esac
      

      Thanks For all the Help Tom and Lee

      posted in Tutorials
      Greg PlamondonG
      Greg Plamondon
    • RE: Utilizing Postscripts (Rename, JoinDomain, Drivers, Snapins)

      @Lee-Rowlett The unattend.xml is in the C:\Windows\Panther directory. I removed the option from my setupcomplete.cmd that deletes the unattend.xml, so after it boots I can take a look at it and the edits were made to it. Should I be editing the C:\Windows\Sytstems32\Sysprep\unattend.xml instead of the Windows\Panther ?

      posted in Tutorials
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Wayne-Workman
      I don’t want to come across as rude but your method seems a little sloppy. I would rather use fog as it was/is being designed to work. creating groups and scripts for every snapin would be tedious.
      We have 27 Locations with different application sets at each. I appreciate your effort, And believe me I have “tried” I never asked for a handout or " free work" I just wanted a fix for my problem.

      Thanks.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Wayne-Workman said in Trunk 5749 Snapin deployment issue:

      @Greg-Plamondon I’ve been thinking about this. Perhaps we can work around the issue for now?

      What does the snapin do? Can we get a screen shot of the snapin settings? It might be trivial to turn the snapin into a simple script that WOULD pull the larger files from the correct places and execute them.

      sure!!
      0_1466802653626_snapin.PNG

      Most of my snapins are self extracting sfx archives or msi packages.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Utilizing Postscripts (Rename, JoinDomain, Drivers, Snapins)

      @Lee-Rowlett

      I gotten this to make the edits to the unattend.xml but it still doesnt join the domain. Do you have a Windows10 Unattend.xml that i can compare where I went wrong?

      posted in Tutorials
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Quazz said in Trunk 5749 Snapin deployment issue:

      What happens when you create a snapin task?

      when I create the snapin task everything runs as normal except that the files get downloaded from the management fogserver and not the storage node.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Wayne-Workman said in Trunk 5749 Snapin deployment issue:

      @Greg-Plamondon Can you delete the files on the non-master nodes and let replication put them back?

      I have, and I can see them replicate in /var/log/fog/fogsnapinrep.log and I verified they are on the remote node

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5735 PC doesnt restart after joining the domain.

      @Joe-Schmitt said in Trunk 5735 PC doesnt restart after joining the domain.:

      This issue has been addressed in v0.11.2. Please test when you get a chance.

      The Update worked for me Joe, Thanks!

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Wayne-Workman said in Trunk 5749 Snapin deployment issue:

      Is the snapin set to replicate? Can you verify the files exist on the storage nodes? Are you using the location plugin?

      ok, I verified that all my snapins are set to replicate and I verified that all the files are at the remote node. and yes I am using the location plugin. The snapins are still being pulled from the main fogserver across the slow mpls network.
      This is going to be a very long weekend! please help…

      Thanks.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5749 Snapin deployment issue

      @Wayne-Workman said in Trunk 5749 Snapin deployment issue:

      Is the snapin set to replicate? Can you verify the files exist on the storage nodes? Are you using the location plugin?

      I dont have the replicatre box checked. Although the snapins are on the remote node.
      I will check the box.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • Trunk 5749 Snapin deployment issue

      when imaging a PC from a remote storage node the snapins are not installed from the storage node but from the main fogserver.
      This is causing the imaging process to crawl as it downloads the snapins across our slow MPLS network.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5735 PC doesnt restart after joining the domain.

      @Wayne-Workman said in Trunk 5735 PC doesnt restart after joining the domain.:

      @Greg-Plamondon Joe said it’s a bug, just be patient and wait for the new version. Did you know that Joe is the new client developer? He knows what he’s talking about. 🙂

      Oh, I know who Joe is, I just didn’t want to be rude and ignore your question.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5735 PC doesnt restart after joining the domain.

      @Wayne-Workman

      This is a Windows 10 Sysprep image.
      the fog client is installed in the finalize stage of the sysprep in the setupcomplete.cmd

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Trunk 5735 PC doesnt restart after joining the domain.

      @Joe-Schmitt

      I was running a poweshell tail on it at the time (get-content -wait \computername\C$\fog.log) and I could see activity up to the point I posted. But when I checked the service it was indeed in the stopped state.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • Trunk 5735 PC doesnt restart after joining the domain.

      After successfully imaging the PC it doesn’t want to reboot even though the log says it should.

      ------------------------------------------------------------------------------
      --------------------------------HostnameChanger-------------------------------
      ------------------------------------------------------------------------------
       6/22/2016 3:09 PM Client-Info Client Version: 0.11.1
       6/22/2016 3:09 PM Client-Info Client OS:      Windows
       6/22/2016 3:09 PM Client-Info Server Version: 7853
       6/22/2016 3:09 PM Middleware::Response Success
       6/22/2016 3:09 PM HostnameChanger Checking Hostname
       6/22/2016 3:09 PM HostnameChanger Hostname is correct
       6/22/2016 3:09 PM HostnameChanger Attempting to join active directory
       6/22/2016 3:09 PM HostnameChanger Success, code =  0
       6/22/2016 3:09 PM Power Creating shutdown command in 60 seconds
       6/22/2016 3:09 PM Bus {
        "self": true,
        "channel": "Power",
        "data": "{\r\n  \"action\": \"request\",\r\n  \"period\": 60,\r\n  \"options\": 2,\r\n  \"command\": \"/r /c \\\"Host joined to Active Directory, restart required\\\" /t 0\",\r\n  \"message\": \"This computer needs to perform maintenance.\"\r\n}"
      }
       6/22/2016 3:09 PM Bus Emmiting message on channel: Power
      ------------------------------------------------------------------------------
      
       6/22/2016 3:09 PM Service Power operation being requested, checking back in 30 seconds
       6/22/2016 3:10 PM Service Power operation being requested, checking back in 30 seconds
       6/22/2016 3:10 PM Power Creating shutdown request
       6/22/2016 3:10 PM Power Parameters: /r /c "Host joined to Active Directory, restart required" /t 0```
      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Snapin Hash problem with trunk 5623

      Thanks for helping on this Tom.

      After installing the latest trunk to a new VM and importing my db, I failed to realize that I need to update the credentials.
      Thanks for all your help on narrowing this down.

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • RE: Snapin Hash problem with trunk 5623

      Was kind of hoping there would be some activity on this thread… Am I the only one having this issue?

      posted in FOG Problems
      Greg PlamondonG
      Greg Plamondon
    • 1 / 1