Question Recupere la version de powershell a distance

Plus d'informations
il y a 11 ans 6 mois #18099 par Demagalhaes
Bonjour à tous,
Relativement débutant en Powershell, je m'adresse à vous pour résoudre un problème.
J'aimerais déployer Powershell sur l'ensemble du parc de mon entreprise mais celui-ci est très hétéroclite (WS 2000, 2003 et 2008). C'est pourquoi j'aimerais faire un état des lieux préalable afin de voir quelle version est installée, si jamais elle est installée.
Evidemment, il y a la commande \"get-host\" que je pourrais envoyer via \"invoke-command\" mais cela implique que Powershell soit installé et que le PS-remoting soit enable.
Je pensais donc passer par un \"Get-wmiobject\" mais je ne trouve pas la commande adéquate afin de récupérer cette version de PS.
Auriez-vous une idée ?
Merci d'avance pour votre aide

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

Plus d'informations
il y a 11 ans 6 mois #18101 par Laurent Dardenne
Salut,
Hornet_57000 écrit:

Auriez-vous une idée ?

Cette approche me semble intéressante.
Tu trouveras ici les OS supportés par chaque version.

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 6 mois #18102 par Laurent Dardenne

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

Plus d'informations
il y a 11 ans 6 mois #18103 par Philippe
Bonjour Hornet_57000

un exemple de command DOS pour avoir la version de powershell :
[code:1]powershell -command \"$PSVersionTable\"
Hello World !

Name Value
----
CLRVersion 2.0.50727.5472
BuildVersion 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1[/code:1]
si tu a la reponse :

'powershell' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

tu sais ce que ca veux dire !!!

pour la requete a distance, j'utilise une fonction que j'ai trouver ici :
[code:1]function Process_cmd
{
Param($Target,$exec)

$random = get-random

#cmd to execute remotely
$cmd = \"cmd /c $exec > C:\$random.txt\"

#execute the cmd remotely
$processid = Invoke-WmiMethod -class Win32_process -name Create -ArgumentList $cmd -ComputerName $Target

#wait until the process is done
do { $resultprocess = Get-WmiObject win32_process -ComputerName $Target | where {$_.processid -eq $processid.processid }
sleep 1
} until ($resultprocess -eq $null)

#copy the log file into the script folder to get the content quickly
copy-item -path \\$Target\C$\$random.txt -destination .\

#get the log content create by the cmd
$result=Get-Content .\$random.txt -encoding ascii

#remove the log
remove-item \\$Target\C$\$random.txt
remove-item .\$random.txt

return $result
}
[/code:1]
c'est du WMI qui presque partout
un exemple d'utilisation :
[code:1]Process_cmd \"srv-fichiers\" 'powershell -command \"$PSVersionTable\"'[/code:1]

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

Plus d'informations
il y a 11 ans 6 mois #18104 par Laurent Dardenne
6ratgus écrit:

tu sais ce que ca veux dire !!!

Oui, bien que tu supposes que le path est correctement renseigné. Comme celle que j'ai proposé suppose que le service d'accès distant est en cours d'exécution.

En passant, $PSVersionTable n'existe pas sur la v1.

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 6 mois #18105 par Philippe
en faite il n'y a pas de solution unique.

powershell ne se retrouve pas non plus dans les programmes installer surtout depuis qui est intégré a OS.

il va falloir plusieurs test en fonction de l'OS de la version de powershell et peut être au chose encore !

option par la clé de registre semble bien.
du travail intéressent en vu ! et qui va m'intéressé !!<br><br>Message édité par: 6ratgus, à: 16/09/14 12:45

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

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