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:
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 đủ.