我想将用户从 AD 插入 SQL 我找到了执行此主题的代码,代码是
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version 3
$DataArray = @(Get-ADUser -AuthType 0 -ResultSetSize 10 -filter {Name -eq 'user name'})
$DataTable = [System.Data.DataTable]::new()
$DataTable.Columns.Add([System.Data.DataColumn]::new('name', [String]))
$DataTable.Columns.Add([System.Data.DataColumn]::new('ObjectClass', [String]))
$ColumnNamesArray = @($DataTable.Columns.ColumnName)
foreach ($DataElement in $DataArray) {
$NewRow = $DataTable.NewRow()
foreach ($ColumnName in $ColumnNamesArray) {
$NewRow.$ColumnName = $DataElement.$ColumnName
}
$DataTable.Rows.Add($NewRow)
}
$NumOfRows = $DataTable.Rows.Count
if ($NumOfRows -ne 0)
{
$SqlServerName = 'localhost'
$SqlDatabaseName = 'test'
$BatchSizeRows = 1000
$BulkCopyTimeOutSeconds = 60
# $SqlServerUserName = 'SqlAdmin'
# $SqlServerUserPassword = ''
$SqlTableName= '[dbo].[TableName]'
# $SqlServerUserPasswordSecureString = ConvertTo-SecureString $SqlServerUserPassword -AsPlainText -Force
# $SqlServerUserPsCredential = New-Object System.Management.Automation.PSCredential ($SqlServerUserName, $SqlServerUserPasswordSecureString)
$WriteDbaDataTableParameters = @{
'SqlInstance' = $SqlServerName
'Database' = $SqlDatabaseName
# 'SqlCredential' = $SqlServerUserPsCredential
'BatchSize' = $BatchSizeRows
'BulkCopyTimeOut' = $BulkCopyTimeOutSeconds
'EnableException' = $true
}
Write-DbaDataTable @WriteDbaDataTableParameters -Table $SqlTableName -InputObject $DataTable
}
我非常了解 POWERSHELL 命令,我很乐意帮助您了解这些命令的语言和作用:[System.Data.DataColumn] 我很乐意通过 POWERSHELL 提供指向 SQL 连接命令解释的链接的帮助