Skip to content

v2.9.0

Latest

Choose a tag to compare

@potatoqualitee potatoqualitee released this 16 Sep 19:23

This one's a whopper! 馃崝

What's Changed

  • Get-DbaKbUpdate - Add TimeoutSec so a silent update catalog cannot hang the command by @andreasjordan in #10477
  • Claude Code - Add an issue workflow skill and document the test instance fixtures by @andreasjordan in #10479
  • Set-DbaAgentSchedule - Keep the frequency settings when they are not part of the change by @andreasjordan in #10480
  • Network certificate commands - Find the configured certificate even when it is archived by @andreasjordan in #10478
  • Tests - Make three dead mocks apply, harden the update catalog probe and clear the last top-level statements by @andreasjordan in #10481
  • Update-DbaInstance - Un-skip the unit tests, and allow -ForEach when the cases come from BeforeDiscovery by @andreasjordan in #10482
  • Tests - Recover the tests that a foreach around It never created by @andreasjordan in #10484
  • CI - Kill a wedged test file fast instead of burning the 90 minute job timeout by @potatoqualitee in #10483
  • Tests - Stop Get-DbaBuild from downloading the build reference index during a unit test by @andreasjordan in #10488
  • Tests - Make the assertions that could never fail actually assert by @andreasjordan in #10486
  • Docs - Make tests/CLAUDE.md the single source for the test standards by @andreasjordan in #10485
  • Install-DbaFirstResponderKit: Added ability to create certificates to let public execute FRK procedures by @ReeceGoding in #10463
  • CI - Fix the two things stopping @claude from doing work by @potatoqualitee in #10489
  • Tests - Standardise the last four parameter validation tests by @andreasjordan in #10491
  • Tests - Recover two skipped tests and give the rest a reason for being skipped by @andreasjordan in #10490
  • Tests - Rename two test files to match the command they test by @andreasjordan in #10492
  • Get-DbaDbFile - Read the file layout from master when a database cannot be opened by @potatoqualitee in #10496
  • TEPP - Start the asynchronous cache runspace on the first tab completion instead of at import by @potatoqualitee in #10494
  • runner fleet - Size CI runner lanes to queued work and instrument VM lifetimes by @potatoqualitee in #10493
  • Get-DbaUnusedLogin - Match the login name case-sensitively when reading last login time by @potatoqualitee in #10498
  • Get-DbaDbFileGroup, Get-DbaDbLogSpace, Get-DbaDbSpace and Get-DbaDbVirtualLogFile - Warn instead of silently skipping a database that cannot be opened by @potatoqualitee in #10499
  • CI - Add restricted Codex issue agent by @potatoqualitee in #10497
  • Claude workflows - Fix bubblewrap home mount setup by @potatoqualitee in #10502
  • runner fleet - Restore maintainer capacity and repair VMSS drift by @potatoqualitee in #10500
  • Stop the test heartbeat from failing the stage when the watchdog is reading it by @potatoqualitee in #10503
  • CI - Rename Azure Codex issue trigger by @potatoqualitee in #10501
  • CI - Cancel superseded ci-azure runs so the newest head owns the lane (do Get-DbaBuild) by @potatoqualitee in #10504
  • Use SqlClient SSPI provider for Windows credentials by @potatoqualitee in #10495
  • Run the VMSS runner fleet from an Azure Function instead of a five-minute Actions cron by @potatoqualitee in #10506
  • Start-DbaAzMigration - Add Azure SQL BACPAC migration by @potatoqualitee in #10505
  • Stop the potato CI marker from skipping every merge to development by @potatoqualitee in #10508
  • CI runners - Replace the bootstrap reboot and autologon with a LocalSystem runner service by @potatoqualitee in #10509
  • Invoke-DbaDbIndexRebuild - Add index and heap maintenance command by @potatoqualitee in #10507
  • Bump the github-actions group with 2 updates by @dependabot[bot] in #10510
  • ci-azure - Skip the Windows SSPI test when the build exits early by @potatoqualitee in #10515
  • ps3-smoke - retry teardown deletes and warn when resources leak by @potatoqualitee in #10516
  • Invoke-ManualPester - Check the test file and the repository style gate by @andreasjordan in #10518
  • InModule.Help - Make the help tests actually run by @andreasjordan in #10519
  • Docs - Point CI documentation at ci-azure instead of AppVeyor by @andreasjordan in #10521
  • Pester 6 - Drop stale v4/v5 references and take the version out of names by @andreasjordan in #10520
  • Data generation - Make the supported randomizer types match what actually generates by @andreasjordan in #10517
  • Copy-DbaDatabase - Fix empty -NewName destination sweep and piped multi-database failures by @potatoqualitee in #10514
  • Tests - Replace the $env:APPVEYOR skips with real preconditions by @andreasjordan in #10522
  • Enable-DbaFilestream - Report what the WMI provider actually returned by @andreasjordan in #10525
  • Import-DbaParquet - Report why the Parquet assemblies could not be loaded by @andreasjordan in #10526
  • New-DbaDacPackage - Report the real reason model validation failed by @andreasjordan in #10527
  • New-DbaFirewallRule - Stop blaming a disabled DAC for a cycled ERRORLOG by @andreasjordan in #10528
  • Set-DbaLogin - Return the login as it is after unlocking it with a new password by @andreasjordan in #10530
  • Tests - Run without warnings and fix test cases that never ran by @andreasjordan in #10531
  • Tests - Stop writing a file called null into the current directory by @andreasjordan in #10532
  • Query Store - Warn instead of silently skipping named system databases by @andreasjordan in #10533
  • Test-DbaPath - Silence the expected warnings of the mocked failure tests by @andreasjordan in #10534
  • Fleet controller - Compensate VMSS capacity for phantom drift one settled mutation at a time by @potatoqualitee in #10540
  • Import-DbaParquet - Stop leaving an assembly resolver registered for the whole process by @andreasjordan in #10541
  • Query Store - Silence the expected warnings of the system database tests by @andreasjordan in #10535
  • Install-DbaParquet - Keep the assemblies of the two PowerShell editions apart by @andreasjordan in #10538
  • Import-DbaParquet - Release the parquet file when the import is done by @andreasjordan in #10543
  • Install-DbaCommunitySoftware - add unified community tooling installer (do Install-DbaCommunitySoftware) by @potatoqualitee in #10565
  • Connect-DbaInstance / Invoke-DbaQuery - Do not close connections of the caller and do not reuse them for the wrong database by @andreasjordan in #10564
  • Set-DbaDbQueryStoreOption - Run the ALTER DATABASE statements on the server connection by @andreasjordan in #10558
  • Issue skill - Read the issue body and its comments in one call by @andreasjordan in #10553
  • Export-DbaInstance - Script us_english custom errors before their translations by @andreasjordan in #10552
  • Save-DbaCommunitySoftware - Accept an array of Software values, add All by @potatoqualitee in #10545
  • Set-DbaPrivilege - Write secedit's working database to temp, not cwd by @potatoqualitee in #10544
  • Tests - Stop leaving backup files behind in the lab by @andreasjordan in #10539
  • CI - Skip Azure migration tests on Dependabot pushes by @potatoqualitee in #10566
  • Bump the github-actions group across 1 directory with 2 updates by @dependabot[bot] in #10546
  • Get-DbaDbExtentDiff - Leave the connection of the caller alone by @andreasjordan in #10567
  • Update-DbaMaintenanceSolution - Update the procedures in the database that was named and leave the connection of the caller alone by @andreasjordan in #10568
  • Import-DbaBinaryFile - Work with a connection that is already open by @andreasjordan in #10571
  • Install-DbaMaintenanceSolution - Leave the connection of the caller alone by @andreasjordan in #10570
  • SQL Server 2025 CU8 by @MikeyBronowski in #10574
  • Import-DbaSpConfigure - Leave the connection of the caller alone and make the migration work again by @andreasjordan in #10575
  • Invoke-DbaAdvancedRestore - Leave the connection of the caller alone by @andreasjordan in #10576
  • Registered server commands - Leave the connection of the caller alone by @andreasjordan in #10577
  • Testing Backup-DbaDatabase - Restore model after the all-databases backup test by @andreasjordan in #10582
  • Bump anthropics/claude-code-action from 1.0.190 to 1.0.193 in the github-actions group by @dependabot[bot] in #10585
  • Clarify private key permissions in Set-DbaNetworkCertificate help by @andreasjordan in #10586
  • Get-DbaWsfc* - Fix the State property read from an undefined variable, and report the witness path by @andreasjordan in #10588
  • Invoke-DbaDbDecryptObject - Add DataPages to decrypt without a dedicated admin connection by @howarthcd in #10581
  • Add Find-DbaDbQueryStoreRegression by @deepeshd87 in #10589
  • Invoke-DbaDbDecryptObject - reject ambiguous ciphertext chunks by @potatoqualitee in #10591
  • Database context - Run server level statements on the connection by @andreasjordan in #10580
  • Set-DbaDbQueryStoreOption - Refresh the Query Store options after changing them with T-SQL by @andreasjordan in #10593
  • Get-DbaDbQueryStoreOption - Read from SMO what SMO carries, and query only the rest by @andreasjordan in #10592
  • Copy-DbaSsisCatalog - Require SQL Server 2012 on the destination, as the help already promises by @andreasjordan in #10601
  • Connect-DbaInstance - Make MinimumVersion decide on a version it can read by @andreasjordan in #10597
  • Testing Get-DbaRandomizedValue - Decide emptiness without a culture sensitive comparison by @andreasjordan in #10599
  • Copy-DbaAgentSchedule - Make -Force actually drop and recreate existing schedules by @andreasjordan in #10596
  • Bump the github-actions group with 2 updates by @dependabot[bot] in #10598
  • Testing Get-DbaDbQueryStoreOption - Create the database before anything has read model by @andreasjordan in #10595
  • Connect-DbaInstance - Give the cloned server ownership of its database connection by @andreasjordan in #10584
  • Database context - Put the database back in the Query and Invoke script methods by @andreasjordan in #10579
  • Database context - Add Restore-DatabaseContext and fix eighteen commands by @andreasjordan in #10603
  • New-DbaFirewallRule - Adapt the tests to a default instance on the default port by @andreasjordan in #10605
  • Rename-DbaDatabase - Build expected file paths without validating drives of the test client by @andreasjordan in #10606
  • Remove-DbaAgDatabase - Honor the AvailabilityGroup filter by @andreasjordan in #10608
  • Remove-DbaAgListener - Honor the AvailabilityGroup filter by @andreasjordan in #10609
  • Get-DbaDbTable - Make IncludeSystemDBs actually exclude system databases by default by @andreasjordan in #10610
  • Get-DbaDiskSpace - Make Unit work and clean up the two other dead parameters by @andreasjordan in #10611
  • Testing Get-DbaNetworkConfiguration - Certify the virtual name of a cluster instance by @andreasjordan in #10613
  • Test-DbaDiskAlignment - Reach a failover cluster instance through its virtual name by @andreasjordan in #10614
  • Set-DbaTempDbConfig - Make forced file removal survive work tables and stop resetting the log growth by @andreasjordan in #10615
  • Get-DbaPrivilege, Set-DbaPrivilege - Pass the credential to the connectivity test and the service discovery by @andreasjordan in #10616
  • Data generation - Stop on configuration errors and write the generated unique values by @andreasjordan in #10618
  • Testing New-DbaDbDataGeneratorConfig - Guard columntypes.json against the randomizer types by @andreasjordan in #10619
  • Testing Get-DbaDbRestoreHistory - Give every backup its own file so the diff always finds its full by @andreasjordan in #10620
  • Get-DbaWaitingTask - Harden flaky test setup and fix always-null InfoUrl by @andreasjordan in #10622
  • Fix case sensitivity defects in 15 test files by @andreasjordan in #10623
  • Get-DbaDbMailHistory - Make the Status filter work on case sensitive instances by @andreasjordan in #10624
  • Get-DbaDbMailLog - Make the Type filter work on case sensitive instances by @andreasjordan in #10625
  • Install-DbaWhoIsActive - Detect an existing installation on case sensitive instances by @andreasjordan in #10626
  • Set-DbaDbFileGroup - Resolve filegroups reliably on case sensitive databases by @andreasjordan in #10627
  • Keep version groups out of the leftover-lane exclusion by @andreasjordan in #10629
  • Move the two mixed-instance test files wholly into the MULTI lane by @andreasjordan in #10628
  • Testing Find-DbaCommand - Restore the index file the Rebuild test overwrites by @andreasjordan in #10630
  • Get-DbaAgBackupHistory - Fix single replica discovery and honor EnableException by @andreasjordan in #10632
  • Add-DbaRegServer - Close the store connection its verification call reopens by @andreasjordan in #10633
  • Export-DbaCsv - Close the database-scoped connection it opens per call by @andreasjordan in #10634
  • Get-DbaXESession - Close the cloned connection behind the XEStore by @andreasjordan in #10635
  • Get-DbaDatabase - Stop eating the caller loop on invalid parameter combination by @andreasjordan in #10637
  • Get-DbaRandomizedValue - Stop eating the caller loop on invalid parameters by @andreasjordan in #10640
  • Test-DbaLastBackup - Stop eating the caller loop on inaccessible directories by @andreasjordan in #10639
  • Import-DbaSpConfigure - Stop eating the caller loop and skipping its own cleanup by @andreasjordan in #10641
  • New-DbaAvailabilityGroup - Let the validation guards reach their own return by @andreasjordan in #10642
  • Log shipping - Let helper failures reach the caller instead of escaping it by @andreasjordan in #10644
  • Get-DbaRandomizedDataset - Stop eating the caller loop on template validation by @andreasjordan in #10645
  • Import-DbaBinaryFile - Stop eating the caller loop on FilePath validation by @andreasjordan in #10646
  • New-DbaDbDataGeneratorConfig - Stop eating the caller loop on failures by @andreasjordan in #10647
  • Get-DbaRandomizedType - Stop eating the caller loop when the type list is missing by @andreasjordan in #10648
  • Invoke-DbaDbDataGenerator - Stop eating the caller loop when Bogus fails to load by @andreasjordan in #10649
  • Convert-DbaMaskingValue - Stop eating the caller loop on missing input by @andreasjordan in #10650
  • New-DbaReplSubscription - Remove the latent continue escape and guard the process block by @andreasjordan in #10652
  • Set-DbaAgentOperator - Stop eating the caller loop on connection failure by @andreasjordan in #10653
  • Invoke-DbaPfRelog - Stop eating the caller loop when no blg files match by @andreasjordan in #10643
  • Add-DbaReplArticle - Stop eating the caller loop on parameter validation by @andreasjordan in #10651
  • Add-DbaAgListener - Stop demanding databases the command does not know by @andreasjordan in #10612
  • Get-DbaWsfcResourceGroup - Name the PartialOnline and Pending states of a resource group by @andreasjordan in #10673
  • Set-DbaNetworkCertificate - Say why a private key is unsuitable by @andreasjordan in #10671
  • Tests - Case sensitive lookups and backup cleanup in seven test files by @andreasjordan in #10670
  • Install-DbaFirstResponderKit - Use the declared variable name when cloning the certificate to master by @andreasjordan in #10669
  • Get-DbaComputerCertificate - Keep the friendly name of certificates on remote computers by @andreasjordan in #10668
  • SSIS commands - Say why they refuse to run on PowerShell 7 by @andreasjordan in #10665
  • Policy Based Management - Run on PowerShell 7 on Windows by @andreasjordan in #10664
  • Connect-DbaInstance - Keep the tab completion cache of instance names an array by @andreasjordan in #10672
  • Security updates for SQL 2025, 2022, 2019, 2017 - September 8, 2026 by @MikeyBronowski in #10681
  • Bump the github-actions group with 2 updates by @dependabot[bot] in #10663
  • Copy-DbaDbTableData - Close the source reader when the bulk copy fails by @andreasjordan in #10686
  • Invoke-DbaDbLogShipping - Give the helper failure test a UNC shared path on CI by @andreasjordan in #10684
  • Get-DbaWindowsLog - Compile the remote script inside the pool runspace so local instances do not hang by @andreasjordan in #10683
  • Copy-DbaDbTableData - Name the Query requirement in the parameter guard message by @andreasjordan in #10678
  • Get-BulkRowsCopiedCount - Read the rows copied counter as Int64 by @andreasjordan in #10677
  • Invoke-DbaDbDecryptObject - Read the family GUID from sys.database_recovery_status instead of DBCC DBINFO by @howarthcd in #10680
  • Restore-DbaDatabase - Honor EnableException in the backup information pipeline by @andreasjordan in #10631
  • Restore-DbaDatabase - Stop escaping the caller and resurrect the StopAt tests by @andreasjordan in #10636
  • Workflows - Pull MinIO from quay.io and mc from GitHub releases by @andreasjordan in #10688
  • Password decryption commands - Document the remote DAC prerequisite by @andreasjordan in #10551
  • Copy-DbaDatabase - Name -AllDatabases in the examples that migrate every database by @andreasjordan in #10689
  • Workflows - Wait for the SQL Server containers before running the core tests by @andreasjordan in #10690
  • Invoke-DbaQuery - Close the connection it opened when the query fails by @andreasjordan in #10691
  • Progress bars - Complete the bars that 22 commands left behind by @andreasjordan in #10660
  • Restore-DbaDatabase - Say that nothing was restored when the selection is empty by @andreasjordan in #10692
  • Pin dbatools.library to 2.x SSPI by @potatoqualitee in #10716
  • Bump the github-actions group with 2 updates by @dependabot[bot] in #10715
  • Copy-DbaDbTableData - Map query columns onto the writable destination columns by @andreasjordan in #10666
  • Install-DbaMaintenanceSolution - Close the connection it opened when it skips an instance by @andreasjordan in #10693
  • Update-DbaMaintenanceSolution - Close the connection it opened when it skips an instance by @andreasjordan in #10694
  • Get-DbaDbObjectTrigger - Stop eating the caller loop on an input object that is not a table or view by @andreasjordan in #10697
  • Stop-DbaExternalProcess - Stop eating the caller loop when the process cannot be stopped by @andreasjordan in #10698
  • Remove-DbaXESession - Return the store connection after removing a session by @andreasjordan in #10712
  • Stop-DbaXESession - Return the store connection after stopping a session by @andreasjordan in #10711
  • Dead parameters - Wire up seven parameters that were declared and documented but never read by @andreasjordan in #10708
  • Command invariants - Add the missing Test-FunctionInterrupt guards and fix the Test-Bound typo in Export-DbaExecutionPlan by @andreasjordan in #10707
  • Invoke-DbaDbDecryptObject - Stop eating the caller loop when the export folder cannot be created by @andreasjordan in #10706
  • Convert-DbaIndexToTable - Stop eating the caller loop when no instance is given by @andreasjordan in #10705
  • Get-LoginPasswordHash - Stop eating the caller loop when the hash query fails by @andreasjordan in #10704
  • Expand-DbaDbLogFile - Stop eating the caller loop when the log file processing fails by @andreasjordan in #10703
  • Export-DbaDacPackage - Stop eating the caller loop when only ExcludeDatabase is given by @andreasjordan in #10702
  • New-DbaAzAccessToken - Stop eating the caller loop when the token request fails by @andreasjordan in #10700
  • Get-DbaWaitResource - Stop eating the caller loop on connection failure by @andreasjordan in #10699
  • Start-DbaXESession - Return the store connection after starting a session by @andreasjordan in #10710
  • 2026 sept CUs by @niphlod in #10719
  • Get-DbaBackupInformation - Stop eating the caller loop when a backup header cannot be read by @andreasjordan in #10701
  • Copy-DbaDatabase - Stop eating the caller loop when a system database is requested by @andreasjordan in #10696
  • Invoke-DbaAdvancedRestore - Stop applying logs once the stop mark is reached by @andreasjordan in #10695
  • Enable-DbaAgHadr, Disable-DbaAgHadr - Report a refused service restart instead of ignoring it by @andreasjordan in #10709

New Contributors

Full Changelog: v2.8.4...v2.9.0