我有一个脚本的以下部分采取对象formsExchange和AD,并插入到MYSQL表。 但是一些全名variables有一个像分发组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”参数调用“Fill”的exception:“您的SQL yntax中有错误;检查与您的MySQL服务器版本相对应的手册,以使用righ语法附近的's',account_name =' !'PAs.wingrave',hide_from_gal ='False'WHERE account_name ='!PA'at line 1“在C:\ Support \ Control Panel \ Test4_distribution.ps1:63 char:22 + $ dataAdapter.Fill <<<<($ dataSet,“data”)| Out-Null#从数据适配器填充数据集,名称为“data”+ CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
!PA的DB:发行 – 已更新
任何帮助将非常感谢….错误来自这个variables:$ strDistName = $ strDist.Name但我需要做这个检查所有variables….
谢谢
你可能想尝试这样的事情:
$sqlDistUpdateRecord = "UPDATE distribution SET full_name='{0}', account_name='{1}', hide_from_gal='{2}' WHERE account_name='{1}'" -f $strDistName, $strDistSamAccountName, $strDistHidden