2009-05-04 28 views
30

Tôi đang làm việc trên một tập lệnh để bắt đầu ở PowerShell. Tôi đang cố gắng để chuyển đổi một working VBScript script liệt kê các ổ đĩa mạng được ánh xạ trên một máy tính Windows từ xa.Làm cách nào để gọi phương thức có tham số đầu ra trong PowerShell?

Một trong những nhiệm vụ là sử dụng từ xa WMI để đọc sổ đăng ký và tìm chủ sở hữu quá trình của explorer.exe để xác định ai đã đăng nhập. Điều này có vẻ dễ dàng đủ theo this guide.

Tuy nhiên, phương pháp WMI tôi cần gọi là GetOwner() from Win32_Process, yêu cầu hai thông số đầu ra để lưu trữ giá trị trả lại của nó.

Tôi làm cách nào để gọi phương thức có tham số đầu ra? Khi tôi cố gắng cho nó hai chuỗi, tôi nhận được lỗi: Cannot find an overload for "GetOwner" and the argument count: "2".. Trang MSDN cho biết có hai tham số, vì vậy tôi không chắc mình đang làm gì sai.

Trả lời

9
$explorer = gwmi Win32_Process -computerName computerName -filter "Name='explorer.exe' and SessionID=0" 
$explorer.GetOwner() | select user,domain 
+0

ngọt! – spoulson

+1

Tôi sẽ cho bạn gấp đôi nếu tôi có thể. Đây là một cách tiếp cận tốt hơn, nhưng tiếc là không phù hợp với câu hỏi chính vì vậy tôi không thể chỉ định điều này làm câu trả lời được chấp nhận. – spoulson

+0

tôi có thể bị thiếu một cái gì đó nhưng chữ ký phương pháp không hiển thị tình trạng quá tải mà bạn đề cập: PS> $ explorer.GetOwner.OverloadDefinitions System.Management.ManagementBaseObject GetOwner() –

Các vấn đề liên quan