-
Added #160 - Default Database Configuration Profile.
- When set, the
-DatabaseProfileName
parameter is optional, and if not passed it will grab the default profile from the config. - To Set it up on an existing profile simply use the update command:
Update-KeePassDatabaseConfigurationProfile -DatabaseProfileName 'name' -Default
- To Create a new profile as default use the new command:
New-KeePassDatabaseConfigurationProfile -DatabaseProfileName 'name' -Default -DatabasePath '' other options
- This allows for calls to the main module functions without the
-DatabaseProfileName
parameter such as:
Get-KeePassEntry -UserName 'aUser'
- When set, the
-
Added - #84 - Manage Notes properties on KPGroup Objects.
-
v.2.1.2.6 - Added - #158 - Added Update-KeePassDatabaseConfiguration function and tests.
-
v.2.1.2.5 - Fix - #157 - Set New-KPConnection function back to internal function and no longer exports.
-
Added Feature #29 - Can now manage the Expiration Time/Enabled State of groups and entry.
-
v.2.1.2.3 - Fix #64 - Review Message for grammar, clarified some messages as well.
-
v.2.1.2.2 - Fix #156 - New-KeePassDatabase will now error out if kdbx file already exists, instead of silently overwriting an existing file.
-
v.2.1.2.1 - Fix #149 - Breaking Change New-KeePassGroup and Update-KeePassGroup now return a KeePass PSObject via the ConvertTo-KPPsObject function.
- Fix #148 - Can now update an entry multiple times, while retaining history and not through internal lib exception
- Changes to build script
- Fix #129 - Can now pass Credential Object to
-MasterKey
Parameter - Fix/Implemented #69 - All primary Functions return a Powershell object rather than a KeePass Object This Includes Breaking changes!.
- Breaking:
- Since a powershell object is now returned, in order to access the keepass object a child property has been added to the ps object,
.KPEntry
and.KPGroup
. - Deprecated the
-AsPlainText
parameter on theGet-KeePassGroup
function, the call will still work but it will present a warning message. This is being removed as it is no longer necessary.
- Since a powershell object is now returned, in order to access the keepass object a child property has been added to the ps object,
- Non-Breaking:
- Moved how database profile name was being added to the ps object for better performance on conversion.
- Breaking:
- Implemented #93 -
Get-KeePassEntry
Now supports-Title
and-UserName
parameters also via pipeline. - Normalized Error handling to remove repetitive code
- Converted extraneous logic to parameter splatting
- Code formatting and removed explict parameter attributes where not necessary.
- Updated Object creation to use the
hashtable
method for performance over theNew-Object
+Add-Memeber
. - Fix #44 - Pipeline now Works for
Remove-KeePassDatabaseConfiguration
. - Implemented #141 - Much stronger Pipeline support.
-DatabaseProfileName
no longer needs to be specified to a KPPSObject pipeline recieving function.- Example:
Get-KeePassEntry -Title 'test' -DatabaseProfileName 'profile' | Remove-KeePassEntry
- Example:
- All parent and object paths now are recieved by the pipeline which of course can be overridden by specifing the parameter.
- Fixed #140 and #138 - by removing the
EncodeKeePassLib.ps1
script file as it is no longer in use. - Fixed #144 - Removed Faultly logic which allowed for the KeePass Icon to get set to blank while updating an object.
- Implemented #143 There are no more dynamic parameters! So all of the gitches have left with them. They still support tab completion by using
Register-ArgumentCompleter
.- Breaking Change as this is only supported in powershell v5 and up, auto complete will not work in older versions.
- Implemented #118 - by adding support for keepasslib version
2.39.1
- The new file format version between the previous version of
2.34
and the latest apears to be much slower on some operations. - Testing the new Lib version against the previously suported version
2.34
all worked and appears to be backwards compatible. Also it does not upgrade the file format version. - Version can easily flipped back by modifying the global variable in the
.psm1
file. - This fixes #131.
- The new file format version between the previous version of
- Fix #145 - Updating a KeePass Entry now updates the modification time in UTC.
- Breaking Change - Renamed the
LastAccessTime
andLastModificationTime
properties toLastAccessTimeUtc
andLastModificationTimeUtc
to reflect that they are in UTC.
- Breaking Change - Renamed the
- Addressed #88 -
Get-KeePassEntry
- Since a Ps object is now always returned, all fields but the password are in plaintext. Now specifying the
-AsPlainText
will decode the password to plaintext.- This gives the user better control over when they expose the password as plaintext if need be.
- Another improvement is there is now a
-WithCredential
parameter which adds a.Credential
property to the return Entry PS Object.- This is not done by default as it has overhead.
- This gives the user better options and does not require manual creation of the credential.
- Breaking Change Since this has been implemeneted the
-AsPsCredential
parameter has been removed. The new method is better as it allows for multiple entries to be returned with thier cred objects instead of limiting it to 1 entry.
- Since a Ps object is now always returned, all fields but the password are in plaintext. Now specifying the
- Breaking Change -
ConvertTo-KPPSObject
and all returned objects the.FullPath
property now returns the true full path of the object. TheParentGroup
property still exists and can be used as an alteranative data source for any lost functionality.
- Update-KeePassEntry no longer creates a new entry, Entry history is retained, UUID is never changed, All time modificiation fields are now updated when appropriate.
- Code clean up in the internal functions
- Removed unecessary comments.
- Simplified parameter attributes, and formatting.
- Updated error handling to use write-error and simplified handling.
- Normalized repetative checks to their own
Test-X
functions and moved error\null handling inside.- Test-KPConnection - Checks to see if connection exists and and is open.
- Test-KPPasswordValue - Correctly checks for supported types and moved error handling inside.
- Fixed Dev Tool AutoVersioning Script, now updates psd1 version again.
- Simplified
Import-KPLibrary
function. - Updated
ConvertTo-KPPSObject
to be construct PSObject differently and gained 86% speed performance improvement. - Created a
build.ps1
script to build the module for use and publishing to gallery - Updated
New-KPConnection
to prompt for user MasterKey (keepass passsword) via console promptRead-host
instead of$Host.ui.PromptForCredential()
, this is much faster than loading the gui.
- #135 - Restructured Module to a more modular structure. Single file per function, seperate root folders for exported functions vs internal functions, (functions, internal).
- Added global variable
$Global:KeePassConfigurationFile
with the path of the config file and updated all references to file. - Updated formatting of readme and changelog to abide by md standards.
- Some Community PR here, great help thank you
- #53, #117
-AsPSCredential
Support toGet-KeePassEntry
-Title
Parameter Added toGet-KeePassEntry
- General bug fixes #115, #116, #120, #123, #127
New-KeePassDatabase
function added
- #133 Fixed
- #132 Fixed - Windows Defender identifies PoshKeepass as trojan. Please see the issue for more details.
- #108 Fixed bug by capturing PSCredential to MasterKey variable.
- #92 Added PowerShell Format XML File for creating PowerShell Object views.
- #90 Updated default properties returned for KeePass Entries to Include the Notes Property. Did this via the new format XML file.
- #67 Consolidated KeePass database connection and authentication functions. Thanks @Ninjigen for your help on this.
- #67 Now supports authentication using all three methods as a combination: MasterKey, KeyFile, WindowsAccount.
- #100 Fixed bug when using the
-MasterKey
options on and of the functions. The proper variable is now removed. - #95 Added internal function
Restore-KPConfigurationFile
. This is implemented to restore your configuration file from a previous version of the module, when updating from PSGallery. - Moved exported functions to the Module Manifest.
- Updated
New
andUpdate
Entry and Group functions to support setting and updating Icon values. - Update
ConvertTo-KPPSObject
to output the IconId. - Added Pester Tests for adding and updating Icons.
- Update
Get-KPDynamicParameters
to support creating the Icon dynamic param from theKeePassLib.PwIcon
Enum.
- Issue 68 - Update getting XML Configuration Document from
Get-Content
to creating a newSystem.Xml.XmlDocument
object and using theLoad()
Method.
- Issue 66 - Updated
ReadString()
method calls toReadSafe()
method calls. - Issue 71 - Updated to Use Proper String Interpolation.
- Issue 72 - Removed Commented out code.
- Issue 73 - Converted to Single Quotes Where Possible.
- Issue 74 - Formatted Code consistently.
- Updated
New-KeePassPassword
to output asKeePassLib.Security.ProtectedString
- _This removed the plain text conversion to secure string. - Updated All New/Update Entry Functions to support SecureString or ProtectedString for the KeePassPassword Parameter.
Added optional Parameter -MasterKey
to core functions.
This parameter was added to allow for easier scripting with databases that use a masterkey password.
Previously if a masterkey password was used the updated functions would prompt the user of the masterkey after the funciton was called. This is still the behaviour if the masterkey is required but not specified.
Functions Updated:
New-KeePassEntry
New-KeePassGroup
Get-KeePassEntry
Get-KeePassGroup
Update-KeePassEntry
Update-KeePassGroup
Remove-KeePassEntry
Remove-KeePassGroup
Internally created a function that builds the commonly used Dynamic Parameters.
Get-KPDynamicParameter
Internally created a function that builds the Database connection based off of the Database Configuration Profile Specified.
Invoke-KPConnection