Bat para restringir permisos con opciones.

Es mi primer post y bueno espero pueda ayudarme.
Mi problema es el siguiente.
Acabo de descubrir que utilizando el comando cacls puedo editar los privilegios de algún archivo en mi caso debo restringir el acceso al archivo hosts ya que donde laboro se restringieron algunas direcciones web mediante el mismo, ahora hay personas que saben "el truco" y lo modifican de nuevo.
Utilizando el comando cacls ya no lo pueden modificar nuevamente pero son muchas maquinas las cuales habría que hacer lo mismo y me encantaría me ayudara a crear un bat solo para ejecutarlo y que la pc haga el trabajo esta es la sentencia que utilizo:
Una ves entrando al cmd estos son los datos que coloco.
cd..  (enter)
cd..  (enter)
cd windows\system32\drivers\etc   (enter)
(Una ves dentro utilizo esta otra):
Cacls hosts /D "usuario" (enter)
Y lo que necesito es que si el bat al momento de llegar a "usuario" me de la opción de poder meter el nombre que necesite ya que las maquinas contienen diferentes usuarios, así solo tendría yo que meter el usuario en el cual ejecutare el bat y seria mucho más fácil. Tal ves sea mucho pedir pero le he dado vueltas y no encuentro esa opción.

1 respuesta

Respuesta
1
Yo creo que podría ser algo así:
@echo off
:Bucle
set /P user=usuario:
cacls %windir%\system32\drivers\etc\hosts /D %user%
set /P mas=¨M s usuarios (S/N)?
IF %mas% == S goto bucle
Estoy pasando unos días de vacaciones y no puedo probar a fondo. Los caracteres un poco raros de la pregunta son para que se reconozco adecuadamente el "¿" y la a acentuadas desde el entorno CMD (o MSDOS).
Utilizo la variable de entorno WINDIR para no tener que suponer donde está instalado el Windows en la máquina destino.
Si tienes algún problema dímelo y seguiremos buscando la solución.
Saludos,
GGG
Gracias, muchas gracias.
Tu respuesta me ayudo mucho, lo probé y si me funciono muy bien solo que esta parte:
set /P mas=¨M s usuarios (S/N)?
IF %mas% == S goto bucle
No me funciono pero ya viendo tu ejemplo hice unas modificaciones y me quedo bien, yo había hecho algo como esto.
@echo off
set /p nombre=escriba el usuario:
C:
cd \Windows\System32\drivers\etc
echo cacls hosts /D %nombre%
cacls hosts /D %nombre%
Pause
También me funciono, pero el tuyo se me hizo mucho más practico y más preciso en verdad gracias fue de mucha ayuda.
al final lo deje de esta forma:
@echo off
set /p usuario=escriba el usuario:
echo cacls hosts /D %usuario%
cacls %windir%\System32\drivers\etc\hosts /D %Usuario%
Pause
Pero no hubiera llegado ahí si no es por tu ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas