À l'aide de PowerShell "Si", déclaration à la fonction de comparaison (version Windows)
Je suis actuellement à la création d'un AD de script que vous pouvez obtenir de l'ANNONCE des groupes d'une machine et de les transférer à une nouvelle machine (en cas de panne du système).
J'ai réussi à obtenir le script de sortir et de trouver la version de Windows que les deux machines sont en cours d'exécution par l'intermédiaire de leur hôte, cependant, je vais avoir un problème de création d'un " si " déclaration de comparer les deux versions de Windows.
L'idée est que si les sont de la même version (et donc la même version de package) les groupes seront copiés automatiquement, mais je ne peux pas pour la vie de me comprendre comment le faire.
Veuillez considérer ce 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"
}
}
Maintenant, il est vrai que toutes les variables ne sont pas accessibles à l'extérieur de fonctions?
Si oui, que puis-je faire?
Vous devez vous connecter pour publier un commentaire.
Probablement ce qu'il vous manque, c'est qu'avec PowerShell ordre des opérations, vous avez souvent à mettre des appels de fonction entre parenthèses.
Essayez plutôt ceci:
Pour répondre à votre question, portée en PowerShell fonctionne à peu près comme la plupart des autres langages de script, par exemple, les variables déclarées dans les fonctions ne peuvent pas être utilisés en dehors des fonctions qu'elles ont été déclarées, sauf si vous déclarez comme global, qui vous pouvez le faire comme ceci:
Vous pouvez ensuite utiliser la variable
$x
n'importe où, ou si vous le souhaitez,$global:x
, et il aura la valeur de"hi"
.