NFS 服务器授予/删除主机共享权限错误

NFS 服务器授予/删除主机共享权限错误

在尝试将主机添加到 NFS 共享权限时,我收到了一个非常通用的错误,没有太多可继续的信息。

Cannot set NFS permissions Failed to perform the requested operation.

NFS 服务器是 Windows 2012 R2 核心服务器。我尝试通过 UI(服务器管理器工具)和直接从带有 powershell 的框中执行此操作。

Windows 共享权限 UI 屏幕

[server-name]: PS F:\Shares> Grant-NfsSharePermission -Name "<share-name>" -ClientName "<client-name>" -ClientType "host" -Permission "readwrite" -AllowRootAccess:$true
Grant-NfsSharePermission : Failed to perform the requested operation.
    + CategoryInfo          : ObjectNotFound: (MSFT_NfsServerTasks:root/Microsoft/..._NfsServerTasks) [Grant-NfsShareP
   ermission], CimException
    + FullyQualifiedErrorId : HRESULT 0x80070490,Grant-NfsSharePermission

我删除了服务器/客户端名称,因为我认为这并不真正相关。当我尝试删除任何现有主机时,我也遇到了同样的错误。服务器本身托管了许多共享,只有这个共享会引发此问题。也就是说,我可以添加、删除或编辑服务器上除此共享之外的任何其他共享的权限。如果相关,则服务器是虚拟的(VmWare),共享的卷是虚拟磁盘。

我发现了一个非常类似的问题所以没有答案,但发帖人本人评论说他使用“FailOverClusterManager 菜单”绕过了这个问题。就我而言,共享不是集群的,我也不知道有任何方法可以从集群管理器授予权限。事件查看器中没有出现与此问题相关的任何内容,完全重新启动服务器也无济于事。

我已经为这个问题苦苦思索了好几天了,所以任何见解/指点都将不胜感激。

编辑-按照评论中的建议添加Get-NfsSharePermission和命令的输出。Revoke-NfsSharePermission

[server-name]: PS F:\Shares> Get-NfsSharePermission <share-name> 

Name                          ClientName                    Permission                    AllowRootAccess
----                          ----------                    ----------                    ---------------
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      <client-name>                 READ, WRITE                   True
<share-name>                      All Machines                  DENY ACCESS                   False
[server-name]: PS F:\Shares> Revoke-NfsSharePermission -ClientName "client-name" -ClientType host -Name "<share-name>"
Revoke-NfsSharePermission : Failed to perform the requested operation.
    + CategoryInfo          : ObjectNotFound: (MSFT_NfsServerTasks:root/Microsoft/..._NfsServerTasks) [Revoke-NfsShare
   Permission], CimException
    + FullyQualifiedErrorId : HRESULT 0x80070490,Revoke-NfsSharePermission

答案1

由于某些未知原因,每当您添加或删除客户端时,Windows NFS 都会更新整个 NFS 客户端列表。如果现有客户端中有一个或多个未启动并运行,则授予新客户端的权限将失败。解决方法是,检查现有客户端列表,删除无法访问的客户端,然后添加新的 NFS 客户端。(遗憾的是,未运行的 DR 客户端也必须删除)注意:仅在删除所有无法访问的主机后单击应用

 $ShareName="NFS_ShareName"
    $nfsClients= Get-NfsSharePermission  $ShareName
    foreach( $client in $nfsClients.ClientName){
     if (!(Test-Connection -Computername $client -BufferSize 16 -Count 1 -Quiet)){ 
        write $client
     }
   } 

相关内容