我目前正在创建一个AD脚本,它可以获取一台机器的 AD 组并将它们传输到新机器(以防系统故障)。
我已经设法让脚本通过它们的主机名找到两台机器正在运行的 Windows 版本,但是我在创建“if”语句来比较两个版本的 Windows 时遇到问题。
这个想法是,如果它们是相同的版本(因此是相同的包版本),这些组将被自动复制,但我一生都无法弄清楚如何去做。
请考虑以下代码:
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"
}
}
现在真的不能在函数之外访问所有变量吗?
如果是这样,我还能做什么?