close

需求下 學習了 透過  Powershell 進行 Mail 及 ODBC的連線 記錄備用
新增ODBC 連線--此處使用 ODBCCONF.EXE  不過看來M$ 已後要將他打入冷宮了  簡單的說明一下

ODBCCONF.EXE /A  /CONFIGDRIVER  /CONFIG(SYS)DSN   |
example  odbcconf.exe CONFIGSYSDSN "Microsoft Access Driver (*.mdb)" "DSN=DRM|Description=DRM|DBQ=D:\DRM\BSC.mdb"
說明:增加一個ACCESS MDB 的ODBC 連結於糸統資料來源 名稱為DRM 描述為DRM 檔案於 D:\DRM\BSC.mdb
參考連結<https://docs.microsoft.com/zh-tw/sql/odbc/odbcconf-exe>

整體來說問題不多 但常會遇到的可能的錯誤 1.DRIVER 找不到或未註冊  2.不知錯誤

1.可透過 get-odbcdrivr 來找到你需要的驅動名稱  (怎麼找都找不到你要的名稱嗎 ,試著開啟 powershell(x86) 試試 ....)

2. DSN | Description 等訊息處, 不要有空格..應該可以避免掉 ...我是這樣成功的,希望你遇到的也是

掛載完成後 就是連線和查訊了

$connectstring = "DSN=DRM;Uid=;Pwd=;"
$sql = "select top 1 * from MJT"
$conn = New-Object System.Data.Odbc.OdbcConnection($connectstring)
$conn.open()
$cmd = New-object System.Data.Odbc.OdbcCommand($sql,$conn)
$da = New-Object system.Data.Odbc.OdbcDataAdapter($cmd)
$dt = New-Object system.Data.datatable
$null = $da.fill($dt)
$conn.close()
Write-Output $dt > D:\MJT.txt
一樣當功能無法正常運行時確認一下在x86 下是否正常   可逐步測試 至$conn.open() 就能知道是否能正常連線了

參考資料

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/803be016-14d6-4c58-b7d8-4785910fe347/odbc-connection-checking?forum=sqldataaccess

https://www.andersrodland.com/working-with-odbc-connections-in-powershell/

至於Send Mail 網上說明很多

最終透過 https://philerb.com/2011/11/sending-mail-with-powershell/ 才了解 原來有兩種不同的方式進行寄信 此處選的是 system.mail.net的方式

由於要夾帶多個附件  又學到了 foreach 的用法 當然就順便套用到 寄件者的部份囉

至於Body 的部份有興趣也可以讓你的 Auto Mail 充滿許多的可行性   不過還未成功夾帶圖片  _Orz 
最後當然就是排程叫用囉 由於有些僅能於x86 下執行  所以在叫用上
"C:\Windows\SysWow64\WindowsPowerShell\v1.0\powershell.exe" -file "D:\DRM.ps1"

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 賊 的頭像

    不求甚解的部落格

    賊 發表在 痞客邦 留言(0) 人氣()