1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Microsoft Windows Power Shell và SQL Server 2005 SMO - Phần IV pdf

10 292 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Microsoft Windows Power Shell và SQL Server 2005 SMO - Phần IV
Trường học University of Information Technology
Chuyên ngành Information Technology
Thể loại bài viết
Năm xuất bản 2005
Thành phố Ho Chi Minh City
Định dạng
Số trang 10
Dung lượng 454,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phần III chỉ dẫn viết mã PowerShell và kết nối với SQL Server.. [Hình 1.0] param [string] $SQLSERVER $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnectio

Trang 1

Phần I và Phần II của loạt bài này đã chỉ dẫn các thiết lập Power Shell, SMO và WMI cmdlet đơn giản Phần III chỉ dẫn viết mã PowerShell và kết nối với SQL Server Phần 4 sẽ giới thiệu cách sử dụng mã PowerShell để lặp nội dung tập tin và kết nối tới các máy chủ khác

Hãy tưởng tượng rằng chúng ta muốn kết nối tới các SQL Servers khác nhau và thu thập thông tin chính xác như tên máy chủ, phiên bản và tất cả tên các cơ sở

dữ liệu

Bước 1

Chúng ta cần tạo một đoạn mã PowerShell hiển thị tất cả các thông tin trên đối với một máy chủ Tạo connect2.ps1 như minh họa dưới đây [Hình 1.0]

param (

[string] $SQLSERVER

)

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection

$SqlConnection.ConnectionString =

"Server=$SQLSERVER;Database=master;Integrated Security=True"

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand

$SqlCmd.CommandText = "select 'Servername:

'+@@servername as Result union Select 'Version:'+

@@version as Result union select 'Database:' +name from sysdatabases as

Result

order by Result desc "

$SqlCmd.Connection = $SqlConnection

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter

$SqlAdapter.SelectCommand = $SqlCmd

$DataSet = New-Object System.Data.DataSet

$SqlAdapter.Fill($DataSet)

$SqlConnection.Close()

$DataSet.Tables[0]

Trang 2

Hình 1.0

Bước 2

Thực hiện đoạn mã sau: [Hình 1.1]

./connect2 "HOME"

Chú ý: HOME là tên máy chủ Hãy thay vào đó tên máy chủ của bạn

Kết quả

Result

-

Version:Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)

Servername: HOME

Database: VixiaTrack

Database: vixiadata

Database: vixia

Database: TrackEquipment

Database: test

Database: tempdb

Database: Sales2

Database: Sales

Database: pubs

Database: Northwind

Database: msdb

Trang 3

Database: abc3

Database: abc2

Database: abc

Hình 1.1

Bước 3

Hãy lặp qua một tập tin và hiển thị ra nội dung của tập tin đó Tạo mã loop1.ps1 sau đây: [Hình 1.2] Đồng thời tạo tập tin serverlist.txt file [Hình 1.3]

param (

[string] $filename

)

$computers = get-content $filename

foreach ($computer in $computers)

{

write-host $computer

}

Trang 4

Hình 1.2

Serverlist.txt

HOME

HOME\SQLEXPRESS

Hình 1.3 Hãy thực hiện mã loop1.ps1 [Hình 1.4]

./loop1 serverlist.txt

Trang 5

Bước 4

Bây giờ hãy kết hợp connect2.ps1 và loop1.ps1 để thu được tên của SQL Server, phiên bản SQL Server và tất cả tên các cơ sở dữ liệu liệt kê trên serverlist.txt

Tạo connect3.ps1 như sau: [Hình 1.5]

param (

[string] $filename

)

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection

$computers = get-content $filename

foreach ($computer in $computers)

{

write-host "Details of the Server :" $computer

write-host " -"

$SqlConnection.ConnectionString =

"Server=$computer;Database=master;Integrated Security=True"

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand

$SqlCmd.CommandText = "select 'Servername: '+@@servername as Result union Select 'Version: '

+@@version as Result union select 'Database:' +name from sysdatabases as Result

order by Result desc "

$SqlCmd.Connection = $SqlConnection

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter

$SqlAdapter.SelectCommand = $SqlCmd

$DataSet = New-Object System.Data.DataSet

$SqlAdapter.Fill($DataSet)

$SqlConnection.Close()

$DataSet.Tables[0]

}

Trang 6

Hình 1.5

Bước 5

Hãy thực hiện đoan mã sau đây: [Hình 1.6]

./connect3 serverlist.txt

Hình 1.6

Trang 7

Details of the Server : HOME

-

19

Result

-

Version: Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)

Servername: HOME

Database: VixiaTrack

Database: vixiadata

Database: vixia

Database: TrackEquipment

Database: test

Database: tempdb

Database: Sales2

Database: Sales

Database: pubs

Database: Northwind

Database: msdb

Database: model

Database: master

Database: Legacy_Vixia

Database: abc3

Database: abc2

Database: abc

Details of the Server : HOME\SQLEXPRESS

-

11

Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)

Servername: HOME\SQLEXPRESS

Database: XMLTest

Database: VixiaTrack

Database: test

Database: tempdb

Database: msdb

Database: model

Database: master

Database: AdventureWorks

Database: admin

Bây giờ bạn hãy tạo một mã PowerShell thực hiện giống nhau, sử dụng SQL Server SMO

Bước 1

Tạo mã connect4.ps1 PowerShell [Hình 1.7]

param

(

[string] $filename

)

[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection

$computers = get-content $filename

foreach ($computer in $computers)

Trang 8

{

write-host "Details of the Server :" $computer

write-host " -"

$Server = new-object ("Microsoft.SqlServer.Management.Smo.Server")

"$computer"

write-host "Server Version: " $Server.Serverversion

write-host "Server Name: " $Server.Information.VersionString

foreach($database in $Server.databases)

{

write-host "Database:" $database.name

}

}

Hình 1.7

Bước 2

Thực hiện mã connect4.ps1 được tạo ra ở trên [Hình 1.8]

./connect4 serverlist.txt

Trang 9

Kết quả

PS C:\ps> /connect4 serverlist.txt

GAC Version Location

- - -

True v2.0.50727

C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SqlServer.Smo\9

Details of the Server : HOME

-

Server Version:

Server Name: 8.00.2039

Database: abc

Database: abc2

Database: abc3

Database: Legacy_Vixia

Database: master

Database: model

Database: msdb

Database: Northwind

Database: pubs

Database: Sales

Database: Sales2

Database: tempdb

Database: test

Database: TrackEquipment

Database: vixia

Database: vixiadata

Database: VixiaTrack

Details of the Server : HOME\SQLEXPRESS

-

Server Version:

Server Name: 9.00.2047.00

Database: admin

Database: AdventureWorks

Database: master

Database: model

Database: msdb

Database: tempdb

Database: test

Trang 10

Database: VixiaTrack

Database: XMLTest

Kết luận

Phần IV giới thiệu cách sử dụng mã PowerShell script để lặp qua nội dung của tập tin và kết nối tới các máy chủ khác nhau Phần này cũng giới thiệu cách làm tương tự sử dụng SQL Server SMO

 

Ngày đăng: 19/01/2014, 21:20

HÌNH ẢNH LIÊN QUAN

Hình 1.3   Hãy thực hiện mã loop1.ps1. [Hình 1.4] - Tài liệu Microsoft Windows Power Shell và SQL Server 2005 SMO - Phần IV pdf
Hình 1.3 Hãy thực hiện mã loop1.ps1. [Hình 1.4] (Trang 4)
Hình 1.8   Kết quả - Tài liệu Microsoft Windows Power Shell và SQL Server 2005 SMO - Phần IV pdf
Hình 1.8 Kết quả (Trang 9)

TỪ KHÓA LIÊN QUAN

w