Netwrix 1Secureは、データとアイデンティティ全体にわたる統合された可視性を提供します。14日間の無料トライアルでフルアクセス可能です。無料トライアルを開始

リソースセンターハウツーガイド

PowerShell または Netwrix Auditor でファイルを見つけ、存在するか確認する方法

PowerShell または Netwrix Auditor でファイルを見つけ、存在するか確認する方法

Windows ファイル サーバー向け Netwrix Auditor

  1. Netwrix Auditor を実行 → 「Reports」に移動 → 「User Behavior and Blind Spot Analysis」を開く → 「Information Disclosure」へ進み → 「File Names Containing Sensitive Data」を選択 → 「View」をクリックします。
  2. 次のフィルターとパラメーターを指定してください:
  3. オブジェクト UNC パス — ファイル共有へのパスを指定してください
  4. 禁止する単語 — ファイル名で検索したい文字列を指定してください
  5. レポートを表示」をクリックします。
a screenshot of the file names containing sensitive data page

レポートを保存するには、エクスポート ボタン → 例:PDF などの形式を選択 → 別名で保存 → 保存先を選択します。

詳しくはこちら: Netwrix Auditor for Windows File Servers

ネイティブ監査

  1. PowerShell ISE を開きます。
  2. 次のようなスクリプトを実行すると、ファイル名に文字列「payroll」が含まれる Accounting フォルダー内のすべてのファイルが返されます:
      $filename = '*payroll*.*'#you can use wildcards here for name and extension
$searchinfolder = '\\pdc\Shared\Accounting*'
Get-ChildItem -Path $searchinfolder -Filter $filename -Recurse | %{$_.FullName}
      

結果には一致するすべてのファイルが表示されます。

you can use wildcards here for name and for extension

機密データを含む可能性のあるファイルの一覧を用意したら、それらを安全な場所に移動したくなるかもしれません。ですが、ファイル パスが無効だと処理スクリプトがエラーで終了してしまうため、実行する前にまずファイルまたはフォルダーの存在を確認する必要があります。次の PowerShell コマンドが役立ちます:

  • Get-Item を使用してファイルの存在を確認する — PowerShell の Get-Item コマンドレットを使うと、名前でファイルを見つけることができます。指定した項目のパスが存在しない場合、スクリプトはエラーをスローします。以下は、Get-Item コマンドレットを使用してファイル「Payroll 2022 - 2023.xlsx」が存在するかどうかを確認する PowerShell スクリプトです。ファイルが存在する場合はスクリプトがファイルの詳細を返し、存在しない場合は「The file does not exist.」というメッセージを表示します。
      $file="C:\Shared\Accounting\Payroll 2022 - 2023.xlsx"

if (Test-Path$file) {

    $item=Get-Item$file

    Write-Host"The file exists. Details:"

    $item

} else {

    Write-Host"The file does not exist."

}
      
a screenshot of a program that says ``the file does not exist''
  • Get-ChildItem を使用してファイルの存在を確認する — 通常 Get-ChildItem コマンドレットは、指定した場所にある項目の一覧を取得するために使用されますが、特定のファイルの存在を確認する目的にも使えます。以下のスクリプトは、ファイル「Payment_2021.rtf」を取得しようとします。ファイルが存在する場合、スクリプトはファイルの詳細と成功メッセージを返します。存在しない場合は Get-ChildItem から出力は返されず、write host コマンドレットが「The file does not exist.」というメッセージを表示します。
      $file="C:\Shared\Accounting\payment_2021.rtf"

$items=Get-ChildItem$file

if ($items) {

    Write-Host"The file exists."

} else {

    Write-Host"The file does not exist."

}
      
a screenshot of a powershell ise window showing the file exists and the file does not exist
  • Test-Path を使用してファイルの存在を確認する — 特定のファイルまたはフォルダーが存在するかどうかを確認するには Test-Path コマンドレットを使用できます。存在する場合は True 、存在しない場合は False が返されます。たとえば「Payroll 2022 – 2023」のファイルが存在するかどうかを確認するには、次のスクリプトを実行します:
      Test-Path-Path'C:\Shared\Accounting\Payroll 2022 - 2023.xlsx'
      

C:\Shared\Accounting\ に .xlsx の拡張子を持つファイルがあるかどうかを判定するには、次の Test-Path コマンドレットを実行します:

      Test-Path-Path"C:\Shared\Accounting\*"-Include*.xlsx 
      
a screenshot of a powershell window showing a test path

Test-Path を使って、パスがファイルかディレクトリかを確認することもできます。 ‑PathType に値として “leaf” を指定すると、そのパスがファイルの場合に cmdlet が “true” を返します。

      Test-path -Path "C:\Temp\Temp*" -pathtype leaf
      

リモート コンピューター上の共有フォルダーのネットワーク パスを検証するには、次の cmdlet を使用します:

      Test-Path -Path "\\FileServer\Backup"
      

機密性の高いファイルを見つけよう。さらに、それらに関する重要な詳細も把握できます

セキュリティとコンプライアンスを維持するには、IT 担当者は、機密データを含む可能性のあるファイルを定期的に検索し、安全な場所に移動する必要があります。Windows Explorer を使ってファイルを手動で見つけて移動することはできますが、この方法は時間がかかるため、主に 1 つのファイルを保護する必要がある場合に有効です。複数のファイルをより効率的に確認するには、PowerShell を使用できます。 ただし、ファイル移動用の PowerShell スクリプトは、パスが無効だとエラーで終了します。そのため、実行する前に、上記の例のように、ファイルやフォルダーが存在するかどうかを入念に確認する必要があります。

スクリプトを書いたり実行したりに何時間も費やす代わりに、機密データが適切な場所にのみ保存されているかを確認する、あらかじめ用意されたレポートをそのまま開いた方がよくありませんか?Netwrix Auditor for Windows File Servers を試してみてください。より簡単なだけでなく、さらに多くの情報も得られます。オブジェクト パスに加えて、ファイルの所有権の詳細、ユーザーのアクセス許可、そしてファイルをめぐるアクティビティも確認できます。

共有する