小编E. *_*lly的帖子

从 Invoke-SqlCmd 捕获错误

我正在开发一个 Powershell 脚本,该脚本将 CSV 文件作为输入,其中包含有关服务器和每个服务器上的数据库的信息,以便为文件中的每个服务器和数据库创建特定的登录名和用户。该脚本尝试使用 Invoke-SqlCmd 通过 SQL 命令创建登录名和用户,然后将尝试结果输出到新的 CSV 文件。如果成功添加登录名和用户,则输出数据并显示成功消息,如果任一命令失败,则应输出数据并显示失败消息。现在,如果出现 Invoke-SqlCmd 错误,脚本不会确认发生了故障并输出运行成功。

我需要一些帮助来弄清楚如何编写我的 Try/Catch 块,以便它们真正捕获 SQL 命令失败并输出正确的消息。

我当前针对这些部分的 Try/Catch 块:

Try # Create Login
{
    # Importing sqlserver module to run the commands
    if (-not (Get-Module -Name "sqlserver"))
    {
        Import-Module sqlserver
    }
    Write-Host "Checking server $fullServerName to see if login [Example_Login] exists. Will create login if it does not already exist."
    Invoke-Sqlcmd -ServerInstance $fullServerName -Query "$loginCommand"

    Write-Host "Login command successfully executed.`n"
}
Catch
{
    Write-Host "An error has occurred …
Run Code Online (Sandbox Code Playgroud)

powershell invoke-sqlcmd

2
推荐指数
1
解决办法
5278
查看次数

标签 统计

invoke-sqlcmd ×1

powershell ×1