これが私のコードです:
function Get-OSInfo {
param([string]$Computer)
$OS = gwmi -class Win32_OperatingSystem -computer $Computer
$OS | Add-Member –MemberType NoteProperty –Name OSType –Value ""
$OS.OSType = Get-OSType -Input $OS
write $OS
}
function Get-OSType {
param([?]$Input)
if ($Input.ProductType -eq 1) {
write "Client OS"
}
}
$blah = Get-OSInfo -Computer mypc
$blah | fl *
これは単一の関数(またはスクリプト自体の本体)で実行できることを認識していますが、私が抱えている問題を強調するために関数を簡略化しました。私がやりたいのは、Get-OSInfo関数からgwmiデータセットをGet-OSTypeのパラメーター変数として渡すことです。これにより、最初の関数から個別に渡すことなく、2番目の関数でそのすべてのプロパティを参照できます。泥のように澄んでいますか?
複数のパラメータアクセラレータタイプ、、、などを試し[ref]
まし[array]
た[object[]]
が、パラメータとして機能するものは見つかりませんでした。動作することが証明されている唯一のことは、入力を受け入れるために使用する2番目の関数を変更することargs[0]
ですが、これはパラメーターを使用するほどクリーンではなく、動作するため、次のように動作する必要があるパラメーターがあると思わずにはいられません。良い。