PsFCIV.Help.xml

<?xml version="1.0" encoding="utf-8"?><helpItems schema="maml">
<command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
<!--Generated by PS Cmdlet Help Editor-->
    <command:details>
        <command:name>Start-PsFCIV</command:name>
        <maml:description>
            <maml:para>Checks files integrity. This command is an enhanced version of Microsoft&#39;s File Checksum Integreity Verifier (FCIV).</maml:para>
        </maml:description>
        <maml:copyright>
            <maml:para />
        </maml:copyright>
        <command:verb>Start</command:verb>
        <command:noun>PsFCIV</command:noun>
        <dev:version />
    </command:details>
    <maml:description>
        <maml:para>This command calculates hashes for each file and stores this information in an XML database. Once the database is created, the command can check file integrity against database.</maml:para>
        <maml:para>This command supports both, PsFCIV and native FCIV database formats.</maml:para>
    </maml:description>
    <command:syntax>
        <command:syntaxItem>
            <maml:name>Start-PsFCIV</maml:name>
            <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0">
                <maml:name>Path</maml:name>
                <maml:description>
                    <maml:para>Specifies the path to a folder that contains files to be verified.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="false">DirectoryInfo</command:parameterValue>
            </command:parameter>
            <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1">
                <maml:name>XML</maml:name>
                <maml:description>
                    <maml:para>Specifies the path to the XML database that stores information about files. If database does not exist, the script will create it. The path can be absolute or relative. If the path is relative, the database must be placed in the root folder of Path parameter.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Include</maml:name>
                <maml:description>
                    <maml:para>Specifies the file or file mask to check. If specified, only files that match the pattern will be checked during execution.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
                <maml:name>Exclude</maml:name>
                <maml:description>
                    <maml:para>Speicifes the file or files to exclude from check. The XML database is excluded by default.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Action</maml:name>
                <maml:description>
                    <maml:para>Specifies the action for files with inconsistent length, modification date/time or hash mismatch. Possible values are &#39;Rename&#39; or &#39;Delete&#39;. If &#39;Rename&#39; is specified, the script will add a .BAD extension to a file name.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
                <maml:name>Show</maml:name>
                <maml:description>
                    <maml:para>Specifies file group that will be shown based on some criteria in graphic Out-GridView window. Possible values are: New, Ok, Bad, Missed, Unknown and Locked. You can specify multiple values. Additionally, selected file groups are stored in a global variable: $global:stats and can be used for afterward processing.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
                <maml:name>HashAlgorithm</maml:name>
                <maml:description>
                    <maml:para>Specifies the hash algorithm to use. Can be one (or combination) of the following algorithms: MD5, SHA1, SHA256, SHA384, SHA512.</maml:para>
                    <maml:para>Algorithms can be combined only when you create a new XML file. In this case each file is hashed by using every algorithm specified. If no algorithm is specified, SHA1 is used as the default algorithm.</maml:para>
                    <maml:para>If more than one algorithm is specified during file checking, then only the first algorithm is used. If no algorithm is specified then the strongest algorithm is used for a particular file. For example, an entry in XML database contains hashes for SHA1 and SHA256, another entry has only MD5 hash. In this case SHA256 is used for the first file and MD5 for another file. The strongest algorithm is determined automatically.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Recurse</maml:name>
                <maml:description>
                    <maml:para>Specifies whether the script should check files in subfolders.</maml:para>
                </maml:description>
                <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Strict</maml:name>
                <maml:description>
                    <maml:para>Specifies whether strict check is used. When strict check enabled, then file is considered valid/unchanged when all properties of the file match values stored in database:</maml:para>
                    <maml:para>- file size
- file modification timestamp
- file hash</maml:para>
                    <maml:para>When strict check is not enabled, only file hash match is considered.</maml:para>
                </maml:description>
                <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Rebuild</maml:name>
                <maml:description>
                    <maml:para>Recreates the XML database without checking files. If files listed in the XML are not present in the target location this switch will remove these entries from database. And if there are new files this switch will add entries to the database for these files.</maml:para>
                </maml:description>
                <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            </command:parameter>
        </command:syntaxItem>
        <command:syntaxItem>
            <maml:name>Start-PsFCIV</maml:name>
            <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0">
                <maml:name>Path</maml:name>
                <maml:description>
                    <maml:para>Specifies the path to a folder that contains files to be verified.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="false">DirectoryInfo</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Include</maml:name>
                <maml:description>
                    <maml:para>Specifies the file or file mask to check. If specified, only files that match the pattern will be checked during execution.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
                <maml:name>Exclude</maml:name>
                <maml:description>
                    <maml:para>Speicifes the file or files to exclude from check. The XML database is excluded by default.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
                <maml:name>HashAlgorithm</maml:name>
                <maml:description>
                    <maml:para>Specifies the hash algorithm to use. Can be one (or combination) of the following algorithms: MD5, SHA1, SHA256, SHA384, SHA512.</maml:para>
                    <maml:para>Algorithms can be combined only when you create a new XML file. In this case each file is hashed by using every algorithm specified. If no algorithm is specified, SHA1 is used as the default algorithm.</maml:para>
                    <maml:para>If more than one algorithm is specified during file checking, then only the first algorithm is used. If no algorithm is specified then the strongest algorithm is used for a particular file. For example, an entry in XML database contains hashes for SHA1 and SHA256, another entry has only MD5 hash. In this case SHA256 is used for the first file and MD5 for another file. The strongest algorithm is determined automatically.</maml:para>
                </maml:description>
                <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Recurse</maml:name>
                <maml:description>
                    <maml:para>Specifies whether the script should check files in subfolders.</maml:para>
                </maml:description>
                <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            </command:parameter>
            <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
                <maml:name>Online</maml:name>
                <maml:description>
                    <maml:para>Performs a runtime file hash calculation and passes output to the pipeline. XML database is not used when this switch is used. &#39;-Online&#39; switch is useful when you just need to calculate hashes over a set of files.</maml:para>
                </maml:description>
                <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            </command:parameter>
        </command:syntaxItem>
    </command:syntax>
    <command:parameters>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="0">
            <maml:name>Path</maml:name>
            <maml:description>
                <maml:para>Specifies the path to a folder that contains files to be verified.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="false">DirectoryInfo</command:parameterValue>
            <dev:type>
                <maml:name>DirectoryInfo</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="1">
            <maml:name>XML</maml:name>
            <maml:description>
                <maml:para>Specifies the path to the XML database that stores information about files. If database does not exist, the script will create it. The path can be absolute or relative. If the path is relative, the database must be placed in the root folder of Path parameter.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            <dev:type>
                <maml:name>String</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
            <maml:name>Include</maml:name>
            <maml:description>
                <maml:para>Specifies the file or file mask to check. If specified, only files that match the pattern will be checked during execution.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            <dev:type>
                <maml:name>String</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
            <maml:name>Exclude</maml:name>
            <maml:description>
                <maml:para>Speicifes the file or files to exclude from check. The XML database is excluded by default.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            <dev:type>
                <maml:name>String[]</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
            <maml:name>Action</maml:name>
            <maml:description>
                <maml:para>Specifies the action for files with inconsistent length, modification date/time or hash mismatch. Possible values are &#39;Rename&#39; or &#39;Delete&#39;. If &#39;Rename&#39; is specified, the script will add a .BAD extension to a file name.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
            <dev:type>
                <maml:name>String</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
            <maml:name>Show</maml:name>
            <maml:description>
                <maml:para>Specifies file group that will be shown based on some criteria in graphic Out-GridView window. Possible values are: New, Ok, Bad, Missed, Unknown and Locked. You can specify multiple values. Additionally, selected file groups are stored in a global variable: $global:stats and can be used for afterward processing.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            <dev:type>
                <maml:name>String[]</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="false" position="named">
            <maml:name>HashAlgorithm</maml:name>
            <maml:description>
                <maml:para>Specifies the hash algorithm to use. Can be one (or combination) of the following algorithms: MD5, SHA1, SHA256, SHA384, SHA512.</maml:para>
                <maml:para>Algorithms can be combined only when you create a new XML file. In this case each file is hashed by using every algorithm specified. If no algorithm is specified, SHA1 is used as the default algorithm.</maml:para>
                <maml:para>If more than one algorithm is specified during file checking, then only the first algorithm is used. If no algorithm is specified then the strongest algorithm is used for a particular file. For example, an entry in XML database contains hashes for SHA1 and SHA256, another entry has only MD5 hash. In this case SHA256 is used for the first file and MD5 for another file. The strongest algorithm is determined automatically.</maml:para>
            </maml:description>
            <command:parameterValue required="true" variableLength="true">String[]</command:parameterValue>
            <dev:type>
                <maml:name>String[]</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue>SHA1</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
            <maml:name>Recurse</maml:name>
            <maml:description>
                <maml:para>Specifies whether the script should check files in subfolders.</maml:para>
            </maml:description>
            <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            <dev:type>
                <maml:name>SwitchParameter</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
            <maml:name>Rebuild</maml:name>
            <maml:description>
                <maml:para>Recreates the XML database without checking files. If files listed in the XML are not present in the target location this switch will remove these entries from database. And if there are new files this switch will add entries to the database for these files.</maml:para>
            </maml:description>
            <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            <dev:type>
                <maml:name>SwitchParameter</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
            <maml:name>Online</maml:name>
            <maml:description>
                <maml:para>Performs a runtime file hash calculation and passes output to the pipeline. XML database is not used when this switch is used. &#39;-Online&#39; switch is useful when you just need to calculate hashes over a set of files.</maml:para>
            </maml:description>
            <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            <dev:type>
                <maml:name>SwitchParameter</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="named">
            <maml:name>Strict</maml:name>
            <maml:description>
                <maml:para>Specifies whether strict check is used. When strict check enabled, then file is considered valid/unchanged when all properties of the file match values stored in database:</maml:para>
                <maml:para>- file size
- file modification timestamp
- file hash</maml:para>
                <maml:para>When strict check is not enabled, only file hash match is considered.</maml:para>
            </maml:description>
            <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
            <dev:type>
                <maml:name>SwitchParameter</maml:name>
                <maml:uri/>
            </dev:type>
            <dev:defaultValue></dev:defaultValue>
        </command:parameter>
    </command:parameters>
    <command:inputTypes>
        <command:inputType>
            <dev:type>
                <maml:name></maml:name>
                <maml:uri></maml:uri>
                <maml:description/>
            </dev:type>
            <maml:description>
<maml:para />
            </maml:description>
        </command:inputType>
    </command:inputTypes>
    <command:returnValues>
        <command:returnValue>
            <dev:type>
                <maml:name></maml:name>
                <maml:uri></maml:uri>
                <maml:description/>
            </dev:type>
            <maml:description>
<maml:para />
            </maml:description>
        </command:returnValue>
    </command:returnValues>
    <command:terminatingErrors></command:terminatingErrors>
    <command:nonTerminatingErrors></command:nonTerminatingErrors>
    <maml:alertSet>
        <maml:title></maml:title>
        <maml:alert>
            <maml:para />
        </maml:alert>
    </maml:alertSet>
    <command:examples>
        <command:example>
            <maml:title>-------------------------- Example 1 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -XML DB.XML</dev:code>
            <dev:remarks>
                <maml:para>Checks all files in C:\tmp folder by using SHA1 hash algorithm and compares them with information stored in the DB.XML database.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
        <command:example>
            <maml:title>-------------------------- Example 2 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -XML DB.XML -HashAlgorithm SHA1, SHA256, SHA512 -Recurse</dev:code>
            <dev:remarks>
                <maml:para>Checks all files in C:\tmp folder and subfolders by using SHA1, SHA256 and SHA512 algorithms.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
        <command:example>
            <maml:title>-------------------------- Example 3 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -Include *.txt -XML DB.XML -HashAlgorithm SHA512</dev:code>
            <dev:remarks>
                <maml:para>Checks all TXT files in C:\tmp folder by using SHA512 hash algorithm.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
        <command:example>
            <maml:title>-------------------------- Example 4 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -XML DB.XML -Rebuild</dev:code>
            <dev:remarks>
                <maml:para>Rebuilds DB file, by removing all unused entries (when an entry exists, but the file does not exist) from the XML file and add all new files that has no records in the XML file using SHA1 algorithm. Existing files are not checked for integrity consistence.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
        <command:example>
            <maml:title>-------------------------- Example 5 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -XML DB.XML -HashAlgorithm SHA256 -Action Rename</dev:code>
            <dev:remarks>
                <maml:para>Checks all files in C:\tmp folder using SHA256 algorithm and renames files with Length, LastWriteTime or hash mismatch by adding .BAD extension to them. The &#39;Delete&#39; action can be appended to delete all bad files.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
        <command:example>
            <maml:title>-------------------------- Example 6 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -XML DB.XML -Show Ok, Bad</dev:code>
            <dev:remarks>
                <maml:para>Checks all files in C:\tmp folder using SHA1 algorithm and shows filenames that match Ok or Bad category.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
        <command:example>
            <maml:title>-------------------------- Example 7 --------------------------</maml:title>
            <maml:introduction>
                <maml:paragraph>PS C:\&gt;</maml:paragraph>
            </maml:introduction>
            <dev:code>Start-PsFCIV -Path C:\tmp -Recurse -Online -HashAlgorithm SHA1, SHA256, SHA384</dev:code>
            <dev:remarks>
                <maml:para>Performs a runtime recursive file hash calculation using SHA1, SHA256 and SHA384 hash algorithm.</maml:para>
                <maml:para />
                <maml:para />
                <maml:para></maml:para>
            </dev:remarks>
            <command:commandLines>
                <command:commandLine>
                    <command:commandText>
                        <maml:para />
                    </command:commandText>
                </command:commandLine>
            </command:commandLines>
        </command:example>
    </command:examples>
    <maml:relatedLinks>
    </maml:relatedLinks>
</command:command>
</helpItems>