これは、ユーザーの「someuser」がアクセスするすべてのフォルダーを見つけるために、Cドライブ上で、組み込みのWindows icaclsコマンドを使用して、トリックを実行しているようです(おそらく警告があります)。
icacls c:\*. /findsid someuser /t /c /l
/ tは、ディレクトリを再帰するように指示するために必要です。/ cは、エラーが発生しても続行し続けるように指示するために必要です。/ lは、シンボリックリンク(存在する場合)で動作するようにします。(最後の1つはLであり、これらのフラグは大文字でも小文字でもかまいません。)
*.
「ディレクトリに対して、ファイルではない見て」と言うための方法として、DOSの古いタイマーによって認識されます。もちろん、フォルダーではなくファイルを検索する場合は、に変更します。*.*
もちろん、任意のドライブをポイントするか、任意のフォルダーから実行してドライブ/フォルダーパスを省略し、その相対検索を実行できます。フォルダのみ。
OPと同じ答えを探して、このエントリを見つけましたが、ダウンロード可能なツールに基づいたオファーしか見られなかったので困りました。他の人と同様に、私はこのicaclsツールで組み込みのものを使用することを好みました。
そして、Windows Server 2012、2008、およびWindows 7で動作することを確認したので、Server 2003、Windows 8などでも同様に動作すると思います。
結果のリストは、次のような行ごとに示されるフォルダーになります。
見つかったSID:c:\ somedir \ somesubdir。
これを、横断するディレクトリへのアクセス権を持っていないユーザーとして実行すると、次のような結果にエラーがインターリーブされることに注意してください。
c:\ System Volume Information:アクセスが拒否されました。
また、ドライブ全体を検索している場合、そのようなエラーが何百も発生する可能性があり、その中から結果を見つけるのが難しくなります。
答えは管理者としてコマンドラインを実行することであると考える人もいるかもしれませんが、以前は非表示だったフォルダーを走査するため、このようなエラーが表示されるだけです。
これらのエラーを非表示にすることに関心がある場合、エラーが除外されないため、findコマンドを使用して、DOが成功する結果(DOが "SID found"を参照するもの)のみをパイプすることはできません。 findコマンドへのパイプによって。代わりに、すべてのエラーを削除する場合は、を使用してエラーストリーム(stderr)を「ビットバケット」にリダイレクトする、かなりあいまいなトリックを使用する必要があります2>nul:
。したがって、上記の例は次のようになります。
icacls c:\*. /findsid someuser /t /c /l 2>nul:
そのようなエラーを生成したフォルダーのうち、現在は非表示になっているフォルダーは、「someuser」という名前のユーザーがアクセスできるが、アクセスできないフォルダーになる可能性があることに注意してください。そのため、これらのエラーを単に無視することについて考え直した方がよいでしょう。しかし、必要に応じて、それを行うことができます。
その可能性はこの答えの価値を潜在的に制限する、と私は理解しています。物事にもっと精通している人が私の答えを拡大したり修正したりしたいなら、私はそれを歓迎します。