現在、私はPSExecに似ていますが、完全にJavaで動作させようとしています。 私の問題は実際に私がやっていることとは直接関係がないと思いますが、どうしたらいいですか。 現在、私はリモートでサービスの作成と起動を実装しようとしています。JCIFSを使用してリモートWindowsインスタンスと通信するときにnca_proto_error/DCERPC_FAULT_PROTO_ERRORを取得する
このため、私はmidlcツール(バージョン0.6.1)を手に入れ、svcctl.idlをCreateServiceとDeleteService呼び出しで拡張しました。その後、midlcを使用してjcifs(-t jcifs)を使用するコードを生成しました。次に、そのクラスとjcifsを使用してリモートWindowsマシンと通信するためのテストプログラムを作成しました。ここで
はそのためのコードを付属しています。残念ながら、私は
0x1c01000b DCERPC_FAULT_PROTO_ERRORエイリアスnca_proto_errorエイリアスを取得しています
rpc.policy_handle scHandle = new rpc.policy_handle();
SvcCtl.OpenSCManager openSCManagerRpc = new SvcCtl.OpenSCManager(host, null, 0x0001 | 0x0002, scHandle);
// Connection-oriented DCE/RPC over SMB named pipes.
DcerpcHandle handle = DcerpcHandle.getHandle("ncacn_np:" + host + "[\\PIPE\\svcctl]",
ConcurrentNtlmAuthenticator.getInstance().getNtlmPasswordAuthentication());
try {
handle.sendrecv(openSCManagerRpc);
if (openSCManagerRpc.retval != 0) {
throw new SmbException(openSCManagerRpc.retval, true);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
handle.close();
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
だから私の簡単な質問には...私が間違って何をやっているのですか?
クリス