gpt4 book ai didi

powershell - 使用 Powershell 将 Get-ADUser 查询结果写入表

转载 作者:行者123 更新时间:2023-12-03 01:04:33 25 4
gpt4 key购买 nike

我想从表中提取用户列表,使用 Get-ADUser 查找他们的电子邮件并将结果写回 SQL 表。到目前为止,我可以将结果集保存到 csv。文件,但如何改为写入表。

$connString = "Server = 'sql1'; Database = 'test'; Integrated Security = True"
$QueryText = 'SELECT [ADUser] FROM [test].[dbo].[Users]'
$SqlConnection = new-object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = $connString
$SqlCommand = $SqlConnection.CreateCommand()
$SqlCommand.CommandText = $QueryText
$DataAdapter = new-object System.Data.SqlClient.SqlDataAdapter $SqlCommand
$dataset = new-object System.Data.Dataset
$DataAdapter.Fill($dataset)

$dataset.Tables[0] | ForEach {
Get-ADUser -identity $_.ADUser -Properties Name, SamAccountName,mail |
Select Name, SamAccountName, mail |
Export-CSV C:\Users\export3.csv -Append -Encoding UTF8
}

最佳答案

我会为此使用很棒的 PowerShell 社区 DBATools 模块。它是由一些长期使用 PowerShell 和 SQL MVP 编写的,这使这项工作变得轻松。

首先,安装模块

Install-Module DBATools

该模块有两个命令我们需要完成这项工作。首先,使用 ConvertTo-DBADataTable 将常规 PowerShell 对象转换为 SQL 数据表。 ,然后使用 Write-DBADataTable 将其写入 SQL DB .

这就是它的样子。我首先创建一个名为 DBATools 的新 SQL 数据库。在我名为 SCCM 的 SQL 实例上.接下来,我得到一个我想要插入到表中的用户列表。

enter image description here

接下来,我将其通过管道传输到 | ConvertTo-DbaDataTable并将其存储在变量中。
$DataTable = get-aduser -Filter * | select Name,DistinguishedName,SurName | ConvertTo-DbaDataTable

最后,我运行 Write-DBADataTable将这些行写入新表(通过添加 -AutoCreateTable 创建新表)
Write-DbaDataTable -SqlInstance SCCM -Database DBATools `
-InputObject $DataTable -Table UserTable -AutoCreateTable

现在,我转到 SSMS 并刷新以查看我的新表已创建,并带有适当的列!太棒了,轻松自在!

enter image description here

关于powershell - 使用 Powershell 将 Get-ADUser 查询结果写入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51155553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com