NFS Server granting/removing share permissions to a host error

1

While trying to add a host to NFS share permissions I'm receiving a very generic error with not much to go on.

Cannot set NFS permissions Failed to perform the requested operation.

The NFS server is a Windows 2012 R2 core server. I've tried doing this both via the UI (Server Manager tool) and directly from the box with powershell.

Windows share permissions UI screen

[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

I've redacted the server/client names as I don't think that's really relevant. I'm getting the same error when trying to remove any of the existing hosts as well. The server itself hosts a number of shares and it's only this one that throws this issue. i.e I can add, remove or edit permissions on any other share on the server bar this one. If it's relevant the server is virtual(VmWare) and the Volumes for the shares are virtual disks.

I've found a very similar issue on SO with no answers but a comment from the poster himself saying he bypassed the issue by using the "FailOverClusterManager menu". In my case the shares are not clustered nor am I aware of any way to grant permissions from the cluster manager. Nothing related to this issue is coming up in the Event Viewer and a full server reboot didn't help.

I've been banging my head against the wall for a few days with this problem so any insights/pointers would be really appreciated.

Edit - adding the output of Get-NfsSharePermission and Revoke-NfsSharePermission commands as suggested in the comments.

[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
windows
permissions
vmware
windows-server-2012-r2
nfs
asked on Super User Nov 19, 2019 by Gytis • edited Nov 21, 2019 by Gytis

1 Answer

1

For some unknown reason, Windows NFS updates the entire list of NFS clients whenever you add or remove a client. Granting permissions for a new client will fail if there is one or more, of the existing clients, that are not up and running. As a workaround, Check the list of existing clients, remove those that are not reachable and add your new NFS client. (unfortunately DR clients that are not running must be removed also) Note: Click apply only after removing all unreachable hosts

 $ShareName="NFS_ShareName"
    $nfsClients= Get-NfsSharePermission  $ShareName
    foreach( $client in $nfsClients.ClientName){
     if (!(Test-Connection -Computername $client -BufferSize 16 -Count 1 -Quiet)){ 
        write $client
     }
   } 
answered on Super User Apr 28, 2020 by Abdelkader • edited Apr 28, 2020 by Abdelkader

User contributions licensed under CC BY-SA 3.0