首页 > 开发 > PowerShell > 正文

PowerShell脚本开发尝试登录SQL Server

2020-05-30 20:17:57
字体:
来源:转载
供稿:网友

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

具体详细的步骤请参见前几篇文章,创建PSSecurity程序集之后的目录结构和文件如下所示:

代码如下:
+D:/MY DOCUMENTS/WINDOWSPOWERSHELL/MODULES
└─PSSecurity
    │  PSSecurity.psm1
    │ 
    └─SQLServer
            Get-SqlSysLogin.ps1

在$Profile中添加:

代码如下:
Import-Module $env:PSSpace/PSSecurity  #用于在PowerShell启动时自动加载PSSecurity程序集

其中PSSecurity.psm1中的内容如下:

代码如下:
. $env:PSSpace/PSSecurity/SQLServer/Get-SqlSysLogin.ps1 #导入Get-SqlSysLogin函数
Write-Host "PSSecurity Module Added" -BackgroundColor green -ForegroundColor blue #用于提示此模块已加载
Export-ModuleMember -Function *  #用于将函数导出为模块成员

接下来就是Get-SqlSysLogin.ps1的内容了

代码如下:
 =====文件名:Get-SqlSysLogin.ps1=====
function Get-SqlSysLogin {

  Param(
    [Parameter(Mandatory = $true,
      Position = 0,
      ValueFromPipeLine= $true)]
    [Alias("PSComputerName","CN","MachineName","IP","IPAddress")]
    [string]$ComputerName,
    [parameter(Position = 1)]
    [string]$UserName,
    [parameter(Position = 2)]
    [string]$Password
  )
  Process {
    $Connection = New-Object System.Data.SQLClient.SQLConnection
    if($userName) {
      $Connection.ConnectionString = "Data Source=$ComputerName;Initial Catalog=Master;User Id=$userName;Password=$password;"
    } else {
      $Connection.ConnectionString = "server=$computerName;Initial Catalog=Master;trusted_connection=true;"
    }
    Try {
      $Connection.Open()
      $Command = New-Object System.Data.SQLClient.SQLCommand #创建SQLClient对象
      $Command.Connection = $Connection

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表