The answer from Onluck worked for me. Below is an example of what I was trying that failed along with what I did that worked. I was attempting to run a TCP Listener that I wrote into a PowerShell script and then compiled with ps2exe.
This method failed for no discernable reason as there were no errors being produced, even when using stderr output to a file with nssm. The service was caught in an infinite loop of starting, running, and pausing. The listening port would pop up briefly over and over in a netstat, but it would not persist.
nssm install Daggoth powershell.exe C:\Users\Administrator\Documents\Daggoth.exe
This next method worked like a charm. Thanks to user Onluck's answer. Once I ran it this way, I had a persistent listening port showing in a netstat and the expected executable running in processes.
nssm install Daggoth C:\Users\Administrator\Documents\Daggoth.exe
I hope this helps anyone that might still be confused.