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"
您的ISE会话是否以管理员身份运行? – TheIncorrigible1
是的。我需要使用另一种方法调用远程脚本吗?我正在使用Azure自动化来远程执行,因此应该以Admin身份运行,对吗? – Kode
您是否使用相同凭据创建远程会话?你使用'PSSession'还是其他一些方法? – TheIncorrigible1