2012-09-13 11 views
9

Mi stavo guardando in giro per capire come modificare i permessi di un file su un Windows 7 Power Shell. Quindi ho trovato diversi (codificati per me, perché sono abituato al semplice comando chmod) frammenti di codice e mi chiedo se non sarebbe semplice racchiudere quei comandi cablati in una funzione chmod e scriverli in un file $ profile di Power Shell . Immagino che questo è ciò che molti shell ex-linux, ma ora gli utenti di power shell vorrebbe avere per cambiare i permessi di un file.chmod per PowerShell

Sono nuovo in Power Shell. Per favore aiutami con il codice.

+0

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

risposta

5

Ecco un esempio con la modalità nativa, utilizzando ACL e ACE. Devi costruire le tue funzioni intorno a questo.

# 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

guardare il seguente:

  • Set-Acl - Eseguire Get-Help Set-Acl -Full

  • attrib.exe - strumento di Windows standard per l'impostazione attributi di file. Non specifico per PowerShell, ma ovviamente funziona ancora in PowerShell.

  • icacls.exe - Strumento standard di Windows per l'impostazione degli ACL. Non specifico per PowerShell, ma ovviamente funziona ancora in PowerShell.

Fonte: http://www.cs.wright.edu/~pmateti/Courses/233/Labs/Scripting/bashVsPowerShellTable.html Basta fare una ricerca sul web per chmod powershell.