Tài liệu Quản lý mạng Windows bằng Script - Phần 11: Các thủ thuật kịch bản khác - Pdf 85

Quản lý mạng Windows bằng Script - Phần 11: Các thủ thuật kịch bản khác

Nguồn : quantrimang.com 
Mitch Tulloch
Trong phần trước của loạt bài này chúng ta đã biết hai thủ thuật cho kịch bản
điều khiển xa. Trong phần trước chúng ta đã xem thêm hai mẹo kịch bản nữa.
Mẹo đầu tiên, thủ thuật kịch bản điều khiển xa từ một độc giả, mẹo thứ hai, một
ví dụ thế giới thực được dùng để thể hiện cách sử dụng the Windows
Management Instrumentation Command-line (WMIC).

Thủ thuật 1: Thủ thuật “runas” nhưng với sự mã hóa

Thủ thuật kịch bản đầu tiên được đệ trình bởi độc giả Steven Beard đến từ Anh.
Steve đưa ra một cách hoàn toàn khác để gọi lệnh “runas” từ bên trong kịch bản
và điều này có thể hữu dụng trong các môi trường hoạt động kinh doanh như th
ế
nào. Hãy lắng nghe những gì mà Steve đã nói:

Tôi đã sử dụng vb script trong nhiều năm qua để quản trị miền Windows của tôi
nhưng chưa bao giờ hiểu hết về WMI mà chỉ là những gì tôi thực sự cần thiết.
Mặc dù phần cuối cùng của các bạn quan tâm đến hàm runas là rất tốt, nhưng
tôi sử dụng nó theo nhiều cách khác nhau, bạn có thể xem dưới đây:
Set WshShell = CreateObject("Wscript.Shell")
Set WshEnv = WshShell.Environment("PRocess")
WshShell.Run "runas.exe /user:" & "domain\user" & " " &
Chr(34) & "cscript c:\PCQuery.vbs" & Chr(34)
Wscript.Sleep 800
WshShell.AppActivate WshEnv("SystemRoot") &
"\system32\runas.exe"
Wscript.Sleep 200
WshShell.SendKeys "PASSWORD" & "~"

Users. Sau đó, một ngày quản trị viên được thông báo rằng người dùng dường
như có nhiều đặc quyền hơn những gì mà anh ta đã gán và anh ta đã phát hiện
ra rằng các tài khoản quản trị cục bộ
cũ đã không được phát hiện từ máy trạm
của anh ta, anh ta đã đăng nhập bằng một tài khoản quản trị cục bộ đó khi tài
khoản domain user không cho anh ta có được đủ quyền điều khiển trên máy
trạm. Quản trị viên nhận ra điều này có thể là một vấn đề nghiêm trọng khi (a) nó
can thiệp vào chính sách bảo mật của công ty và (b) cho phép người dùng đăng
nhập vào các máy trạm của họ như các quả
n trị viên, nghĩa là họ có thể xử lý
đơn giản trên máy trạm của họ khi quản trị cục bộ có thể thực hiện gần như bất
cứ cái gì trên các máy của họ, tuy nhiên điều này có thể dẫn đến chi phí hỗ trợ
cao hơn.

Bây giờ để làm cho nó phức tạp hơn chút ít, nhóm quản trị cục bộ Administrators
đính kèm trên máy trạm được đặt lại tên thành một tên nào đó và tài khoản
người dùng Administrator cục bộ đính kèm cũng được đặt lại tên. Kiểm tra máy
trạm thứ hai đã phát hiện ra rằng nhóm cục bộ quản trị viên đính kèm và tài
khoản người dùng cục bộ cũng đều được đặt lại tên trên máy tính này, tuy nhiên
chúng được đặt lại tên khác với máy trạm đầu tiên! Thực sự là một sự phức tạp
gây đau đầu! Việc giải quyết điều này giố
ng như nó đòi hỏi phải đăng nhập vào
các máy trạm và đào bới tìm kiếm tất cả người dùng và các nhóm cục bộ trên
mỗi máy tính để xác định tài khoản người dùng cục bộ nào là quản trị cục bộ trên
máy đó, hoặc tìm các khác để xác định thông tin này. Có thể là một kịch bản?

Bạn có thể giải quyết bằng kịch bản nhưng thay vì làm điều đó, bạn hãy thử thực
hiện một cái gì đó khác và sử dụng Windows Management Instrumentation
Command-line (WMIC) xem sao. WMIC cơ bản là một công cụ (một trình thông
dịch lệnh) cho phép truy vấn thông tin WMI trực tiếp từ dòng lệnh thay vì phải

3 tài khoản người dùng cùng với nó: quản trị viên, sjones và gsmith. Thêm vào
đó, nhóm quản trị miền toàn cục là một thành viên của nhóm quản trị cục bộ trên
hệ thống này.

Bây giờ nhóm quản trị cục bộ đính kèm trên hệ thống được đổi tên thành gì?
Chạy lệnh trên bạn sẽ có kết quả dưới đây:
C:\Documents and Settings\myself>wmic path win32_groupuser
where
(groupcomponent="win32_group.name=\"administrators\",domain
=\"%computername%\"")
No Instance(s) Available.
Tại sao lệnh bị hỏng? Rõ ràng bởi vì tên của nhóm tồn tại đã truy vấn bởi mã
cứng trong lệnh. Nhưng nếu nhóm quản trị cục bộ đính kèm được đặt lại tên thì
bạn có thể xác định tên mới của nó như thế nào? Câu trả lời đơn giản là nhóm
này có thể được đặt tên là gì thì nó vẫn giống nhóm cũ ở bề ngoài. Hay nó theo
cách khác, nó là bộ nhận dạnh bảo mậ
t (SID) không thay đổi và vẫn là S-1-5-32-
544 (bạn có thể xem thêm tại đây
để có thêm danh sách về các SID).

Vậy chúng ta có thể xác định tên của nhóm là gì nếu biết SID của nó? Chúng ta
có thể sử dụng lại WMIC một lần nữa, giống như dưới đây:
C:\Documents and Settings\myself>wmic group where (sid =
"S-1-5-32-544" and localaccount = true) get name
Name
JustAnotherGroup
Vậy nhóm quản trị đính kèm trên hệ thống này được đặt lại tên thành
JustAnotherGroup!

Dù thế nào đi chăng nữa bây giờ chúng ta cũng biết được tên của nhóm này,

ng Group Policy như đã được
giải thích trong phần 6). Vậy thừa nhận rằng bạn đã thực hiện điều đó, hãy mở
cửa sổ lệnh trên máy chủ trung tâm của chúng ta (bộ điều khiển miền) và đưa ra
hai lệnh tương tự WMIC, nhưng lúc này máy trạm điều khiển xa có tên là XP191.
Đầu tiên chúng ta lấy tên của nhóm quản trị cục bộ đính kèm trên máy tính điều
khiển xa.
C:\Documents and Settings\Administrator>wmic /node:"xp191"
group where (sid = "S-1-5-32-544" and localaccount = true)
get name
Name
JustAnotherGroup
Bây giờ chúng ta sử dụng kết quả này để lấy danh sách các thành viên của
nhóm:
C:\Documents and Settings\Administrator>
wmic /node:"xp191"
path win32_groupuser where (groupcomponent =
"win32_group.name=\"justanothergroup\",domain=\"xp191\"")
GroupComponent?????????????????????????????PartComponent
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_UserAccount.Domain="XP191",Name="
JustAnotherAccount"
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_UserAccount.Domain="XP191",Name="
sjones"
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_UserAccount.Domain="XP191",Name="
gsmith"
win32_group.domain="xp191",name="justanothergroup"?
\\XP191\root\cimv2:Win32_Group.Domain="TEST",Name="Domain
Admins"


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status