O SMO certamente suporta um método de criação de banco de dados - a página do MSDN vinculada inclui um exemplo de powershell:
$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database($srv, "Test_SMO_Database")
$db.Create()
Write-Host $db.CreateDate