Похоже, что это делает хитрость (возможно, предостережение), чтобы найти все папки, к которым у пользователя «someuser» есть доступ, в этом примере на диске C, с помощью встроенной команды Windows icacls:
icacls c:\*. /findsid someuser /t /c /l
Параметр / t необходим для того, чтобы указывать его для повторения каталогов. / C необходим, чтобы он продолжал работать, даже если он обнаружит ошибки. / L заставляет его работать с символическими ссылками (если есть). (Последний является L, и эти флаги могут быть в верхнем или нижнем регистре.)
*.
Будет признано DOS старожилов как способ сказать «взгляд для каталогов, а не файлы». Конечно, если вы хотите найти файлы, а не папки, измените его на*.*
, и, конечно, вы можете указать его на любом диске, или запустить его из любой папки и оставить путь к диску / папке и позволить ему искать относительно этого только папка.
Я искал тот же ответ, что и ОП, и нашел эту запись, но был огорчен, увидев только предложение, основанное на загружаемом инструменте. Как и другие, я предпочел использовать что-то встроенное, и я нашел это в этом инструменте icacls.
И я подтвердил, что он работает в Windows Server 2012, 2008 и Windows 7, поэтому я подозреваю, что он также будет работать в Server 2003, Windows 8 и так далее.
Результирующий список будет отображаться папками строка за строкой, например:
Найден SID: c: \ somedir \ somesubdir.
Обратите внимание, что если вы запустите его как пользователь, который сам не имеет прав доступа к некоторым просматриваемым каталогам, вы получите ошибки, чередующиеся в таких результатах, как:
c: \ System Volume Information: доступ запрещен.
И если вы ищете весь диск, это может привести к сотням таких ошибок, что затруднит поиск в них результатов.
Некоторые могут подумать, что ответом является запуск командной строки от имени администратора, но это просто вызовет появление гораздо большего количества таких ошибок, поскольку теперь вы будете проходить через ранее скрытые папки.
Теперь, если вы заинтересованы в сокрытии этих ошибок, вы не сможете использовать команду поиска для передачи только тех результатов, которые МОГУТ быть успешными (те, которые ДОЛЖНЫ обратиться к «найден SID»), потому что ошибки НЕ будут отфильтрованы по трубе к команде поиска. Вместо этого, если вы хотите удалить все ошибки, вам нужно использовать довольно неясный прием перенаправления потока ошибок (stderr) в «битовую корзину» с помощью 2>nul:
. Таким образом, приведенный выше пример станет:
icacls c:\*. /findsid someuser /t /c /l 2>nul:
Просто имейте в виду, что некоторые из папок, которые генерировали такие ошибки, ошибки которых теперь скрыты, вполне могут быть папками, к которым у «someuser» есть доступ, но к которым вы не имеете доступа. Таким образом, вы можете подумать дважды, просто игнорируя эти ошибки. но если вы хотите, вот как вы можете это сделать.
Я понимаю, что эта возможность потенциально ограничивает ценность этого ответа. Если кто-то, более знакомый с вещами, хотел бы расширить или исправить мой ответ, я бы приветствовал это.