您正在寻找Invoke-Sqlcmd cmdlet
。
在文件中保存您的SQL Server命令(下面的),并保存为SQLInput.sql
create login [MYDOMAIN\myusername] from windows
go
sp_addsrvrolemember [MYDOMAIN\myusername], 'sysadmin'
go
然后,你可以用Run As Administrator
运行PowerShell命令提示符,然后像运行下面的命令:
Invoke-Sqlcmd -InputFile "C:\SQLInput.sql" | Out-File -filePath "C:\SQLOutput.rpt"
编辑:
您可以使用-Query
选项运行查询内联如
Invoke-Sqlcmd -Query "create login [MYDOMAIN\myusername] from windows;"
捕捉响应,是为了确保查询是否成功运行。您可以使用-AbortOnError
开关;这将中止错误的命令。
否则,您可以使用Try .. Catch .. Finally
构建在PowerShell中像
Try
{
Invoke-Sqlcmd -Query "create login [MYDOMAIN\myusername] from windows;"
}
Catch
{
[system.exception]
"caught a system exception"
}
Finally
{
"end of script"
}
了解更多关于异常处理在PowerShell中Here
有没有一个好办法做到这一点,没有一个单独的文件?剧本的目的是协助入职,所以我想尽可能将所有内容都保存在一个地方。能够读取SQL Server对命令的响应的奖励点数。 – Benjin 2014-09-30 18:54:23
查看编辑答案。阅读更多MSDN以了解更多信息。 – Rahul 2014-09-30 19:21:16