2017-08-17 79 views
2

我开发了一个安装Java Server JRE并注册环境变量的PowerShell脚本。它在我通过PowerShell ISE运行时起作用,但如果我尝试远程执行PowerShell,则会失败。我通过Azure自动化将脚本作为CSE附加到所需的VM来远程执行。Java服务器JRE未通过远程PowerShell安装注册。使用PowerShell ISE

奇怪的部分是远程PowerShell安装显示环境变量。如果我打开环境变量GUI编辑/保存,然后编辑并保存回正确的路径开始工作(例如编辑并添加\ bin并保存,编辑和删除\ bin并保存)。通过脚本的本地PowerShell ISE执行,我不必这样做,它就可以工作。我是否缺少某种注册步骤来获取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" 
+0

您的ISE会话是否以管理员身份运行? – TheIncorrigible1

+0

是的。我需要使用另一种方法调用远程脚本吗?我正在使用Azure自动化来远程执行,因此应该以Admin身份运行,对吗? – Kode

+0

您是否使用相同凭据创建远程会话?你使用'PSSession'还是其他一些方法? – TheIncorrigible1

回答

0

它最终成为我的脚本的另一部分的问题。一旦我纠正了这一点,Java就能正确安装。

相关问题