PowerShell连接SQL SERVER数据库进行操作的实现代码

核心代码

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

#创建连接对象
$SqlConn = New-Object System.Data.SqlClient.SqlConnection

#使用账号连接MSSQL
$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;user id=$UserName;pwd=$Password"

#或者以 windows 认证连接 MSSQL
#$SqlConn.ConnectionString = "Data Source=$Server;Initial Catalog=$Database;Integrated Security=SSPI;"

#打开数据库连接
$SqlConn.open()

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

#执行语句方法二
$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 

#关闭数据库连接
$SqlConn.close()

下面是来自微软的官方帮助文档:Windows PowerShell:使用 PowerShell 处理数据库

您可以使用一些 Windows PowerShell 代码来配置您的数据库,以存储您所需的信息。

Don Jones

数据库是数据存储之王。 那么为什么不利用这些数据库,如 SQL Server 存储一些可以使您的生活更轻松的管理信息的呢? 您可以存储服务器名称、 Windows 版本、 服务包级别、 最后一个管理员登录、 这种东西。
它是与 Windows PowerShell,都是很容易,因为您可以使用它来本机访问 Microsoft 基础数据库功能。NET 框架。 这现在看上去不太像 Windows PowerShell 脚本和更多像一个 C# 程序。 不过,您所需要的代码是很容易模板。 你可以带我来你这里与几个次要的改变它适应几乎任何情况。

用于 SQL 脚本

让我们假设您有一个名为 SYSINFO 的 SQL Server 2008 数据库。 数据库已命名服务器的表。 该表已五列: 服务器名称、 用户名、 LastLogon、 原因和 SPVersion。 这可以是大多是简单的文本列的 varchar 类型。
然而,使 LastLogon 日期时间列。 它现在使用 SQL Server 设置为其默认值的函数。 这样,每次添加新行,它将包含当前日期和时间,而不需要您手动指定。 使原因列 varchar(MAX),如有必要,它可以包含文本,很多。
创建登录脚本在组策略对象 (GPO),将 GPO 链接到您的服务器所在的组织单位 (OU)。 每次有人登录到服务器运行该脚本时。 使用 Windows PowerShell 脚本,您可以在任何装有 Windows PowerShell 2.0 的计算机上的东西。 您需要确保您已经从 Windows Server 2008 R2 (或 Windows 7 远程服务器管理工具包或寄宿) 来编辑该 GPO 时有基于 Windows PowerShell 登录脚本选项的 GPO 模板。
这里是您需要的脚本。 请注意我使用 ↵ 来指示应在此按 enter 键。 仅按 enter 键时你来该符号,如果您希望它能正常工作 (您可以将复制的 HTML 使用符号 & crarr ; 实体):

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

这两行提示有人为他们正在登录到服务器的原因 — — 这一点是相当重要的跟踪。 替换功能会将任何单引号替换使用两个单引号,确保我们稍后构建的 SQL 语句将正常工作。 这并不被为了故意 SQL 注入式攻击的防范。 毕竟,我们谈论受信任的管理员,正确吗?

此线将检索操作系统的信息:

$os = Get WmiInfo Win32_OperatingSystem↵

在这里重要的数据是服务器的名称和其当前的服务包版本。 您可能还需要 BuildNumber 属性,告诉您您正在处理的 Windows 版本。
此线加载的一部分。负责处理数据库的.NET 框架:

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

这些行创建新的数据库连接:

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

如果您不使用 SQL Server 2008,连接字符串可能会有点不同 (访问ConnectionStrings.com来查找各种不同的数据库的连接字符串示例):

$conn.open () ↵

现在该连接是打开并可供使用。

这两条线创建是我将使用 SQL 服务器发送查询的 SQL 命令。 我已经设置其连接属性设置为"打开",以便 Windows PowerShell 已实际发送命令的方式:

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

这所有辛勤的工作。 它创建一个 SQL"插入"查询到数据库表中插入新行。 请注意我使用 – f 格式设置运算符将四条信息插入到查询。 信息被插入 {x} 占位符,它提供如下操作员的逗号分隔列表中的顺序相同:

$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()↵

请确保您关闭该连接或你得打你一顿头的后面的数据库管理员。 您将看到对ConnectionStrings.com,您可以访问大量的数据库。
如果您使用 SQL Server 以外,你得改改"OleDb"对象名称"SqlClient"部分。 此外,它已不推荐使用基于文件的数据库访问像。 为之一,以获取驱动程序,你得要上安装,访问您的服务器,这将是一个可怕的想法。 另一种,这些数据库的性能达不到您将需要为此工作好的水平。

如果你没有可以承载数据库的 SQL Server 实例,获取一份快递版安装的地方。 这足够低的这种技术将可能产生的交通。
很明显,您可以修改此做相当多的技术。 可以将列添加到数据库,并让您的脚本收集其他信息。 您需要做的一件事是精通 SQL 语言本身。 您不需要的大师,但你要能够编写基本的查询。
如果您需要上 (在此级别工作的几乎相同每个主要的数据库平台) 的 SQL 语言入门,签出这视频系列创建行业标准 SQL 语言提供了完整的教程。 它还包括像 SQL Server、 Oracle、 MySQL 平台之间的主要差异,等等。
这里是整个脚本:

$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()↵
(0)

相关推荐

  • powershell玩转SQL SERVER所有版本的方法

    微软发布了最新的powershell for sql server 2016命令行客户端库.文章介绍了与之相关的实用方法. powershell,sql server,2016,功能包,客户端,下载 powershell玩sql server就是比powershell玩mysql强! 问:那么问题来了,强在哪? 答:微软给我们做好了powershell+sqlserver的[客户端]库. 问:那么问题来了,客户端库在哪?叫什么名?哪里下载? 答: 在 叫做[sql server 20xx 功能包

  • Powershell访问SQL Server数据库代码实例

    支持所有版本的SQLserver. 你是否需要连接数据库?这里有一段代码演示如何查询和获取SQL数据,只需非常简单正确的配置你的账户信息.服务器地址及SQL语句就行: 复制代码 代码如下: $Database                       = 'Name_Of_SQLDatabase' $Server                         = '192.168.100.200' $UserName                         = 'DatabaseUs

  • PowerShell脚本开发尝试登录SQL Server

    前三篇文章中创建了PSNet程序集,其中包含了对指定IP进行端口扫描,收发TCP消息包和收发UDP消息包的相关功能,作为这是最基本的对网络情况的最基本检测,后续的文章将会对此程序集进行不断的扩充使其包含更全面的功能.但是光有这些简单网络探测的功能还远远不够,为了能更全面的使用PowerShell针对网络安全进行检测,在本文中将会创建PSSecurity程序集用于存放相关通过PowerShell的脚本.参照前几篇文章中创建PSNet程序集的方法和目录结构创建PSSecurity程序集目录,便于后续

  • PowerShell连接SQL SERVER数据库进行操作的实现代码

    核心代码 #配置信息 $Database = 'DemoDB' $Server = '"WIN-AHAU9NO5R6U\DOG"' $UserName = 'kk' $Password = '123456' #创建连接对象 $SqlConn = New-Object System.Data.SqlClient.SqlConnection #使用账号连接MSSQL $SqlConn.ConnectionString = "Data Source=$Server;Initial

  • VS连接SQL server数据库及实现基本CRUD操作

    目录 连接数据库 使用dataGridView控件显示表中的数据. 实现基本CRUD操作 总结 连接数据库 打开vs,点击 视图,打开sql资源管理器,添加SQL Server 输入服务器名称,用户名,密码,进行连接. 如图,就可以看到vs已经连接到了自己的数据库,class和song两个数据库 .可以看到class下面有五个表. 查看其中一个SC表,数据显示正常,证明已连接. 使用dataGridView控件显示表中的数据. 在工具箱中找到dataGridView控件拖入Form1中,如图:

  • C#编程实现连接SQL SERVER数据库实例详解

    本文实例讲述了C#编程实现连接SQL SERVER数据库.分享给大家供大家参考,具体如下: 首先,在SQL SEVER里建立一个名为"Exercise"的数据库名,在该数据库下建立一张名为"lianxi"的表.好,现在开始写代码. 在FORM1里拖一个DATAGIRDVIEW用于显示表,在放一个BUTTON用于执行操作.加入命名空间 复制代码 代码如下: using system.data.sqlclient; private void button1_Click(

  • java连接mysql数据库 java连接sql server数据库

    在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql server数据库 一.mysql import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TestOne {

  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载pymssql模块,这样才能连接上sql server. 我安装的python版本是3.5 ,64位的,所以下载的pymssql模块是:pymssql-2.1.3-cp35-cp35m-win_amd64.whl 我把文件下载后放到E盘,安装pymssql模块: C:\Users\Administr

  • C#连接SQL Server数据库的实例讲解

    C#连接数据库:Connection对象 1.Connection对象概述 Connection对象是一个连接对象,主要功能是建立与物理数据库的连接.其主要包括4种访问数据库的对象类,也可称为数据提供程序,分别介绍如下. SQL Server数据提供程序,位于System.Data.SqlClient命名空间. ODBC数据提供程序,位于System.Data.Odbc命名空间. OLEDB数据提供程序,位于System.Data.OleDb命名空间. Oracle数据提供程序,位于System

  • vs code连接sql server数据库步骤及遇到的问题小结

    最近因为要在vs code上连接到sql server数据库,第一次尝试,之前用 java的时候使用jdbc连接过数据库,感觉用vs code连接数据库步骤要简单一些,网上写的博客也不是特别多,就顺便把我的步骤记录下来,仅供参考,这里也参考了官网给出的连接方法,链接放在文章下方了. 第一步,安装mssql扩展 先在vs code的扩展里面找到SQL Server(mssql)扩展,并下载安装即可. 下载好之后会出现SQL SERVER的版块.(请忽略已经连接好的数据库) 第二步,连接到 SQL

  • idea连接SQL Server数据库的详细图文教程

    目录 数据库配置 idea连接数据库 错误分析 总结 数据库配置 1.安装数据库:自行安装        我的SQL Server版本为2019 2.登录数据库,登陆方式有两种,连接数据库选择SQLServer身份验证 1.windows登录,直接登录 2.SQLServer登录,需要输入用户名和密码,默认用户名“sa” 3.查看是否为第二种身份验证方式,如果是不需要做任何修改 4.设置密码(这一步可以在安装数据库时就可以完成),如果觉得用户名有问题,也可以修改用户名 5.查看SQL Serve

  • Windows和Linux系统下perl连接SQL Server数据库的方法

    本文将提供一些perl连接Microsoft SQL Server数据库的实例.perl脚本运行在Windows和Linux平台. Windows平台 如果在Windows平台下运行perl脚本,建议使用依赖DBI的两个模块包,提供标准的数据库接口模块. DBD::ODBC DBD::ADO 使用DBD::ODBC 如果选用DBD::ODBC,下面的实例代码将展示如何连接到SQL Server数据库: 复制代码 代码如下: use DBI;   # DBD::ODBC   my $dsn = '

  • java连接SQL Server数据库的方法

    本文实例为大家分享了java连接SQL Server数据库的具体代码,供大家参考,具体内容如下 操作系统:windows 10 64位 java开发环境:MyEclipse 数据库:SQL Server 2012 JDBC驱动包 下载sqljdbc4.jar 导入到项目中 JAVA代码 package com.cl.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSt

随机推荐