J'ai développé un script PowerShell qui installe Java Server JRE et enregistre les variables d'environnement. Cela fonctionne quand je l'exécute via PowerShell ISE mais échoue si j'essaie d'exécuter le PowerShell à distance. Je l'exécute à distance en attachant le script en tant que CSE à la machine virtuelle souhaitée via Azure Automation.Java Server JRE ne pas enregistrer via l'installation PowerShell à distance. Fonctionne avec PowerShell ISE
La partie étrange est que l'installation PowerShell à distance montre les variables d'environnement. Si j'ouvre l'interface utilisateur graphique des variables d'environnement/l'enregistre puis l'édite et la sauvegarde dans le bon chemin, elle commence à fonctionner (par exemple éditer et ajouter un \ bin et sauvegarder, éditer et supprimer \ bin et sauvegarder). Via l'exécution PowerShell ISE locale de mon script, je n'ai pas à faire cela, ça marche. Suis-je manquer une sorte d'étape d'enregistrement pour obtenir le Java Server JRE.
$solrPath = "C:\Solr"
# Get Zip file containing Java Server JRE from CDN
Invoke-WebRequest -Uri 'http://mycdn.com/Solr/Downloads/jdk1.8.0_144.zip' -OutFile C:\mydir\java.zip
Write-Output "Java Server JRE Zip file downloaded from CDN"
# Unzip Java Server JRE Directory
Expand-Archive -Path C:\mydir\java.zip -DestinationPath $solrPath -Force
Write-Output "Java Server JRE Zip file extracted"
# Set Java Path and Home Environmental Variables
# Add the PATH environment variable to point to the Java Directory Bin
$oldpath = (Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH).path
$newpath = “$oldpath;$solrPath\jdk1.8.0_144\jre\bin”
Set-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH –Value $newpath
$donepath = (Get-ItemProperty -Path ‘Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment’ -Name PATH).path
Write-host "Validation; new value set to $donepath"
Votre session ISE est-elle exécutée en tant qu'administrateur? – TheIncorrigible1
Oui c'est. Existe-t-il une méthode différente pour appeler mon script distant? J'utilise Azure Automation pour exécuter à distance, donc cela devrait fonctionner en tant qu'administrateur, correct? – Kode
Créez-vous la session à distance avec les mêmes informations d'identification? Utilisez-vous 'PSSession' ou une autre méthode? – TheIncorrigible1