• Perfect! Thanks.

    Here's the final scripts

    $s = "kbullen-865";

    $db_name = "tempdb";

    $CombinedExceptionMessage = "";

    ##Add-Type -Path "C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Smo.dll"

    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null

    $serv = New-Object Microsoft.SqlServer.Management.SMO.Server($s)

    Function CheckObject

    {

    Param ($DatabaseName, $ObjectSchema, $ObjectName)

    $scon = New-Object System.Data.SqlClient.SqlConnection

    #$scon.ConnectionString = "SERVER=" + $s + ";DATABASE=" + $DatabaseName + ";Integrated Security=true"

    $scon.ConnectionString = "SERVER=$s;DATABASE=$db_name;Integrated Security=true"

    $trycmd = New-Object System.Data.SqlClient.SqlCommand

    ## We refresh the object with the schema.table

    $trycmd.CommandText = "EXECUTE sys.sp_refreshsqlmodule '$ObjectSchema.$ObjectName'"

    $trycmd.Connection = $scon

    try

    {

    $scon.Open()

    $trycmd.ExecuteNonQuery() | Out-Null

    }

    catch [Exception]

    {

    $CurrentException = $_.Exception.Message -replace "'", "''";

    #$ExceptionMessage = $ExceptionMessage + $CurrentException;

    #Write-Host $DatabaseName"."$ObjectSchema"."$ObjectName ":"

    #Write-Host $_.Exception.Message

    #Write-Host $CurrentException;

    }

    finally

    {

    $scon.Close()

    $scon.Dispose()

    }

    Return $CurrentException;

    }

    $db = $serv.Databases[$db_name];

    $CombinedExceptionMessage = "";

    foreach ($proc in $db.StoredProcedures | Where-Object {$_.IsSystemObject -eq $false})

    {

    $NewExceptionMessage = "";

    $o = $proc.Name

    $sc = $proc.Schema

    if ($sc -ne "tSQLt" -and $sc -ne "SQLCop")

    {

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($NewExceptionMessage)

    {

    $CombinedExceptionMessage = $CombinedExceptionMessage + $db.Name + "." + $sc + "." + $o + ": ";

    $CombinedExceptionMessage = $CombinedExceptionMessage + $NewExceptionMessage.replace("`n","").replace("`r","") + "`r`n";

    $NewExceptionMessage = "";

    }

    }

    }

    foreach ($trig in $db.Triggers | Where-Object {$_.IsSystemObject -eq $false})

    {

    $NewExceptionMessage = "";

    $o = $trig.Name

    $sc = $trig.Schema

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($sc -ne "tSQLt" -and $sc -ne "SQLCop")

    {

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($NewExceptionMessage)

    {

    $CombinedExceptionMessage = $CombinedExceptionMessage + $db.Name + "." + $sc + "." + $o + ": ";

    $CombinedExceptionMessage = $CombinedExceptionMessage + $NewExceptionMessage.replace("`n","").replace("`r","") + "`r`n";

    $NewExceptionMessage = "";

    }

    }

    }

    foreach ($udf in $db.UserDefinedFunctions | Where-Object {$_.IsSystemObject -eq $false})

    {

    $NewExceptionMessage = "";

    $o = $udf.Name

    $sc = $udf.Schema

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($sc -ne "tSQLt" -and $sc -ne "SQLCop")

    {

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($NewExceptionMessage)

    {

    $CombinedExceptionMessage = $CombinedExceptionMessage + $db.Name + "." + $sc + "." + $o + ": ";

    $CombinedExceptionMessage = $CombinedExceptionMessage + $NewExceptionMessage.replace("`n","").replace("`r","") + "`r`n";

    $NewExceptionMessage = "";

    }

    }

    }

    foreach ($view in $db.Views | Where-Object {$_.IsSystemObject -eq $false})

    {

    $NewExceptionMessage = "";

    $o = $view.Name

    $sc = $view.Schema

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($sc -ne "tSQLt" -and $sc -ne "SQLCop")

    {

    $NewExceptionMessage = CheckObject $db.Name $sc $o

    if ($NewExceptionMessage)

    {

    $CombinedExceptionMessage = $CombinedExceptionMessage + $db.Name + "." + $sc + "." + $o + ": ";

    $CombinedExceptionMessage = $CombinedExceptionMessage + $NewExceptionMessage.replace("`n","").replace("`r","") + "`r`n";

    $NewExceptionMessage = "";

    }

    }

    }

    if ($CombinedExceptionMessage)

    {

    Write-Host $CombinedExceptionMessage;

    exit 1;

    }

    Probably not the most elegant, but it works.