【发布时间】:2018-05-06 10:24:53
【问题描述】:
我正在从事一项活动,我在 server1 中有一个表 (t1),其中存储了服务器名称、用户 ID 和角色信息。
我创建了一个在 server1 上运行的 PowerShell 脚本,从表中收集这些信息,连接到远程服务器(服务器名称)并将请求的角色授予用户 ID。
请在下面找到脚本:
$SQLServer = "Server1"
$SQLDatabase = "Db1"
$user = "select userid from T1"
$role = "select access from T1"
$server1 = "Select servername from T1"
<#store the table information in a text file for auditing#>
$Sqlquery = "Select servername,userid,access from T1"
$Test = Invoke-SQLCMD -Query $SqlQuery -serverinstance $SQLServer -Database
$SQLDatabase
$Test | format-list servername,userid,access| out-file "G:\EP\test.txt"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server = $Server1; Integrated Security =
True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $SqlQuery
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$sqlSrv = New-Object 'Microsoft.SqlServer.Management.Smo.Server'
"SQLServer\Instance"
foreach ($login in $user)
{
$login.AddToRole($role)
}
$SqlConnection.Close()
在运行上述代码时,我看到以下错误:
方法调用失败,因为 [System.String] 不包含名为“AddToRole”的方法。
【问题讨论】:
标签: sql powershell roles