2014-01-23 76 views
1

我在PowerShell中的新手,我需要創建腳本,它在Windows Server 2012上創建文件夾,並許可其設置爲共享共享在Win2012:大家NETWORK SERVICE 全部通過PowerShell的

我寫了下面的腳本

Import-Module SmbShare 
Import-Module SmbWitness 

function CreateFolderIfNotExists([string]$Path) 
{ 
    if (!(Test-Path $Path)) 
    { 
     New-Item -ItemType Directory -Force -Path $Path 
     return $True 
    } 

    return $False 
} 

if (CreateFolderIfNotExists -Path "C:\DataExport") 
{ 
    New-SmbShare –Name "DataExport" –Path "C:\DataExport" –FullAccess "NETWORK SERVICE" –ReadAccess "Everyone" 
} 

腳本創建的文件夾,實現共享,但設置文件夾的權限,而不是設置共享權限 - 這意味着,如果我顯示數據導出文件夾,標籤共享的特性。如果我使用高級共享...按鈕和權限按鈕,我看到權限正確,但如果我使用分享...按鈕,權限未設置。

如果我嘗試連接到共享文件夾,我沒有訪問共享文件夾的權限。

有什麼方法可以設置共享文件夾?

回答

1

Finaly我發現工具CACLS(目前不建議使用,但工程),並通過這個工具,我可以設置共享權限:

function GrantSharePermission([string]$Path, [string]$User, [string]$Permission) 
{ 
    $Command = "cacls " + $Path + " /G " + $User + ":" + $Permission + " /T /E" 
    iex $Command 
} 
0

CACLS是一個很好的工具,但它會設置文件權限(在所示當您右鍵單擊文件或文件夾時的安全選項卡),不共享權限。您應該瞭解,用戶或組對共享的有效權限是這兩者中限制性較強的一種。因此,如果您授予用戶更改共享權限的權限,但只允許在文件系統上執行讀取/執行操作,則該用戶的有效權限爲該區域中的讀取/執行權限。

如果你喜歡使用cacls,rmtshare.exe是另一個可以做你想做的過時的工具。 cacls將設置文件權限,rmtshare將處理共享。您將不得不四處尋找,在我的工作中,我們使用資源工具包中較舊的副本。

例rmtshare用法:

rmtshare \\servername\sharename=C:\Websites\wwwroot /remark:"Website Share" 
rmtshare \\servername\sharename /grant Administrators:F /grant system:f /remove everyone 
rmtshare \\servername\sharename /grant "servername\Local Website Users":C 
rmtshare \\servername\sharename /grant "servername\Local Website Viewers":R