added app_pool identity

This will allow you to change the app_pool identity to any of the allowed accounts:
SpecificUser, NetworkService, LocalService, LocalSystem, ApplicationPoolIdentity

To use a custom account you will set this to SpecificUser and then set "pool_username" and "pool_password", otherwise you can set it to one of the built in accounts NetworkService, LocalService, LocalSystem, ApplicationPoolIdentity
Did you intentionally use shell_out and not shell_out! here? Generally using shell_out! is better because if something goes wrong it will raise an error and stop rather than potentially giving us random data back and running with it.