Mithilfe von PowerShell - 'If' - Anweisung zu vergleichen-Funktion (Windows-version)

Ich bin derzeit auf der Erstellung eines AD Skript, das können die AD-Gruppen von einem Computer und übertragen Sie Sie auf eine neue Maschine (bei einem Systemfehler).

Habe ich es geschafft, das Skript zu gehen und finden Sie die Versionen von Windows, dass die beiden Maschinen ausgeführt werden, über deren Hostnamen, aber ich habe ein problem mit der Erstellung einer 'if' Anweisung zum vergleichen von zwei Versionen von Windows.

Die Idee ist, dass, wenn Sie die gleiche version (und damit die gleiche Paket-version) die Gruppen werden automatisch mit kopiert, aber ich kann nicht für das Leben von mir herauszufinden, wie es zu tun.

Bitte betrachten Sie diesen code:

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"
    }
}

Nun ist es wahr, dass alle Variablen kann nicht zugegriffen werden außerhalb von Funktionen?

Wenn ja, was kann ich sonst noch tun?

InformationsquelleAutor obious | 2012-04-19
Schreibe einen Kommentar