intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Bi Bo | Ngày: | Loại File: PDF | Số trang:3

91
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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...

Chủ đề:
Lưu

Nội dung Text: 10 thủ thuật với PowerShell trong Windows Server 2008 Phần 1

  1. 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:
  2. $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à:
  3. Restart-Computer -ComputerName với -ComputerName 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.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2