Solved

Setting an environment variable in NT using Kix32

Posted on 1998-03-12
5
686 Views
Last Modified: 2013-12-19
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
Comment
Question by:jzanette
5 Comments
 

Expert Comment

by:mbeitz
Comment Utility
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
 

Author Comment

by:jzanette
Comment Utility
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
 
LVL 5

Expert Comment

by:heiko
Comment Utility
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
 

Accepted Solution

by:
pbryden earned 250 total points
Comment Utility
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
 

Author Comment

by:jzanette
Comment Utility
Thanks.
0

Featured Post

Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

Join & Write a Comment

Have you ever set up your wireless router at home or in the office to find that you little pop-up bubble in the bottom right-hand corner of Windows read "IP Conflict - One of more computers on the network have been assigned the following IP address"…
The Need In an Active Directory enviroment, the PDC emulator provide time synchronization for the domain. This is important since Active Directory uses Kerberos for authentication.  By default, if the time difference between systems is off by more …
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now