2008-12-30 33 views
15

Ho bisogno di uno script per l'esecuzione su Vista Ultimate per condividere un'unità esterna e assegnare il controllo completo a Everyone. Ho un file batch per creare la condivisione utilizzando net share, ma non sembra essere un modo per modificare le autorizzazioni. Suppongo che ciò sia possibile in PowerShell, ma non ho idea di dove cominciare.Condivisione di una cartella e impostazione delle autorizzazioni in PowerShell

risposta

12

Due risposte.

In PowerShell, il cmdlet Get-ACL recupera le autorizzazioni esistenti. Quindi si modificano quelli che utilizzano i comandi .NET e si esegue Set-ACL per applicarlo nuovamente alla cartella - la guida per questi due cmdlet include esempi ed è possibile scaricare gli esempi di libri da www.sapienpress.com per "Windows PowerShell: TFM "= il libro contiene anche esempi espliciti.

Tuttavia, non ne vale la pena. In pratica, i file ACL sono un dolore reale da affrontare e incredibilmente complicato. Microsoft ha già creato degli strumenti adorabili per farlo, come Cacls, ed è molto più semplice usarli.

Ora sono tutte le autorizzazioni FILE. Potresti anche essere interessato a modificare le autorizzazioni sullo SHARE stesso. Lo strumento è SUBINACL e puoi scaricarlo da Microsoft. Vedi anche http://cwashington.netreach.net/depo/view.asp?Index=1127&ScriptType=vbscript.

+0

Grazie Don. Ho provato lo script subinacl dal link, ma c'era un errore in esso. – harriyott

+3

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

15

Nel caso si stia cercando una risposta a questa domanda, ma si sta utilizzando Windows 7 (invece di Vista), come ero, potrebbe essere interessante sapere che le autorizzazioni possono essere impostate nel comando NET SHARE , ora, direttamente.

Per esempio,

NET SHARE Film = M: \ Film/GRANT: Everyone`, LEGGERE

sarà creare una condivisione e dare a tutti autorizzazioni di sola lettura ad esso.

Invece di READ, è possibile utilizzare anche CHANGE o FULL.

+0

funziona anche in Windows Server 2008 R2 – Jeremy

+4

Powershell non sembra gradire questo comando a meno che tu non citi l'ultimo argomento: NET SHARE Movies = M: \ Movies "/ GRANT: Everyone, READ" –

+0

Funziona come un fascino :) –

4

Il modulo Carbon PowerShell ha due funzioni che lo faranno per voi: Install-SmbShare e Grant-Permission. Vorrei download it e provarlo.

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

Disclaimer: Sono l'autore e creatore di Carbon. Raccomando di usare questo modulo perché ci sono un sacco di avvertimenti e buche a cui prestare attenzione quando si installano condivisioni e si concedono le autorizzazioni. Queste due funzioni si prendono cura di questo per te.

Problemi correlati