2012-09-13 104 views
9

Estaba mirando a su alrededor para entender cómo modificar (cambiar los permisos de un archivo) un archivo en Windows 7 Power Shell. Así que he encontrado diferentes fragmentos de código (cableados para mí, porque estoy acostumbrado al comando chmod simple) y me pregunto si no sería sencillo ajustar esos comandos cableados en una función chmod y escribirlos en un archivo de $ perfil de Power Shell. . Supongo que esto es lo que muchos shell ex-linux, pero ahora los usuarios de Power Shell desearían tener para cambiar los permisos de un archivo.función chmod para PowerShell

Soy nuevo en Power Shell. Por favor, ayúdame con el código.

+0

¿Has probado 'Get-Help Set-ACL -full'? http://chrisfederico.wordpress.com/2008/02/01/setting-acl-on-a-file-or-directory-in-powershell/ –

Respuesta

5

Aquí hay un ejemplo con la forma nativa, usando ACL y ACE. Tienes que construir tus propias funciones alrededor de eso.

# Get the Access Control List from the file 
# Be careful $acl is more a security descriptor with more information than ACL 
$acl = Get-Acl "c:\temp\test.txt" 


# Show here how to refer to useful enumerate values (see MSDN) 
$Right = [System.Security.AccessControl.FileSystemRights]::FullControl 
$Control = [System.Security.AccessControl.AccessControlType]::Allow 

# Build the Access Control Entry ACE 
# Be careful you need to replace "everybody" by the user or group you want to add rights to 
$ace = New-Object System.Security.AccessControl.FileSystemAccessRule ("everybody", $Right, $Control) 

# Add ACE to ACL 
$acl.AddAccessRule($ace) 

# Put ACL to the file 
Set-Acl "c:\temp\test.txt" $acl 
(Get-Acl "c:\temp\test.txt").access 
Read-Host "--------- Test Here --------------" 

# Remove ACE from ACL 
$acl.RemoveAccessRule($ace) 
Set-Acl "c:\temp\test.txt" $acl 
(Get-Acl "c:\temp\test.txt").access 
1

mira el siguiente:

  • Set-Acl - Ejecutar Get-Help Set-Acl -Full

  • attrib.exe - herramientas estándar de Windows para configurar atributos de archivo. No es específico de Powershell, pero por supuesto todavía funciona en Powershell.

  • icacls.exe - Herramienta estándar de Windows para configurar las ACL. No es específico de Powershell, pero por supuesto todavía funciona en Powershell.

Fuente: http://www.cs.wright.edu/~pmateti/Courses/233/Labs/Scripting/bashVsPowerShellTable.html Sólo hacer una búsqueda en la web para chmod powershell.

Cuestiones relacionadas