2016-11-14 2 views
0

Pour faire court, je veux me connecter à un serveur qui exécute les machines virtuelles, puis obtenir une liste de toutes les machines installées, la commande que j'utilise pour cela est:Powershell: attente pour le répertoire changé

Invoke-Command -ScriptBlock {enter-pssession -ComputerName <name>}; Invoke-Command -ScriptBlock {Get-VM} | select-Object -Property name 

cette ligne contient deux commandes au premier:

Invoke-Command -ScriptBlock {enter-pssession -ComputerName <name>}; 

cette partie se connecte au serveur, et ensuite:

Invoke-Command -ScriptBlock {Get-VM} | select-Object -Property name 

Cette commande obtient la liste des machines virtuelles actuellement sur le serveur et renvoie des propriétés spécifiques de ces serveurs. Toutefois, étant donné que la connexion a besoin de peu de temps pour être configurée, la commande "get-vm" est toujours définie dans la direction précédente et génère un rapport d'erreur.

Je veux savoir s'il existe un moyen d'attendre la fin d'une commande ou une modification dans le répertoire, sans qu'une boucle supplémentaire ne soit exécutée pendant ce temps, ou en attente d'une heure fixe.

+0

start-sleep 5 ?? – 4c74356b41

+0

@ 4c74356b41 Il a précisé qu'il cherchait une solution qui n'attend pas "un temps fixe" – user2121604

Répondre

1

Je ne sais pas pourquoi essayez-vous de faire ce que vous essayez de faire, ce que vous devez faire est:

Invoke-Command -SessionName (ou -ComputerName) -ScriptBlock {Get-VM | Select-Object -Nom de propriété}

+0

Cette partie est déjà incluse, je mets à jour ma question pour clarifier ce que j'essaie de faire. – Etaila

+1

Non, vous exécutez plusieurs invoke-command, mais vous ne devez l'exécuter qu'une seule fois, comme dans la réponse. pourquoi faites-vous '' Invoke-Command -ScriptBlock {entrée-pssession -ComputerName }; '', cela n'a pas de sens – 4c74356b41

+0

Je suis désolé, je viens de voir que votre commande était une commande Get-VM directe sur le serveur du répertoire en cours, j'ai essayé de changer de répertoire dans le répertoire des machines virtuelles sur le serveur, puis j'utilise get-vm. Je vais maintenant faire l'inverse. – Etaila