• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >PowerShell > PowerShell连接SQL SERVER数据库进行操作的实现代码

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

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了powershell 远程连接,sql powershell,powershell server,powershell,windows powershell等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

核心代码

#配置信息
$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()
</div>

下面是来自微软的官方帮助文档: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("'","''")↵
</div>

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

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

$os = Get WmiInfo Win32_OperatingSystem↵
</div>

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

[assembly.reflection]::loadwithpartialname ('System.Data ') ↵
</div>

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

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

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

$conn.open () ↵

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

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

$cmd = New-Object System.Data.SqlClient.SqlCommand↵
$cmd.connection = $conn↵
</div>

这所有辛勤的工作。 它创建一个 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↵
</div>

现在我会执行查询,并关闭数据库连接:

$cmd.executenonquery()↵
$conn.close()↵
</div>

请确保您关闭该连接或你得打你一顿头的后面的数据库管理员。 您将看到对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()↵
</div>

</div>

您可能想查找下面的文章:

  • PowerShell连接SQL SERVER数据库进行操作的实现代码
  • powershell远程管理服务器磁盘空间的实现代码
  • Powershell小技巧之开启关闭远程连接
  • Powershell小技巧之非相同域或信任域也能远程
  • Powershell小技巧--远程对比服务配置
  • PowerShell远程安装MSI安装包、EXE可执行程序的方法

相关文章

  • PowerShell函数中接收管道参数实例
  • PowerShell中使用Test-Path命令检查文件或文件夹路径是否存在示例
  • PowerShell函数指定返回值类型实例
  • PowerShell中prompt函数的妙用
  • Windows Powershell 执行文件和脚本
  • 了解Powershell中的Exit函数
  • PowerShell单行注释、多行注释、块注释的方法
  • Windows PowerShell 微软官方解释
  • Windows Powershell 定义变量
  • Powershell实现监测服务器连通状态

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Powershell互斥参数使用实例
    • PowerShell实现在字符串中查找大写字母
    • PowerShell脚本trap语句捕获异常写法实例
    • PowerShell函数参数用星号隐藏的方法
    • 类似rpm包管理器的Windows Installer PowerShell Module简介
    • PowerShell设置文件只读、隐藏属性的方法
    • Powershell小技巧--将文件夹中的大文件分成若干份
    • Powershell生成Windows密码算法简单学习
    • PowerShell脚本开发之对指定IP进行端口扫描
    • PowerShell入门教程之PowerShell有什么用?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有