2012-09-14 66 views
3

我在創建共享或分配權限時沒有問題,但我實際上完全無法訪問它。我是服務器上的管理員,我正在嘗試爲其他用戶準備服務器進行測試,並且現在我試圖設置權限,以完全訪問所有人。Powershell在當前服務器上創建共享 - 授予用戶/組的權限

問題是,當我嘗試在共享中創建新的文件/文件夾時,我的訪問被拒絕。

有沒有其他人在通過powershell進行共享時遇到此錯誤?

這是我一直在使用的代碼:

function New-Share 
    { 
     param (
     [parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Mandatory=$true, HelpMessage="No folder name specified")] 
     [string]$FolderName, 
     [parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Mandatory=$true, HelpMessage="No share name specified")] 
     [string]$ShareName, 
     [parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, Mandatory=$false, HelpMessage="No description specified")] 
     [string]$Description 
     ) 
    $error.clear() 
    # Check for folder; Create it if it doesn't exist 
     If (!(Test-Path $FolderName)) 
      { 
       New-Item $FolderName -type Directory | Out-Null 
      } 
      # Check for share; Create it if it doesn't exist 
      $Shares=[WMICLASS]"WIN32_Share" 
      if (!(Get-WMIObject Win32_share -filter "name='$ShareName'")) 
       { 
       $Shares.Create($FolderName,$ShareName,0,65535,$Description) | Out-Null 
       if (!($error)) 
        { 
        # Share created 
        return $true 
        } else { 
        # Error 
        return $false 
        } 
       } else { 
      # Share Exists 
      return $false 
      } 
    } 

我已經調用函數與此:

function bo.Share() 
    { 
     $domain = [Environment]::UserDomainName 
     $BDrive = "$boDrive" + ":\SYNintviewer" 
     New-Share -FolderName "$BDrive" -ShareName "SYNintviewer" -Description "SYNintviewer" 
    } 
+0

因此,這一切工作,你只是沒有權限後?您是否在腳本中使用了Set-ACL來嘗試解決該問題,或者甚至是cacls.exe? –

+0

如果你註釋掉'| $ Shares.Create($ FolderName,$ ShareName,0,65535,$ Description)行中的Out-Null'什麼是ReturnValue? – Nick

+0

感謝您的評論,我不需要明確地設置ACL,只需要正確格式化即可。到目前爲止,它正在使用新的產品線: New-Share -Sharename「SYNintviewer」-Sharepath「$ BDrive」-group「Authenticated Users」-auth FULL – rud3y

回答

1

其實我得到這個工作對我自己...

調用此功能取而代之:

function bo.Share() 
{ 
    $domain = [Environment]::UserDomainName 
    $BDrive = "$boDrive" + ":\SYNintviewer" 
    echo "$boDrive is BoDRIVE" 
    echo "$BDrive is BDRIVE" 
    New-Share -Sharename "SYNintviewer" -Sharepath "$BDrive" -group "Authenticated Users" -auth FULL 
}