Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/03/2008, 11:07
LSS
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: comando cacls para grupos ¿como?

Por fin tengo listo el script.

Con este scrippt se consigue dar permisos para que los usuarios tengan todos los permisos en 2 carpetas y para que todos los usuarios tengan permisos para acceder a una clave del registro.

En total tenemos 3 ficheros: Script.bat, GetUsersName.vbs y Script.txt.

Ejecutamos Script.bat el cual primero da permisos de acceso a una clave del registro a todos los ususarios con el comando Regini y según lo contenido en Script.txt.
Luego se lanza GetUsersName.vbs que deja el nombre del grupo usuarios en un fichero y finalmente se usa el comando cacls se da para dar permiso al grupo usuarios (obtenido con GetUsersName.vbs) para que tenga total acceso a las carpetas que se pasan por parámetros al Script.bat

Script.bat
Código:
@echo off
Set path1=%1
Set path2=%2
rem Accessos al registro
regini Script.txt
if exist c:\TEMPA2\grupos.txt del c:\TEMPA2\grupos.txt
if not exist c:\TEMPA2 MD c:\TEMPA2
rem el script en vbs debe de crear un fichero c:\TEMPA2\grupos.txt con una linea con el nombre_grupo_users
GetUsersName.vbs
:ESPERA
if not exist c:\TEMPA2\grupos.txt GOTO :ESPERA
set nombre_grupo_users =
FOR /F "eol=; tokens=1* delims= " %%i in (c:\TEMPA2\grupos.txt) do SET nombre_grupo_users=%%i
cacls %path1% /t /e /g %nombre_grupo_users%:F
cacls %path2% /t /e /g %nombre_grupo_users%:F
if exist c:\TEMPA2\grupos.txt del c:\TEMPA2\grupos.txt
if exist c:\TEMPA2 rd c:\TEMPA2
Finalmente la linea de For /f en el parámetro delins le asigno un espacio en blanco. Si no hago eso y no asigno nada o asigno “:”, como antes, parece ser que coge el carácter de final de linea y luego el comando cacls falla (normal )

Script.txt
Código:
\Registry\Machine\Software\Firebird Project\Firebird Server\Instances [1 5 7 11 17]
GetUsersName.vbs
Código:
Ordenador = "."
Set ServicioWMI = GetObject("winmgmts:\\" & ordenador & "\root\cimv2")
Set Cuenta = ServicioWMI.Get ("Win32_SID.SID='S-1-5-32-545'")
rem Wscript.Echo Cuenta.AccountName
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd /c  echo " & Cuenta.AccountName & " > c:\TEMPA2\grupos.txt"



Muchísimas gracias por todo sin tu ayuda no lo hubiera conseguido.

Un placer encontrar gente como dogduck , tan dispuesta a enseñar.
Gracias