2009-05-04 7 views
30

Pracuję nad skryptem, który rozpocznie się w PowerShell. Próbuję przekonwertować working VBScript script, który wylicza zmapowane dyski sieciowe na zdalnym komputerze z systemem Windows.Jak wywołać metodę z parametrami wyjściowymi w PowerShell?

Jednym z zadań jest użycie zdalnego WMI do odczytu rejestru i znalezienia właściciela procesu explorer.exe w celu ustalenia, kto jest zalogowany. Wydaje się, że jest to łatwe dzięki this guide.

Jednak metoda WMI, którą muszę wywołać, to GetOwner() from Win32_Process, która wymaga dwóch parametrów wyjściowych do przechowywania wartości zwracanej.

Jak mogę wywołać metodę z parametrami wyjściowymi? Kiedy próbuję podać dwa ciągi, pojawia się błąd: Cannot find an overload for "GetOwner" and the argument count: "2".. Strona MSDN mówi, że są dwa parametry, więc nie jestem pewien, co robię źle.

Odpowiedz

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

słodkie! – spoulson

+1

Dałbym ci podwójne recenzje, gdybym mógł. To jest lepsze podejście, ale niestety nie pasuje do głównego pytania, więc nie mogę przypisać tego jako zaakceptowanej odpowiedzi. – spoulson

+0

I może być czegoś brakuje, ale podpis metody nie wykazuje przeciążenie Państwo wymienić: PS> $ explorer.GetOwner.OverloadDefinitions System.Management.ManagementBaseObject GetOwner() –