[英]Connect to windows EC2 instance through java code without SMB protocol
我正在嘗試通過Java代碼將AWS Windows實例與CIFS或WinRM連接,我不必使用SMB協議。 我不確定是否可能 。
在實例WinRM服務正在運行並且為了測試我已允許所有流量作為入站實例。
我想在這個實例上復制一些文件,以及我想使用這個java代碼運行一些bash腳本。
我嘗試過使用CIFS的xebialabs / overhere 。
以下代碼庫我嘗試實現但面臨一些問題(所有主機屬性都在那里)
ConnectionOptions options = new ConnectionOptions();
options.set(ConnectionOptions.OPERATING_SYSTEM, OperatingSystemFamily.WINDOWS);
options.set(CifsConnectionBuilder.CONNECTION_TYPE, CifsConnectionType.WINRM_INTERNAL);
options.set(CifsConnectionBuilder.WINRM_TIMEMOUT, "PT172800.000S");
options.set(ConnectionOptions.CONNECTION_TIMEOUT_MILLIS, 900000);
options.set(ConnectionOptions.SOCKET_TIMEOUT_MILLIS, 900000);
options.set(CifsConnectionBuilder.WINRM_ENABLE_HTTPS, false);
options.set(CIFS_PORT, CIFS_PORT_DEFAULT);
options.set(ConnectionOptions.PROTOCOL, CIFS_PROTOCOL);
// Host Properties
options.set(ConnectionOptions.ADDRESS, host);
options.set(ConnectionOptions.USERNAME, user);
options.set(ConnectionOptions.PASSWORD, password);
AddressPortMapper mapper = DefaultAddressPortMapper.INSTANCE;
OverthereFile workingDirectory = null;
WinrsConnection connection = new WinrsConnection(options, mapper, workingDirectory);
connection.connect();
錯誤:
線程“main”中的異常java.lang.IllegalArgumentException:無法在ot上的com.xebialabs.overthere.winrs.WinrsConnection.connect(WinrsConnection.java:89)中創建與未運行Windows的winrs代理的smb:winrm_native連接。在ot.OtPOC.main(OtPOC.java:16)的ot.WinRmUtils.getNewWinRMConnection(WinRmUtils.java:89)的WinRmUtils.getWinRmConnection(WinRmUtils.java:76)
我也嘗試過cloudsoft / winrm4j但是這也行不通。
在配置中,您正在配置CifsConnectionType.WINRM_INTERNAL
,而您正在實例化WinrsConnection
。 更喜歡使用工廠方法Overthere.getConnection(CifsConnectionBuilder.CIFS_PROTOCOL, config)
,或直接實例化WinrmConnection
。
WinrsConnection
(或CifsConnectionType.WINRM_NATIVE
)僅適用於Windows-2-Windows連接,因為它使用winrs.exe
命令來執行WinRM命令。
WinrmConnection
(或CifsConnectionType.WINRM_INTERNAL
)適用於所有連接,因為它完全用Java實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.