OSDeploy / OSDCloud

OSDCloud is a process to fully deploy a Windows OS from a WinPE Environment
https://osdcloud.osdeploy.com
61 stars 13 forks source link

Automatically install software or run a powershell script #1

Open jgstew opened 3 years ago

jgstew commented 3 years ago

How would I get OSDCloud to install windows and also install an MSI or provisioning package on the new system, or set the new windows to run a powershell script after first boot?

I realize a lot of this could be done through autopilot, but I was hoping to have options without autopilot in addition to with autopilot.

I have done this kind of thing before with WinADK and/or MDT (though it has been a while) but I was curious how I would hook into OSDCloud to trigger something as a part of the process.

I'm going through the steps of a vanilla OSDCloud process right now start to finish, but so far haven't figured out the obvious way to do this.

In a sense, this issue is a request for clarification and documentation.

ztrhgf commented 3 years ago

Maybe using this https://osdcloud.osdeploy.com/customize/deploy-myosdcloud.ps1 ?

OSDeploy commented 3 years ago

Thanks for asking about an MSI or Provisioning Package. Keep in mind that OSDCloud is still being thought out and put together, and neither of those things are sorted out and automated for you. I suggest that you be patient with things and wait for it to evolve a bit further. I'm barely into the process of solidifying Driver support, now is not the time for any work on Post MSI installs. As @ztrhgf has pointed out, I have designed a process for YOU to modify and create your own Deploy OSDCloud script. As you have stated you have done this before with WinADK and/or MDT, you should have no problems jumping in.

"set the new windows to run a powershell script after first boot" This setting can be put in an Unattend.xml. Use your custom Deploy-MyOSDCloud.ps1 to set this. This is one of many methods.

Finally, keep in mind that OSDCloud ends at a Powershell prompt. Don't reboot. Add whatever you want to want to customize, then reboot. My apologies for not having a direct method to do this. I'll set this thread as a Question and Enhancement, but I don't have an answer or timeline yet.

jgstew commented 3 years ago

Just wanted to clarify, I wasn't asking for this to be done any time soon or by you, just wondering about the best way to go about it myself and enhance OSDCloud if I can.

jgstew commented 3 years ago

"This setting can be put in an Unattend.xml. Use your custom Deploy-MyOSDCloud.ps1 to set this."

So I would customize the Unattend file contents used at $UnattendDrivers to contain whatever I want to run, most likely in the specialize step?

...
    </settings>
    <settings pass="???">
    </settings>
</unattend>

Makes sense. Thanks.

OSDeploy commented 3 years ago

BUT Specialize is not Full Windows, not everything will work. For example all of .NET and WMI is not running yet, so you will find installing things here will fail. I did have to turn off Telemetry in Office to get it installed, just remember its not ideal, but simple EXE's will probably work. I assume an MSI will fail since you won't even have all your Environment Variables

discentem commented 3 years ago

@jgstew An interesting strategy recommended by Glazier after sysprep: https://github.com/google/glazier/tree/master/docs/setup#images--sysprep

tl:dr temporarily replace the login shell, install/configure whatever you want, restore login shell, and reboot.

Perhaps that's useful for you?

Disclaimer: I'm quite new to Windows Imaging so anyone please do correct me if I've misspoken this being a workaround for specialize limitations, etc.

agovardhanam commented 2 years ago

is there any working script to add apps into osdcloud

OSDeploy commented 2 years ago

is there any working script to add apps into osdcloud

Are you not able to write your own PowerShell script and do whatever you want BEFORE or AFTER OSDCloud? Then run YOUR script

image