1. Lấy tên người dùng hiện tại trong PowerShell
Trong quá trình làm việc với PowerShell trên Windows 11/10/8/7, việc lấy tên người dùng hiện tại là một nhiệm vụ quan trọng. Bài viết này sẽ giới thiệu một số cách để lấy tên người dùng hiện tại trong PowerShell, bao gồm sử dụng các biến môi trường Windows, lớp Win32_ComputerSystem, lớp .NET WindowsIdentity, lệnh Whoami và lệnh Query. Chi tiết cách thực hiện sẽ được trình bày dưới đây.
1.1. Sử dụng biến môi trường Windows
Có 3 cách khác nhau để sử dụng các biến môi trường Windows để lấy tên người dùng hiện tại trong PowerShell.
- Way 1: Sử dụng Env PowerShell Drive
Đầu tiên, mở cửa sổ PowerShell bằng cách tìm kiếm và nhấp chuột phải vào Windows PowerShell, sau đó chọn “Run as administrator”. Xác nhận bằng cách nhấp “Yes”.
Trong cửa sổ PowerShell, nhập lệnh sau và nhấn Enter để lấy tên người dùng hiện tại:
Get-ChildItem Env:USERNAME
Hoặc:
(Get-ChildItem Env:USERNAME).Value
Ảnh minh họa:
Một cách đơn giản khác để lấy tên người dùng PowerShell là sử dụng biến $Env. Để làm điều này, chỉ cần chạy lệnh sau trong cửa sổ PowerShell:
$env:username
Ảnh minh họa:
Tương tự như biến $Env, lớp .NET Environment cũng cho phép bạn tìm giá trị tên người dùng hiện tại trong PowerShell. Để lấy tất cả người dùng đã đăng nhập gần đây, bạn có thể chạy lệnh sau:
[System.Environment]::UserName
Ngoài ra, bạn cũng có thể sử dụng cmdlet GetEnvironmentVariable với lớp Environment để lấy tên người dùng hiện tại:
[System.Environment]::GetEnvironmentVariable('username')
Ảnh minh họa:
1.2. Sử dụng lớp Win32_ComputerSystem
Với lớp Win32_ComputerSystem, bạn có thể sử dụng các cmdlet Get-WMIObject và Get-CimInstance để lấy thông tin về tên người dùng trên máy tính cục bộ hoặc từ xa thông qua Windows Management Instrumentation.
- Lấy tên người dùng hiện tại trên máy tính cục bộ
Để lấy tên miền và tên người dùng hiện tại trên máy tính cục bộ, bạn có thể mở cửa sổ PowerShell và chạy các lệnh sau:
(Get-WMIObject -ClassName Win32_ComputerSystem).Username
Hoặc:
(Get-CimInstance -ClassName Win32_ComputerSystem).Username
Nếu bạn chỉ muốn lấy tên người dùng hiện tại mà không có tên miền, bạn có thể sử dụng tham số split() như sau:
((Get-WMIObject -ClassName Win32_ComputerSystem).Username).Split(")[1]
Ảnh minh họa:
1.3. Sử dụng lớp .NET WindowsIdentity
Lớp .NET WindowsIdentity cũng cho phép bạn lấy tên người dùng trong PowerShell thông qua cmdlet GetCurrentName. Để làm điều này, chỉ cần chạy lệnh sau trong cửa sổ PowerShell:
[System.Security.Principal.WindowsIdentity]::GetCurrent()
Để chỉ lấy giá trị tên người dùng, bạn cũng có thể sử dụng tham số Split() như sau:
([System.Security.Principal.WindowsIdentity]::GetCurrent().Name).Split(")[1]
Ảnh minh họa:
1.4. Sử dụng lệnh Whoami
Để lấy tên người dùng hiện tại và tên miền trong PowerShell, chỉ cần chạy lệnh whoami. Nếu bạn chỉ muốn lấy tên người dùng mà không có tên miền, bạn có thể chạy lệnh (whoami).Split(“)[1].
Ảnh minh họa:
1.5. Sử dụng lệnh Query
Nếu bạn là một quản trị viên hoặc người dùng trong miền, bạn có thể lấy tên người dùng đã đăng nhập trên máy tính từ xa. Ví dụ, nếu bạn muốn lấy tất cả người dùng đã đăng nhập trên máy tính có tên PC1, bạn có thể chạy lệnh qwinsta /server:pc1 trong PowerShell. Để hiển thị tất cả người dùng với phiên đăng nhập hiện tại, bạn có thể chạy lệnh quser /server:pc1.
2. Lưu ý
Để sử dụng một số cmdlet, bạn cần có PowerShell phiên bản 5.1 trở lên. Vì vậy, chúng tôi khuyến nghị bạn nên cập nhật phiên bản PowerShell lên phiên bản mới nhất để đảm bảo hoạt động tốt. Bạn có thể đọc bài viết “Cách cập nhật phiên bản PowerShell lên v7.2.5 cho Windows 10/11” để biết thêm thông tin chi tiết.
Kết luận
Trên đây là tổng hợp một số cách để lấy tên người dùng hiện tại trong PowerShell trên Windows 11/10/8/7. Bạn có thể lựa chọn một trong số các phương pháp trên dựa trên sở thích của mình. Việc lấy tên người dùng hiện tại là rất hữu ích trong quá trình làm việc với PowerShell và giúp bạn thực hiện các tác vụ liên quan đến người dùng một cách dễ dàng.
Nguồn: https://www.partitionwizard.com/partitionmanager/powershell-get-current-username.html