[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 713
  • Last Modified:

Setting an environment variable in NT using Kix32

I am using the Kix32 scripting language (comes with the NT Resource Kit) to set an environment variable in NT to today's date.  The script will be run automatically by the Scheduler Service at 12:01am every day to allow the variable %today% to be used in various ways by other command scripts, batch files, etc. throughout the day.

There are three different commands to do this in Kix32.  The variables are set in Current Environment (SET), Local User (SETL) and Local Machine (SETM).

I cannot get the variable to be seen in a Command Prompt started by the scheduler service.  Even when I schedule an interactive command prompt (using CMD.EXE /K) and then manually run the script in that window, the variable will not show up in the current window.  It will also not show up in any subsequently started "CMD.EXE /K" windows started by the Scheduler service.  It will show up in the System Properties/Environment window under System Variables and User Variables and it will show up in any new Command Prompt windows started from the Start Menu.

My questions are these:

1.  Is there a way to have the local system account (the one required to be used by the Scheduler Service for interactive jobs) read the current system variables if you have changed them since bootup?  If not, is there a registry area that can be modified to make this happen?

2.  Does anyone have another suggestion as to a method of setting environment variables in NT Scheduler command prompt windows?

3.  Is there a way to auto-update other already open windows with the new environment variables when you set them?

4.  Does anyone know of additional references for Kix32 on the Internet or elsewhere?
0
jzanette
Asked:
jzanette
1 Solution
 
mbeitzCommented:
Logon with the service account of the scheduler service and configure your environment variables. Then they should be there, if you restart the scheduler service.

Environments are user specific.
0
 
jzanetteAuthor Commented:
Mbeitz is not correct.  Setting environment variables while logged in to the user account of the scheduler service works only if you actually LOG IN as that user and open a command prompt.  Then you will see the variables you have set.

When the scheduler service logs in and runs a command prompt (i.e., "at 10:00 /interactive cmd /k", variables that you have set for that user DO NOT appear in the command prompt window.  Also, even though global system variables do appear, any changes that have been made since the last reboot do not.  The only way that I have found to get global system variable changes to appear in the scheduler service command prompt window is to reboot.  Restarting the scheduler service does not work either.

That's why I am thinking there is a registry area or somewhere in system memory that the environment for the scheduler service is being stored.  It appears to only get updated at bootup.

Once more, my specific problem is:

I need to set an environment variable called "today" to mmddyy for use in some very extensive command scripts that run every day but need to find, place and rename files based on date.

C'mon experts, help me.  It's worth 250 points now.
0
 
heikoCommented:
why you dont calculating entire environment each time starting your script? with perl (from NTRESKIT) and its subset of time functions you can set necessary environment.

please ask for more detailed informations.
0
 
pbrydenCommented:
Place the following lines at the beginning of any script where you would like to set and use the today variable.

date/t >date.txt
For /f "tokens=2" %%i in (date.txt) do (set TODAY=%%i)

This variable will exist during the execution of the script only.

General comment:

I prefer to have the schedule service login as a user account instead of the system account (the above procedure will work either).  The system account can't map network drives, etc where a login is required.

Good Luck
0
 
jzanetteAuthor Commented:
Thanks.
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now