Windows PowerShell là một trình thông dịch dòng lệnh và ngôn ngữ kịch bản mà bạn có thể sử dụng để quản lý tổ chức của mình. Dùng Windows PowerShell trên một máy tính cục bộ có thể giúp kết nối với tổ chức dựa trên ứng dụng web qua Internet và thực hiện các tác vụ quản lý không sẵn có hoặc thiết thực trong Panel Điều khiển Exchange.
Bài viết sẽ hướng dẫn các bạn cách dễ dàng để tạo những tài khoản nội bộ từ xa thông qua Windows PowerShell.
Lợi dụng PowerShell để tạo tài khoản nội bộ dùng trên nhiều máy
Chúng ta sẽ thao tác trong môi trường domain từ một máy bàn dùng Windows 7 đang chạy PowerShell 2.0, tạo tài khoản nội bộ trên những thành viên khác trong domain. Ta đăng nhập bằng một tài khoản có quyền quản trị máy ở xa. Với cách này, ta không cần cài PowerShell ở những máy còn lại nữa.
Nếu bạn cần tạo tài khoản trên những thành viên không thuộc domain, cách tốt nhất là sử dụng tính năng PowerShell remoting. Bạn có thể chạy cùng các câu lệnh sau đây, nhưng trong phiên từ xa hoặc sử dụng lệnh Invoke. Ưu điểm là bạn có thể quy định những quyền bạn cần. Thiết lập remoting cho những thành viên nằm ngoài domain phải sử dụng một chút mẹo nhỏ và ta sẽ đề cập đến ở một bài khác.
Bước đầu tiên là kết nối tới máy tính ở xa. Thật không may là, không có cmdlets cho điều chúng ta định làm. Thay vào đó, chúng ta sẽ dùng một số thủ thuật .NET và PowerShell bằng cách sử dụng ADSI, giống như công nghệ sử dụng trong VBScript.
PS C:> [ADSI] $server=”WinNT://chi-fp01”
Câu lệnh này tạo một biến, $server mà sẽ là một đối tượng ADSI. Chuỗi phía bên phải trong câu lệnh là đường dẫn tới máy ở xa. WinNT moniker có phân biệt chữ hoa và chữ thường, cho kết quả là một đối tượng như trong hình 1.
Hình1. Một đối tượng máy tính ADSI
Để tạo một tài khoản nội bộ đơn giản, ta gọi phương thức Create() của đối tượng ADSI, quy định loại đối tượng nào ta đang tạo và đặt tên cho nó. Lưu kết quả vào biến bởi vì ta sẽ cần nó một lát nữa.
PS C:> $HelpDesk=$server.Create(“User”,”HelpDesk”)
PS C:> $HelpDesk
distinguishedName :
Path : WinNT://GLOBOMANTICS/CHI-FP01/HelpDesk
Tiếp theo, đặt mật khẩu cho tài khoản mới bằng phương thức SetPassword().
PS C:> $HelpDesk.SetPassword(“H3lpD3>K”)
Cuối cùng, lưu thay đổi tới dịch vụ thư mục cục bộ bằng cách gọi phương thức SetInfo(). Nếu sai bước này, tài khoản sẽ không được tạo.
PS C:> $HelpDesk.SetInfo()
Nếu muốn, bạn có thể thiết lập thêm thuộc tính cho tài khoản, chỉ cần cuối cùng phải gọi SetInfo() để lưu mọi thay đổi.
PS C:> $HelpDesk.Put("Description","Help Desk Tech Local Account")
PS C:> $flag=$HelpDesk.UserFlags.value -bor 0x10000
PS C:> $HelpDesk.put("userflags",$flag)
PS C:> $HelpDesk.SetInfo()
Bước tiếp theo là định giá trị cho cờ thuộc tính (userflags property). Đây là một giá trị mặt nạ bit chỉ thị những thứ như, nếu mật khẩu không bao giờ hết hạn hay nếu tài khoản bị vô hiệu hóa. Tôi đặt giá trị để mất khẩu không bao giờ hết hạn. Bạn có thể xem kết quả trong hình 2.
Hình2. Một tài khoản nội bộ mới
Để xem kết quả từ PowerShell, chúng ta có thể truy vấn vào server “children”, lọc theo lớp đối tượng.
PS C:> $server.children | where {$_.class -eq "user"} |
>> format-table Name,Description –auto
>>
Name Description
—- ———–
{Administrator} {Built-in account for administering the computer/domain}
{Guest} {Built-in account for guest access to the computer/domain}
{HelpDesk} {Help Desk Tech Local Account}
Các thuộc tính của đối tượng được lưu dưới dạng các mảng, đó là lý do đầu ra có thể trông hơi khác thường.
Bước cuối cùng là thêm tài khoản này vào một nhóm nội bộ phù hợp. Tôi sẽ thêm tài khoản HelpDesk vào nhóm nội bộ Power Users. Trước tiên, ta cần nhận nhóm nội bộ bằng thông qua ADSI.
PS C:> [ADSI]$group="WinNT://chi-fp01/Power Users,Group"
Để thêm thành viên nhóm, chỉ định đường dẫn tới đối tượng người dùng.
PS C:> PS C:> $helpdesk.path
WinNT://GLOBOMANTICS/CHI-FP01/HelpDesk
PS C:> $group.Add($helpdesk.path)
Kết luận
Sự thay đổi diễn ra ngay tức thì và không cần chạy SetInfo(). Tài khoản người dùng nội bộ đã sẵn sàng để sử dụng. Lần tới, chúng ta sẽ xem xét cách quản lý tài khoản, như là thay đổi mật khẩu, thay đổi nhóm thành viên, vô hiệu hóa tài khoản hay xóa tài khoản.
Theo Quản Trị Mạng.