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

10 thủ thuật với PowerShell trong Windows Server 2008 Phần 1 pdf

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 (100.91 KB, 3 trang )

10 thủ thuật với PowerShell trong Windows Server 2008 -
Phần 1
1. Thay đổi mật khẩu quản trị với PowerShell:
Giả sử rằng bạn đang đăng nhập bằng tài khoản Administrator domain trên máy
tính Windows 7 Desktop trên hệ thống domain. Yêu cầu đặt ra ở đây là phải thay
đổi mật khẩu trên server remote tại Chicago có tên là CHI-WIN7-22. Sau khi 1
tài khoản được sử dụng nhiều lần thì cơ hội “bẻ khóa” mật khẩu lại càng cao. Đó
là lý do tại sao chúng ta nên thay đổi mật khẩu của tài khoản sau 1 khoảng thời
gian sử dụng.
Trước tiên, chúng ta cần phải tạo mới 1 đối tượng ADSI đối với tài
khoản Administrator local trên server. Để thực hiện, các bạn hãy gõ lệnh sau tại
màn hình PowerShell:
[ADSI]$Admin=”WinNT://CHI-WIN7-22/Administrator”
Về bản chất, câu lệnh trên sẽ thực hiện việc “lấy lại” tài khoản admin trên
máy CHI-WIN7-22 và gán với đối tượngADSI có tên là $Admin. Nếu muốn kết
nối tới máy tính khác thì các bạn chỉ việc thay đổi CHI-WIN7-22 thành tên tương
ứng của máy tính đó. Còn nếu muốn biết mật khẩu đó đã sử dụng được bao lâu để
có thể thay đổi, chúng ta sẽ sử dụng lệnh:
$Admin.PasswordAge
Câu lệnh trên sẽ hiển thị khoảng thời gian đã trôi qua kể từ lần thay đổi gần đây
nhất, và vì giá trị trả về được tính bằng giây, nên chúng ta sẽ chia cho 86.400 để
chuyển thành ngày:
$Admin.PasswordAge.Value/86400
Nếu các bạn để ý kỹ sẽ thấy rằng chúng tôi có sử dụng thuộc tính Value ở đây. Đó
là vì phần thông tinPasswordAge được lưu trữ dưới dạng collection, di vậy chúng
ta cần phải biết giá trị của collection đó để tra lại con số chính xác nhằm thực hiện
phép tính chia. Cuối cùng, thay đổi mật khẩu bằng cách dùng hàmSetPassword, đi
kèm với đó là mật khẩu mới – argument. Ví dụ, nếu muốn đặt password mới
là S3cre+WOrdthì phải gõ lệnh như sau:
$Admin.SetPassword(“S3cre+WOrd”)
Tuy nhiên, các bạn cần lưu ý rằng sau khi nhấn Enter thì hệ thống sẽ không hiển


thị bất cứ thông báo nào, mà sự thay đổi này sẽ ngay lập tức có hiệu lực. Bởi vì
chúng ta đã sử dụng phương pháp – method, chứ không phải là lệnh – cmdlet.
Không giống như cmdlet, SetPassword không hỗ trợ -whatif hoặc -confirm.
2. Tắt hoặc khởi động lại server:
Để thực hiện việc này, chúng ta sẽ sử dụng 1 cặp lệnh cmdlet dựa trên WMI, đó
là Restart-Computer và Stop-Computer. Mực dù không đi quá sâu vào việc
phân tích từng lệnh trên, nhưng chúng ta vẫn phải đề cập tới, vì những lệnh cmdlet
đó có chấp nhận các thông tin thay thế – có ích rất lớn trong việc chỉ định tài
khoản người dùng đã đăng nhập sẵn, qua đó chúng ta có thể thực hiện được các
lệnh tương ứng của tài khoản đó.
Bên cạnh đó, các bạn còn có thể tận dụng được lợi thế của -whatif và -confirm, có
nghĩa là nếu muốn thực hiện lệnh tắt hoặc khởi động lại hệ thống, chúng ta hoàn
toàn có thể thực hiện được theo cách riêng. Và nếu áp dụng vào thực tế, nhất là
trong trường hợp cần phải tắt nhiều máy tính cùng lúc, đây sẽ là giải pháp hiệu quả
nhất. Cấu trúc cơ bản của lệnh này là:
Restart-Computer -ComputerName <string[ ]>
với -ComputerName <string[ ]> là mảng dữ liệu dạng chuỗi, được gán với tên
của 1 hoặc nhiều máy tính bất kỳ. Stop-Computer sử dụng cú pháp tương tự, ví
dụ nếu muốn khởi động lại 2 máy tính có tên là CHI-DC02 vàCHI-FP01 thì
chúng ta gõ lệnh:
Restart-Computer “CHI-DC02”, “CHI-FP01”
Bây giờ, chúng ta sẽ chuyển sang 1 ví dụ khác phức tạp hơn, giả sử rằng chúng ta
có 1 danh sách nhiều máy tính trong 1 file có tên là servers.txt, sử dụng lệnh
cmdlet Get-Content để lấy nội dung bên trong file text đó:
Do vậy, nếu bạn phải thực hiện trên nhiều máy tính thì hãy nhập tên của những
máy tính đó vào 1 file text. Và mỗi lần cần khởi động lại, chúng ta chỉ cần áp dụng
lệnh cmdlet Get-Content. Ví dụ như dưới đây:
Tiếp theo, hệ thống sẽ đẩy phần danh sách này tới mệnh đề where để kiểm tra. Bên
trong mệnh đề where này, chúng ta sẽ tiến hành thực hiện lệnh test-connection –
mục đích chính là để ping tới từng máy tính riêng biệt. Tham số -quiet sẽ trả về

giá trị true hoặc false, trong khi -count 2 có nghĩa là mỗi máy tính chỉ được ping
2 lần. Đối với mỗi máy được ping 2 lần, hệ thống sẽ tự động duyệt chúng.
Tiếp theo, chúng ta sẽ phải sử dụng foreach. Cụ thể, đối với mỗi tên máy tính
vượt qua được lần kiểm tra trên, hệ thống sẽ hiển thị thông báo với màu xanh lá
cây có nội dung là: “Restarting”. Tham số $_ đại diện cho từng đối tượng đang ở
trong hệ thống, và sau đó lệnh cmdlet Restart-Computer sẽ được gọi ra để khởi
động lại tất cả các máy tính đã được ping. Bên cạnh đó, chúng ta còn có thể sử
dụng thêm tham số -force để ngăn chặn bất kỳ tài khoản nào muốn đăng nhập.

×