src/PSTrueCrypt.CommandLine.psm1
# internal function function Get-TrueCryptMountParams { Param ( [Parameter(Mandatory = $True, Position = 1)] [string]$TrueCryptContainerPath, [Parameter(Mandatory = $True, Position = 2)] [string]$PreferredMountDrive, [Parameter(Mandatory = $True, Position = 3)] [string]$Product, [Parameter(Mandatory = $False, Position = 4)] [array]$KeyfilePath, [Parameter(Mandatory = $False, Position = 5)] [bool]$Timestamp ) $ParamsHash = @{ "/quit" = ""; "/volume" = "'$TrueCryptContainerPath'"; "/letter" = "'$PreferredMountDrive'"; "/auto" = ""; "/password" = "'{0}'"; "/explore" = ""; } $ParamsString = New-Object -TypeName "System.Text.StringBuilder"; [void]$ParamsString.Insert(0, "& "+$Product+" ") if ($Timestamp) { $ParamsHash.Add("/mountoption", "timestamp") } # add keyfile(s) if any to ParamsHash... if ($KeyfilePath.count -gt 0) { $KeyfilePath | ForEach-Object { $ParamsHash.Add("/keyfile", "'$_'") } } # populate ParamsString with ParamsHash data... $ParamsHash.GetEnumerator() | ForEach-Object { # if no value assigned to this TrueCrypt attribute, then just append attribute to ParamsString... if ($_.Value.Equals("")) { [void]$ParamsString.AppendFormat("{0}", $_.Key) } else { [void]$ParamsString.AppendFormat("{0} {1}", $_.Key, $_.Value) } [void]$ParamsString.Append(" ") } $ParamsString.ToString().TrimEnd(" "); } # internal function function Get-TrueCryptDismountParams { Param ( [Parameter(Mandatory = $False)] [string]$Drive, [Parameter(Mandatory = $True)] [string]$Product ) $ParamsHash = @{ "/quit" = ""; "/dismount" = $Drive } # Force dismount for all TrueCrypt volumes? ... if($Drive -eq "") { $ParamsHash.Add("/force", "") } $ParamsString = New-Object -TypeName "System.Text.StringBuilder"; [void]$ParamsString.Insert(0, "& "+$Product+" ") $ParamsHash.GetEnumerator() | ForEach-Object { if ($_.Value.Equals("")) { [void]$ParamsString.AppendFormat("{0}", $_.Key) } else { [void]$ParamsString.AppendFormat("{0} {1}", $_.Key, $_.Value) } [void]$ParamsString.Append(" ") } return $ParamsString.ToString().TrimEnd(" ") } Export-ModuleMember -Function Get-TrueCryptMountParams Export-ModuleMember -Function Get-TrueCryptDismountParams |