All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Get-DbatoolsChangeLog
to open link to this changelog #5528
Export-DbaCredential
--Identity
doesn't filter, DAC duplication problem #5443- Fix step count and retry when using
Start-DbaAgentJob
and-Verbose
#5519 Invoke-DbaDbLogShipping
line 1360 has a extra)
#5523
Set-DbaAgentSchedule
does not properly setEndTime
#5513
- Updates to Sync Permissions and Copy Login
-SyncOnly
#5511
- Add progress bars to Find-DbaInstance #5515
- Throw error when attempting to fetch user permissions from Azure SQL DB (currently not supported) #5076
- Sync-DbaLoginPermission ignores "Login" parameter; syncs everything #5505
- Errors with Copy-DbaLogin -SyncOnly #4909
- Add
Write-ProgressHelper
toUpdate-SqlPermission
#5509
Invoke-DbaDbMirroring
fails to establish connection with Mirror server #5318
- Support for Linux paths in
Get-DbaMaintenanceSolutionLog
#5035 - Support for
-WhatIf
inReset-DbatoolsConfig
#5499
Show-DbaDbList
calls non-existent function #5494- Return elapsed minutes from
Get-DbaSsisExecutionHistory
#5492
- Additional verbose output in
Start-DbaAgentJob
#5488
Get-DbaCmsRegServer
overwrites the first server in the list with the CMS when using-IncludeSelf
#5367
- Error handling & messaging in
Find-DbaInstance
#5482 - Replace output with progress bar in certificate-related functions #5471
- Certificate type in Get-DbaComputerCertificate #5483
- Overhaul of
Show-DbaDbList
for 1.0 compliance #5458 - Overhaul of
Get-DbaMsdtc
for 1.0 compliance #5456 - Overhaul of
Get-DbaDetachedDatabaseInfo
for 1.0 compliance #5455
Restore-DbaBackupFromDirectory
, superseded byRestore-DbaDatabase
#5457- Remove default value of seeding mode in
Add-DbaAgReplica
#5469
Update-DbaInstance
uses the same folder to extract the files #5447Restore-DbaDatabase
reports more than 1 database passed in when only 1 was passed #5425
- Access token enhancements
LastError
parameter onGet-DbaToolsLog
to only get the most recent error in the log- Support for Managed Identities in
New-DbaAzAccessToken
Get-DBAAvailabilityGroup
IsPrimary
returns false when a port number is passed in under$SQLInstance
#5435
Test-DbaLasBackup
explains why themaster
database is skipped
New-DbaAccessToken
for generating Azure oauth2 tokensInvoke-DbaDbPiiScan
to scan for Personally Identifiable Information
Copy-DbaAgentSchedule
does not overwrite schedules that already exist, even with-Force
supplied #5412Get-DBABuildReference
missing 13.0.5270 #5408
- Azure AccessToken support
- Various migration fixes #5414
Set-DbaNetworkCertificate
not granting permissions to private key #5417
- Enhancements to data masking #5388
- Add multi-IP and subnet support to
Add-DbaAgListener
#5411 - Functions to get, enable and disable startup procedures #5407
Test-DbaDbCompression
fails on case-sensitive collations #5404
- Latest SQL Server build references
Backup-DbaServiceMasterKey
function to back up the service master key for instances #5397
Test-DbaConnection
returns warnings and more useful objects when unable to resolve/connect to host
Get-DbaDbMasterKey
does not use$SQLCredential
if passed #5381
Restore-DBADatabase
with multiple DBs found picks one at random #5364- Assignment of subschedule interval when a daily job schedule is set via
Set-DbaAgentSchedule
#5288 Set-DbaAgentJobStep
throws db not present error when updatingCmdExec
steps #5354
- Support for striping backups with multiple block blobs on Azure in
Backup-DbaDatabase
- Basic support for migrations with Azure Managed Instances
Copy-DBAAgentAlert
incorrectly asserting that Agent Operators do not exist #5300Test-DbaLastBackup
fails if backup was mirrored based on Get-DbaBackupHistory output #5360- Issue handling restores of striped backups from non file/history sources in
Select-DbaBackupInformation
#5357
- Add check and warning when copying a Windows login to Azure Managed Instance via
Copy-DbaLogin
- Correct support for AWS in
Get-DbaComputerSystem
#5336 - Remove empty notes from output of
Set-DbaDbState
#5345 - Backup to URL with Folder Fails with Error #5347
Invoke-DbaLogShipping
error thrown when specifying a folder containing the full backup #5348
Find-DbaStoredProcedure
does not report TextHeader content #3687
- Parameter for setting default database to specified db by parameter for all logins in
Export-DbaLogin
- Properly use
append
inExport-DbaRepServerSetting
#5333
- New functions for data generation #5331
- Latest versions of Glenn Berry's diagnostic queries
- Auto-map column names in
Import-DbaCsv
#5321
New-DbaAvailabilityGroup
Missing Implementation of DtcSupport #5310
- Support for Managed Instances and Azure Blob Storage in
Copy-DbaDatabase
#5322
- Remove output from
Write-DbaDataTable
#5313
- Session timeout parameter for
Set-DbaAgReplica
#5139 - PS Core support for
Read-DbaBackupHeader
#5070 - Restores in Managed Instances #5309
Test-DbaDbLogShipStatus
incorrectly reports no information available #5287- Job ownership transfer logic in
Update-SqlPermission
- Managed Instance parameter warnings
Get-DbaUserPermission
misses database role assignments #4887- Build dates for the latest SQL Server Cumulative Updates
Get-DbaBackupHistory
warnings and not finding the right backup #5263New-DbaAvailabilityGroup
lacks resiliency #4933Add-DbaAgReplica
missing permission for automatic seeding #4816Test-DbaLastBackup
is not restoring user databases #4574Set-DbaSpConfigure
&Get-DbaSpConfigure
"The property 'ConfigValue' cannot be found on this object" #5199- DLL error when importing #5195
Add-DbaAgListener
parameter for Listener Name #5000Copy-DbaSqlServerAgent
fails when copying across a job that's dependent on a new proxy account or operator #2166New-DbaDbUser
not properly referencing the$Login
variableExport-DbaLinkedServer
confuses when linked has multiple mappings #5243
- Prerelease installation support for
Install-DbaSqlWatch
- Build references for the latest SQL Server Cumulative Updates
- New function
Copy-DbaStartupProcedure
#555
Restore-DbaDbCertificate
- fails when importing all certs from a folder #5256
- Improved connection strings in
Connect-DbaInstance
Test-DbaLastBackup
doesn't execute if backup file is corrupted #4957Restore-DbaDbCertificate
from a file fails on SQL Server 2012 #5082- Databases with same name on multiple instances do not render properly in
ConvertTo-DbaTimeline
#3916 - Correct service name detection in
Remove-DbaDatabaseSafely
#5210 - While doing
Start-DbaMigration
,-SetSourceRedOnly
fails if there are even inactive sessions on database #5177
- Tweaks to
ConvertTo-DbaTimeline
output
Read-DbaBackupHeader
- SQL 2005 backup fails with column "CompressedBackupSize" does not belong to table #4945
- New function
Install-DbaInstance
to script as much of the installation of a new SQL Server instance as possible Copy-DbaAgentJob
now supports piped-in Job objects #5240
- New function
Export-DbaDbDataTable
SqlCredential
parameter not working withGet-DbaCmsRegServer
#5025- Include the
SqlInstance
in the "failure to connect" error message (impacts many functions) #5091 Get-DbaPermission
fails on contained databases #5093- Resolved issue creating login from Windows with square brackets in the name in
New-DbaLogin
#5138 - Fix column mappings in
Write-DbaDataTable
#5124 Get-DbaUserPermission
misses database role assignments #4887Copy-DbaDbTableData
causes failure on max pool size #5080-Force
handling inNew-DbaDbUser
#4962- Multiple computers not being processed in
Resolve-DbaNetworkName
- Renamed
Write-DbaDataTable
toWrite-DbaDbDataTable
- Ability to bypass server name resolution in
Resolve-DbaNetworkName
#5101
- TEPP is no longer broken #5171
- Resolved issues in
Get-DbaCmObject
#4096 Stop-Function
not recognized inSet-DbatoolsConfig
#5065
- TLS handling for AWS instances in
Get-DbaComputerSystem
- Improved connection support for Azure
Export-DbaLogin
produces an empty file #4604
Copy-DbaPolicyManagement
doesn't copy policy categories #1040Copy-DbaPolicyManagement
copies conditions but not policies #1049
- New function
New-DbaDbMailAccount
- Azure support in
Invoke-DbaDbDataMasking
#5122
- Improved speed of
Get-DbaLogin
for instances with many logins
- Alias for database name in
New-DbaDatabase
- More Azure support
- More Azure support
Get-DbaAgentJobHistory
adds an hour to theenddate
and duration #4345Find-DbaLoginInGroup
returns incorrect domain #3608Get-DbaLogin -WindowsLogins
doesn't include groups #5165
- More Azure support
Install-DbaMaintenanceSolution
does not run CommandExecute if the Solution is not "All"
- Azure support for
Connect-DbaInstance
- Registered server support for PowerShell Core
GetDbaDbFile
incorrectly accounts for pages when calculatingNextGrowthEventSize
#5147
Get-DbaServerRoleMember
now correctly callsGet-DbaLogin
Get-DbaUserPermission
does not drop STIG schema#5083Backup-DbaDbCertificate
doesn't properly filter on parameter-Certificate
#5106Copy-DbaAgentAlert
now verifies that the operator exists on the destination #4920
- Comparison error in
Test-DbaLastBackup
#5125
- Various issues with dynamic data masking #4910, #4970
Sync-DbaAvailabilityGroup
now passes login values toCopy-DbaLogin
#5119
Install-DbaMaintenanceSolution
now removes jobs when-SqlCredential
is used #5096Copy-DbaSsisCatalog
now properly resolves type names #4821- Can now set schedule start & end dates with
Set-DbaAgentSchedule
#4908
Invoke-DbaDbShrink
now properly excludes system databases when-AllUserDatabase
is specified #5108
- Azure SQL DB support for creating SQL Logins in
New-DbaLogin
#5100
New-DbaDbMailProfile
function to create new profile for database mail
Get-DbaAgentSchedule
returnsNULL
description #5090
- Multithreading for
Update-DbaInstance
- Handling of multiple databases in
Invoke-DbaDbUpgrade
#5047 - Visual Studio solution file reference error on import #5056
Copy-DbaLinkedServer
doesn't copy network name #4087
Restore-DbaBackup
quits prematurely when target database exists #4949
- Support for
markdownlint
VS Code extension
- EOL date for SQL Server 2014 SP2
- Authentication issue in New-DbaAgentJobCategory #5034
- Piping issue in Backup-DbaDatabase #5041
- ConvertTo-DbaDataTable no longer ignores -EnableException #5050
- Copy-DbaDatabase now passes -Force to Set-DbaDbState #5055
- Parallelism and exception handling fixes in Get-SqlInstanceComponent #4988
- Check that databases are accessible in Get-DbaDbRoleMember #5046
- Corrected math in Invoke-DbaDbShrink #5039
- Remove dependency on System.Data objects in Get-DbaDbccMemoryStatus #5031
- Support for pipeline input on Set-DbaAgentJobStep #4350
- Add missing server parameter in Set-DbaAgentJobStep #4715
- Properly support individual databases in Invoke-DbaDbClone #5015
- Properly support pipeline data for Remove-DbaAgReplica #5013
- Add-DbaAgReplica now adds replicas #4847
- Type switch for Backup-DbaDatabase to get the correct backup from backup history
- Reuse server connection for Get-DbaDefaultPath within Backup-DbaDatabase
- Remove LSN check from Backup-DbaDatabase
- Import-DbaCsv does not accept multiple flags like -KeepNulls and -TableLock #4998
- Build reference for SQL Server 2016 SP2 CU5
- Pass credentials through to Get-DbaRegistryRoot from Get-DbaProductKey
- Output mismatch in Format-DbaBackupInformation
- Figure out new name before performing checks in Copy-DbaDbMail
- Correct names of jobs and schedules in Invoke-DbaDbLogShipping #4972
- Correct path for output files for Install-DbaMaintenanceSolution #4950
- Message formatting in Copy-DbaDbMail
- Support hostnames ending with hyphen #4090
- Additional LSN comparison fix in Select-DbaBackupInformation #4940
- ApplicationIntent handling in Connect-DbaInstance and Invoke-DbaQuery
- [Import-DbaXESessionTemplate] Name cannot be specified with multiple files or templates because the Session will already exist. #4923
- Correct type conversions for LSN comparison in Select-DbaBackupInformation
- Add money & text types to data masking
- Typo in DefaultDB parameter for Set-DbaLogin & New-DbaLogin
- Verify that cumulative updates passed to Test-DbaBuild are a list
- Set-DbaAgentJob: Changing EventLogLevel to 0/Never will not be applied #4927
- Set default database with Set-DbaLogin
- Latest versions of Glenn Berry's diagnostic queries
- Only update fullname in Resolve-DbaNetworkName when running from a remote PC
- Implement -whatif for Install-DbaMaintenanceSolution #4901
- Proper messaging when running Get-DbaPowerPlan on a local instance without an elevated session #4777
- ReadOnly option for Invoke-DbaQuery #3451
- Officially remove Invoke-SqlCmd2 (use Invoke-DbaQuery instead)
- Various unit tests [#4695]
- Documentation update for Get-DbaDbIdentity
- Latest versions of Glenn Berry's diagnostic queries
- Documentation update for Get-DbaDbIdentity
- Latest versions of Glenn Berry's diagnostic queries
- Logic in Resolve-DbaNetworkName
- Revised output object construction in Resolve-DbaNetworkName
- Revised exception handling in Get-DbaDependency
- New options for Import-DbaCsv
- Support for -whatif and -confirm to Publish-DbaDacPackage #4824
- Excessive error messages & conflicting parameters in Restore-DbaDatabase
- Warning with no output in Get-DbaBuildReference #4794
- Invalid type conversion in Get-DbaDependency #4768
- Logic in Resolve-DbaNetworkName
- PSCore enhancements in Test-DbaConnection
- Verify backup for log & diff backups in Restore-DbaDatabase #4861
- Support packages to CI build process
- Test-Connection in Reset-DbaAdmin, Resolve-DbaNetworkName, internal functions
- Elapsed transaction control in Invoke-DbaDbDataMasking
- Elapsed time tracking in Invoke-DbaDbDataMasking
- SQL output for striped restores in Get-DbaBackupInformation
- Enhancements to data masking
- Enhancements to Update-DbaInstance
- Failsafe value in Invoke-DbaDbDataMasking
- Deterministic data masking in Invoke-DbaDbDataMasking & New-DbaDbMaskingConfig
- Random creation of values in Invoke-DbaDbDataMasking
- Dynamic database list to Invoke-DbaDbDataMasking
- Add Geometry to check of unsupported data types for Invoke-DbaDbDataMasking
- Enhanced outputs of Invoke-DbaDbDataMasking
- Save-DbaDiagnosticQuery to work with lightly malformed links
- Piping to Get-DbaDbSpace
- Logic to make UseLastBackup in Start-DbaMigration to be easier
- Added a progress bar and made the output more reasonable
- Added more flexibility to masking commands
- Updated SQL Build info
- LogShipping in v2012
- Added check for ps v2 for those that bypass psd1
- Pipeline support for Get-DbaDbSpace
- xplat support notification to Find-DbaCommand / docs.dbatools.io
- More integration tests
- New commands: Invoke-DbaDbDataMasking and New-DbaDbMaskingConfig
- Get-DbaBackupHistory - fully honors need to exclude system dbs
- Fixed docs/typos in various commands
- Renamed DbaOrphanUser series
- More integration tests!
- Docs update
- Schema output to Copy-DbaDbTableData
- Variable bug fix in Invoke-DbaLogShipping
- Multi-threading to Update-DbaInstance
- System db export capabilities to Export-DbaDacPackage
- Ag replica now works when run outside of New-DbaAvailabilityGroup
- Start-DbaMigration xplat support
- Invoke-DbaAgFailover try/catch wrap to make errors pretty.
- Renamed Set-DbaJobOwner to Set-DbaAgentJobOwner
- Failed logic in Remove-DbaOrphanUser
- Removed ability to specify both KeepDays and Database from Remove-DbaDbBackupRestoreHistory
- VSCode default settings
- Pipe support in Test-DbaDbOwner
- Sync AG bug having to do with read-only dbs
- Update-DbaInstance final touches
- Explicit export of cmdlet module members (fixes older OS/PS issues)
- Docker support for AGs
- Issue where the dll was repeatedly copied in Windows
- Command exports
- Faster import by using zip instead of big ol' ps1
- Core support for Copy-DbaDbDatatable, Write-DbaDataTable,
- Parameter names for Copy-DbaDbQueryStoreOption
- Core support for Import-DbaCsv
- For real true xplat including library and configs πππππ
- Added Update-DbaInstance πππππ
- ComputerName resolution for fqdn in Connect-*Instance
- Stop-Function -Continue bug in Set-DbaPrivilege
- Invoke-DbaDbccFreeCache
- Get-DbaDbccUserOption
- Added PolyBase support to Get-DbaService
- Backup recoveryfork bug
- Standardized output for Copy command notes
- New-DbaAgentJobStep issue with server / SubSystemServer
- Get-DbaDbccHelp
- Get-DbaDbccMemoryStatus
- Get-DbaDbccProcCache
- Removed mandatory=$false on parameters because it's implied
- Get-DbaAgentServer
- Set-DbaAgentServer
- Path parameter to audit copies
- Removed mandatory=$false on parameters because it's implied
- Extra include and exclude options to
Sync-DbaAvailabilityGroup
- Extra column parameters to
Import-DbaCsv
- Publish-DbaDacPackage param issues introduced by core fixes
- Resolve-DbaNetworkName resolution issue introduced by core fixes
- Some long-standing
Get-DbaBackupHistory -Force
problems were resolved
- Added VS Code recommendations
- Support for Core and Certs
- Solution file upgraded to Core combination and VS 2017
- Support for Core and Certs
- Solution file upgraded to Core combination and VS 2017
- Fixed non-Windows imports. "Fixed" used loosely - disabled configuration to speed up import. Xplat still not fully delivered.
- Seeding support to Add-DbaAgDatabase
- More integration tests!
- Category and Database filters to Get-DbaAgentJob
- CROSS PLATFORM SUPPORT INCLUDING MACOS AND LINUX π
- $script:core for easy core detection in functions
- Resolve-Path added to core import routine
- Support for Dacfx for core π
- Weird thing in Core where a string comparison didn't work so it tried to copy dbatools.dll onto itself
- Get-DbaDbFile now works for CS collation
- Support for PS Core on Windows π
- SMO core DLLs from the SqlServer module
- AG versioning bugs
- This changelog.md! π
- Extra DLLs that did not seem necessary
- Updated Glen Berry's scripts
- Added for new features.
- Changed for changes in existing functionality.
- Deprecated for soon-to-be removed features.
- Removed for now removed features.
- Fixed for any bug fixes.
- Security in case of vulnerabilities.
- Changelogs are for humans, not machines.
- There should be an entry for every single version.
- The same types of changes should be grouped.
- Versions and sections should be linkable.
- The latest version comes first.
- The release date of each version is displayed.
- Mention whether you follow Semantic Versioning.