2017-10-20 25 views
1

Je veux avoir un script If/Else qui peut écrire une sortie dans une variable que j'utiliserai plus tard dans le script.Powershell écrit l'instruction IF dans une variable

Voici ce que j'ai:

if (!(Get-Module -ListAvailable -Name servermanager)) { 
    Import-Module servermanager 
} 

$WinFeat = Get-WindowsFeature -Name telnet-client | Where installed 
if ($WinFeat -EQ $null) { 
    Add-WindowsFeature telnet-client 
} 

Essentiellement, je pensais que je pouvais faire quelque chose comme ceci:

if (!(Get-Module -ListAvailable -Name servermanager)) { 
    Import-Module servermanager 
} else { 
    $alreadyModule 
} 

$WinFeat = Get-WindowsFeature -Name telnet-client | Where installed 
if ($WinFeat -EQ $null) { 
    Add-WindowsFeature telnet-client 
} else { 
    $alreadyFeature 
} 

if (($alreadyModule) -and ($alreadyFeature) {Write-Host "STUFF INSTALLED"} 

Ce « truc » sera utilisé dans un stdout que je vais alors utiliser dans un Playbook Ansible. Donc, essentiellement, je veux dire SI c'est déjà installé, ET qu'il est déjà installé, alors écrire STUFF INSTALLED pour être utilisé dans Ansible ... mais je n'arrive pas à comprendre comment écrire une variable sans cela premier à commencer par:

$alreadyModule = .... 
$alreadyFeature = .... 

Toute aide serait grandement appréciée.

+2

'$ alreadyFeature = (Get-WindowsFeature telnet-client -Nom) .Installed'? –

Répondre

1

Merci Ansgar, je l'ai compris le vôtre et venir avec:

if (!(Get-Module -ListAvailable -Name servermanager)) { 
    Import-Module servermanager 
} else { 
    $alreadyModule = (Get-Module -ListAvailable -Name servermanager) 
} 


$WinFeat = Get-WindowsFeature -Name telnet-client | Where installed 
if ($WinFeat -EQ $null) { 
    Add-WindowsFeature telnet-client 
} else { 
    $alreadyFeature = (Get-WindowsFeature -Name telnet-client).Installed 
} 

if (($alreadyFeature) -and ($alreadyModule)) {Write-Host "STUFF INSTALLED"}