濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > PowerShell連接SQL SERVER數(shù)據(jù)庫進(jìn)行操作的實(shí)現(xiàn)代碼

PowerShell連接SQL SERVER數(shù)據(jù)庫進(jìn)行操作的實(shí)現(xiàn)代碼

熱門標(biāo)簽:什么渠道可以找外呼系統(tǒng)客戶 安徽400電話辦理 湖州電銷防封卡 電話智能外呼系統(tǒng)誠信合作 金融電銷公司怎么辦理外呼系統(tǒng) 真人和電話機(jī)器人對(duì)話 信陽話務(wù)外呼系統(tǒng)怎么收費(fèi) 使用電話機(jī)器人電銷是否違法 雷霆電話機(jī)器人電話

核心代碼

#配置信息
$Database	= 'DemoDB'
$Server		= '"WIN-AHAU9NO5R6U\DOG"'
$UserName	= 'kk'
$Password	= '123456'

#創(chuàng)建連接對(duì)象
$SqlConn = New-Object System.Data.SqlClient.SqlConnection

#使用賬號(hào)連接MSSQL
$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;user id=$UserName;pwd=$Password"

#或者以 windows 認(rèn)證連接 MSSQL
#$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;Integrated Security=SSPI;"

#打開數(shù)據(jù)庫連接
$SqlConn.open()

#執(zhí)行語句方法一
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.connection = $SqlConn
$SqlCmd.commandtext = 'delete top(1) from dbo.B'
$SqlCmd.executenonquery()

#執(zhí)行語句方法二
$SqlCmd = $SqlConn.CreateCommand()
$SqlCmd.commandtext = 'delete top(1) from dbo.B'
$SqlCmd.ExecuteScalar()

#方法三,查詢顯示
$SqlCmd.commandtext = 'select name,recovery_model_desc,log_reuse_wait_desc from sys.databases'
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$set = New-Object data.dataset
$SqlAdapter.Fill($set)
$set.Tables[0] | Format-Table -Auto 

#關(guān)閉數(shù)據(jù)庫連接
$SqlConn.close()

下面是來自微軟的官方幫助文檔:Windows PowerShell:使用 PowerShell 處理數(shù)據(jù)庫

您可以使用一些 Windows PowerShell 代碼來配置您的數(shù)據(jù)庫,以存儲(chǔ)您所需的信息。

Don Jones

數(shù)據(jù)庫是數(shù)據(jù)存儲(chǔ)之王。 那么為什么不利用這些數(shù)據(jù)庫,如 SQL Server 存儲(chǔ)一些可以使您的生活更輕松的管理信息的呢? 您可以存儲(chǔ)服務(wù)器名稱、 Windows 版本、 服務(wù)包級(jí)別、 最后一個(gè)管理員登錄、 這種東西。
它是與 Windows PowerShell,都是很容易,因?yàn)槟梢允褂盟鼇肀緳C(jī)訪問 Microsoft 基礎(chǔ)數(shù)據(jù)庫功能。NET 框架。 這現(xiàn)在看上去不太像 Windows PowerShell 腳本和更多像一個(gè) C# 程序。 不過,您所需要的代碼是很容易模板。 你可以帶我來你這里與幾個(gè)次要的改變它適應(yīng)幾乎任何情況。

用于 SQL 腳本

讓我們假設(shè)您有一個(gè)名為 SYSINFO 的 SQL Server 2008 數(shù)據(jù)庫。 數(shù)據(jù)庫已命名服務(wù)器的表。 該表已五列: 服務(wù)器名稱、 用戶名、 LastLogon、 原因和 SPVersion。 這可以是大多是簡(jiǎn)單的文本列的 varchar 類型。
然而,使 LastLogon 日期時(shí)間列。 它現(xiàn)在使用 SQL Server 設(shè)置為其默認(rèn)值的函數(shù)。 這樣,每次添加新行,它將包含當(dāng)前日期和時(shí)間,而不需要您手動(dòng)指定。 使原因列 varchar(MAX),如有必要,它可以包含文本,很多。
創(chuàng)建登錄腳本在組策略對(duì)象 (GPO),將 GPO 鏈接到您的服務(wù)器所在的組織單位 (OU)。 每次有人登錄到服務(wù)器運(yùn)行該腳本時(shí)。 使用 Windows PowerShell 腳本,您可以在任何裝有 Windows PowerShell 2.0 的計(jì)算機(jī)上的東西。 您需要確保您已經(jīng)從 Windows Server 2008 R2 (或 Windows 7 遠(yuǎn)程服務(wù)器管理工具包或寄宿) 來編輯該 GPO 時(shí)有基于 Windows PowerShell 登錄腳本選項(xiàng)的 GPO 模板。
這里是您需要的腳本。 請(qǐng)注意我使用 ↵ 來指示應(yīng)在此按 enter 鍵。 僅按 enter 鍵時(shí)你來該符號(hào),如果您希望它能正常工作 (您可以將復(fù)制的 HTML 使用符號(hào) crarr ; 實(shí)體):

$reason = Read-Host 'Reason are you logging on'↵
$reason.replace("'","''")↵

這兩行提示有人為他們正在登錄到服務(wù)器的原因 — — 這一點(diǎn)是相當(dāng)重要的跟蹤。 替換功能會(huì)將任何單引號(hào)替換使用兩個(gè)單引號(hào),確保我們稍后構(gòu)建的 SQL 語句將正常工作。 這并不被為了故意 SQL 注入式攻擊的防范。 畢竟,我們談?wù)撌苄湃蔚墓芾韱T,正確嗎?

此線將檢索操作系統(tǒng)的信息:

$os = Get WmiInfo Win32_OperatingSystem↵

在這里重要的數(shù)據(jù)是服務(wù)器的名稱和其當(dāng)前的服務(wù)包版本。 您可能還需要 BuildNumber 屬性,告訴您您正在處理的 Windows 版本。
此線加載的一部分。負(fù)責(zé)處理數(shù)據(jù)庫的.NET 框架:

[assembly.reflection]::loadwithpartialname ('System.Data ') ↵

這些行創(chuàng)建新的數(shù)據(jù)庫連接:

$conn = New-Object System.Data.SqlClient.SqlConnection↵
$conn.ConnectionString = "Data Source=SQLSERVER;Initial Catalog=SYSINFO;Integrated Security=SSPI;"↵

如果您不使用 SQL Server 2008,連接字符串可能會(huì)有點(diǎn)不同 (訪問ConnectionStrings.com來查找各種不同的數(shù)據(jù)庫的連接字符串示例):

$conn.open () ↵

現(xiàn)在該連接是打開并可供使用。

這兩條線創(chuàng)建是我將使用 SQL 服務(wù)器發(fā)送查詢的 SQL 命令。 我已經(jīng)設(shè)置其連接屬性設(shè)置為"打開",以便 Windows PowerShell 已實(shí)際發(fā)送命令的方式:

$cmd = New-Object System.Data.SqlClient.SqlCommand↵
$cmd.connection = $conn↵

這所有辛勤的工作。 它創(chuàng)建一個(gè) SQL"插入"查詢到數(shù)據(jù)庫表中插入新行。 請(qǐng)注意我使用 – f 格式設(shè)置運(yùn)算符將四條信息插入到查詢。 信息被插入 {x} 占位符,它提供如下操作員的逗號(hào)分隔列表中的順序相同:

$cmd.commandtext = "INSERT INTO servers (servername,username,spversion,reason) VALUES('{0}','{1}','{2}','{3}')" -f
$os.__SERVER,$env.username,$os.servicepackmajorversion,$reason↵

現(xiàn)在我會(huì)執(zhí)行查詢,并關(guān)閉數(shù)據(jù)庫連接:

$cmd.executenonquery()↵
$conn.close()↵

請(qǐng)確保您關(guān)閉該連接或你得打你一頓頭的后面的數(shù)據(jù)庫管理員。 您將看到對(duì)ConnectionStrings.com,您可以訪問大量的數(shù)據(jù)庫。
如果您使用 SQL Server 以外,你得改改"OleDb"對(duì)象名稱"SqlClient"部分。 此外,它已不推薦使用基于文件的數(shù)據(jù)庫訪問像。 為之一,以獲取驅(qū)動(dòng)程序,你得要上安裝,訪問您的服務(wù)器,這將是一個(gè)可怕的想法。 另一種,這些數(shù)據(jù)庫的性能達(dá)不到您將需要為此工作好的水平。

如果你沒有可以承載數(shù)據(jù)庫的 SQL Server 實(shí)例,獲取一份快遞版安裝的地方。 這足夠低的這種技術(shù)將可能產(chǎn)生的交通。
很明顯,您可以修改此做相當(dāng)多的技術(shù)。 可以將列添加到數(shù)據(jù)庫,并讓您的腳本收集其他信息。 您需要做的一件事是精通 SQL 語言本身。 您不需要的大師,但你要能夠編寫基本的查詢。
如果您需要上 (在此級(jí)別工作的幾乎相同每個(gè)主要的數(shù)據(jù)庫平臺(tái)) 的 SQL 語言入門,簽出這視頻系列創(chuàng)建行業(yè)標(biāo)準(zhǔn) SQL 語言提供了完整的教程。 它還包括像 SQL Server、 Oracle、 MySQL 平臺(tái)之間的主要差異,等等。
這里是整個(gè)腳本:

$reason = Read-Host 'Reason are you logging on'↵
$reason.replace("'","''")↵
$os = Get-WmiInfo Win32_OperatingSystem↵
[assembly.reflection]::loadwithpartialname('System.Data')↵
$conn = New-Object System.Data.SqlClient.SqlConnection↵
$conn.ConnectionString = "Data Source=SQLSERVER;Initial Catalog=SYSINFO;Integrated Security=SSPI;"↵
$conn.open()↵
$cmd = New-Object System.Data.SqlClient.SqlCommand↵
$cmd.connection = $conn↵
$cmd.commandtext = "INSERT INTO servers (servername,username,spversion,reason) VALUES('{0}','{1}','{2}','{3}')" -f $os.__SERVER,$env.username,$os.servicepackmajorversion,$reason↵
$cmd.executenonquery()↵
$conn.close()↵

您可能感興趣的文章:
  • Powershell訪問SQL Server數(shù)據(jù)庫代碼實(shí)例
  • PowerShell腳本開發(fā)嘗試登錄SQL Server
  • powershell玩轉(zhuǎn)SQL SERVER所有版本的方法

標(biāo)簽:濟(jì)南 鶴崗 山南 六盤水 運(yùn)城 湛江 岳陽 德州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell連接SQL SERVER數(shù)據(jù)庫進(jìn)行操作的實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  PowerShell,連接,SQL,SERVER,數(shù)據(jù)庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PowerShell連接SQL SERVER數(shù)據(jù)庫進(jìn)行操作的實(shí)現(xiàn)代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于PowerShell連接SQL SERVER數(shù)據(jù)庫進(jìn)行操作的實(shí)現(xiàn)代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    肥城市| 社旗县| 鞍山市| 景德镇市| 镇赉县| 五原县| 海门市| 乾安县| 泰州市| 澳门| 德惠市| 磐安县| 栾城县| 康保县| 从化市| 外汇| 荔浦县| 教育| 天长市| 汕尾市| 恭城| 朝阳区| 广丰县| 保靖县| 揭阳市| 莎车县| 二连浩特市| 夹江县| 岳阳市| 道孚县| 胶州市| 巴彦淖尔市| 额尔古纳市| 呼伦贝尔市| 运城市| 临潭县| 淅川县| 莎车县| 湘阴县| 澄城县| 汽车|