Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cómo crear variables de entorno permanentes

981 views
Skip to first unread message

Rafael Sánchez

unread,
Nov 18, 2002, 6:03:17 AM11/18/02
to
Hola,

Tengo servidores servidores Windows 2000 y clientes XP, y estoy intentando
que por medio de archivos de comandos de inicio de sesión que asigno a
diferentes usuarios, estos archivos creen variables de entorno permanentes.
Es decir, quiero crear una nueva variable de entorno VAR y su valor
dependerá del archivo de comandos que asocie al usuario.

Si uso el comando SET, este define mi nueva variable VAR sólo para la sesión
de línea de comandos actual. Como el fichero batch corre en su propia sesión
y después se cierra, la variable VAR no estará disponible para poder ser
consultada posteriormente hasta que el usuario cierre la sesión.

También está el comando SETX del Resource Kit pero según se dice en la
documentación, está probado sólo para la versión en inglés. Además,
¿funcionaría en XP?

¿Alguien podría decirme algo sobre cómo solucionar esto?

Muchas gracias.

--
--------------------------------------------------
Rafael Sánchez
rsan...@comm.germinus.com
+34951010583
--------------------------------------------------


Gabriel

unread,
Nov 18, 2002, 6:23:08 AM11/18/02
to
No entiendo bien que quieres hacer pero ahi van dos datos para que mires

En Mi PC - boton derecho Propiedades - Tab Opciones avanzadas - hay un
boton abajo "Variables de entorno" puedes poner para todo el sistema o
solo para el usuario activo.

Habia unos archivos autoexec.NT y config.NT que pueden reemplazar a
autoexec.BAT y config.SYS en una sesion DOS (cmd.exe)

Del la ayuda de Win XP

Para crear archivos de inicio personalizados para un programa basado en
MS-DOS que requiera una configuración especial
Con un editor de textos, como el Bloc de notas, modifique los archivos
Config.nt y Autoexec.nt que se encuentran en raízDelSistema\System32.
Guarde cada archivo con un nuevo nombre.
Haga clic con el botón secundario del mouse (ratón) en el acceso directo
del programa basado en MS-DOS y, a continuación, haga clic en Propiedades.
Haga clic en la ficha Programa y después haga clic en Avanzadas.
En Archivos personalizados de inicialización de MS-DOS, escriba los
nombres nuevos de los archivos de inicio personalizados.
Notas

Este procedimiento puede ser necesario ya que algunos programas de
MS-DOS utilizan instrucciones de memoria y vídeo especiales o requieren
que se instalen otros programas antes de iniciarse. Consulte la
documentación suministrada con el programa antes de crear los archivos
de inicio.
Utilice la documentación suministrada con el programa basado en MS-DOS
para crear un acceso directo. Para obtener más información, haga clic en
Temas relacionados.
Es posible que esta opción no esté disponible en algunos programas
basados en MS-DOS.
Para utilizar archivos de inicio personalizados al iniciar un programa
basado en MS-DOS, deberá iniciar el programa desde el acceso directo.
Al crear un archivo de información de programa (PIF) para un programa
basado en MS-DOS, se crea un acceso directo al ejecutable del programa.
La configuración guardada en el archivo PIF se encuentra en el acceso
directo.

Gabriel

unread,
Nov 18, 2002, 7:05:30 AM11/18/02
to
Rafael, me parece que las variables de entorno que defines en
Propiedades avanzadas de Mi PC se mantiene en los reinicios de la
maquina, si no lo hicieran las puedes agregar con archivo .reg a la clave

HKEY_CURRENT_USER\Environment

te mando un ejemplo

Saludos.

Rafael Sánchez wrote:
> Gracias Gabriel por tu respuesta, puede que no me haya expresado del todo
> bien. Intentaré concretar más mi caso.
>
> Tengo un dominio con Windows 2000 Server y estaciones XP. Usuarios de
> distintos departamentos podrían conectarse a estos clientes. Dependiendo del
> usuario que se conecte, una variable de entorno tendrá como valor el
> departamento al cual pertenece. Así, un usuario del departamento de
> contabilidad tendrá establecida la variable DPTO=contabilidad, mientras que
> si otro usuario que pertenece al departamento de Administración se conecta a
> esa misma máquina XP tendrá que establecerse esa variable como
> DPTO=administracion.
> No puedo pues, crear e inicializar esa variable DPTO mediante el método
> gráfico de Variables de Entorno del Propiedades del Sistema. Por ello
> intento hacer uso de archivos .bat que se ejecuten en el inicio de sesión
> del usuario.
> Estos archivos de inicio de sesión los puedo asignar a un usuario mediante
> la pestaña perfil dentro las propiedades del usuario si abro el complemento
> Usuarios y equipos de Active Directory, o bien, mediante la aplicación de
> directivas de grupo o políticas.
> Pongamos pues que tengo esos dos departamentos (contabilidad y
> administración). Yo asignaría por medio de cualquiera de esos dos metodos
> (perfil o GPO) el archivo contabilidad.bat o administracion.bat, con una
> línea como esta:
>
> SET DPTO=contabilidad (contabilidad.bat)
>
> SET DPTO=administracion (administracion.bat)
>
> Mi intención sería que se creara para el usuario una variable DPTO con uno
> de esos valores, pero resulta que con el comando SET, la variable que defina
> (DPTO) sólo permanece mientras dura la sesión en la que se define. Pero no
> sesión de usuario, sino que sólo permanece en la sesión ntvdm.exe que abre
> el fichero bat. Cuando finaliza la ejecución de este fichero, esta sesión se
> cierra y por tanto, la variable ya no está disponible. Por tanto, si después
> el usuario quiere por ejemplo acceder a una aplicación, acceso directo, etc,
> que utiliza esa variable de entorno, esta aplicación o acceso directo no
> funcionará.
>
> Mi intención es, por tanto, cómo crear variables de entorno permanentes
> mediante ficheros .bat que pueda usar para los inicio de sesión
> personalizados por usuario (independientemente del equipo).
>
>
>
>
> "Gabriel" <gabriel...@hotmail.com> wrote in message
> news:uMRvgTvjCHA.1812@tkmsftngp12...

contabilidad.reg

Rafael Sánchez

unread,
Nov 18, 2002, 6:52:24 AM11/18/02
to

SET DPTO=contabilidad (contabilidad.bat)

SET DPTO=administracion (administracion.bat)

Marc S. [MS MVP]

unread,
Nov 18, 2002, 7:12:03 AM11/18/02
to
Has mirado de usar las GPOs y las UO del W2K Server para hacer lo que pides?? Creo que sería más sencillo.

--

Saludos

Marc
MS MVP - DTS

NOTA. Por favor, las preguntas y comentarios en los grupos, así nos beneficiamos todos.

Reglas de conducta de los grupos de noticias: http://support.microsoft.com/default.aspx?scid=fh;ES-ES;newsreglas

"Rafael Sánchez" <rsan...@comm.germinus.com> escribió en el mensaje news:u0ic7gvjCHA.2580@tkmsftngp12...

Gabriel

unread,
Nov 18, 2002, 7:17:58 AM11/18/02
to
Marc S. [MS MVP] wrote:
> Has mirado de usar las GPOs y las UO del W2K Server para hacer lo que pides?? Creo que sería más sencillo.
>
Marc mucha abreviatura y no entendi nada (Ultima Online?? :-)) podrias
poner que es eso?

Marc S. [MS MVP]

unread,
Nov 18, 2002, 7:26:10 AM11/18/02
to
UO, al cambio, Unidades Organizativas. Mediante las UO puedes definir que a una serie de usuarios (o máquinas, si no me equivoco) se le apliquen una(s) GPO concreta(s) para definir variables de entorno, escritorios, configuraciones de unidades de red, impresoras, etc. Es una de las mejoras que incluyen un W2K Server respecto a los NT4 Server.

GPOs, serían las Políticas del sistema.

En el grupo de Windows 2000 seguro que Javier Inglés os puede ayudar mejor que yo.

--

Saludos

Marc
MS MVP - DTS

NOTA. Por favor, las preguntas y comentarios en los grupos, así nos beneficiamos todos.

Reglas de conducta de los grupos de noticias: http://support.microsoft.com/default.aspx?scid=fh;ES-ES;newsreglas

"Gabriel" <gabriel...@hotmail.com> escribió en el mensaje news:#DvNJyvjCHA.1952@tkmsftngp09...

Gabriel

unread,
Nov 18, 2002, 7:32:33 AM11/18/02
to
Muchas gracias ahora me quedo mas claro, igualmente yo no tengo el
problema, pregunté de curioso.

Saludos.

Rafael Sánchez

unread,
Nov 19, 2002, 6:07:21 AM11/19/02
to
Hola a todos,

tras las colaboraciones de algunos de compañeros de news como Gabriel y Marc
y otros, y si a alguno le sigue interesando el tema, quisiera recopilar y
resumir lo que más se ha acercado hasta el momento a mis necesidades.

Quisiera recordar en principio que describo con más detalle mi situación en
mi primera respuesta a Gabriel.

La cuestión era poder crear variables de entorno (preferentemente de usuario
a la de sistema, por cuanto estas variables son específicas para según qué
grupos
de usuarios inicien sesión en una máquina concreta).
Como ya comentaba, la creación de variables no puedo hacerlas del modo
"gráfico" habitual, mediante las propiedades de MiPC, Opciones Avanzadas,
Variables de Entorno. Deberé hacerlas mediante un
fichero de comandos para que se ejecute en el inicio de sesión de los
usuarios, y esto se puede hacer recomendablemente mediante una directiva de
grupo o GPO.
Así pues tengo un fichero en la carpeta Scripts/Logon de la política.

Ahora, ¿qué contiene el fichero?

* El comando SET no sirve, por cuanto sólo establece variables que
desaparecen tras finalizar la sesión que abre el fichero para su ejecución.
Por tanto, una vez que se cierra, adiós a la variable.
SET variable = valor

* El comando SETX del Resource Kit parece que no funciona muy bien para XP
(aparte de la advertencia de Microsoft de que sólo se ha probado para la
versión en inglés). Probándola, no obstante, puedo crear variables de
entorno de usuario que pueden verse en la caja de diálogo de variables de
entorno, pero que no aparecen si hago un set desde línea de comandos o
intento acceder a ella cuando estoy, por ejemplo, creando un acceso directo
por medio del asistente.
Si intento crear una variable de entorno de sistema con el SETX, cuando el
usuario inicia la sesión y se ejecuta entonces el fichero, da un error de
acceso denegado. Supongo que por problemas de permisos para crear variables
de sistema cuando es un usuario normal el que está en sesión.

* Usando Windows Scripting Host. Por ejemplo estas líneas:
1. Creación de variable de sistema TestVar
Dim WshShell, WshEnv
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("SYSTEM")
WshEnv("TestVar") = "Windows Script Host"

2. Creación de variable de usuario TestVar
Dim WshShell, WshEnv
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("USER")
WshEnv("TestVar") = "Windows Script Host"

Ocurre el mismo problema: error de acceso denegado cuando intenta ejecutar
el archivo .vbs que crea la variable de sistema, y cuando es de usuario,
aparece en la caja de diálogo pero no mediante set en línea de comandos ni
cuando creo un acceso directo.

Sigue por tanto, el problema abierto. Gracias a todos.


"Rafael Sánchez" <rsan...@comm.germinus.com> wrote in message
news:#1htjFvjCHA.1664@tkmsftngp11...

0 new messages