You are a bit all over the place with this question (not intended to sound harsh) Don’t read more into what I’m going to say because some parts will sound negative only to point out some parts of your idea that need to be worked on. So lets breakdown what you have asked.
I wanted to ask I have a master node with remote storage nodes, I am using the my fog setup for people to bring in old machines to be re-imaged remotely.
So far not a problem
The idea is the end user plugs in his computer PXE boots, then his license key and current OS information along with his computer specs is extracted after inputting, the following: their name and generated code and this will set-off a process which install the correct OS that the have installed with their license key activated.
This is where things get a bit cloudy. FOG doesn’t care about licenses, or windows for that matter. Since you are talking about extracting windows licenses, can we assume you are using OEM licenses for activation? If so the MS EULA doesn’t allow you to deploy OEM licensed media via imaging. You must install systems that use OEM licenses directly from the OEM media to remain compliant with the EULA. If you are using VL licenses then there are ways to utilize and activate these keys with FOG.
So my question is this, Is this possible to do ? Is it possible to run a powershell script at the PXE menu level ?
The FOS Linux engine runs on a customized linux OS. This FOS engine doesn’t know or care about the target OS. The FOS engine can’t do windows specific things like running windows programs, scripts, or adjust the registry. You CAN run bash shell scripts on the FOS engine which is customizable in a FOG Postdownload script (will be important later).
How can i remotely deploy an image to there machine? Without registration onto the system?
Yes and no. You can deploy a system at a remote location from that system’s iPXE menu without registering the system. But it will require a person physically in front of the computer. The issue you will have is that if the system isn’t registered it won’t know which storage node is closest so it will always go back to the master node.
Is there a way to remotely force a machine into a PXE boot selecting a certain image ?
You can’t force a remote machine to pxe boot unless its a Dell (AFAIK). If you have a computer registered in FOG, AND have a FOG client installed on the remote system, AND you have the remote machine configured to boot through the iPXE menu every time you can remotely deploy an image to that computer without end user interaction.
So now with that said, what could you do if you don’t want to register target computers with FOG.
You could use the FOG iPXE menu to deploy image. When you go into that menu item it lists all images released on the master FOG server. Users can deploy an image from there and the system will deploy. You can’t ask questions easily from the user before the image is deployed. BUT you could add a FOG Postdownload script that can ask users questions in a bash shell script. When the postdownload script is executed, the image has already been pushed to the target computer, but before the target computer first boots into the target OS (in this case before WinSetup/OOBE is first run). You can from FOS Linux leave breadcrumbs on the Windows C: drive that can be picked up and used during WinSetup/OOBE. These breadcrumbs could be updating the unattend.xml file with license keys, settings like location and keyboard, etc. You can see examples of this in this tutorial: https://forums.fogproject.org/topic/7740/the-magical-mystical-fog-post-download-script Use this as a reference to what can be done, there is another tutorial that is more up to date but not as detailed as what I’ve linked.
Your idea is possible with a little work, you just need to move out of the windows paradigm a think a bit more in the linux world to pull it off. Just understand you are using FOG in a way it which it wasn’t originally designed. But that is the beauty of an opensource system.