NTSTATUS libnet_join_ok(const char *netbios_domain_name,
const char *machine_name,
- const char *dc_name)
+ const char *dc_name,
+ const bool use_kerberos)
{
uint32_t neg_flags = NETLOGON_NEG_AUTH2_ADS_FLAGS;
struct cli_state *cli = NULL;
NTSTATUS status;
char *machine_password = NULL;
char *machine_account = NULL;
+ int flags = 0;
if (!dc_name) {
return NT_STATUS_INVALID_PARAMETER;
return NT_STATUS_NO_MEMORY;
}
+ if (use_kerberos) {
+ flags |= CLI_FULL_CONNECTION_USE_KERBEROS;
+ }
+
status = cli_full_connection(&cli, NULL,
dc_name,
NULL, 0,
machine_account,
NULL,
machine_password,
- 0,
+ flags,
SMB_SIGNING_DEFAULT);
free(machine_account);
free(machine_password);
status = libnet_join_ok(r->out.netbios_domain_name,
r->in.machine_name,
- r->in.dc_name);
+ r->in.dc_name,
+ r->in.use_kerberos);
if (!NT_STATUS_IS_OK(status)) {
libnet_join_set_error_string(mem_ctx, r,
"failed to verify domain membership after joining: %s",
u->in.admin_account = r->in.admin_account;
u->in.admin_password = r->in.admin_password;
u->in.modify_config = r->in.modify_config;
+ u->in.use_kerberos = r->in.use_kerberos;
u->in.unjoin_flags = WKSSVC_JOIN_FLAGS_JOIN_TYPE |
WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE;
NTSTATUS libnet_join_ok(const char *netbios_domain_name,
const char *machine_name,
- const char *dc_name);
+ const char *dc_name,
+ const bool use_kerberos);
WERROR libnet_init_JoinCtx(TALLOC_CTX *mem_ctx,
struct libnet_JoinCtx **r);
WERROR libnet_init_UnjoinCtx(TALLOC_CTX *mem_ctx,