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

Tài liệu Triển khai Windows 7 – Phần 22: Populate cơ sở dữ liệu MDT bằng PowerShell 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 (2.68 MB, 30 trang )

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


Triển khai Windows 7 – Phần 19: Tạo một WinPE Tools CD tùy chỉnh

Triển khai Windows 7 – Phần 20: Bảo mật MDT (1)
Triển khai Windows 7 – Phần 20: Bảo mật MDT (2)
Mẹo: Các bạn có thể tìm kiếm thêm thông tin về việc tự động hóa triển khai
LTI trong Windows 7 Resource Kit
của Microsoft.
Trong phần trước của loạt bài này, chúng tôi đã giới thiệu cho các bạn cách
cấu hình và sử dụng cơ sở dữ liệu MDT cho các triển khai Lite Touch. Cho
ví dụ, trong phần 16 chúng tôi đã giới thiệu cách sử dụng Deployment
Workbench để bổ sung thêm các máy tính mục tiêu mới vào cơ sở dữ liệu để
có thể tùy chỉnh triển khai Windows 7 dựa trên địa chỉ MAC hoặc UUID của
mỗi máy tính mục tiêu. Tuy nhiên việc thực hiện thủ công bằng cách sử
dụng Deployment Workbench quá nhàm chán – chắc chắn các bạn sẽ tự hỏi
điều gì sẽ xảy ra nếu mình có đến hàng trăm máy tính muốn bổ sung vào cơ
sở dữ liệu.
Đó chính là mảnh đất để Windows PowerShell dụng võ, công cụ hữu dụng
này cho phép bạn có thể viết kịch bản để tự động hóa các nhiệm vụ quản trị
nhàm chán. Tuy MDT 2010 không có sự hỗ trợ PowerShell đi kèm, nó cũng
không có các lệnh cmdlet cho việc thao tác xử lý cơ sở dữ liệu MDT. Nhưng
Michael Niehaus, một chuyên gia phát triển của MDT đã tạo một modul
PowerShell riêng để người dùng có thể sử dụng nó cho việc bổ sung sự hỗ
trợ PowerShell, từ đó có thể thao tác xử lý cơ sở dữ liệu MDT của mình.
Trong bài này chúng tôi sẽ giới thiệu cách import modul này và sử dụng
PowerShell để lấy spreadsheet chứa thông tin của máy tính mục tiêu và
import các thông tin này vào cơ sở dữ liệu MDT như các mục máy tính mới.
Lưu ý
: Bài viết này dựa trên giả thuyết rằng bạn chỉ là người mới biết
PowerShell và mới có ít kinh nghiệm trong việc viết kịch bản PowerShell,
tuy nhiên vẫn có một chút kiến thức về lập trì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ư

thể hiện dưới đây:

Hình 4: Thẩm định rằng modul đã được import
Kết nối đến cơ sở dữ liệu MDT
Lúc này chúng ta cần kết nối phiên PowerShell của mình đến cơ sở dữ liệu
MDT. Để thực hiện điều đó, hãy sử dụng lệnh Connect-MDTDatabase. Để
xem cú pháp cho lệnh này, bạn có thể đánh Get-Help Connect-
MDTDatabase như thể hiện bên dưới:

Hình 5: Xem cú pháp lệnh Connect-MDTDatabase
Mẹo
: Bạn cũng có thể tìm thêm các thông tin khác về lệnh này tại blog của
Michael.
Để kết nối đến một cơ sở dữ liệu MDT có tên MDT trên một SQL Server
instance có tên SQLEXPRESS trên máy chủ MDT có tên SEA-MDT-01,
hãy đánh vào lệnh sau:
Connect-MDTDatabase –sqlServer SEA-MDT-01 –instance
SQLEXPRESS –database MDT

Hình 6: Kết nối đến cơ sở dữ liệu MDT
Làm việc với các mục máy tính
Sau đây chúng ta hãy bắt đầu bằng cách xem liệu đã có mục máy tính nào
trong cơ sở dữ liệu MDT chưa. Để thực hiện điều đó, chúng ta cần sử dụng
lệnh Get-MDTComputer, vì vậy hãy sử dụng Get-Help để xem cú pháp
của lệnh này:

Hình 7: Xem cú pháp của lệnh Get-MDTComputer
Để liệt kê tất cả các mục máy tính trong cơ sở dữ liệu, chúng ta chỉ cần đánh
vào lệnh Get-MDTComputer:


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

biến $machines như dưới đây:
$machines = Import-Csv C:\Data\machines.txt

Hình 13: Import file CSV vào một biến
Đánh lệnh $machines sẽ hiển thị các thông tin đã được import, được lưu
thành mảng:

Hình 14: Các thông tin máy tính được lưu dưới một mảng
Bạn có thể đánh lệnh $machines.count để hiển thị số thành phần trong
mảng này:

Hình 15: Mảng có ba thành phần, mỗi một thành phần là một máy tính
Để hiển thị thành phần đầu tiên của mảng, bạn có thể đánh lệnh
$machines[0]:

Hình 16: Hiển thị thành phần đầu tiên của mảng
Như những gì bạn thấy từ hình trên, thành phần đầu tiên của mảng gồm có
thông tin về máy tính thứ nhất. Để chỉ hiển thị tên máy tính này, đánh
$machines[0].name:

Hình 17: Hiển thị tên của máy tính đầu tiên
Bổ sung các máy tính đã được import vào cơ sở dữ liệu
Lúc này chúng ta đã biết chút ít về việc việc xử lý với mảng và sẵn sàng cho
việc import các thông tin được lưu trong mảng dưới tên biến $machines vào
cơ sở dữ liệu MDT. Để thực hiện điều đó, chúng ta hãy sử dụng lệnh New-
MDTComputer, do đó hãy xem cú pháp của lệnh này:

Hình 18: Xem cú pháp lệnh New-MDTComputer
Cần nhớ những gì chúng tôi đã giới thiệu trong phần 16, máy tính phải mang
tính duy nhất trong cơ sở dữ liệu bằng cách sử dụng một hoặc một vài

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

tên mà bạn muốn MDT gán cho máy tính mục tiêu, và nếu tham chiếu lại
hình 11, bạn sẽ thấy chúng tôi đã thiết lập là DESK-A.
Chúng ta hãy đi xem xét cách bổ sung máy tính mới vào cơ sở dữ liệu trong
khi đó chỉ định tên máy tính. Để giới thiệu cách thực hiện, chúng ta hãy đi
add máy tính thứ hai trong spreadsheet bằng địa chỉ MAC của nó, thêm vào
đó là chỉ định tên (như những gì bạn thấy trong hình 11, DESK-B). Để thực
hiện, hãy đánh vào lệnh dưới đây:
New-MDTComputer –macAddress $machines[1].mac –settings
@{OSInstall='YES';OSDComputerName=$machines[1].name}

Hình 23: Bổ sung máy tính thứ hai vào cơ sở dữ liệu bằng cách sử dụng địa
chỉ MAC và chỉ định tên máy tính
Nếu đóng và mở lại Workbench, mở thuộc tính cho máy tính mới và chọn
tab Details, lúc này bạn có thể thấy thuộc tính OSDComputerName có giá trị
mong đợi là DESK-B như được gán cho nó:

Hình 24: Các thuộc tính chi tiết của máy tính mới
Chúng ta hãy thử thêm một ví dụ và add thêm một máy tính thứ ba vào
spreadsheet bằng địa chỉ MAC, tiếp đó là chỉ thị tên máy tính, tên tổ chức và
tên đầy đủ của người dùng. Để thực hiện, hãy đánh lệnh PowerShell:
New-MDTComputer –macAddress $machines[2].mac –settings @{
OSInstall='YES';
OSDComputerName=$machines[2].name;
FullName='Michael Allen';
OrgName='Contoso Ltd.'}

Hình 25: Bổ sung thêm máy tính thứ ba vào cơ sở dữ liệu với
một vài thuộc tính đã được chỉ định
Lưu ý rằng trong PowerShell, bạn không phải sử dụng các ký tự ghép dòng
đặc biệt nào nếu các ngắt lệnh trong một mảng được chỉ định bằng dấu

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:

×