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

Microsoft windows powershell và SQL server 2005 SMO phần 4

11 224 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 471,91 KB

Nội dung

Microsoft Windows Power Shell SQL Server 2005 SMO – Phần Nguồn : quantrimang.com  The MAK Phần I Phần II loạt dẫn thiết lập Power Shell, SMO WMI cmdlet đơn giản Phần III dẫn viết mã PowerShell kết nối với SQL Server Phần giới thiệu cách sử dụng mã PowerShell để lặp nội dung tập tin kết nối tới máy chủ khác Hãy tưởng tượng muốn kết nối tới SQL Servers khác thu thập thông tin xác tên máy chủ, phiên tất tên sở liệu Bước Chúng ta cần tạo đoạn mã PowerShell hiển thị tất thông tin máy chủ Tạo connect2.ps1 minh họa [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] Hình 1.0 Bước Thực đoạn mã sau: [Hình 1.1] /connect2 "HOME" Chú ý: HOME tên máy chủ Hãy thay vào tên máy chủ bạn Kết 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: Database: Database: Database: Database: Database: Database: Database: Database: Database: Database: Sales2 Sales pubs Northwind msdb model master Legacy_Vixia abc3 abc2 abc Hình 1.1 Bước Hãy lặp qua tập tin hiển thị nội dung 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 } Hình 1.2 Serverlist.txt HOME HOME\SQLEXPRESS Hình 1.3 Hãy thực mã loop1.ps1 [Hình 1.4] /loop1 serverlist.txt Hình 1.4 Bước Bây kết hợp connect2.ps1 loop1.ps1 để thu tên SQL Server, phiên SQL Server tất tên sở liệu liệt kê serverlist.txt Tạo connect3.ps1 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] } Hình 1.5 Bước Hãy thực đoan mã sau đây: [Hình 1.6] /connect3 serverlist.txt Hình 1.6 Kết quả: 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 bạn tạo mã PowerShell thực giống nhau, sử dụng SQL Server SMO Bước Tạo mã connect4.ps1 PowerShell [Hình 1.7] param ( [string] $filename ) [reflection.assembly]::LoadWithPartialName("Microsoft.SqlSe rver.Smo") $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $computers = get-content $filename foreach ($computer in $computers) { 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 Thực mã connect4.ps1 tạo [Hình 1.8] /connect4 serverlist.txt Hình 1.8 Kết 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 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 tập tin kết nối tới máy chủ khác Phần giới thiệu cách làm tương tự sử dụng SQL Server SMO   [...].. .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   ... -" $Server = new-object ( "Microsoft. SqlServer.Management .Smo .Server" ) "$computer" write-host "Server Version: " $Server. Serverversion write-host "Server Name: " $Server. Information.VersionString... abc2 Database: abc Details of the Server : HOMESQLEXPRESS 11 Version: Microsoft SQL Server 2005 - 9.00.2 047 .00 (Intel X86) Servername: HOMESQLEXPRESS Database: XMLTest Database:... tạo mã PowerShell thực giống nhau, sử dụng SQL Server SMO Bước Tạo mã connect4.ps1 PowerShell [Hình 1.7] param ( [string] $filename ) [reflection.assembly]::LoadWithPartialName( "Microsoft. SqlSe

Ngày đăng: 03/12/2015, 08:59