我的公司需要验证是否已将每台计算机的费用开给了正确的部门(这是一家非常大的公司)。我通过确保将每台计算机记入最后登录该计算机的用户的部门ID来实现此目的。
一旦有了所有计算机的用户ID(使用PS脚本),我就需要运行SQL查询以选择每个用户的部门代码。然后,我可以使用该数据更新帐单信息。
但是,我似乎无法使SQL查询在PS中运行。它可以在服务器管理控制台中运行,但是只有一个步骤而不是两个步骤会更容易。这似乎是我通过使用“ Get-Credential”传递凭据的方式,因为我一直在同一位置($ connection.Open())收到错误。
我知道我的凭据有效,但是仍然出现错误“使用“ 0”参数调用“打开”的异常:用户'MY_ID'登录失败。”
我在这里想念什么?任何帮助将不胜感激!
function Invoke-SQL {
$cred = Get-Credential
$cred.Password.MakeReadOnly()
$cred.UserName -replace("\\","")
$sqlCred = New-Object System.Data.SqlClient.SqlCredential($cred.username,$cred.password)
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = “Data Source=DS;Initial Catalog=DB”
$connection.Credential = $sqlCred
$sqlCommand = "Select * from HR_DATA
Where User_ID = '$ID'"
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
$connection.Open()
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataset) | Out-Null
$connection.Close()
$dataset.Tables[0]
}
Invoke-SQL