背景
我最近继承了一组 Windows Server 2019 服务器。设置并不理想。它们都是工作组的一部分myworkgroup
,但不涉及域。每个都有自己的本地管理员帐户。theadmin
所有本地theadmin
帐户都有相同的密码。一台服务器启用了共享文件夹。
总体布局如下:
- 服务器A
- 文件共享:(
C:\Shared
名称:“共享”) - 本地管理员:(
ServerA\theadmin
相同密码,例如redactedpw1234
)
- 文件共享:(
- 服务器B
- 本地管理员:(
ServerB\theadmin
相同密码,例如redactedpw1234
)
- 本地管理员:(
- 服务器C
- 本地管理员:(
ServerC\theadmin
相同密码,例如redactedpw1234
)
- 本地管理员:(
- 服务器QA
- 本地管理员:(
ServerQA\theadmin
相同密码,例如redactedpw1234
)
- 本地管理员:(
挑战
在某个时候——很难准确指出具体时间——ServerQAtheadmin
帐户现在可以读取\\ServerA\Shared
,但无法修改或删除文件(看到以此帐户身份运行的计划任务存在问题,然后在以该帐户身份登录时通过 Windows 资源管理器进行验证)。
ServerB 和 ServerC 的theadmin
账户似乎没有这个问题。当在这两台机器上登录本地账户时,我可以按预期theadmin
查看和修改/创建/删除文件。\\ServerA\Shared
我的挑战可以总结如下:
- ✅
ServerB
、ServerC
和ServerQA
似乎具有相同的配置 - ✅
ServerB
可以在 Windows 资源管理器中访问\\ServerA\Share
并创建/修改文件 - ✅
ServerC
可以在 Windows 资源管理器中访问\\ServerA\Share
并创建/修改文件 - ❌
ServerQA
可以在 Windows 资源管理器中读取,\\ServerA\Share
但在尝试创建或修改文件时收到权限错误。
我尝试过的事情
- 重启
ServerQA
服务器 Get-SmbConnection
在所有服务器上。- ServerB、ServerC 和 ServerQA 上的设置模式似乎相同 - 用户列表
[TheMachine]\theadmin
与每个情况相同,并且凭证相同。因此,它们都使用本地theadmin
凭证。 - 该方言适用
3.1.1
于所有机器。
- ServerB、ServerC 和 ServerQA 上的设置模式似乎相同 - 用户列表
Get-SmbMultichannelConnection
似乎所有这一切都表现出了同样的情况。Interface index [The Ethernet1 index for the server], RSS: True, RDMA: False
- 尝试删除并重新建立共享
- 在 ServerQA 上,
net use /delete \\ServerA\Shared
- 在 ServerA 上,
Get-SmbSession
然后Close-SmbSession
关闭该计算机的所有会话 - 在 ServerQA 上
net use \\ServerA\Shared /user:ServerQA\theadmin redactedpw1234
重新建立 - 在 ServerQA 上,
net use
确认Get-SmbConnection
一切设置均符合预期
- 在 ServerQA 上,
- 在所有服务器上运行
whoami /all
并验证本地帐户都属于同一本地组。 - 检查了各个服务器上的 SMBClient 和 SMBServer 事件日志。没有什么特别的。
- 检查注册表。所有服务器的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
- 虽然我可能错过了我应该寻找的其他地方?
Get-SmbClientConfiguration
在所有服务器上返回相同的结果- 安装了NTFSSecurity powershell 模块并
Get-NTFSEffectiveAccess -Path \\ServerA\Shared
从所有服务器运行。全部返回结果。 - 在 上
ServerA
,运行icacls "C:\Shared"
。这返回 ServerA\theadmin 具有访问权限,但没有其他计算机的特定管理员帐户。所以我认为这不太相关。 - 在
ServerA
,运行Get-SmbShareAccess -Name "Shared"
。ServerA\theadmin
用户出现在结果中,但没有theadmin
具体提及其他机器的用户。 - 运行并比较结果。权限下存在差异,但据我所知,它们似乎反映了本地 SID。但我对此不太熟悉
secedit /export /cfg c:\Windows\temp\secpol.cfg
。ServerB
ServerQA
- 在每台服务器上运行
gpresult /h
并比较 HTML 文件。据我所知,没有区别。 - 根据下面一个很好的答案,我检查了
ServerQA
服务器的注册表,看是否已正确HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy
设置。不幸的是,它已经正确设置了。1
问题
考虑到以上所有情况,我如何确定在这种情况下访问与访问ServerQA
之间的差异?我是否应该考虑使用其他工具?我是否缺少一个常见的故障排除点来确定服务器之间的差异?我不知所措。ServerB
ServerC
更新--越来越近了?
ServerA
重新启动(托管文件共享的客户端)和(有问题的客户端)后ServerQA
,症状似乎消失了大约 10 分钟。我能够修改文件,并看到计划任务按预期运行并修改文件。然后症状又回来了,我没有采取任何行动,并且一直如此。