2008-12-30 65 views
15

Necesito una secuencia de comandos para ejecutar en Vista Ultimate para compartir una unidad externa y asignar el control total a Todos. Tengo un archivo por lotes para crear el recurso compartido usando net share, pero no parece haber una manera de cambiar los permisos. Creo que esto debe ser posible en PowerShell, pero no tengo idea de por dónde empezar.Compartir una carpeta y configurar permisos en PowerShell

Respuesta

12

Dos respuestas.

En PowerShell, el cmdlet Get-ACL recuperará los permisos existentes. A continuación, modifique los comandos .NET y ejecute Set-ACL para volver a aplicarlo a la carpeta. La ayuda para estos dos cmdlets incluye ejemplos y puede descargar los ejemplos de libros de www.sapienpress.com para "Windows PowerShell: TFM". "= el libro también contiene ejemplos explícitos.

Sin embargo, no vale la pena su tiempo. Hablando en términos prácticos, las ACL de archivos son un dolor real de tratar e increíblemente complicado. Microsoft ya ha escrito herramientas encantadoras para hacer esto, como Cacls, y es mucho más fácil usarlas.

Ahora que son todos permisos de ARCHIVO - usted también puede estar interesado en cambiar los permisos en el propio SHARE. La herramienta para eso es SUBINACL, y puedes descargarlo de Microsoft. Vea también http://cwashington.netreach.net/depo/view.asp?Index=1127&ScriptType=vbscript.

+0

Gracias Don. Probé el script de subinacl desde el enlace, pero había un error en él. – harriyott

+3

Enlace de MS: http://www.microsoft.com/downloadS/details.aspx?familyid=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en –

15

En caso de que esté buscando una respuesta a esta pregunta, pero está ejecutando Windows 7 (en lugar de Vista), como estaba, podría estar interesado en saber que los permisos se pueden configurar en el comando NET SHARE , ahora, directamente.

Por ejemplo,

Neta de Películas = M: \ Películas/GRANT: Everyone`, LEA

se cree un recurso compartido y dar a todos permisos de sólo lectura a la misma.

En lugar de READ, puede usar CHANGE o FULL también.

+0

esto también funciona en Windows Server 2008 R2 – Jeremy

+4

Powershell no parece gustarle este comando a menos que cites el último argumento: NET SHARE Movies = M: \ Movies "/ GRANT: Everyone, READ" –

+0

Funciona como un encanto :) –

4

El módulo PowerShell Carbon tiene dos funciones que lo harán por usted: Install-SmbShare y Grant-Permission. Lo haría download it y pruébelo.

Install-SmbShare -Name MyShare -Path X:\ -FullAccess 'Everybody' ` 
       -Description 'My super-awesome file share!' 
Grant-Permission -Identity Everyone -Permission FullControl -Path X:\ 

Descargo de responsabilidad: soy el autor y creador de Carbon. Recomiendo usar este módulo porque hay muchas advertencias y baches a tener en cuenta al instalar recursos compartidos y otorgar permisos. Estas dos funciones se encargan de eso por ti.

Cuestiones relacionadas