Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/03/2008, 14:34
Avatar de dogduck
dogduck
 
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 10 meses
Puntos: 19
Re: comando cacls para grupos ¿como?

Por cierto atención con la linea de lanza_permisos.cmd :
FOR /F "eol=; tokens=1* delims=:" %%i in (c:\grupotodos\todos.txt) do SET nombre_grupo_todos=%%i
No pongas espacio en blanco entre los 2 puntos y las dobles comillas delims=:"

Te comento los scripts:

1º ejecutas lanza_permisos.cmd


if not exist c:\grupotodos md c:\grupotodos = si no existe el directorio lo crea
averigua_nombre_grupo_local_todos.vbs = lanza el script en vbs
set nombre_grupo_todos = = inicializa la variable
FOR /F "eol=; tokens=1* delims=: " %%i in (c:\grupotodos\todos.txt) do SET nombre_grupo_todos=%%i = lee del fichero todos.txt su contenido y lo asigna a la variable
cacls c:\carpeta /E /G %nombre_grupo_todos%:C = da permisos a la carpeta, editando la acl en vez de reemplazarla y concede permisos de escritura al usuario que esté en la variable %nombre_grupo_todo%

el fichero averigua_nombre_grupo_local_todos.vbs, que es lanzado por el .cmd y debe de estar en la misma carpeta que el .cmd

Ordenador = "." = variable que apunta a localhost (cosas del WMI)
Set ServicioWMI = GetObject("winmgmts:\\" & Ordenador & "\root\cimv2")
Set Cuenta = ServicioWMI.Get ("Win32_SID.SID='S-1-1-0'") = Hasta aquí consigue que la variable Cuenta obtenga las propiedades del grupo local Todos (en cualquier idioma)
Set WshShell = WScript.CreateObject("WScript.Shell") = Inicializamos el ActiveX Windows Scripting Host Shell
WshShell.Run "cmd /c echo " & Cuenta.AccountName & " > c:\grupotodos\todos.txt" = Equivalente a lanzar el comando
inicio > ejecutar > cmd /c echo Todos > c:\grupotodos\todos.txt
pero gracias a Cuenta.AccountName en el idioma del sistema
el comando lo que hace es escribir en un fichero el valor de Cuenta.AccountName (todos) y si existe el fichero lo sobrescribiria (>) ( para añadir se usaria >> )


Postdata: lo he probado en XP, 2K3 y vista Home premium y funciona. Suerte
salu2