Tải bản đầy đủ (.pdf) (10 trang)

Tài liệu Microsoft Windows PowerShell và SQL Server 2005 SMO – Phần 3 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (506.09 KB, 10 trang )

Microsoft Windows PowerShell và SQL Server 2005 SMO – Phần 3
Ngu
ồn : quantrimang.com 
The MA
K
Phần I và Phần II của loạt bài này đã chỉ dẫn các thiết lập PowerShell và SMO,
các cmdlet WMI đơn giản. Phần 3 này sẽ giới thiệu cách viết mã cho cmdlet
PowerShell và thực thi chúng. Mã kịch bản là yếu tố cần thiết cho các thao tác tự
động và lặp đi lặp lại.

Chính sách thực thi

4 loại chính sách thực thi khác nhau của Windows PowerShell là Restricted,
AllSigned, RemoteSigned và Unrestricted. Chúng ta sẽ tìm chính sách thực thi
của Windows PowerShell trên vùng làm việc. [Hình 1.0]
Cmdlet:
Get-executionpolicy
Kết quả:
Restricted

Hình 1.0
Giả sử ta có dòng code sau trên PowerShell script 'a.ps1'. [Hình 1.1]
Echo “test”

Hình 1.1
Nếu thử thực hiện mã lệnh khi chính sách thực thi của PowerShell là restricted,
thì sẽ xuất hiện thông báo lỗi sau. [Hình 1.2]

Lệnh thực hiện mã PowerShell
. /a.ps1
Kết quả


File C:\ps\a.ps1 cannot be loaded because the execution of
scripts is disabled
on this system. Please see "get-help about_signing" for
more details.
At line:1 char:3
+ ./a <<<<

Hình 1.2
Hãy thay đổi chính sách thực thi thành unrestricted. Lệnh thực hiện mã
PowerShell đã có thể được thi hành bởi cmdlet sau. [Hình 1.3]

Hình 1.3
Bây giờ hãy thử thực thi đoạn mã a.ps1 như hiển thị trong hình dưới đây. [Hình
1.4]

Lệnh
./a
Kết quả
Test

Hình 1.4
Điều khiển Input trong mã PowerShell

Khi thực hiện các thao tác lặp đi lặp lại, chúng ta thích ứng dụng để tương tác
hơn và xây dựng ứng dụng để đòi hỏi đầu vào từ người sử dụng. Ta có thể thực
hiện t
ương tự với PowerShell.
Hãy tạo một mã PowerShell chấp nhận tên của trường SQL Server và tên cơ sở
dữ liệu. Ngoài ra, hãy để PowerShell hiển thị tất cả các bảng trên cơ sở dữ liệu
đó. Điều này có thể được thực hiện với cmdlet read-host.


Thí dụ 1: [Hình 1.5]
Read-host “Please Enter Second Number”.

Hình 1.5
Thí dụ 2

Chúng ta có thể gán giá trị cmdlet là một biến số. [Hình 1.6]
$a=read-host "Please Enter Second Number" $a

Hình 1.6
Kết hợp thí dụ 1 và thí dụ 2 kết nối với SQL Server.

Tạo mã PowerShell có tên connectsql.ps1. [Hình 1.7]
$SQLSERVER=read-host "Enter SQL Server Name:"
$Database=read-host "Enter Database Name:"
$SqlConnection = New-Object
System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString =
"Server=$SQLSERVER;Database=$DATABASE;Integrated
Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "select name from sysobjects where
type='u'"
$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.7
Bây giờ hãy thực hiện mã connectsql.ps1 trên. [Hình 1.8]
./connectsql
Enter SQL Server Name:: HOME\SQLEXPRESS
Enter Database Name:: AdventureWorks
Chú ý
: HOME là máy chủ và SQLEXPRESS là tên ví dụ của SQL Server. Hãy
thay thế tên này bằng tên máy chủ và SQL Server của bạn. AdventureWorks là
tên cơ sở dữ liệu. Bạn cũng chú ý thay thế tên cơ sở dữ liệu này cho tương ứng
với tên cơ sở dữ liệu trên máy chủ.

×