Skip to content

Latest commit

 

History

History
249 lines (179 loc) · 12.6 KB

CHANGELOG.md

File metadata and controls

249 lines (179 loc) · 12.6 KB

IT-ToolBox - Change History

3.0.0 - 2026-10-14

  • Remove beta prerelease metadata; retain the 29-command API and PowerShell 7.4 baseline.
  • Add a prominent community testing invitation with actionable bug-report guidance.
  • Align README, packaging documentation and security support status with 3.0.0.
  • Update archive regression expectations for the stable version.

Live AD, remote CIM and service authentication remain unverified against real endpoints. This entry records release preparation; a GitHub release or Gallery publication is a separate action.

3.0.0-beta1 - 2026-10-05

The modernization review is complete. This beta retains the 29-command API and PowerShell 7.4 baseline. Live AD, remote CIM and service authentication still require integration validation. This entry does not announce a GitHub release or PowerShell Gallery publication.

Beta release preparation

  • Promote manifest prerelease metadata from alpha1 to beta1.
  • Improve project documentation, command help and code formatting.
  • Add contributor templates and a security policy.
  • Include the contributing guide and security policy in installable archives.
  • Restore explicit four-space indentation and branch-selection instructions.
  • Consolidate completed modernization history below and retain older releases.

Preview documentation refresh

  • Document cloning, local import, updates, command help and platform requirements.
  • Clarify v2 migration boundaries and supported preview commands.
  • Add contributing instructions for feature branches, four-space style and CI.

Supported module packaging

  • Add a local ZIP builder with conventional IT-ToolBox/version module layout.
  • Package supported code and documentation only; exclude legacy and development files.
  • Validate staged syntax and manifest; refuse to overwrite existing archives.
  • Add real archive-content and isolated import/logger tests to the three-platform CI.
  • Document preview installation; retain alpha1 metadata without publishing or signing.

Integration boundary review

  • Remove the obsolete Close-AzureSession helper and document service-specific authentication ownership.
  • Remove the process-wide certificate-validation bypass snippet; retain Git history.
  • Remove legacy New-ExchangeSession and Close-ExchangeSession; retain their Git history.
  • Delegate Exchange Online connection management to ExchangeOnlineManagement.
  • Keep WinSCP/SCP and PGP/OpenPGP assigned to their own module projects.
  • Replace the stale staging placeholder and correct README test coverage.
  • Add isolated import/reload regression coverage for TLS, sessions and archive exclusion.
  • Retain the 29-command supported API and alpha1 preview version.

Script-context helper restoration

  • Restore Get-ScriptDirectory and Get-ScriptName; export twenty-nine commands.
  • Resolve the immediately calling script rather than module-scoped invocation data.
  • Support explicit literal filesystem paths and pipeline input without requiring existence.
  • Return no output for interactive calls without a script path.
  • Remove dependence on the externally supplied hostinvocation variable.
  • Add real script, nested/dot-sourced caller and isolated interactive regression tests.

AD helper restoration

  • Restore Test-IsValidDn, Test-IsValidUpn and Get-ReportChain; export twenty-seven commands.
  • Replace DN/UPN regexes with documented practical syntax policies and pipeline support.
  • Support DN escapes, multi-valued RDNs, long UPN suffixes and IDN suffixes.
  • Preserve report-chain identities, aliases, server selection and property projection.
  • Escape LDAP assertion values for UPN lookup and transitive manager queries.
  • Require exactly one manager, exclude the manager from results and propagate AD errors.
  • Keep ActiveDirectory optional at import; add mocked query and syntax regression tests.
  • Complete migration of all former Staging/v3 candidates.

Filesystem naming and registry restoration

  • Restore Remove-SpecialCharacters and Test-RegistryValue; export twenty-four commands.
  • Preserve the historical punctuation policy; return a rename preview by default.
  • Honor WhatIf/Confirm, preflight collisions and rename deepest descendants first.
  • Use literal paths, include hidden entries and skip symbolic links/junctions.
  • Preserve LogActivites with a corrected alias and configurable portable log path.
  • Check Windows registry value names regardless of data; support unnamed values.
  • Propagate operational failures and document platform and non-transactional behavior.
  • Add real filesystem tests and Windows-only temporary HKCU integration tests.

Timestamp and uptime restoration

  • Restore Convert-LogonTimestamp and Get-OsUpTime; export twenty-two supported commands.
  • Preserve local DateTime and default date formatting; add UTC and pipeline conversion.
  • Treat zero logon timestamps as no recorded logon; reject invalid FILETIME values.
  • Use invariant string formatting and document replicated AD timestamp semantics.
  • Preserve uptime days/TimeSpan outputs; support local uptime on Windows, Linux and macOS.
  • Replace remote WMI with CIM, use the server clock, support explicit/prompted credentials and clean up sessions.
  • Propagate errors without changing caller preferences; document remote Windows requirements.
  • Add boundary, culture, local uptime and mocked CIM regression tests.

Email and URL validation restoration

  • Restore Test-IsEmail and Test-IsUrl; export twenty supported commands.
  • Preserve email parameter aliases and the HTTP/HTTPS/FTP/FTPS scheme set.
  • Define common bare email syntax with IDN-domain support and explicit length limits.
  • Replace the URL regex with structured parsing and validation of hosts, ports and escapes.
  • Reject malformed input with false; add per-record pipeline support without network calls.
  • Document intentional validation-policy changes and reduce staged candidates to seven.
  • Add 96 validator cases covering boundaries, Unicode, IPv6 and malformed inputs.

Logging and timer audit fixes

  • Treat redaction replacement text literally, preventing regex substitutions from reinserting secrets.
  • Serialize buffer snapshot/write/removal; retain entries after failed writes and preserve appended entries.
  • Resolve default log paths from the calling script, with current-directory fallback for interactive calls.
  • Reject conflicting buffered severity switches while retaining individual compatibility switches.
  • Require a non-null stopwatch in every Get-ElapsedTime parameter set.
  • Add regression tests and concurrent-process file-write coverage.

String utilities restoration

  • Restore character conversion, string checksums and SHA-256 hashing.
  • Preserve the character map while fixing index leakage and default space handling.
  • Copy custom maps; normalize text and process Unicode text elements.
  • Retain historical MD5 checksum formatting and allow stronger digest selection.
  • Default SHA-256 output to hexadecimal; expose LegacyFormat for old comparisons.
  • Add behavioral and known-vector tests.

API request restoration

  • Restore New-ApiRequest with independent optional-parameter handling.
  • Accept header dictionaries; correctly serialize JSON or form authentication fields.
  • Default to POST and reject secrets in GET queries or unencrypted requests.
  • Disable automatic redirects and expose a connection timeout.
  • Propagate request failures; add mocked tests with no network or credentials.

Password-generation restoration

  • Restore New-RandomString, New-RandomPassword and New-PhoneticPassword.
  • Use secure unbiased integer selection and Fisher-Yates composition shuffling.
  • Preserve the phonetic alphabet, labels, counts, aliases and display options.
  • Use Set-Clipboard for PowerShell 7; honor WhatIf/Confirm for clipboard writes.
  • Validate lengths/counts and remove the old random-password alphabet-length cap.
  • Add behavioral tests with mocked console and clipboard operations.

Authenticated string encryption

  • Restore New-StringEncryption/New-StringDecryption with AES-256-GCM and PBKDF2-HMAC-SHA256.
  • Require explicit passphrases, generate random salts/nonces, authenticate ciphertext.
  • Add a bounded versioned format and independent interoperability/tampering tests.
  • Preserve original legacy decoding code; document intentional ciphertext/API changes.

Validation restoration

  • Restore filename/path, IP and date validators with documented semantics and tests.
  • Correct filename character scanning; add Windows-compatible device-name checks.
  • Reject ambiguous IPv4 shorthand; allow explicit date culture and exact format.

Module foundation

  • Establish a PowerShell 7.4 Core module foundation with five explicit exports.
  • Adopt the tested New-LogEntry implementation and private helpers.
  • Add module boundary, timer and inherited logger tests with cross-platform CI.
  • Fix the Get-ElapsedTime Seconds parameter type typo.
  • Remove SCP/GnuPG functions and bundled WinSCP binaries.
  • Retain other candidate utilities in Staging/v3 and historical helpers in Legacy.
  • Remove obsolete CLR/.NET Framework constraints and stale FileList entries.

Version 2.2.3.3 - 10.10.2020

  • New cmdlet Get-StringHashCode to calculate hascode for a string
  • New cmdlet Get-StringCheckSum to calculate checksum for a string

Version 2.2.3.2 - 11.08.2020

  • Fixed and issue in Get-ReportChain cmdlet causing identity processing to continue despite input data failing validation

Version 2.2.3.1 - 09.08.2020

  • Fixed an issue in Get-ReportChain cmdlet causing the -UserPrincipalName parameter not to correctly retrieve identity from Active Directory
  • Updated -UPN parameter renamed to -UserPrincipalName for better discoverability

Version 2.2.3.0 - 09.08.2020

  • New cmdlet Get-ReportChain to get a list of all direct and indirect reports for a specific manager
  • New cmdlet Test-IsValidDN to check if a string is a valid AD DistinguishedName

Version 2.2.2.0 - 17.05.2020

  • Updated cmdlet New-LogEntry to use latest function version
  • Updated cmdlet New-StringConversion to use latest function version including performance and reliability enhancements
  • Updated version of WinSCPnet.dll assembly file

Version 2.2.1.0 - 31.01.2020

  • New cmdlet Convert-LogonTimestamp to allow easy conversion of user LastLoginTimeStamp to human readable format

Version 2.2.0.0 - 05.12.2019

  • New cmdlet New-ExchangeSession to create a remote PowerShell session to an on-premise Exchange server 2
  • New cmdlet Close-ExchangeSession to close a remote PowerShell session to an on-premise or online Exchange server

Version 2.1.0.0 - 02.11.2019

  • New cmdlet New-ApiRequest to create OAuth2 API requests
  • Fixed comment based help for New-StringEncryption cmdlet
  • Fixed comment based help for New-StringDecryption cmdlet
  • Fixed wrong return data type for Test-IsEmail cmdlet
  • Updated cmdlet Test-IsUrl to implement better checks on empty string

Version 2.0.2.0 - 01.11.2019

  • New created change-log file
  • New cmdlet New-Timer to create a new stopwatch object
  • New cmdlet Get-TimerStatus to get status of an existing stopwatch object
  • New cmdlet Stop-Timer to stop an existing stopwatch object
  • New cmdlet Get-ElapsedTime to get statistics from an existing stopwatch object
  • Updated module manifest version number to be aligned with public changelog file
  • Added bin folder for external dependencies binary files

Version 2.0.1.2 - 09.08.2019

  • Updated cmdlet New-ScpDownload exception handling code

Version 2.0.1.1 - 06.08.2019

  • New cmdlet New-ScpDownload to support download from remote SFTP Servers via WinSCP assembly
  • Updated WinSCPnet.dll assembly library

Version 2.0.1.0 - 01.07.2019

  • New cmdlet Test-IsValidUpn to validate string is a valid UPN
  • New cmdlet Add-Encryption to PGP encrypt a file (external dependencies required)
  • New cmdlet Get-GnuPgPackage to install GnuPg Win package for PGP encryption
  • New cmdlet New-ScpUpload to support upload of files to remote SFTP Servers via WinSCP assembly
  • New cmdlet New-ScpSession to support sessions to remote SFTP Servers via WinSCP assembly

Version 2.0.0.0 - 13.06.2019

  • Updated module file structure to use Public and Private folders for cmdlets distribution

Version 1.1.0.0 - 01.03.2019

  • Updated cmdlet name from Test-Path to Test-IsValidPath to solve name collision issue with built-in PowerShell cmdlet

Version 1.0.0.1 - 21.02.2019

  • Fixed and issue in New-StringConversion causing incorrect data type to be returned

Version 1.0.0.0 - 01.02.2019

  • Initial module release