osascript doesn't remember AppleScript variables?

Hey all,
I have a script I need to send to a bunch of computers using Apple Remote Desktop that enables the VNC server and gives it a specified password (don’t ask why ARD can’t do this on its own). The problem is that when I use osascript, variables don’t seem to be remembered. For example, at one point, I store the current user’s short name in a variable to compare it to a string to see if a certain user is logged on (is there a better way to do this?). The problem is that when I send this through ARD with osascript, it doesn’t set the variable. When I run the script locally on the client machine, the following script works perfectly. So what’s with osascript?

osascript <<EndOfMyScript
set currentUser1 to do shell script "whoami"

--If nobody is logged in, log in as USER I WANT TO LOG IN AS
if (currentUser1 is "root") then
--this is because root is the current user when nobody's logged in (is there  a better way to do this?)
    tell application "System Events"
        keystroke "USER I WANT TO LOG IN AS"
        keystroke tab
        delay 0.5
        keystroke "USER'S PASSWORD"
        delay 0.5
        keystroke return
        keystroke return
    end tell
end if
EndOfMyScript


osascript <<EndOfMyScript

do shell script "sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -clientopts -setvnclegacy -vnclegacy yes -setvncpw -vncpw HASH GOES HERE" password "SOME PASSWORD" with administrator privileges
EndOfMyScript


osascript <<EndOfMyScript

--Get the current user's short name
set currentUser2 to do shell script "whoami"

--Log out only if the current user is USER I WANT TO LOG IN AS
if (currentUser2 is "USER I WANT TO LOG IN AS") then
    tell application "Finder" to activate
    tell application "System Events"
        tell process "Finder"
            keystroke "q" using {command down, option down, shift down}
        end tell
    end tell
end if
EndOfMyScript

Do you mean that the variables aren’t remembered between executions of the script? If so, that’s normal behavior for variables. If you want the values retained after the script finishes, use a property declaration. Script properties are retained between executions of standard scripts (not script applications, if I remember right).