現在、1 台のマシンの AD グループを取得して新しいマシンに転送できるADスクリプトを作成しています (システム障害の場合)。
スクリプトを実行して、ホスト名を介して 2 台のマシンが実行している Windows のバージョンを見つけることができましたが、Windows の 2 つのバージョンを比較するための「if」ステートメントの作成に問題があります。
アイデアは、同じバージョン (したがって同じパッケージ バージョン) の場合、グループは自動的にコピーされるということですが、私の人生ではそれを行う方法を理解することはできません。
このコードを検討してください:
function W_version_current
{
$current = Get-WmiObject Win32_OperatingSystem -computer $current_hostname.text | select buildnumber
if ($current -match '7601')
{
"Windows 7"
}
elseif($current -match '2600')
{
"Windows XP"
}
elseif($current -eq $null)
{
"The box is empty"
}
else
{
"Function not supported"
}
}
function W_version_target
{
$target = Get-WmiObject Win32_OperatingSystem -computer $target_hostname.text | select buildnumber
if ($var -match '7601')
{
"Windows 7"
}
elseif($target -match '2600')
{
"Windows XP"
}
elseif($target -eq $null)
{
"The box is empty"
}
else
{
"Function not supported"
}
}
function compare_current_target
{
if(W_version_current -eq W_version_target)
{
"Matching version of Windows detected"
}
else
{
"Versions of Windows do not match"
}
}
関数の外ではすべての変数にアクセスできないというのは本当ですか?
もしそうなら、他に何ができますか?