hack のためのネタ帳, etc,,,

状況

他人所有の PC でファイルを検索する案件があって、ちょっと難儀したのだが PowerShell で対応した。

手順

まず、
[⊞ (Windows Logo Key)]powershell[CTRL]+[SHIFT]+[ENTER]
で管理者モードで PowerShell を起動

あとは、例えば、ファイル名が "explorer.exe" のファイルやファイルサイズが 4624880 のファイルを見つけたいなら以下のようにする。
cd C:\
Get-ChildItem -Recurse |% { if ( $_.Name -eq "explorer.exe" ) { echo $_ } }
Get-ChildItem -Recurse |% { if ( $_.Length -eq 4624880 ) { echo $_ } }

補足

ジャンクションによる自己参照

デフォルトでシンボリックリンクは追わない(-FollowSymlink オプションで追うようになる)ようなのだが、
ジャンクションは常に追う設定になっており追わない設定が出来ないようなので
ジャンクションにループがあると無限ループするようだ。

Visual Studio Cod # 2018-04-12: Cygwin git の利用で、vscode から cygwin の git 使うために
C:\cygdrive\c に C:\ へのジャンクションを作っていた環境ではこの問題が生じた。

一部のシステムフォルダにアクセスできない

管理者権限で PowerShell を走らせているのに、一部のシステムフォルダで PermissionDenied が発生する
例えば以下の場所
Get-ChildItem : パス 'C:\Windows\CSC' へのアクセスが拒否されました。
発生場所 行:1 文字:1
+ Get-ChildItem -Recurse C:\Windows |% { if ( $_.Length -eq 4624880 ) { ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (C:\Windows\CSC:String) [Get-ChildItem], UnauthorizedAccessException
    + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

Get-ChildItem : パス 'C:\Windows\System32\LogFiles\WMI\RtBackup' へのアクセスが拒否されました。
発生場所 行:1 文字:1
+ Get-ChildItem -Recurse C:\Windows |% { if ( $_.Length -eq 4624880 ) { ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (C:\Windows\Syst...es\WMI\RtBackup:String) [Get-ChildItem], Unauthoriz
   edAccessException
    + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

例えば CSC については explorer.exe でも
このフォルダにアクセスする許可がありません
[継続]をクリックすると、このフォルダーへの永続的なアクセスと取得します。
と出る。「継続」を押しても
このフォルダーへアクセスするアクセス許可が拒否されています。
ここフォルダーへのアクセスを取得するには セキュリティ タブ を使用する必要があります。
と言われる。
「セキュリティ タブ」から「詳細設定」を開いてみても「所有者」の欄が「現在の所有者を表示できません。」となっている。
所有者の変更とかすると、後々トラブりそうなので、ここは無理にアクセスしない方が良い気が。

関連

  • PowerShell
  • Microsoft / Docs / PowerShell / スクリプトの作成 / Reference / Microsoft.PowerShell.Management / Get-ChildItem

続き

もっといい書き方があった。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます