Comment les différences de version affectent-elles les commandes PowerShell sur des ordinateurs distants?

2

Les nouvelles versions de PowerShell viendront évidemment avec de nouvelles fonctionnalités et de nouvelles applets de commande. Il est important de prendre cela en considération lors de l'écriture de scripts ou des procédures pas à pas de PowerShell, qui peuvent être exécutés localement sur des systèmes dotés de différentes versions.

Un exemple simple serait Get-FileHash. Cette commande est nouvelle dans PowerShell 4.0 et ne sera disponible pour aucun système exécutant une version antérieure. Il ne sera notamment pas disponible sur les systèmes exécutant Windows 7 SP0 (ou Server 2008 R2 SP0) ou une version antérieure, car PowerShell 4.0 n'est pas du tout pris en charge sur ces systèmes.

Cependant, mis à part le simple fait de prendre en charge la version donnée de PowerShell, il convient d’examiner plus avant la version du système d’exploitation installée. Par exemple, Test-NetConnectionseule Windows 8.1 (ou Server 2012 R2) est actuellement (actuellement) disponible, quelle que soit la version de PowerShell installée sur un système exécutant un système d'exploitation antérieur.

Tout cela est assez simple pour les scripts ou les guides qui exécuteront des commandes PowerShell sur le système local - si le système local dispose des systèmes d'exploitation version A et PowerShell version B, vous pouvez utiliser (et ne pouvez utiliser que) les commandes prises en charge sur le système d'exploitation A avec PS B. Cependant, cela ne semble pas aussi simple ni clair dans les cas où un script s'adresse à un ordinateur distant pouvant exécuter une version différente du système d'exploitation ou de PowerShell.

Dans quelle mesure différentes versions de PowerShell affectent-elles les commandes exécutées sur des ordinateurs distants?

  • Si le système local exécute une version supérieure, les commandes / fonctionnalités les plus récentes seront-elles disponibles pour le système distant?
  • Si le système distant exécute une version supérieure, existe-t-il un moyen simple (et scriptable) d’exploiter les commandes / fonctionnalités les plus récentes lorsque le système local ne les prend pas en charge?
  • Existe-t-il des règles générales auxquelles on peut se rappeler pour savoir quels problèmes de compatibilité il faut s'attendre, ou s'agit-il de quelque chose qui varie beaucoup et doit être étudié / testé individuellement pour chaque commande ou fonctionnalité utilisée?
Iszi
la source

Réponses:

0

Les cmdlets ne seront disponibles que si elles se trouvent sur le système sur lequel vous exécutez actuellement PowerShell. Je viens de tester cela.

Par exemple, si vous êtes sur un serveur exécutant Windows Server 2012 R2 et si vous êtes distant d'un système exécutant Windows Server 2008 R2, vous ne pourrez pas exécuter les applets de commande uniquement disponibles sur 2012 R2. La complétion par tabulation ne fonctionnera pas et vous obtiendrez une erreur si vous essayez d'exécuter l'applet de commande (car elle n'est pas disponible).

Si vous vous éloignez de 2008 R2 à 2012 R2, vous pourrez utiliser les applets de commande disponibles sur 2012 R2. La complétion par onglet fonctionnera également.

Entbark
la source
Ok, cela semble assez logique pour les sessions à distance de PS. Qu'en est-il de l'utilisation des commandes à distance, par exemple avec le -Computerparamètre d'une console locale?
Iszi