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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich das, was du bist fehlt, ist, dass mit PowerShell, um die Operationen, Sie müssen oft Funktionsaufrufe in Klammern.
Versuchen Sie dies:
Ihre Frage zu beantworten, Umfang in der PowerShell funktioniert sehr viel wie die meisten anderen scripting-Sprachen, z.B. deklarierte Variablen in Funktionen können nicht verwendet werden außerhalb von Funktionen deklariert waren, es sei denn, Sie deklarieren Sie als Globale, die Sie tun können, etwa so:
Dann können Sie die variable
$x
überall, oder wenn Sie möchten, können$global:x
, und es wird der Wert"hi"
.