Isto parece fazer o truque (talvez com uma ressalva), para encontrar todas as pastas que o usuário "algum usuário" tem acesso, neste exemplo na unidade C, usando o comando icacls do Windows:
icacls c:\*. /findsid someuser /t /c /l
O / t é necessário para informar a recursão de diretórios. O / c é necessário para dizer para continuar mesmo que encontre erros. O / l faz com que funcione com links simbólicos (se houver). (Esse último é um L e esses sinalizadores podem ser maiúsculas ou minúsculas).
O *.
será reconhecido pelos old-timers do DOS como a maneira de dizer "procure diretórios, não arquivos". É claro que, se você quiser encontrar arquivos e não pastas, altere-o para *.*
e, claro, você pode apontá-lo para qualquer unidade ou executá-lo em qualquer pasta e deixar o caminho da unidade / pasta e deixá-lo pesquisar em relação a essa pasta apenas.
Procurei a mesma resposta do OP e encontrei essa entrada, mas fiquei chateado ao ver apenas uma oferta baseada em uma ferramenta para download. Como outros, eu preferi usar algo embutido, e achei, nesta ferramenta icacls.
Eu confirmei que funciona no Windows Server 2012, 2008 e no Windows 7, por isso suspeito que funcionará também no Server 2003, no Windows 8 e assim por diante.
A lista resultante será composta por pastas, linha após linha, como:
SID encontrado: c: \ somedir \ somesubdir.
Observe que, se você executar isso como um usuário que não tem permissões para alguns diretórios sendo percorridos, você obterá os erros intercalados nos resultados, como:
c: \ System Volume Information: acesso negado.
E se você estiver pesquisando uma unidade inteira, isso pode resultar em centenas de erros, dificultando a localização dos resultados.
Alguns podem pensar que a resposta é executar a linha de comando como administrador, mas isso simplesmente fará com que muito mais erros apareçam, pois agora você estará percorrendo pastas que estavam ocultas anteriormente.
Agora, se você estava interessado em esconder esses erros, você não será capaz de usar um comando find para canalizar apenas os resultados que são bem-sucedidos (aqueles que NÃO se referem a "SID encontrado"), porque os erros NÃO ser filtrado pelo pipe para o comando find. Em vez disso, se você quiser remover todos os erros, será necessário usar o truque bastante obscuro de redirecionar o fluxo de erros (stderr) para o "depósito de bits" usando 2>nul:
. Então, o exemplo acima se tornaria:
icacls c:\*. /findsid someuser /t /c /l 2>nul:
Apenas fique atento para o fato de que algumas das pastas que geraram tais erros, cujos erros agora estão ocultos, podem ser pastas às quais o named "algum usuário" tem acesso, mas que você NÃO tem. Então você pode querer pensar duas vezes sobre simplesmente ignorar esses erros. mas se você quiser, é assim que você pode fazer isso.
Essa possibilidade limita potencialmente o valor dessa resposta, eu percebo. Se alguém com mais familiaridade com as coisas gostaria de expandir ou corrigir minha resposta, eu o receberia bem.