Gọi hàm WMI PowerShell với nhiều biến [đã đóng]


0

Tôi muốn gọi một phương thức WMI lấy một chuỗi làm đầu vào, một số nguyên làm đầu vào và một số nguyên làm đầu ra.

Dưới đây là ví dụ hiện tại:

$obj=Get-WmiObject -class "class1" -namespace "space1" $obj| Invoke-wmiMethod -name fun -ArgumentList $devUUID , $role , $status

1
Bạn nên cung cấp một mẫu về những gì bạn hy vọng sẽ sử dụng / làm và tại sao nó không hoạt động. Ngoài ra, luôn luôn tìm kiếm và xem các bài viết hiện có ngoài đó giải thích cách thực hiện, ví dụ như kết quả google đầu tiên này: technet.microsoft.com/en-us/l Library / eee176860.aspx
Abraxas

$ obj = Get-WmiObject-class "class1" -namespace "space1" $ obj | Invoke-wmiMethod -name fun -ArgumentList $ devUUID, $ vai trò, $ status
Chaianu Kumar

và không cần tên người khiếu nại vì tôi đang làm việc trên máy chủ hiện tại
Chaianu Kumar

$ obj = Get-WmiObject-class "class1" -namespace "space1" $ obj | Invoke-wmiMethod -name fun -ArgumentList $ devUUID, $ vai trò, $ status
Chaianu Kumar

Bạn có một ví dụ, nhưng không rõ đây là gì hoặc nó liên quan như thế nào. Có phải mã mẫu bạn tìm thấy ở đâu đó? Nếu đây là những gì bạn đang cố gắng sử dụng và nó không mang lại cho bạn những gì bạn muốn? Nếu vậy, kết quả nào bạn muốn, mã này cung cấp cho bạn những gì và kết quả không thỏa đáng như thế nào?
fixer1234

Câu trả lời:


2

Chính xác thì bạn đang cố gắng đạt được điều gì ở đây?

Một Get-WMIObject đơn giản và một vài Máy chủ lưu trữ sẽ làm những gì bạn cần nó:

$className = Read-Host "Enter Class Name"
$computerName = Read-Host "Enter Computer Name"
if ([string]::IsNullOrWhitespace($computerName)) {
    $computerName = "."
}

Get-WmiObject -ComputerName $computerName -Class $className

Kiểm tra thêm một chút lỗi để bạn không cố kiểm tra tên lớp không hợp lệ, v.v. và bạn nên đi. Ví dụ dưới đây: nhập mô tả hình ảnh ở đây


Bạn cũng có thể liên kết bên trong một chuỗi lệnh như vậy:

Get-WMIObject -Class ($string1 + "32" + "_" + $string2) -ComputerName "."

(trong trường hợp này, $ string1 chứa "WIN" và $ string2 chứa "BIOS")

Những thứ trong ngoặc được xử lý trước khi nó là lệnh cha. Bạn thậm chí có thể đi sâu hơn và thực hiện các dấu ngoặc trong ngoặc .. PowerShell sẽ bắt đầu ở mức sâu nhất và thực hiện theo cách đó cho đến khi nó chạm vào lệnh cha và sau đó thực hiện các chuỗi được tính toán đầy đủ.


bạn không gặp phải vấn đề thực sự nào
Chaianu Kumar

Tôi gặp vấn đề trong việc chuyển nhiều đối số đầu vào nhưng bạn chưa thảo luận về vấn đề này
Chaianu Kumar

Vấn đề thực tế là gì? Cung cấp một ví dụ
Smeerpijp

[chuỗi] $ UUID = "mpx.msbha0: C2: T0: L0" [int] $ vai = 0 $ wmiConnection = [WMICLASS] "root \ wmi: my class" $ methodParameter = $ wmiConnection.psbase.getmethod )
Chaianu Kumar

'[chuỗi] $ UUID = "mpx.msbha0: C2: T0: L0"' '[int] $ vai trò = 0' '$ wmiConnection = [WMICLASS] "root \ wmi: my class"' '$ methodParameter = $ wmiConnection. psbase.getmethodsparameter ("Myfactor") '' $ methodParameter.UUID = $ UUID '' $ methodParameter.role = $ vai trò '' $ wmiconnection.psbase.invokeMethod ("Myfeft", $ methodPar Ngoại lệ gọi InvokeMethod với 3 đối số: "Tham số phương thức không hợp lệ"
Chaianu Kumar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.