web-dev-qa-db-ja.com

PowerShellでフォルダーを共有してアクセス許可を設定する

外付けドライブを共有し、全員にフルコントロールを割り当てるために、VistaUltimateで実行するスクリプトが必要です。 net shareを使用して共有を作成するためのバッチファイルがありますが、アクセス許可を変更する方法がないようです。これはPowerShellで可能であるに違いないと思いますが、どこから始めればよいのかわかりません。

16
harriyott

2つの答え。

PowerShellでは、Get-ACLコマンドレットが既存のアクセス許可を取得します。次に、.NETコマンドを使用してそれらを変更し、Set-ACLを実行してフォルダーに適用し直します。これら2つのコマンドレットのヘルプには例が含まれており、www.sapienpress.comから「WindowsPowerShell:TFM」の本の例をダウンロードできます。 "=本には明示的な例も含まれています。

しかし、それはあなたの時間の価値がありません。実際には、ファイルACLは対処するのが大変で、非常に複雑です。 Microsoftは、Caclsのように、これを行うための素敵なツールをすでに作成しており、それらを使用するだけではるかに簡単です。

これですべてのFILEパーミッションです。SHARE自体のパーミッションを変更することもできます。そのためのツールはSUBINACLであり、Microsoftからダウンロードできます。 http://cwashington.netreach.net/depo/view.asp?Index=1127&ScriptType=vbscript も参照してください。

13
Don Jones

この質問への回答を探しているが、(Vistaではなく)Windows 7を実行している場合は、私がそうであったように、アクセス許可をNETSHAREコマンドで直接設定できることを知りたいと思うかもしれません。 。

例えば、

NET SHARE Movies = M:\ Movies/GRANT:Everyone`、READ

共有を作成し、Everyoneに読み取り専用のアクセス許可を付与します。

READの代わりに、CHANGEまたはFULLを使用することもできます。

16

WMF 4の時点:

New-SmbShare –Name ShareName –Path C:\LocalFolder –FullAccess Username

http://technet.Microsoft.com/en-us/library/jj635722.aspx

12
xcud

Carbon PowerShellモジュールには、これを行う2つの関数があります: Install-SmbShare および Grant-Permissionダウンロード 試してみます。

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

免責事項:私はCarbonの作成者および作成者です。共有をインストールしてアクセス許可を付与する際に注意すべき注意点や穴がたくさんあるため、このモジュールの使用をお勧めします。これらの2つの機能があなたに代わってそれを処理します。

4
Aaron Jensen