-
-
Save xbb/4fd651c2493ad9284dbcb827dc8886d6 to your computer and use it in GitHub Desktop.
Use this as an example on how to start the virtual console without the need of Java Web Start or accessing it from the web interface. | |
You can use the user and password that you use for the web interface. | |
You need an old JRE... I used 1.7.0_80 from the Server JRE package, also I have tested successfully 1.7.0_79 with MacOS. | |
You don't need to install it, just extract it or copy the files in "jre" folder. | |
Open the viewer.jnlp file that you get by launching the virtual console from the web interface with a text editor. | |
Note the urls to the jar files. Download the main jar file avctKVM.jar and the libs for your operating system and architecture. | |
Extract the dlls (.so Linux, .jnilib MacOS) from the jar libs. | |
If you don't see the MacOS libs in the file make sure you download it from MacOS. | |
Edit the bat/sh file according to your needs. | |
The file structure should look like this: | |
start-virtual-console.bat (.sh if Linux/MacOS) | |
avctKVM.jar | |
jre/<jre home here> | |
lib/avctKVMIO.dll (.so if Linux, .jnilib if MacOS) | |
lib/avmWinLib.dll (.so if Linux, .jnilib if MacOS) |
@echo off | |
set /P drachost="Host: " | |
set /p dracuser="Username: " | |
set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^ | |
$BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^ | |
[System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"" | |
for /f "usebackq delims=" %%p in (`%psCommand%`) do set dracpwd=%%p | |
.\jre\bin\java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% kmport=5900 vport=5900 user=%dracuser% passwd=%dracpwd% apcp=1 version=2 vmprivilege=true "helpurl=https://%drachost%:443/help/contents.html" |
#!/bin/bash | |
echo -n 'Host: ' | |
read drachost | |
echo -n 'Username: ' | |
read dracuser | |
echo -n 'Password: ' | |
read -s dracpwd | |
echo | |
./jre/bin/java -cp avctKVM.jar -Djava.library.path=./lib com.avocent.idrac.kvm.Main ip=$drachost kmport=5900 vport=5900 user=$dracuser passwd=$dracpwd apcp=1 version=2 vmprivilege=true "helpurl=https://$drachost:443/help/contents.html" |
Worked perfectly when I could not access with JNLP. Legend.
@j0mbie:
i did everything like you described but i get following error:
can you help me please?
thanks in advance!
Here is my batch file for windows 10 (64-bit, but easily changed for 32-bit)... it automatically downloads the jar files and unzips the .dll files if they don't exist so it can use the native dll libraries:
Also, keep in mind if you still have to update the java settings to allow the older TLS to work:
Java location .\jre\lib\security\java.security
Remove SSLv3 and 3DES_EDE_CBC from jdk.tls.disabledAlgorithms, should end up like so:
jdk.tls.disabledAlgorithms=RC4, MD5withRSA, DH keySize < 1024,
EC keySize < 224, DES40_CBC, RC4_40@echo off set /P drachost="Host: " set /p dracuser="Username: " set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^ $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^ [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"" for /f "usebackq delims=" %%p in (`%psCommand%`) do set dracpwd=%%p IF NOT EXIST "avctKVM.jar" ( ECHO Grabbing avctKVM.jar from host... powershell -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; $WebClient = New-Object System.Net.WebClient ; $WebClient.DownloadFile('https://%drachost%/software/avctKVM.jar','.\avctKVM.jar')" ) IF NOT EXIST "lib" ( ECHO Creating lib directory mkdir "lib" ) IF NOT EXIST ".\lib\avmWinLib.dll" ( IF NOT EXIST ".\lib\avctVMWin64.zip" ( IF NOT EXIST ".\lib\avctVMWin64.jar" ( ECHO Grabbing avctKVMWin64.jar from host... powershell -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; $WebClient = New-Object System.Net.WebClient ; $WebClient.DownloadFile('https://%drachost%/software/avctVMWin64.jar','.\lib\avctVMWin64.jar')" ) ECHO Renaming avctVMWin64.jar to avctVMWin64.zip rename ".\lib\avctVMWin64.jar" avctVMWin64.zip ) ECHO Unzipping avctKVMWin64.zip powershell Expand-Archive ".\lib\avctVMWin64.zip" -DestinationPath ".\lib" rmdir ".\lib\META-INF" /s /q erase ".\lib\avctVMWin64.zip" /q ) IF NOT EXIST ".\lib\avctKVMIO.dll" ( IF NOT EXIST ".\lib\avctKVMIOWin64.zip" ( IF NOT EXIST ".\lib\avctKVMIOWin64.jar" ( ECHO Grabbing avctKVMIOWin64.jar from host... powershell -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; $WebClient = New-Object System.Net.WebClient ; $WebClient.DownloadFile('https://%drachost%/software/avctKVMIOWin64.jar','.\lib\avctKVMIOWin64.jar')" ) ECHO Renaming avctKVMIOWin64.jar to avctKVMIOWin64.zip rename ".\lib\avctKVMIOWin64.jar" avctKVMIOWin64.zip ) ECHO Unzipping avctKVMIOWin64.zip powershell Expand-Archive ".\lib\avctKVMIOWin64.zip" -DestinationPath ".\lib" rmdir ".\lib\META-INF" /s /q erase ".\lib\avctKVMIOWin64.zip" /q ) java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% kmport=5900 vport=5900 user=%dracuser% passwd=%dracpwd% apcp=1 version=2 vmprivilege=true "helpurl=https://%drachost%:443/help/contents.html"
You saved me, this is awesome. Thanks
A thousand thank yous! Finally a solution. I'll mop up the blood, sweat and tears and move on with my life.
worked for me ! many thanks you saved my ass ! its a shame for java and dell we have to do all that to use their sh**ty products !
Cool, this help me to access my Dell R620 from my Mac OS.
Finally it is worked on Windows 10. Thank you very much guys :) Specially thank you to @j0mbie
Hey, thank you very much for your script.
It did not work for a DELL PowerEdge R715 out of the box, but I made it work with the following adaptation:
#!/bin/bash
echo -n 'Host: '
read drachost
echo -n 'Username: '
read dracuser
echo -n 'Password: '
read -s dracpwd
echo
JRE="$HOME/jre-7u79/jdk1.7.0_79/"
$JRE/jre/bin/java \
-cp $JRE/lib:$JRE/jre/lib:$JRE/lib/avctKVM.jar:$JRE/lib/avctVMLinux64.jar:$JRE/lib/avctKVMIOLinux64.jar \
-Djava.library.path=$JRE/lib \
com.avocent.idrac.kvm.Main \
ip=$drachost \
user=$dracuser \
passwd=$dracpwd \
kmport=4900 vport=4900 \
apcp=1 version=2 vmprivilege=true \
"helpurl=https://$drachost:443/help/contents.html"
As you can see, the kmport and vport are 4900 on my server, not 5900. I got that information out of the jnlp file.
It complained about the native IO lib not working, but keyboard worked just fine despite that complaint.
12/17/2020 02:28:18:947: User login response: 0
Failed to open video connection.
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at com.avocent.kvm.b.l.a(Unknown Source)
at com.avocent.kvm.b.l.b(Unknown Source)
at com.avocent.kvm.b.r.z(Unknown Source)
at com.avocent.kvm.b.n.a(Unknown Source)
at com.avocent.kvm.b.n.a(Unknown Source)
at com.avocent.kvm.b.y.run(Unknown Source)
Getting that by running the script :|
12/17/2020 02:28:18:947: User login response: 0
Failed to open video connection.
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at com.avocent.kvm.b.l.a(Unknown Source)
at com.avocent.kvm.b.l.b(Unknown Source)
at com.avocent.kvm.b.r.z(Unknown Source)
at com.avocent.kvm.b.n.a(Unknown Source)
at com.avocent.kvm.b.n.a(Unknown Source)
at com.avocent.kvm.b.y.run(Unknown Source)Getting that by running the script :|
It is refusing the connection, i'm sure you see that. There isn't much to gain from the error message. I would suggest checking your firewall settings. Or find out why that port if refusing the connection otherwise. It looks like a configuration issue not the software.
12/17/2020 02:28:18:947: User login response: 0
Failed to open video connection.
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.(Unknown Source)
at java.net.Socket.(Unknown Source)
at com.avocent.kvm.b.l.a(Unknown Source)
at com.avocent.kvm.b.l.b(Unknown Source)
at com.avocent.kvm.b.r.z(Unknown Source)
at com.avocent.kvm.b.n.a(Unknown Source)
at com.avocent.kvm.b.n.a(Unknown Source)
at com.avocent.kvm.b.y.run(Unknown Source)
Getting that by running the script :|It is refusing the connection, i'm sure you see that. There isn't much to gain from the error message. I would suggest checking your firewall settings. Or find out why that port if refusing the connection otherwise. It looks like a configuration issue not the software.
I have no firewall between my pc and my server...
I used another script from GitHub, and it worked for me, don't know if it relies on my IDrac6 Version...
But thanks for your fast Answer 👍
Post your version of Java to make sure you are using the right one and maybe someone else has an idea for you.
12/17/2020 02:28:18:947: User login response: 0
Failed to open video connection.
java.net.ConnectException: Connection refused: connect
I have no firewall between my pc and my server...
I had this, too, because my server listens on a different port. Got the correct one out of the jnlp file.
Thanks for your replies, i think the script has a section were the session between idrac and pc gets started.
I only copied the Java Command because I like to use the script without Input, i know it's not secure but it's only a trashy testserver :)
Hi!
I'd like to make a big Thanks!
The method works for me with an iDRAC7 on a T320. The only thing I had to change to make it work with iDRAC7 are the arguments passed to java.exe, which should be the ones listed in the lines in the .jnlp.
My command line for iDRAC7 is below. In particular, if I omit reconnect=2, the console stays in "Reconnecting..." state, then times out.
bin\java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% vm=1 title=idrac-%2C+PowerEdge+T320%2C+User%3A+root user=%dracuser% passwd=%dracpwd% kmport=5900 vport=5900 apcp=1 reconnect=2 chat=1 F1=1 custom=0 scaling=15 minwinheight=100 minwinwidth=100 videoborder=0 version=2 "helpurl=https://%drachost%:443/help/contents.html"
@j0mbie Thank you so much for writing that all out. Worked like a charm.
thanks for this, followed the instructions and worked perfectly on win10 64 latest.
Thank you! Works like a charm.
Here is my batch file for windows 10 (64-bit, but easily changed for 32-bit)... it automatically downloads the jar files and unzips the .dll files if they don't exist so it can use the native dll libraries:
Also, keep in mind if you still have to update the java settings to allow the older TLS to work:
Java location .\jre\lib\security\java.security
Remove SSLv3 and 3DES_EDE_CBC from jdk.tls.disabledAlgorithms, should end up like so:
jdk.tls.disabledAlgorithms=RC4, MD5withRSA, DH keySize < 1024,
EC keySize < 224, DES40_CBC, RC4_40@echo off set /P drachost="Host: " set /p dracuser="Username: " set "psCommand=powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; ^ $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); ^ [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"" for /f "usebackq delims=" %%p in (`%psCommand%`) do set dracpwd=%%p IF NOT EXIST "avctKVM.jar" ( ECHO Grabbing avctKVM.jar from host... powershell -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; $WebClient = New-Object System.Net.WebClient ; $WebClient.DownloadFile('https://%drachost%/software/avctKVM.jar','.\avctKVM.jar')" ) IF NOT EXIST "lib" ( ECHO Creating lib directory mkdir "lib" ) IF NOT EXIST ".\lib\avmWinLib.dll" ( IF NOT EXIST ".\lib\avctVMWin64.zip" ( IF NOT EXIST ".\lib\avctVMWin64.jar" ( ECHO Grabbing avctKVMWin64.jar from host... powershell -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; $WebClient = New-Object System.Net.WebClient ; $WebClient.DownloadFile('https://%drachost%/software/avctVMWin64.jar','.\lib\avctVMWin64.jar')" ) ECHO Renaming avctVMWin64.jar to avctVMWin64.zip rename ".\lib\avctVMWin64.jar" avctVMWin64.zip ) ECHO Unzipping avctKVMWin64.zip powershell Expand-Archive ".\lib\avctVMWin64.zip" -DestinationPath ".\lib" rmdir ".\lib\META-INF" /s /q erase ".\lib\avctVMWin64.zip" /q ) IF NOT EXIST ".\lib\avctKVMIO.dll" ( IF NOT EXIST ".\lib\avctKVMIOWin64.zip" ( IF NOT EXIST ".\lib\avctKVMIOWin64.jar" ( ECHO Grabbing avctKVMIOWin64.jar from host... powershell -Command "[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; $WebClient = New-Object System.Net.WebClient ; $WebClient.DownloadFile('https://%drachost%/software/avctKVMIOWin64.jar','.\lib\avctKVMIOWin64.jar')" ) ECHO Renaming avctKVMIOWin64.jar to avctKVMIOWin64.zip rename ".\lib\avctKVMIOWin64.jar" avctKVMIOWin64.zip ) ECHO Unzipping avctKVMIOWin64.zip powershell Expand-Archive ".\lib\avctKVMIOWin64.zip" -DestinationPath ".\lib" rmdir ".\lib\META-INF" /s /q erase ".\lib\avctKVMIOWin64.zip" /q ) java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% kmport=5900 vport=5900 user=%dracuser% passwd=%dracpwd% apcp=1 version=2 vmprivilege=true "helpurl=https://%drachost%:443/help/contents.html"
I tried what lxi did and I keep getting a connection error. I did set the java (which is version 7u80 x64) with the listed exceptions.
The last part is slightly different because if I used it as is, it kept saying path not found, even when I included the full path. The only difference is the last part is
C:\idrac\jre\bin\java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% kmport=5900 vport=5900 user=%dracuser% passwd=%dracpwd% apcp=1 reconnect=2 version=2 vmprivilege=true "helpurl=https://%drachost%:443/help/contents.html"
As described, I set the java security to
jdk.tls.disabledAlgorithms=RC4, MD5withRSA, DH keySize < 1024, EC keySize < 224, DES40_CBC, RC4_40
The error I get is the following (I omitted the login parts)
`KVM/VM Client Version: 5.04.04 (Build 488)
replace numpad
** Max Size: W = 1366 H = 728
** Window Pref Size: W = 1040 H = 823
** Max Size: W = 1366 H = 728
** Window Pref Size: W = 1040 H = 823
ProtocolAPCP.receieveSessionSetup : v1.2 APCP = true
APCP Version = 260
Supported protocols: [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]
Enabled protocols: [SSLv3, TLSv1]
Supported ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_
AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128
CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC
SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SH
A, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_EC
DSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AE
S_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_C
BC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_
ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RS
A_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIAT
ION_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_C
BC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, S
SL_DH_anon_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES
CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EX
PORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPO
RT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL
SHA256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH
_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_an
on_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB
5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, T
LS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5]
Enabled ciphers: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AE
S_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_C
BC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SH
A256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDS
A_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_
128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC
SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_EC
DH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA
WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_EMPTY_RENEGOTIATIO
N_INFO_SCSV, TLS_DH_anon_WITH_AES_128_CBC_SHA256, TLS_ECDH_anon_WITH_AES_128_CBC
_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL
_DH_anon_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_C
BC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPO
RT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT
_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_WITH_NULL_SH
A256, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_N
ULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon
WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5
WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS
_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5]
Exception in server handshake
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.read(InputRecord.java:480)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.
java:1332)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359
)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343
)
at com.avocent.d.a.a.a(Unknown Source)
at com.avocent.d.a.a.a(Unknown Source)
at com.avocent.d.a.a.c(Unknown Source)
at com.avocent.d.d.b.a(Unknown Source)
at com.avocent.a.b.w.g(Unknown Source)
at com.avocent.a.b.w.a(Unknown Source)
at com.avocent.app.c.l.m(Unknown Source)
at com.avocent.app.c.l.e(Unknown Source)
at com.avocent.idrac.kvm.a.e(Unknown Source)
at com.avocent.idrac.kvm.Main.a(Unknown Source)
at com.avocent.idrac.kvm.Main.main(Unknown Source)
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.read(InputRecord.java:480)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.
java:1332)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359
)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343
)
at com.avocent.d.a.a.a(Unknown Source)
at com.avocent.d.a.a.a(Unknown Source)
at com.avocent.d.a.a.c(Unknown Source)
at com.avocent.d.d.b.a(Unknown Source)
at com.avocent.a.b.w.g(Unknown Source)
at com.avocent.a.b.w.a(Unknown Source)
at com.avocent.app.c.l.m(Unknown Source)
at com.avocent.app.c.l.e(Unknown Source)
at com.avocent.idrac.kvm.a.e(Unknown Source)
at com.avocent.idrac.kvm.Main.a(Unknown Source)
at com.avocent.idrac.kvm.Main.main(Unknown Source)
CoreSessionListener : connection failed
in CoreSessionListner : fireOnSessionStateChanged
KVM session state SESSION_FAILED
KVM session state SESSION_CLOSING
calling clenaup from CloseViewerClient`
This is on Server 2012 R2 and I'm trying to connecto to an iDrac enterprise on a Dell 720.
The method works for me with an iDRAC7 on a T320. The only thing I had to change to make it work with iDRAC7 are the arguments passed to java.exe, which should be the ones listed in the lines in the .jnlp.
My command line for iDRAC7 is below. In particular, if I omit reconnect=2, the console stays in "Reconnecting..." state, then times out.bin\java -cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=%drachost% vm=1 title=idrac-%2C+PowerEdge+T320%2C+User%3A+root user=%dracuser% passwd=%dracpwd% kmport=5900 vport=5900 apcp=1 reconnect=2 chat=1 F1=1 custom=0 scaling=15 minwinheight=100 minwinwidth=100 videoborder=0 version=2 "helpurl=https://%drachost%:443/help/contents.html"
@jelewis666 : did you put on your java command line all the arguments found in your viewer.jnlp, in the form of key=value? Because your command line seems to lack some arguments I had found in my viewer.jnlp. I remember that omitting some arguments, lead to weird results. HTH, Lux.
Awesome. For the umpteenth time I was jumping through the JavaWS hoops and just couldn't get any of the usual tricks to work. I set the files up in a folder as you described, parameterised the commandline in Remote Desktop Manager and for first time ever now have secure one click access to all my iDracs alongside everything else and using the same credential store. Awesome. Just awesome. Thanks.
I had to enable SSLv3 in java, I always got the error "connection failed"
Comment out "jdk.tls.disabledAlgorithms=SSLv3 in /lib/security/java.securityThis fixed it for me. too with latest java. Nice to have it in its own folder as a "portable"
Same here.
Added wget to WIndows and added to script-
echo "Grabbing jar file from host."
wget.exe -N --no-check-certificate "https://%drachost%/software/avctKVM.jar"
And still didn't work:
Then saw that about SSL3..
Glad I kept reading down this comment thread before I gave up!
Worked perfectly! (Linux)
Used JRE 1.7 extracted from tar.
I was able to connect doing this (iDRAC 6 Enterprise):
- Downloaded this file from Oracle website: server-jre-7u80-windows-x64.tar.gz (https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html#license-lightbox)
- Created a folder on my drive (C:\idrac)
- Expanded the tar file and copied all content from this directory: .\server-jre-7u80-windows-x64.tar\jdk1.7.0_80\jre\ to C:\idrac\
Here's how my directory ended:
Then I'm using this PowerShell script:
Set-Location -Path C:\idrac
$ServerHost = Read-Host "Type the name of the host that you want to connect to"
$HostPassword = Read-Host "Type the password of the host that you want to connect to"Write-Host "`nDownloading files..."
wget.exe -N --no-check-certificate "https://$ServerHost/software/avctKVM.jar" -q
wget.exe -N --no-check-certificate "https://$ServerHost/software/avctVMWin64.jar" -P lib -q
wget.exe -N --no-check-certificate "https://$ServerHost/software/avctKVMIOWin64.jar" -P lib -qWrite-Host "`nExpanding files to initiate connection..."
Rename-Item .\lib\avctVMWin64.jar avctVMWin64.zip
Rename-Item .\lib\avctKVMIOWin64.jar avctKVMIOWin64.zip
Expand-Archive .\lib\avctVMWin64.zip -DestinationPath .\lib
Remove-Item .\lib\META-INF -Recurse -Confirm:$False
Expand-Archive .\lib\avctKVMIOWin64.zip -DestinationPath .\lib
Remove-Item .\lib\META-INF -Recurse -Confirm:$False
Remove-Item .\lib*.zipStart-Process -FilePath .\bin\java -ArgumentList "-cp avctKVM.jar -Djava.library.path=.\lib com.avocent.idrac.kvm.Main ip=$ServerHost kmport=5900 vport=5900 user=root passwd=$HostPassword apcp=1 verison=2 vmprivilege=true 'helpurl=https://$($ServerHost):443/help/contents.html'"
Remove-Item .\lib*.dll
Remove-Item .\avctKVM.jar
It worked without modifying my PC java.security file.
The only problems until now is that I didn't find a way to pass the password using PowerShell in a secure way (I have tried the -AsSecureString), so for now the password is in plain text... =/
And I have tried to use this code to download the files:
Invoke-WebRequest https://$ServerHost/software/avctKVM.jar -OutFile .\avctKVM.jar
But sometimes worked, sometimes don't, I think that I need to initiate the connection first...
Meanwhile I'm using wget as other users commented previously.
Anyway, thanks a lot for your time to help a lot of people!!!
@vandreytrindade: generally, for these old servers, I find it convenient to use an old Java version. I downloaded a portable old java from here https://sourceforge.net/projects/portableapps/files/Java%20Portable/ and I unpack it only when I have to use it. If I remember well, I found jPortable_8_Update_40_Rev_2.paf.exe to behave well with iDRAC 6 and 7.
@vandreytrindade: generally, for these old servers, I find it convenient to use an old Java version. I downloaded a portable old java from here https://sourceforge.net/projects/portableapps/files/Java%20Portable/ and I unpack it only when I have to use it. If I remember well, I found jPortable_8_Update_40_Rev_2.paf.exe to behave well with iDRAC 6 and 7.
Thanks!
I can't use your script as there is no WinZip.
Why are you using WinZip. Windows has ZIP built in, powershell, or even the fully free 7-zip. No one needs to be using WinZip anymore in 2020 or 2021, they will sue you for using it in business without paying.
I can't use your script as there is no WinZip.
Why are you using WinZip. Windows has ZIP built in, powershell, or even the fully free 7-zip. No one needs to be using WinZip anymore in 2020 or 2021, they will sue you for using it in business without paying.
the script uses a specific version of powershell to expand the file, and tyler56895 didn't meet this requirement.
in any event they managed to work around the problem manually the next day and posted to confirm they are all now ok.
So, I had to jump through a lot of hoops to get this to work, but it DID work. That said, in case others are having the same issues I had, I'm posting here to tell you what I did. Note that this was on an x64 Windows machine.
C:\idracfix\start-virtual-console.bat
C:\idracfix\avctKVM.jar
C:\idracfix\lib\avmWinLib.dll
C:\idracfix\lib\avctKVMIO.dll
C:\idracfix\jre\(A bunch of files from tools.zip)
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
for /r %f in (*.pack) do "jre\bin\unpack200.exe" -r -q "%f" "%~pf%~nf.jar"