Question erreur sur else

Plus d'informations
il y a 13 ans 10 mois #12151 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
par contre petite question

si après le Write-Output dans la boucle if
je rajoute une commande pour lister les service de mes CD ça va marcher car j'ai l'impression qu'il me liste mes propre service à chaque fois et pas ceux des CD

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12156 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:erreur sur else
pulx3369 écrit:

j'ai ma réponse merci ça fonctionne nickel par contre quand je l'exécute depuis mon fichier ps1 ça me fait tous bien ça m'ouvre mes fenêtre et puis ça me les ferme à la fin du scripte ses normale?


Exécutes tu le script depuis la console ou via un clique droit sur le script \"Exécuter avec powershell\" ?

par contre petite question
si après le Write-Output dans la boucle if
je rajoute une commande pour lister les service de mes CD ça va marcher car j'ai l'impression qu'il me liste mes propre service à chaque fois et pas ceux des CD


Post ton script... Ca sera aussi simple pour t'aider.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12172 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
alors les voici j'ai rajouter aprés le write Write-Output

Invoke-Command -credential (get-credential) -computername 192.168.26.200 -scriptblock {$mescommandes}

ça m'ouvre une fenétre de connexion car je suis sur le client je rentre mon login admin sur le serveur et ça m'affiche un message d'erreur


[192.168.26.200] La connexion au serveur distant a échoué avec le message d'erreur suivant : Le client WinRM ne peut pa
s traiter la demande. L'authentification par défaut peut être utilisée avec une adresse IP dans les conditions suivante
s : le transport est HTTPS ou la destination se trouve dans la liste TrustedHosts, et des informations d'identification
explicites sont fournies. Utilisez winrm.cmd pour configurer TrustedHosts. Notez que les ordinateurs dans la liste Tru
stedHosts ne sont peut-être pas authentifiés. Pour plus d'informations sur la configuration de TrustedHosts, exécutez l
a commande suivante : winrm help config. Pour plus d'informations, voir la rubrique d'aide about_Remote_Troubleshooting
.
+ CategoryInfo : OpenError: (:) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionStateBroken

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12173 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:erreur sur else
Un peu de lecture :

Le Cmdlet Invoke-Command a besoin que le Remoting soit activé sur le serveur spécifié par '-ComputerName'.

Dans la console PowerShell, saisir :

[code:1]Get-Help about_remote[/code:1]

Cette aide est également accessible en ligne .

MSDN - About Windows Remote Management

Administrator's Guide to Windows PowerShell Remoting

Mise en œuvre rapide de WINRM

What is WinRM ? <br><br>Message édité par: Matthew BETTON, à: 23/06/12 10:04

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12176 par pulx
Réponse de pulx sur le sujet Re:erreur sur else
Matthew BETTON écrit:

[code:1]$ping = new-object System.Net.Networkinformation.Ping
[/code:1]


Tu ne te sers pas de l'objet $ping dans ton code : cette ligne ne sert à rien.

A la lecture de ce code :

[code:1]If (Test-Connection -computer $dc -Count 1 -quiet){[/code:1]


le ping est réalisé via le paramétre computer. Comme tu spécifie la valeur $dc, il s'agit de la liste de tous les DC. La commande Test-Connection va donc transmettre 1 ping vers tous les DC avant que la condition ne soit remplie...

Utilises donc une boucle foreach pour effectuer un traitement sur chacun des DC :

[code:1]$objDomain=[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

$dclist = $objDomain.FindAllDomainControllers() | Select-Object Name,IpAddress |sort name

Foreach($dc in $dclist){
If (Test-Connection -computer $dc.ipaddress -Count 1 -quiet){
Write-Output \&quot;Le controleur de domaine $($dc.name) est joignable\&quot;&gt;&gt;toto.txt
}
else{
Write-Output \&quot;Le controleur de domaine $($dc.name) n'est pas joignable\&quot;&gt;&gt;toto.txt
}
}[/code:1]

Enfin, pour répondre aux questions concernant la résolution de nom via le DNS, une solution consiste à passer par la classe .Net 'System.Net.DNS'.

Exemples :


[code:1]# Résolution par l'adresse IP
$DNSResult = [System.Net.Dns]::GetHostByAddress(\&quot;192.168.1.10\&quot;«»)
$DNSResult.HostName

# Résolution par le nom
$DNSResult = [System.Net.Dns]::GetHostByName(\&quot;MonServeur\&quot;«»)
$DNSResult.AddressList[/code:1]



quand on fait ses commandes si le DC ne ping pas il me met une erreur dans la console mais il ne rentre pas dans mon else

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 10 mois #12177 par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:erreur sur else
pulx3369 écrit:

quand on fait ses commandes si le DC ne ping pas il me met une erreur dans la console mais il ne rentre pas dans mon else


Quelles commandes ?

Quel message d'erreur ?

Quand je fais ce test, cela fonctionne :

[code:1]PS&gt; Test-Connection -ComputerName toto -count 1 -Quiet
False[/code:1]

La commande me renvoie bien la valeur False, le passage dans le bloc else ne doit donc pas poser de problème.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.047 secondes
Propulsé par Kunena