New-FileCatalog

Creates a Windows catalog file containing cryptographic hashes for files and folders in the specified paths.

Syntax

New-FileCatalog
   [-CatalogVersion <Int32>]
   [-CatalogFilePath] <String>
   [[-Path] <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

New-FileCatalog creates a Windows catalog file for a set of folders and files. This catalog file contains hashes for all files in the provided paths. Users can then distribute the catalog with their files so that users can validate whether any changes have been made to the folders since catalog creation time.

Catalog versions 1 and 2 are supported. Version 1 uses the (deprecated) SHA1 hashing algorithm to create file hashes, and version 2 uses SHA256.

Examples

Example 1: Create a file catalog for `Microsoft.PowerShell.Utility`

$newFileCatalogSplat = @{
    Path = "$PSHOME\Modules\Microsoft.PowerShell.Utility"
    CatalogFilePath = '\temp\Microsoft.PowerShell.Utility.cat'
    CatalogVersion = 2.0
}
New-FileCatalog @newFileCatalogSplat

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         11/2/2018 11:58 AM            950 Microsoft.PowerShell.Utility.cat

Parameters

-CatalogFilePath

The location and name of the catalog file (.cat) you are creating. If you specify only a folder path, the command creates a file named catalog.cat in that location.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CatalogVersion

Accepts 1.0 or 2.0 as possible values for specifying the catalog version. 1.0 should be avoided whenever possible because it uses the insecure SHA-1 hash algorithm. Version 2.0 uses the secure SHA-256 algorithm.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Accepts a path or array of paths to files or folders that should be included in the catalog file. If a folder is specified, the command includes all files in the folder.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

String

You can pipe a string that's used as the catalog filename to this cmdlet.

Outputs

FileInfo

This cmdlet returns a FileInfo object representing the created catalog.