Question
erreur sur else
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 31
- Remerciements reçus 0
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
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.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 31
- Remerciements reçus 0
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: (
+ FullyQualifiedErrorId : PSSessionStateBroken
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
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.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 31
- Remerciements reçus 0
[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 \"Le controleur de domaine $($dc.name) est joignable\">>toto.txt
}
else{
Write-Output \"Le controleur de domaine $($dc.name) n'est pas joignable\">>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(\"192.168.1.10\"«»)
$DNSResult.HostName
# Résolution par le nom
$DNSResult = [System.Net.Dns]::GetHostByName(\"MonServeur\"«»)
$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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
- Messages : 968
- Remerciements reçus 0
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> 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.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- erreur sur else