Triển khai Windows 7 – Phần 22: Populate cơ sở dữ liệu MDT bằng
PowerShell
Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu cho các
bạn cách sử dụng Windows PowerShell để populate cơ sở dữ liệu MDT
Triển khai Windows 7 – Phần 1: Những cải tiến của Windows AIK 2.0
Triển khai Windows 7 – Phần 2: Sử dụng DISM
Triển khai Windows 7 – Phần 3: Tìm hiểu về MAP 4.0
Triển khai Windows 7 – Phần 4: Sử dụng MAP 4.0
Triển khai Windows 7 – Phần 5: Những nâng cao của MDT 2010
Triển khai Windows 7 – Phần 6: Lite Touch bằng MDT 2010
Triển khai Windows 7 – Phần 7: Triển khai LTI tự động
Triển khai Windows 7 – Phần 8: Tìm hiểu về các file cấu hình LTI
Triển khai Windows 7 – Phần 9: Triển khai Windows 32-bit và 64-bit
Triển khai Windows 7 – Phần 10: Capture và triển khai image của máy tính
tham chiếu
Triển khai Windows 7 – Phần 11: Capture một cài đặt hiện có
Triển khai Windows 7 – Phần 12: Lên kế hoạch cho vấn đề tương thích ứng
dụng
Triển khai Windows 7 – Phần 13: Chuyển thủ công từ Windows XP sang
Windows 7
Triển khai Windows 7 - Phần 14: Chuyển tự động từ Windows XP sang
Windows 7
Triển khai Windows 7 – Phần 15: Cấu hình cơ sở dữ liệu MDT
Triển khai Windows 7 – Phần 16: Sử dụng cơ sở dữ liệu MDT
Triển khai Windows 7 – Phần 17: Triển khai dựa trên model và kiểu chế tạo
Triển khai Windows 7 – Phần 18: Xác định UUID của máy tính
Cài đặt modul PowerShell cho MDT
Chúng ta hãy bắt đầu bằng cách download file nén chứa modul PowerShell
có tên MDTDB.zip tại đây
. Sau đó kích phải vào file đã download được và
chọn Properties, tiếp đó kích Unblock. Giải nén file kịch bản MDTDB.psm1
và copy nó vào một thư mục (ở đây giả định là C:\Scripts) trên máy chủ
MDT thử nghiệm của chúng tôi.
Lúc này mởi cửa sổ PowerShell và đánh vào đó lệnh Get-ExecutionPolicy
để xem chính xác thực thi hiện hành trên máy chủ của bạn (xem tại đây
để
có thêm thông tin chi tiết):
Hình 1: Xem chính sách thực thi hiện hành
Nếu chính sách thực thi hiện hành có trạng thái hạn chế (Restricted), khi đó
kịch bản MDTDB.psm1 sẽ không chạy, chính vì vậy hãy sử dụng lệnh Set-
ExecutionPolicy Unrestricted để thay đổi chính sách thực thi thành
Unrestricted:
Hình 2: Thay đổi chính sách thực thi thành Unrestricted
Lúc này đánh lệnh Import-Module –name C:\Scripts\MDTDB.psm1 để
bổ sung thêm modul PowerShell cho MDT vào phiên PowerShell hiện hành
như thể hiện ở đây:
Hình 3: Import modul PowerShell cho MDT
Lưu ý rằng đầu ra từ quá trình chạy lệnh Import-Module này sẽ liệt kê tất cả
các lệnh PowerShell mới hiện có cho việc thao tác xử lý cơ sở dữ liệu MDT.
Cho ví dụ, trong hình ở trên, bạn có thể thấy lệnh New-MDTComputer, đây
là lệnh mà chúng ta sẽ sử dụng ở phần dưới bài này để bổ sung thêm các
máy tính vào cơ sở dữ liệu.
Để thẩm định rằng modul đã được import, hãy đánh lệnh Get-Module như
Hình 8: Liệt kê tất cả các máy tính trong cơ sở dữ liệu MDT
Lệnh Get-MDTComputer sẽ hiển thị có một máy tính trong cơ sở dữ liệu
và máy tính đó có địa chỉ MAC là EE:EE:EE:FF:FF:Firefox, ID là 2. Số ID
là trường chính cho các mục máy tính. Nói cách khác, mỗi máy tính trong cơ
sở dữ liệu sẽ có một số ID duy nhất.
Nếu mở Deployment Workbench, chúng ta sẽ thấy mục máy tính này:
Hình 9: Xem một máy tính nào đó bằng Workbench
Chúng ta cũng có thể xóa một máy tính nào đó bằng cách sử dụng
Workbench, tuy nhiên hãy thưc hiện điều này bằng PowerShell thay vì. Nếu
cần thiết, hãy đánh Get-Help Remove-MDTComputer để hiển thị cú pháp
cho việc xóa máy tính. Sau đó đánh lệnh Remove-MDTComputer –id 2 –
verbose để xóa máy tính và hiển thị các thông tin chi tiết có liên quan đến
hoạt động:
Hình 10: Xóa một máy tính ra khỏi cơ sở dữ liệu
Import máy tính vào cơ sở dữ liệu
Chúng ta hãy đi import một số máy tính vào cơ sở dữ liệu. Bắt đầu bằng
cách tạo một Excel spreadsheet với một vài cột tên, UUID, địa chỉ MAC và
thuộc tính khác của các máy tính này. Mỗi hàng trong spreadsheet tương
ứng với mỗi một máy tính. Để giới thiệu, chúng tôi sẽ tạo một spreadsheet
cho một vài máy tính trong lab của mình:
Hình 11: Tạo một spreadsheet cho các máy tính mục tiêu
Export spreadsheet nào như một file văn bản CSV (có tên
C:\Data\machines.txt ), bạn có thể mở bằng Notepad để xem nó như dưới
đây:
Hình 12: File CSV cho các máy tính mục tiêu
Lúc này sử dụng lệnh Import-Csv cmdlet để import file CSV và gán nó cho
trường dưới đây:
Universally Unique Identifier (UUID)
Asset tag
Serial number
MAC address
Chúng ta hãy đi bổ sung máy tính đầu tiên trong spreadsheet của mình bằng
cách sử dụng địa chỉ MAC của nó để phân biệt. Để thực hiện, hãy đánh vòa
lệnh dưới đây:
New-MDTComputer –macAddress $machines[0].mac –settings
@{OSInstall='YES'}
Hình 19: Add máy tính đầu tiên vào cơ sở dữ liệu bằng cách sử dụng địa chỉ
MAC
Đóng và mở lại Workbench để refresh nó, khi đó bạn sẽ thấy máy tính mới
này:
Hình 20: Máy tính mới đã được thêm vào cơ sở dữ liệu
Nếu kích đúp lên máy tính này, bạn sẽ thấy các thuộc tính của nó:
Hình 21: Thuộc tính của máy tính mới
Chọn tab Details, bạn sẽ thấy thuộc tính Osinstall đã được thiết lập là YES
như mong đợi:
Hình 22: Các thuộc tính chi tiết của máy tính mới
Mặc dù vậy cần lưu ý trong hình trên rằng thuộc tính OSDComputerName
của máy tính mới không có giá trị. Thuộc tính OSDComputerName chỉ định
ngoặc nhọn.
Đóng và mở lại Workbench, mở trang thuộc tính của máy tính mới và chọn
tab Details, khi đó bạn sẽ thấy các thuộc tính mong đợi đã được cấu hình:
Hình 26: Các thuộc tính được liệt kê chi tiết cho máy tính mới
Tạo các mục máy tính trong cơ sở dữ liệu
Cho đến đây chúng ta đã biết cách sử dụng lệnh PowerShell để tạo một mục
máy tính mới trong cơ sở dữ liệu MDT và cấu hình các thuộc tính của mục
đó. Giờ đây chúng ta hãy đi xem xét cách có thể sử dụng một kịch bản để tự
động hóa quá trình nào, khi đó chúng ta có thể tạo rất nhiều máy tính trong
cơ sở dữ liệu qua một bước thực hiện.
Đầu tiên, thay vì đánh các lệnh riêng lẻ để tạo máy tính trong cơ sở dữ liệu,
chúng ta hãy sử dụng lệnh lặp For để tạo một vòng lặp cho các thành phần
của mảng $machines như dưới đây: