У меня есть следующая часть скрипта, которая принимает объекты из Exchange и AD и вставляет их в таблицу MYSQL. Но некоторые переменные Full Names имеют «как» PA группы рассылки.
Вот часть сценария:
# Get Distributions List ready for writing and write MySQL
write-host " "
write-host "Writing Distribution List"
write-host " "
# Get Room Mailboxes
$strdist = Get-DistributionGroup
foreach ($strdist.Name in $strdist)
{
$strDistName = $strDist.Name
$strDistSamAccountName = $strDist.SamAccountName
$strDistHidden = $strDist.HiddenFromAddressListsEnabled
#write-host "Distribution List Name: " $strDistName
#write-host "Distribution List Account Name: " $strDistSamAccountName
#write-host "Distribution List Hidden from GAL: " $strDistHiddenFromAddressListsEnabled
# Check to See if full_name Name exists
$sqlDistLookup = "SELECT account_name FROM distribution WHERE account_name='$strDistSamAccountName'"
$DistLookup = Execute-MySQLQuery $con $sqlDistLookup
# Write to MySQL resource
If ($DistLookup) {
$sqlDistUpdateRecord = "UPDATE distribution SET full_name='$strDistName', account_name='$strDistSamAccountName', hide_from_gal='$strDistHidden' WHERE account_name='$strDistSamAccountName'"
$DIstUpdateRecord = Execute-MySQLQuery $con $sqlDistUpdateRecord
Write-host $strDistName " DB:distribution - Updated"
}
else
{
$sqlDistNewRecord = "INSERT INTO distribution (full_name,account_name,hide_from_gal) VALUES ('$strDistName','$strDistSamAccountName','$strDistHidden')"
$DistNewRecord = Execute-MySQLQuery $con $sqlDistNewRecord
Write-host $strDistName " DB:distribution - NEW"
}
}
и ошибка из консоли:
Исключение, вызывающее "Заполнить" аргументом (ами) "2": "У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, чтобы найти правильный синтаксис рядом с 's', account_name = ' ! PAs.wingrave ', hide_from_gal =' False 'WHERE account_name ='! PAs 'в строке 1 "В C: \ Support \ Control Panel \ Test4_distribution.ps1: 63 символа: 22 + $ dataAdapter.Fill <<<< ($ dataSet, "данные") | Out-Null # Заполнить набор данных из адаптера данных с именем "data" + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException
! PA's DB: распространение - Обновлено
Любая помощь была бы большой, спасибо .... ошибка возникает из этой переменной: $ strDistName = $ strDist.Name, но мне нужно выполнить эту проверку для всех переменных ....
Спасибо
Вы можете попробовать что-то вроде этого:
$sqlDistUpdateRecord = "UPDATE distribution SET full_name='{0}', account_name='{1}', hide_from_gal='{2}' WHERE account_name='{1}'" -f $strDistName, $strDistSamAccountName, $strDistHidden