在尝试将主机添加到 NFS 共享权限时,我收到了一个非常通用的错误,没有太多可继续的信息。
Cannot set NFS permissions Failed to perform the requested operation.
NFS 服务器是 Windows 2012 R2 核心服务器。我尝试通过 UI(服务器管理器工具)和直接从带有 powershell 的框中执行此操作。
[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
}
}