Asymetrical encryption may be your friend here, ie PGP or it's ilk.
On first run the script generates the key pair, possibly using system information.
The public key is sent to you and you encrypt a file with it and send that file back to user.
The user then installs that file. The code sees the file and attempts to decrypt it with the private key gen'd on first run. If it can read the file then all is well and run continues.
I think that keys can also be given expiry dates in some mechanisms.
Yes, I had PGP in mind. Now the question that remains is: can you limit the amount of time(s) or duration that the key is being used (expiration ....).
Anyone some clever idea for this to happen?