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

Windows powershell 2 for dummies(tieng viet)

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 (3.66 MB, 370 trang )

2
C

C

l 11

Sức mạnh của ngôn ngữ kịch bản

11

Sự thay đổi từ Monad thành PowerShell

12

Một chút về Windows PowerShell 1.0

13

Phiên bản Windows PowerShell

ự h t tri n ti

theo

14

Cài đặt Windows PowerShell 2

15


Khởi động Command Shell của Windows PowerShell

15

Giao diện đồ họa

17

C

indow Power Shell t ch h

Shell (ISE)

T

19

C nhân hóa c ch nhìn và cảm nhận command shell.
Thê
à
c vào th gi i của bạn
Lấy k ch cỡ riêng cho cửa sổ của bạn
Hi n thị tiê đề của cửa sổ
Thay đổi thông tin của PowerShell
Tì hi c ch là việc của Windows PowerShell ISE.
Tùy chỉnh ISE
Thê chức n ng của riêng bạn vào en IS
Tạo Alias
Xóa alia

Truy cập alias drive.

19
19
20
21
22
24
25
26
27
29
30

Tạo alias cố định

30



31

C

hi u về tab mở rộng
3 Mộ

B t đầu là

ó


l nh Shell, Mộ

â

ức mạnh

việc v i Windows Power Shell.

33

Tạo kịch bản đầ tiên

34

C c bư c đ tạo 1 kịch bản đầ tiên

36



hi u từng phần kịch bản đầ tiên

37



hi

39


nhanh c c kịch bản hức tạ

Nghiên cứ N t và olt của kịch bản Co

li t

41
45

2


C

45
Cmdlets: The Little Commands That Could!

i

hi

C dlet

â hơn

45

tra ự tồn tại của c dlet


Giú bạn hi

45

45

hơn về cmdlets

46

One Shell to Rule Them All

49

Kịch bản Windows Shell

49

Windows Scripting Host

52

C
h


C

C


h bi n ố Chúng kh c nha rất nhiều
hi

c c loại dữ liệu

56
57

Giao ti p v i c c loại dữ liệu

59

X c định rõ ràng ki u dữ liệu

61

Đúc c c gi trị

64

Bi n Liên tục và i n chỉ đọc

67



hi u về bi n tự động

69




việc v i c c đối tư ng thông q a bi n

72

6 Mộ

77

ú

t ki m mộ

Vỡ lòng về logic

78

Rẽ nh nh bằng If/ Else

83

Sử dụng câ lệnh Switch

86

Lặ đi lặp lại hành động v i c c vòng lặp

86


Vòng lặp v i For

87

Sử dụng Foreach đ duyệt qua tập h p

88

Vòng lặp cho While

88

Chạy vòng lặp t nhất một lần v i Do While

89

Vòng lặp Do Until

90

Tr nh những cạm bẫy vòng lặp

91

(pipeline)
3


Sử dụng những Pipeline đ h


lý hóa những lệnh của bạn

90

Thực thi nhiều lệnh cùng nha

92

Thi t lậ đúng đầu ra

96

C

I


q en v i Windows Management Instrumentation (WMI)

100

Nghiên cứ về ki n trúc

102



MI

những tên dùng trong


MI

104

Bảo mật trong WMI

106

Những tương t c của Windows PowerShell v i WMI
Sử dụng cú h

SQL ở

hai th c ức

ạnh của

MI đ lấy

QL

MI

111

Truy vấn trạng th i dịch vụ


ki


107

113

c c bản ghi ự kiện

Thay đổi những mức chứng thực WMI
Thi t lậ ngư i sử dụng bằng I er onation

115

Using the New WMI Cmdlets
Making things happen with Invoke-WMIMethod

C

Xóa những đối tư ng đang ử dụng Remove-WmiObject

119

Cài đặt những thuộc t nh

121

9 Đ

MI ử dụng Set-WmiInstance
light


C i nhìn đầ tiên về chuỗi

122

Phân biệt giữa e

122

ty và n ll tring

Tạo chuỗi chữ

123

Đơn giản hóa bằng c ch ử dụng Here-Strings

123

Thực hiện phẫu thuật chuỗi

125

K t h p chuỗi
K th

125

c c ch ỗi v i nonstrings

125

4




T ch ch ỗi

126

C t bỏ 1 phần của chuỗi

127

Thực hiện thay th chuỗi

129

việc v i vị tr ch ỗi

129

Thay đổi trư ng của chuỗi

130

Using Regular Expression

131

Tạo Regex đơn giản sử dụng c c ký tự chữ


132

Thực hiện tì

134

ki

động sử dụng c c bộ ký tự

Sử dụng sửa đổi đ x c định tùy chọn hoặc lặ đi lặp lại trình tự 135

C

Sử dụng neo đ d y trì vị tr

138

Đ n v i lựa chọn thay th

139

Sử dụng Regex trong Windows PowerShell

139

0 T

ẽ nhận 100usd


Đưa dữ liệu loại số

141

C c ki u dữ liệu trọn vẹn

141

Thi t lậ ch nh x c bằng c ch ử dụng ki u dữ liệu onintegral 142


1 ố hé to n

143

Phé cộng

143

Giả

gi trị v i hé trừ

145

Mở rộng thông q a c c hé nhân
Giả



146

thông q a hé chia

146

tròn gi trị

147

Tạo số ngẫ nhiên

148

Chuy n đổi số

149

Tràn Dữ Liệu

149

C

N ó


ữ li u bằ

á


ử dụng m

ă

hi u về mảng

151

Tạo và ử dụng mảng

152
5


Tạo mảng

152

Truy cậ c c hần tử của mảng

153

Vòng lặp qua mảng

154

Thay đổi k ch thư c của mảng

156


Tạo mảng đa chiều

157



ki



việc v i bảng Hash

160

Tạo và ử dụng bảng Hash

160

Sửa đổi c c bảng Hash

162

Bản chất bảng Hash

162

Vòng lặ thông q a bảng Hash

163


C

hương thức sử dụng kh c cho

ảng

158

Đ
Having Some Fun with the File System

166

Di chuy n xung quanh hệ thống tập tin

166

Quản l thư

166

ục

C c thao t c tập tin trong hệ thống tập tin

169

Đọc tậ tin v n bản


169

Writing Files

171

Working with XML

174


C

Đọc và vi t c c tập tin XML

174

Giữ c c đối tư ng trong tập tin XML

177

việc v i HTML

180

3 T


việc v i ngày trong


indow Power hell

185

Thi t lậ ngày và th i gian theo một định dạng cụ th

185

Tạo ngày theo c ch của riêng bạn

188
6


Thực hiện c c t nh to n về ngày



188

T nh to n th i gian kh c nha

188

Nhìn vào tương lai

189

Ki m tra th i gian mặc dù là ti t kiệm th i gian ban ngày


191

việc v i

192

úi gi

Chuẩn hóa v i th i gian quốc t

192

Sử dụng l p TimeZone

193

C

ử ụ
T i ử dụng

á

ã trong hà

Tạo ra hà

195

đầ tiên của bạn


X c định c c tha

196



197

Gi trị Trả về

198

Phạm vi sử dụng


hi

201

c c q y t c về phạm vi

201

Tên trùng nha
C c q y định hà

203
trong hạm vi toàn cục


205

Tạo cmdlets nâng cao của riêng bạn


nâng cao

206

X c định c c th ộc t nh

208

X c định c c tha



209

X c định c c hương thức

212

Thực thi hà

214


C


hi u về cơ cấ hà

206

nâng cao

hi u chức n ng của c c hà
N

nâng cao
C ạ


7


Sử dụng công việc chạy nền

215

ch hoạt WINRM

216

B t đầ 1 công việc

217

Lấy k t quả


218

trình đ i của một job

Q

220

Định gi i hạn 1 job
Đưa

C

222

ột job ngưng hẳn lại

223

Chạy lệnh điều khi n từ xa

224

Sử dụng Windows PowerShell mọi nơi

225

Lấy những thứ bạn cần cho remote commands

225


K t nối PowerShell v i 1

226

y t nh kh c

Gọi lệnh từ xa

227

Tạo một k t nối liên tục

228

Chạy công việc chạy nền từ xa

230

Hi u về ch nh

232

ch, hiện trạng, quyền ư tiên

6 Tạ






á

Thấy đư c tầm quan trọng của Internationalizing Scripts

233

Script của bạn trên

ỗi ngôn ngữ kh c nha

234

Sử dụng t nh n ng

i internationalization

236



hi u về nền v n hóa

237

Putting it all together

238

Chia sẻ kịch bản v i những ngư i kh c


243
8


C

N ữ




ra những nơi

à lỗi xuất hiện

244

Bảo vệ chống lại đầ vào không


ra

ong

ốn.

244

ột lỗi logic không ch nh x c


245

Lỗi hệ thống

246



hi

về chương trình bẫy lỗi

246



việc v i hệ thống bảo vệ của bạn

250



việc v i công cụ bẫy lỗi

253



253


việc v i đi

Thi t lậ đi

dừng

dừng

256

Câ lệnh gỡ lỗi
Lấy danh

ch tất cả c c đi

dừng

258

Vô hiệ hóa và k ch hoạt đi

dừng

258

Xóa đi

C


257

dừng

259

N m vụ i u khi n: Vậ
Theo dõi không gian ổ đĩa

ộ h th ng
260

Quản lý Dịch vụ trong Windows

267

Điề khi n dịch vụ

269

Cấ hình dịch vụ
i

tra vent Log

Tr y vấn ventLog
C

9


272

ử dụng

273
MI

275

ủ windows registry

Gi i thiệu về cây regi try

278
9


K t nối t i windows registry

280

Duyệt registry sử dụng Powershell

280

Sử dụng Micro oft win3 Regi try ey đ truy cập Registry

283

Đọc key và val e


284

Ghi key và val e

286

Ghi key và val e ử dụng PSDrive

286

Ghi registry value sử dụng Microsoft.win32.RegistryKey

287

Đổi tên và xóa regi try ey và val e

288

Đổi tên và xóa regi try key và val e
Sử dụng Micro oft
C

289

in3 Regi try ey đ xóa regi try key values 289

0 N
Gi i thiệ


ử dụng PSDrive

D
ơ bộ về Active Directory Primer

291

K t nối t i Active Directory

292

Truy vấn c c đối tư ng và th ộc t nh

293

Tạo LDAP filter

295

Dyna ically obtaining a

er’ di ting i hedNa e

301

Sửa đổi thuộc t nh đối tư ng

302

Cập nhật thành viên nhó


303



304

ra đối tư ng Raw ADSI sử dụng psbase

C
Những đặc t nh An toàn PowerShell
Loại bỏ kẽ hở thư

307

ục hiện tại

307

Stopping the double-click blues

308

Bảo vệ thông q a xec tionPolicy

308

Tạo một chứng chỉ chữ ký điện tử

310


Tạo ra một chứng chỉ chữ ký riêng

310
10


Việc đòi hỏi một chứng chỉ từ tổ chức CA

314

Việc duyệt kho chứng chỉ

316

ý tên c c kịch bản của bạn

317

Quản lý Tư ng lửa Windows

322

Định nghĩa globally open ports (cổng mở toàn cầu)
Danh

ch dịch vụ tư ng lửa

325


Cho hé những ứng dụng đi q a
C

C

ổi

ó

á

ch b

327
ũ,

ê

á

ch b n m i

Chuy n đổi một kịch bản Windows Shell sang Windows PowerShell 330
In ra

àn hình

330

Sử dụng những lệnh có điều kiện


331

Sử dụng lệnh For

333

Chuy n đổi kịch bản WindowsHost Scripting sang Windows PS
Cơ ở o

nh

338
338



việc v i đối tư ng COM

339



hi u sự kh c nha giữa CreateObject và GetObject

342

Xử lý vào/ra

344




346

việc v i ActiveX Data Object (ADO)

Tận dụng ADO N T vào l i th của bạn

C

3

m

á

347

ạng

Cài đặt và q ản trị mạng của bạn




356

q en v i Win32_NetworkAdapterConfiguration


357

Thi t lập lại TCP/IP

360

Thao t c thi t lập TCP/IP

361

Quản lý

364

indow’ Firewall

q en v i Windows Firewall COMmander
nabling và di abling

indow Firewall
11

365
367


Lấy thuộc t nh vi ible

368


Danh

368

ch c c q yền ứng dụng

Lấy danh

ch tất cả c c cổng mở globall

Sử dụng nút re et
C

Q

370

ý p ần cứng

Phần cứng của bạn


371

hi u xem bạn có những phần cứng nào

Ki m tra trạng th i hần cứng
Điều khi n

y in


Thi t lậ

385

y in trên

Ng t k t nối chia sẻ

y in trên

ạng

y in

Giữ một m t trên hàng đ i của
á

ạng

ặc định

Ki m tra trạng th i

Tạ

372
384

y in của bạn


K t nối đ chia sẻ

C

369

388
y in

390

á

Sử dụng Built-In Reporting Cmdlets

392

Tạo b o c o

393

Tùy chỉnh đầu ra dạng bảng v i Format-Table

393

Thi t lậ độ rộng cho cột

394


Chuẩn bị dữ liệu cho c c công cụ b o c o kh c

397

Tạo bảng dữ liệu của bạn

398



b o c o đẹp m t

401

Sử dụng công cụ b o c o tr ng gian

406

7: The Part of Tens
C

6

C

Sử dụng get – hel đ tr giú

407
12





q en v i c c đối tư ng bằng c ch ử dụng get –member

408

Sử dụng set – location đ di chuy n

408

Đọc tậ tin v n bản v i get – content

408

Vi t vào tập tin bằng c ch ử dụng out – file

409

Leveraging

409

MI (công cụ quả trị windows)

Sử dụng new – object đ tạo c c đối tư ng m i

410

Chọn lựa đối tư ng v i select – object


410

T i bộ ư tập v i v i foreach-Object

411

Sử dụng where – object đ ki

411

C



o t đư ng dẫn
ử ụ

hông cho hé c c kịch bản thực thi

413

Sử dụng dấu phẩy v i tham số khi gọi một hà

414

hông x c định chức n ng trư c khi sử dụng

416


Xử lý đư ng dẫn dữ liệu sang dạng chuỗi

417

Q ên ch y n bi n thành dạng chuỗi

419

Sử dụng to n tử o

420

nh không đúng

Cố g ng đ thực hiện q

nhiều lệnh trong một đư ng dẫn lệnh

Q ên Lĩnh vực về Bi n

423
423

hông Sử dụng Debugger (gỡ lỗi)

425

hông ử dụng l p. NET Khi Available.

425


13


Phần 1: T

ower Shell 2

C

CƠ BẢN VỀ

INDO

O

ER

N




Tôi là

Sự ra đ i và h t tri n của windows powershell
Cài đặt windows powershell 2
Tương t c v i giao diện dòng lệnh của windows powershell
Sử dụng ISE (Integrated Scripting Environment)
ột ngư i thực sự lư i bi ng bẩm sinh Tôi không lư i bi ng trong ý nghĩa


à tôi th ch ngồi và không là

gì cả ngày, nhưng đúng hơn là tôi ghét là

lặ lại nhiề lần. Bất cứ khi nào tôi cảm thấy bản thân
ch n, điều đầ tiên xuất hiện trong tâ
này!" M y t nh là con ngựa là
kh c và không bao gi

ình là

điề gì đó rất nhà

tr " phải có một c ch đ tự động hóa điều

việc tuyệt v i. Chúng có th chạy ngày này q a ngày

hàn nàn.

Trong sự lư i bi ng vô hạn của tôi, tôi đang liên tục tạo ra c ch là


việc ch

như vi t cuốn

những việc

chỉ hơn đ tôi có th có th i gian đ là


cho

y t nh

những việc quan trọng hơn. . .

ch này cho bạn.

Cho dù bạn đang tạo m i hoàn toàn cho kịch bản hay thực hiện một số mức độ
cấ thông tin tự động trong q

khứ bằng c ch sử dụng ngôn ngữ kịch bản kh c, bạn

sẽ thực sự yê th ch Windows PowerShell. Nó c ng cấp cho ngư i dùng
một vỏ thực sự cung cấp điện cùng

ột hệ thống Windows

à chỉ ngư i trong cộng

đồng Unix / Linux th ch trư c đó Micro oft đã bỏ ra nhiề n
Windows dễ dàng hơn đ sử dụng, và trong q

trình là

indow

và cố g ng đ là


như vậy đã thực hiện một số

điều kh bực bội cho ngư i sử dụng. (Hãy nh rằng khi Microsoft đã cố g ng đ buộc
bạn phải sử dụng wiz-ARDS) Windows PowerShell là tậ h
bi t những gì họ muốn và không

l n c c ngư i sử dụng

ốn hải ngồi cả ngày dài bấ

đ hoản thành công việc.
14

vào c c hộp thoại


I.
Sức mạnh củ
ữ k ch b n.
indow Shell đư c bi t như là trang lệnh hay dấu nh c DOS đ tương t c v i
windows tại giao diện dòng lệnh. Bạn có th tự động hóa nhiề t nh n ng của Windows
từ trang lệnh sử dụng c c lệnh sẵn có c c ứng dụng dòng lệnh kh c và c c ch ỗi đ tạo
thành c c kịch bản Windows Shell( hoặc c c file batch như trong DOS) N u bạn muốn
một bit điều khi n, bạn có th sử dụng indow Scri ting Ho t ( SH) và a đó ử
dụng V Scri t or J cri t đ tự động hóa c c công việc của bạn Câ hỏi hi n nhiên đư c
đặt ra đó là “Tại sao lại thê vào indow PowerShell ự k t h này” Liệu bạn không
th hoàn thành ọi thứ bạn cần là n u chỉ sử dụng c c hương thức sẵn có hay không?
Ch c ch n mọi thứ bạn cần là trong window thì đề có th đư c là bởi
indow Shell or SH cri t Tôi đã ử dụng nó trong nhiề n
à không có vấn đề

gì? Và lần đầ tiên tôi nghe thấy thì indow PowerShell đã đư c h t tri n 1 vài n
trư c (khi à nó vẫn còn đư c gọi v i tên là Monad) Tôi tin rằng đây là ột c ch
i
mẻ và thú vị đ là
ọi thứ.
 S
y đổi từ
.
indow PowerShell đư c thi t k bởi Jeffrey P Snover vào th ng 8 n
v i tên là Monad Nó đư c lấy từ tên Monad Manife to nó đư c thi t k như là nền tảng
ch ng dành cho ự tự động c c công việc quản trị Nó đã đư c thử nghiệ và ki m
chứng trong Unix.
Trong command shell, bạn thực hiện một hành động à ình uốn bằng việc thao
t c v i k t quả là đoạn text phi cấ trúc của một lệnh trư c đó đ đạt đư c k t quả hoặc
sử dụng lệnh kh c Trong ột co
and hell thông thư ng của indow như v dụ, bạn
có th sử dụng tuần tự lệnh a đ tì ra k t quả n như ing www.whitehouse.gov sẽ
trả về c c re ly nào đó
ing www whiteho e gov | find “Re ly”
Trong v dụ, bạn có th truyền k t quả của lệnh ping www.whitehouse.gov sang
cho lệnh find bởi bạn muốn lọc dòng k t quả chứa từ “Re ly”
i đư c hi n thị. Monad
giả quy t c c hạn ch trong hương thức truyền thống bằng c ch đặt ra hư ng ti cân
m i cho việc tạo c c dòng lệnh bằng c ch trong kh ôn khổ >N T và ô hình đối tư ng
của nó Monad là đư c điề này bằng c ch định nghĩa ột ô hình tự động nơi à c c
lệnh gọi là c dlet (hay c c co
and-let) có th truyền dữ liệu cho lệnh kh c như là c c
đối tư ng có cấ trúc chứ không hải là c c đoạn v n bản lỏng lẻo.
Mục đ ch của tôi không chỉ cho bạn bi t về lịch sử của Windows PowerShell à
giú bạn hi rõ lý do c ch thức à indow Power Shell thực hiện . Khi bạn sử dụng

Windows PowerShell, bạn phải chú ý như v dụ cú h lệnh có th tương tự Unix.
Điề này không hải sự trùng h
à dựa trên ngôn ngữ của c c hell trong Unix đây
không hải sự ngẫ nhiên à là ự thừa hưởng từ ngôn ngữ ô hỏng Unix mạnh mẽ và
N T PowerShell là ột trong những ngôn ngữ kịch bản dễ sử dụng và rất trực quan.
15


N u bạn muốn đọc về Monad Manife to khi nó x ất hiện vào n
bạn có th
xe
trên
blog
của
đội
h t
tri n
Windows
PowerShell
( /> M
Windows PowerShell 1.0
Windows PowerShell mang lại sự tương t c tốt nhất giữa indow Shell và ức
mạnh của c c SH cri t Nó tạo nên ôi trư ng dòng lệnh hong hú ạnh mẽ à
bạn có th chạy c c lệnh PowerShell m i gọi là C dlet Chúng là c c lệnh dựa trên l p
N T à giú bạn dùng c c kịch bản ở mức linh hoạt hơn trong khi vẫn cho hé bạn
truy cập ở l p thấ hơn là giao diện chương trình ứng dụng (APIs_Application
Progra
ing Interface ) thông q a c c wra er N T
Windows PowerShell 1 là hiên bản đầy đủ đầ tiên của Windows PowerShell,
và nó cần nhiề thành hần khóa đ có th sử dụng nó h t tri n chậm do một số lý do

Nó không đư c xây dựng s n trên c c hệ điề hành indow vì th à
c c nhà q ản trị n u muốn sử dụng nó phải bỏ thê th i gian tiềm hi u , triền khai
PowerShell.
C c nhà q ản trị đã ki m chứng c c ngôn ngữ kịch bản đang hiện có và
đã không cảm thấy sự cần thi t cho đ sử dụng một shell m i đ hoàn thành c c
công việc tương tự nhau.
Như là ột sản phẩm m i, phải mất một khoảng th i gian đủ đ b t đầu
sử dụng nó trư c khi trở nên thành thạo v i Windows PowerShell.
C c nhà h t tri n của Micro oft đã b t đầu thảo luận về thuận l i của
indow PowerShell 1 và chẳng bao lâ đã t ng ra c c ản phẩ như Micro ofe
xchange
7 và Sy te Center O eration Manager (SCOM còn gọi là MOM)
Sa đó PowerShell 1 đã đư c h t hành v i indow Server
8 Chúng ta ẽ
thấy rất thú vị về điề này bởi nó đã bi n indow PowerShell thành chủ đạo.
II.
ê
n Windows PowerShell 2.0
Mặc cho sự h t tri n chậm của Windows PowerShell 1, Một sự h t tri n
Windows PowerShell của cộng đổng nổi lên và đặt nó từng bư c theo kịp th i đại C c
nhà h t tri n Windows PowerShell của Micro oft đã đưa ra nhiều phản hồi và chỉ tr ch
đ n c c sản phẩ đó và hứa hẹn sẽ sản xuất một sản phẩm m i xứng đ ng hơn đó là
Windows PowerShell 2.0.
Điề gì
i trong indow PowerShell
à là cho nó trở nên đặc biệt Đây là
một số t nh n ng
i trong Windows PowerShell:
PowerShell t
(Chương 15)


lệnh ở ch độ nền

xa Cho hé thực thi c dlet và c c kịch bản từ xa.

c ch ộ n n: sự cải ti n này cho hé bạn chạy c c
à vẫn có th ti p tục là việc v i những thứ kh c (chương 15)
16



p cao c c lệnh c dlet đư c vi t bởi C# và V N T
có th vi t c c lệnh cmdlet giả sử dụng windows PowerShell.
chia sẻ.

N

ạn

ữ dữ li u có th chia nhỏ c c đoạn code từ dữ liệ đ dễ dàng

Sự k t n i b n c c kịch bản có th
dàng thực thi.

hù h p v i nhiề ngôn ngữ đ dễ

Debug k ch b n: debug thực sự. Bạn có th thi t lậ c c đi m dừng
trong c c kịch bản vì th bạn có th chia nửa q trình thực thi đ tì xe ch yện
gì đang diễn ra trong kịch bản Chương 17
Một s p ép á

á
n tự ộng m i: Một số hé to n

có th dễ dàng t ch và nối c c chuỗi và c c bi n tự động trong việc truy cậ thông
tin về ngôn ngữ cho giao diện ngư i dùng Chương 5
-

Bổ

á

nh cmdlet m i: hầu h t đ hỗ tr t nh n ng trư c

R
ộ á
p : cung cấp chức n ng đ ràng b ộc c c lệnh
và kịch bản Windows PowerShell có th chạy trong một runspace.
Runspace pools là ột trong những c ch đ quản lý ự thực thi lệnh
bằng nhó c c r n ace cùng nha
một số t nh n ng
một lúc

í
p k ch b n ISE: Một hiên bản đồ họa có thê
i như nhiề kh ng tab đ là việc v i nhiều kịch bản cùng

Xem k t qu
i dạ
dạng bảng nơi à bạn có th s p x


i: Bạn có th tạo ra k t quả của lệnh v i
tì ki và nhó c c k t quả.


I
i trong PowerShell: N u bạn là ột nhà lậ trình viên
bạn có th sử dụng t nh n ng
i này đ truy xuất trực ti p trong PowerShell sử
dụng c c API
Một s c i ti n nhỏ
á nh sẵ ó
bi n đư c thê vào cho c c lệnh sẵn có đ t ng c c chức n ng
III.

C

: Một số

t Windows PowerShell 2

indow PowerShell là ột sự thay th cho indow PowerShell 1 vì vậy
chúng không th tồn tại ch ng trong cùng 1 hệ thống
indow PowerShell có th
đư c cài đặt trên cả nền hệ thống x86 và x64 c ả Windows XP with SP3, Windows
Server 2003 with SP2, Windows Vista v i SP1, Window Server
8 và indow 7
4

bư c đ cài indow PowerShell
a. Download và cài đặt Microsoft .NET Framework 2.0

17


b.

c.

d.

Download và cài đặt Microsoft .NET Framework 3.5.1.
i.

cầ cho IS ( ôi trư ng t ch h p kịch bản) và O t-GridView
Download và cài đặt WinRM 2.0 CTP3.
i.
Thuận
l i cho c c t nh n ng điều khi n từ xa và ch độ nền.
Download và cài đặt Windows PowerShell 2.
5 Kh

ộng Command Shell của Windows PowerShell 2

Gọi một c ch đơn giản
trang soạn thảo lệnh b ng c ch

indow PowerShell

là PSH Ta có th khởi động

Start➪All Programs➪Windows PowerShell V2➪Windows PowerShell V2.

Khi bạn dùng
indow Vi ta bạn cần clik chuộ phải và chạy ở quyền
Ad ini trator Hay không cần clik chuột phải khi bạn đã có q yền Administrator
Khi Windows PowerShell 2 khởi động thì trang soạn thảo lệnh đư c mở Nó
giống hell dòng lệnh của c c hiên bản indow cũ ngoại trừ theo mặc định nền là
à xanh và dấu nh c đư c đặt ở đầu bởi PS. Bạn có th chạy 1 vài lệnh DOS (như
DIR và CD) Có th thực thi c c ứng dụng dòng lệnh sẵn có như XCOPY X
PSH thực thi c c ứng dụng dòng lệnh thông thư ng nhưng c c lệnh CD và DIR
là c c alia cho lệnh cmdlet m i Đây ch nh là ng yên nhân tại sao k t quả của DIR
trông như ột bit kh c ạn không th sử dụng lựa chọn cũ như DIR / v i DIR. Bởi
vì v i lệnh c dlet thì DIR đư c map sử dụng c c bi n kh c nha

18


6 Giao di

ồh av

i sử dụng. ISE

indow PowerShell Integrated Shell nviron ent (IS ) là ch độ đồ họa giú
bạn giao ti p dễ dàng v i PSH.
Start➪All Programs➪Windows PowerShell v2➪Windows
PowerShell ISE.

IS có giao diện đẹp m t:
Cửa sổ Scri t/ ditor Đây là nơi
bản PSH của bạn.
-


à bạn có th xe

và chỉnh sửa kịch

Cửa sổ O t t nơi hi n thị k t quả của c c lệnh hoặc c c kịch bản

Cửa sổ Co
lệnh bình thư ng.

and Có th nhập c c lệnh như là

ột trang soạn thảo

Bạn có th tạo c c kịch bản PSH khi chọn File➪New đ hi n thị cửa sổ soạn thảo
và cửa sổ hi n thị k t quả. N u bạn đang là việc trên nhiều kịch bản, một giao diện
đư c hi n thị bạn có th dễ dàng ch y n qua lại giữa c c cri t
ta

Bạn d dàng chay 1 cri t dang ở dơn giản bằng c ch nhấn vào nút RUN (Hình
gi c trỏ sang phải ) trên thanh công cụ Trên thanh công cụ có đầy đủ c c t nh n ng
19


soan thảo tiê ch ẩn , t nh n ng là nổi bật cú h là là cho chỉnh ửa script của bạn
ột chút dễ dàng thấy hơn Phần tốt nhất là trình gỡ lỗi có th dễ dàng ti cận từ en
Deb g ( ao gồ c c kh i niệ gỡ lỗi trong ch yên â trong chương 17 ) IS là ột
công cụ t yệt v i cho c c v n bản chạy và gỡ lỗi c c kịch bản của bạn trong ột ôi
trư ng dễ ử dụng Hãy y nghĩ về nó như ột Vi al St dio th nhỏ cho indow
PowerShell Mặc dù cửa ổ IS Scripts đư c thi t k chủ y đ vi t và chỉnh ửa

Scripts
ột trình oạn thảo v n bản th ần túy vì vậy bạn có th ử dụng nó đ ở hoặc
tạo
ra
c c
v n
bản
đơn
giản

c c tậ tin và c c tậ tin XML

20


CHƯƠNG

TH O TÁC VÀ ỆNH TẮT TRONG

ÔI TRƯỜNG

N
 Tì hi u về lệnh PSH
 Thay đổi profile của PowerShell
 Thao t c v i ôi trư ng t ch h p kịch bản (ISE) của Windows
PowerShell.
 Là việc v i c c Alia e
 Tì hi u về t nh n ng ở rộng Tab
Tôi th ch xe


mọi ngư i trong khi họ là

việc trư c

y t nh Tôi thấy nó hấp dẫn.

Hãy gọi tôi là kh c ngư i nhưng là đ xem c c c ch kh c nha mọi ngư i chọn đ tương
t c

v i

y

V dụ tôi sử dụng nó là
c c h

t t bàn h

bàn h

của

họ.

việc v i một quản trị viên Windows ngư i hi m khi sử dụng

Ctrl + C và Ctrl + V đ

sử dụng hương h
cũng sử dụng đ là


t nh

ao ché và d n c c mục. Ông l ôn l ôn

ao ché và d n bởi vì ông cảm thấy ông ki
việc v i một ngư i đã cố g ng là

o t nhiề hơn. Tôi

tất cả mọi thứ bằng c ch ử dụng

bất cứ khi nào có th và tr nh xa con chuột như th nó là bệnh dịch. Bất cứ điều

gì hương h

bạn sử dụng đề tốt - sau cùng, nó l ôn l ôn tốt nhất đ tổ chức công

việc

của

bạn

Tôi nghĩ rằng trư c khi b t đầu là
nó hữ

hiệu

quả


việc v i Windows PowerShell, bạn có th tì

ch đ bi t c ch kh c nha đ tùy chỉnh

I. Cá

â ó á
 T
 T
 T

bạn thú vị?





í
ê

m nhận của command shell.

c cửa sổ
cửa sổ
21

thấy

ôi trư ng tốt nhất hù h p v i phong


c ch của bạn. Tôi cho bạn thấy kỹ thuật kh c nhau ti t kiệm th i gian, giú bạn là
nhanh hơn. Điề này là

nhất.

việc





ê

Bạn có th dễ dàng thay đổi à nền và à hông chữ hù h p v i sở
th ch của bạn V dụ có th thay đổi à nền là à đỏ thẫ và hông chữ nền là
xanh bằng việc gõ lệnh sau ở dấu nh c lệnh PSH.
$Ho t UI RawUI ackgro ndColor= “ agenta”
$Host.UI.RawUI Foregro ndColor= “bl e”
$Ho t là ột bi n đặc biệt tham chi
à

h p
cho
thuộc
t nh
UI.RawUI.ForegroundColor của đối tư ng.

đ n đối tư ng hiện hành ạn g n
UI RawUI ackgro ndColor





L y
í

ỡ ê

ửa sổ của bạn

Đối tư ng $Host.UI.RawUI rất hữ ch ạn có th truy vấn hoặc thao t c
v i c c th ộc t nh hụ q a đối tư ng này đ t c động t i sự xuất hiện h điều
khi n ngoài à hông nền và à nền Có th thay đổi k ch thư c cửa sổ k ch
thư c vùng đệ và thậ ch thay đổi tiê đề của cửa sổ.
ch thư c vùng đệ là chiều rộng và chiều cao của cửa sổ còn lại trong bộ
nh nơi à ẽ ẩn khi k ch thư c cửa sổ là ột phần của bộ đệ Vì điề này à
k ch thư c cửa sổ phải nhỏ hơn k ch thư c vùng đệm. Chiều cao của vùng đệm rất
quan trọng vì về bản chất thì nó điều khi n thanh cuốn của cửa sổ khi chạy nhiều
lệnh. Chiề cao vùng đệm mặc định là 3
tức là vùng đệ có th giữ lên t i
3
dòng của k t quả xuất ra trư c khi nó b t đầu hủy bỏ c c đầu nhậ cũ
Bạn thay đổi k ch thư c cửa sổ hay vùng đệm bằng việc thay đổi gi trị của
thuộc t nh fferSize hoặc WindowSize của $Host.UI.RawUI. N u muốn bi t gi
trị hiện tại, chạy c c lệnh PSH
$Host.UI.RawUI.BufferSize
$Host.UI.RawUI.WindowSize
K t quả của hai lệnh này là hi n thị chiều rộng và chiều cao theo dạng bảng.
ây gi bạn có th tạm th i thay đổi k ch thư c cửa sổ:

$Host.UI.RawUI.WindowSize.Width = 110
$Host.UI.RawUI.WindowSize.Height = 40
Mặc dù PSH không giải th ch k ch thư c cửa sổ không thay đổi và n u bạn
truy vấn lại gi trị của WindowSize, bạn có th tì thấy gi trị cũ Theo c ch này
ta g n trực ti p một gi trị m i cho thuộc t nh đó ởi vì indowSize là ột đối
22


tư ng nên cần tạo một đối tư ng ki đó và thi t lập thuộc t nh độ rộng và chiều
cao a đó g n gi trị m i này cho indowSize.
$size = $Host.UI.RawUI.WindowSize
$size.Width = 100
$size.Height = 25
$Host.UI.RawUI.WindowSize = $size
Gi trị của

indowSize đư c lư trong bi n $size.

N u muốn thay đổi k ch thư c vùng đệ
cho BufferSize.

c ch đơn giản là thay th WindowSize

Chiều rộng và chiều cao của cửa sổ và vùng đệ không đư c đo bởi pixel, chiều
rộng đo bởi số k tự có trên 1 dòng còn chiề cao ch nh là ố dòng nó có th chứa.


Hi n th

ê


của cửa sổ

Có lẽ thuộc t nh dễ nhẩt và hữ ch nhất đ thay đổi là th ộc t nh indowTitle.
Bạn có th thay đổi tiê đề bằng một tên kh c hay hơn như là “ indow PowerShell
R le ” khi chạy dòng lệnh sau:
$Ho t UI RawUI
ây gi bạn có th
tiê đề của cửa sổ.

indowTitle=” indow PowerShell R le !
hân biệt một cửa sổ PSH v i c i kh c bằng c ch đọc nhanh

23


II.

T

ổi profile của PowerShell.

Những thi t lập về à và k ch thư c ở trên chỉ dụng tức th i hi đóng cửa sổ
lại thì không còn t c dụng ở những lần mở sau. N u muốn c c thi t lậ này đư c mặc
định mỗi khi mở một PSH shell thì rofile cri t ch nh là ột giải h Profile cri t là
một kịch bản đặc biệt chạy vào ọi lúc khi bạn mở một PSH command shell. N nó
không tồn tại theo mặc định, PSH sẽ bỏ q a và di ch y n nó
Bạn có th tì

cấ hình của bạn đang chạy bằng lệnh : $profile.


Theo mặc định, vị tr
rofile đư c đặt ở một file là
Microsoft.PowerShell_profile.ps1 trong một folder indow PowerShell trong thư ục
My Documents của bạn V dụ trên
y trạ
nó trả về C:\Documents and
Settings\steguis.MONKEY\Documents\WindowsPowerShell\Microsoft.PowerShell_profi
le.ps1.
IS có kịch bản profile của nó là vị tr ặc định giống như kịch bản rofile thông
thư ng, ngoại trừ khi nó đư c gọi là Micro oft PowerShellIS _ rofile 1
N u bạn đã có ột profile, mở nó lên bằng Notepad, tạo một file k tự trống sử
dụng Notepad ở vị tr đư c trỏ bởi $ rofile Profile này là ột kịch bản đ thực thi bất cứ
khi nào 1 hell đư c khởi động
Trư c đó bạn có th tạo file profile, tạo folder WindowsPowerShell trong fold My
Documents n nó không tồn tại.
Bạn có th dùng code PSH n u bạn muốn thực thi mỗi khi một hell đư c mở
trong profile của bạn. N u muốn hiệu chỉnh giao diện có th dùng đoạn code sau:
$Shell = $Host.UI.RawUI
$Shell

indowTitle=”PowerShell Obey Me”

$Shell ackgro ndColor=” hite”
$Shell Foregro ndColor=” l e”
$size = $Shell.WindowSize
$size.width=120
$size.height=55
$Shell.WindowSize = $size
$size = $Shell.BufferSize

$size.width=120
$size.height=5000
24


$Shell.BufferSize = $size
Clear-Host
Lư file này và a đó ở một cửa sổ PowerShell. Trừ khi Windows PowerShell
đư c cài đặt và cấ hình lại bởi ngư i kh c thì ẽ xảy ra lỗi như hình
Điề này có nghĩa là gì? Lỗi này là hương h của Micro oft giú bạn q an t
C c loại virus sẽ b t đầu lan rộng khi Microsoft b t đầ
dụng Windows Scripting Host
(WSH) v i window
hi cài SH đư c cài đặt, bạn sẽ tự động có khả n ng chạy
bất cứ kịch bản SH và nhiều kẻ xấ đã l i dụng thuận l i này đ tạ ngưng ngư i
dùng khi chạy code. Mặc định
indow PowerShell không ẽ không chạy bất cứ kịch
bản nào trừ khi nó đư c x c thực sử dụng một chứng chỉ bởi một Certificate Authority
hoặc một chứng chỉ thông thư ng sử dụng Microsoft .NET Framework Software
Development Kit (SDK).
Hãy hình d ng n u Windows PowerShell tự động thực thi một kịch bản rofile à
không ki tra Ngư i vi t virus hoặc wor có th tạo và thay th kịch bản profile PSH
của bạn và a đó khi bạn mở PSH thì kịch bản rofile c t nh ẽ tự động gây lỗi.
N u muốn xe
rofile là việc như th nào bạn có th thay đổi trạng th i mặc
định của PSH và cho hé và ô hỏng hệ thống cục bộ nhưng yê cầ c c kịch bản
phải đư c chạy từ vị tr kh c( như là c c driver ạng) đ yê cầu một chữ k Có th thay
đổi trạng th i bằng dòng lệnh sau:
Set-ExecutionPolicy RemoteSigned


Theo mặc định ch nh ch thực hiện là Re tricted có nghĩa là không kịch bản
nào có th chạy đư c và chỉ c c lệnh tương t c đư c cho hé
hi thay đổi ch nh
ch thực thi ang Re oteSigned nó ẽ kh c phục hạn ch này khi lư trữ kịch
25


bản cục bộ Đóng cửa sổ PSH và ở một shell m i có th xe
k ch thư c đư c thay đổi như th nào

tiê đề

à và

Chú ý Lệnh Clear-Ho t đư c thê vào ở cuối mỗi kịch bản rofile đ xóa tr ng
àn hình Rất hữ ch khi có q nhiều thứ trên àn hình và
ốn xóa nhanh nó Cũng
có th dùng lệnh cl đ thực thi.
III.

T

á

c của Windows PowerShell ISE.

indow PowerShell IS giú là việc dễ hơn v i Windows PowerShell. Khởi
động PowerShell ISE bằng c ch vào Start➪All Programs➪Windows PowerShell
V2➪Windows PowerShell V2. Nó đư c thi t k dựa trên c c kh i niệ
indow nó

không q
hức tạ T y nhiên ột số cải ti n không rõ ràng V dụ đưa ra tr giú
nhanh hơn hi bạn không hi u về lệnh Cmdlet bạn muốn đư c tr giú nhấn F1 và
Windows sẽ hi n thị cú h lệnh Cmdlet cũng như c c thông tin kh c về lệnh này
N u bạn muốn thấy tên ột C dlet trên ột trong c c cửa sổ và cửa sổ đó hoạt
động (v dụ, cửa sổ kịch bản hay cửa sổ lệnh), nhấn F1 đ có tr giú về cmdlet hoặc
chọn tên c dlet đầ tiên
Trong cửa sổ lệnh này n u muốn nhập nhiều lệnh trư c khi chạy chúng trong
Windows PowerShell, bạn có th nhấn Ctrl+ nter đ đi đ n dòng ti
à không thực thi
lệnh trên cửa sổ đó hi đã ẵn àng bạn có th thực thi lệnh 1 c ch t ần tự bằng c ch
chọn nút r n à xanh hoặc nhấn Enter.
N u muốn chỉ thực thi một phần của 1 kịch bản hoặc một lệnh đơn của một kịch
bản, bạn có th là điề này bằng c ch là nổi bật phần muốn thực thi( Q trình đ nh
dấ c c ký tự hoặc c c tên lệnh bằng c ch đảo à trên àn hình) và nhấn nút R n Chỉ
có hần kịch bản đư c là nổi bật m i đư c thực thi.


T

nh ISE.

Giao ti dòng lệnh indow PowerShell có ột bi n $ho t đư c sử dụng đ truy
cập t i đối tư ng con ole IS có ột bi n $ i e đ truy cập t i ho t IS Vì có th truy
cậ và điều khi n ISE qua bi n $ i e nên có th tùy chỉnh bảng à của IS thông q a
thuộc t nh o tion của bi n $psise.
Đối tư ng $psISE.options chứa:
PS C:\Windows>$psISE.options
TokenColors
: {[Attribute, #FFADD8E6], [Command, #FF0000FF],

[CommandArgument, #FF8A2BE2], [CommandParameter, #
FF000080]}
DefaultOptions

: System.Management.Automation.Host.DefaultOptions
26


×