O que exatamente você está tentando alcançar aqui?
Um simples Get-WMIObject e alguns hosts de leitura devem fazer o que você precisa para:
$className = Read-Host "Enter Class Name"
$computerName = Read-Host "Enter Computer Name"
if ([string]::IsNullOrWhitespace($computerName)) {
$computerName = "."
}
Get-WmiObject -ComputerName $computerName -Class $className
Enfie um pouco de verificação de erros extra para que você não esteja tentando verificar um nome de classe inválido, etc., e você deve estar pronto. Exemplo abaixo:
Vocêtambémpodeconterasstringsdecomandodaseguinteforma:
Get-WMIObject-Class($string1+"32" + "_" + $string2) -ComputerName "."
(neste caso, $ string1 contém "WIN" e $ string2 contém "BIOS")
As coisas entre colchetes são processadas antes do comando pai. Você pode até mesmo aprofundar e fazer colchetes entre parênteses. O PowerShell será iniciado no nível mais profundo e funcionará até que ele atinja o comando pai e, em seguida, execute as strings totalmente calculadas.