Fundo
Eu herdei um grupo de servidores Windows Server 2019 recentemente. A configuração não é... ideal. Eles são todos parte de um grupo de trabalho, myworkgroup
, mas não há domínio envolvido. Cada um tem sua própria conta de administrador local, theadmin
. Todas as theadmin
contas locais têm a mesma senha. Um servidor tem uma pasta compartilhada habilitada.
O layout geral se parece com:
- ServidorA
- Compartilhamento de arquivo:
C:\Shared
(nome: "Compartilhado") - Administrador local:
ServerA\theadmin
(mesma senha, por exemploredactedpw1234
)
- Compartilhamento de arquivo:
- ServidorB
- Administrador local:
ServerB\theadmin
(mesma senha, por exemploredactedpw1234
)
- Administrador local:
- Servidor C
- Administrador local:
ServerC\theadmin
(mesma senha, por exemploredactedpw1234
)
- Administrador local:
- ServidorQA
- Administrador local:
ServerQA\theadmin
(mesma senha, por exemploredactedpw1234
)
- Administrador local:
O desafio
Em algum momento — difícil precisar exatamente quando — a theadmin
conta ServerQA agora consegue ler \\ServerA\Shared
, mas não consegue modificar ou excluir arquivos (observei um problema com uma tarefa agendada em execução nessa conta e depois verifiquei pelo Windows Explorer enquanto estava conectado com essa conta).
As contas do ServerB e do ServerC theadmin
não parecem ter esse problema. Quando conectado na theadmin
conta local nessas duas máquinas, posso olhar \\ServerA\Shared
e modificar/criar/excluir arquivos conforme o esperado.
Então meu desafio pode ser resumido como:
- ✅
ServerB
,ServerC
, eServerQA
parecem ter a mesma configuração - ✅
ServerB
pode acessar\\ServerA\Share
no Windows Explorer e criar/modificar arquivos - ✅
ServerC
pode acessar\\ServerA\Share
no Windows Explorer e criar/modificar arquivos - ❌
ServerQA
consegue ler\\ServerA\Share
no Windows Explorer, mas recebe um erro de permissão ao tentar criar ou modificar arquivos.
Coisas que eu tentei
- Reiniciando o
ServerQA
servidor Get-SmbConnection
em todos os servidores.- O padrão de configuração parece ser o mesmo no ServerB, ServerC e ServerQA - O usuário é listado como
[TheMachine]\theadmin
em cada caso, e a credencial é a mesma. Então, todos eles estão usando suastheadmin
credenciais locais. - O dialeto é
3.1.1
para todas as máquinas.
- O padrão de configuração parece ser o mesmo no ServerB, ServerC e ServerQA - O usuário é listado como
Get-SmbMultichannelConnection
parece mostrar o mesmo padrão para todos eles.Interface index [The Ethernet1 index for the server], RSS: True, RDMA: False
- Tentou remover e restabelecer o compartilhamento
- No ServerQA,
net use /delete \\ServerA\Shared
- No ServerA
Get-SmbSession
e, em seguida,Close-SmbSession
para fechar todas as sessões dessa máquina - No ServerQA,
net use \\ServerA\Shared /user:ServerQA\theadmin redactedpw1234
para restabelecer - No ServerQA,
net use
eGet-SmbConnection
para confirmar que as coisas estão configuradas conforme o esperado
- No ServerQA,
- Executei
whoami /all
em todos os servidores e verifiquei se todas as contas locais estão nos mesmos grupos locais. - Verifiquei os logs de eventos SMBClient e SMBServer nos respectivos servidores. Nada se destaca.
- Verifiquei o registro. Todos os servidores têm os mesmos valores em
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
- Embora eu possa estar faltando em algum outro lugar que eu deveria procurar?
Get-SmbClientConfiguration
retorna o mesmo resultado exato em todos os servidores- Instalou o módulo powershell NTFSSecurity e executou
Get-NTFSEffectiveAccess -Path \\ServerA\Shared
de todos os servidores. Todos retornaram o resultado. - Em
ServerA
, correuicacls "C:\Shared"
. Isso retornou ServerA\theadmin como tendo acesso, mas nenhuma das outras contas de administrador específicas da máquina. Então, estou assumindo que isso não é tão relevante. - Em
ServerA
, correuGet-SmbShareAccess -Name "Shared"
. OServerA\theadmin
usuário estava nos resultados, mas nenhum dostheadmin
usuários das outras máquinas foi mencionado especificamente. - Continuei e comparei os resultados. Há diferenças em privilégios, mas, até onde posso perceber, eles parecem refletir SIDs locais. Mas estou menos familiarizado com isso
secedit /export /cfg c:\Windows\temp\secpol.cfg
.ServerB
ServerQA
- Em cada servidor, executei
gpresult /h
e comparei os arquivos HTML. Até onde posso perceber, não há diferenças. - Por uma ótima tentativa de resposta abaixo, eu verifiquei o
ServerQA
registro do servidor para ver seHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy
estava definido1
como deveria. Infelizmente, já está.
Pergunta
Considerando tudo isso, como posso determinar qual é a diferença entre o acesso de ServerQA
vs ServerB
ou ServerC
nesta situação? Há alguma ferramenta adicional que eu deva considerar? Há algum ponto comum de solução de problemas que estou esquecendo para determinar a diferença entre servidores? Estou perdido.
Atualização: está mais perto?
Após reiniciar ServerA
(que hospeda o compartilhamento de arquivos) e ServerQA
(o cliente problemático), os sintomas pareceram desaparecer por cerca de 10 minutos. Consegui modificar arquivos e ver as tarefas agendadas sendo executadas conforme o esperado e modificando arquivos. Então os sintomas retornaram sem nenhuma ação da minha parte e permaneceram assim.