Two solutions to the permissions problem:
You need to set the appropriate permissions
to Read from the source and Write to the target location for the user(s)
of the exe.
You can impersonate
a user with such permissions (in the code, use the credentials of another user to perform the action).
** See A complete Impersonation Demo in C#.NET[^]