データ構造 | |
struct | const_vals |
関数 | |
static void | py_samr_group_hnd_dealloc (PyObject *self) |
static PyObject * | py_samr_group_hnd_getattr (PyObject *self, char *attrname) |
PyObject * | new_samr_group_hnd_object (struct cli_state *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol) |
static void | py_samr_alias_hnd_dealloc (PyObject *self) |
static PyObject * | py_samr_alias_hnd_getattr (PyObject *self, char *attrname) |
PyObject * | new_samr_alias_hnd_object (struct cli_state *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol) |
static void | py_samr_user_hnd_dealloc (PyObject *self) |
static PyObject * | samr_set_user_info2 (PyObject *self, PyObject *args, PyObject *kw) |
static PyObject * | samr_delete_dom_user (PyObject *self, PyObject *args, PyObject *kw) |
static PyObject * | py_samr_user_hnd_getattr (PyObject *self, char *attrname) |
PyObject * | new_samr_user_hnd_object (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol) |
static void | py_samr_connect_hnd_dealloc (PyObject *self) |
PyObject * | new_samr_domain_hnd_object (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol) |
static PyObject * | samr_open_domain (PyObject *self, PyObject *args, PyObject *kw) |
static PyObject * | py_samr_connect_hnd_getattr (PyObject *self, char *attrname) |
PyObject * | new_samr_connect_hnd_object (struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, POLICY_HND *pol) |
static void | py_samr_domain_hnd_dealloc (PyObject *self) |
static PyObject * | samr_enum_dom_groups (PyObject *self, PyObject *args, PyObject *kw) |
static PyObject * | samr_create_dom_user (PyObject *self, PyObject *args, PyObject *kw) |
static PyObject * | py_samr_domain_hnd_getattr (PyObject *self, char *attrname) |
static PyObject * | samr_connect (PyObject *self, PyObject *args, PyObject *kw) |
static void | const_init (PyObject *dict) |
void | initsamr (void) |
変数 | |
PyObject * | samr_error |
PyObject * | samr_ntstatus |
static PyMethodDef | samr_group_methods [] |
PyTypeObject | samr_group_hnd_type |
static PyMethodDef | samr_alias_methods [] |
PyTypeObject | samr_alias_hnd_type |
static PyMethodDef | samr_user_methods [] |
PyTypeObject | samr_user_hnd_type |
static PyMethodDef | samr_connect_methods [] |
PyTypeObject | samr_connect_hnd_type |
static PyMethodDef | samr_domain_methods [] |
PyTypeObject | samr_domain_hnd_type |
static PyMethodDef | samr_methods [] |
static struct const_vals | module_const_vals [] |
static void py_samr_group_hnd_dealloc | ( | PyObject * | self | ) | [static] |
static PyObject* py_samr_group_hnd_getattr | ( | PyObject * | self, | |
char * | attrname | |||
) | [static] |
参照先 samr_group_methods.
00046 { 00047 return Py_FindMethod(samr_group_methods, self, attrname); 00048 }
PyObject* new_samr_group_hnd_object | ( | struct cli_state * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol | |||
) |
参照先 cli・samr_group_hnd_object::cli・samr_group_hnd_object::group_pol・samr_group_hnd_object::mem_ctx・pol・samr_group_hnd_type.
00070 { 00071 samr_group_hnd_object *o; 00072 00073 o = PyObject_New(samr_group_hnd_object, &samr_group_hnd_type); 00074 00075 o->cli = cli; 00076 o->mem_ctx = mem_ctx; 00077 memcpy(&o->group_pol, pol, sizeof(POLICY_HND)); 00078 00079 return (PyObject*)o; 00080 }
static void py_samr_alias_hnd_dealloc | ( | PyObject * | self | ) | [static] |
static PyObject* py_samr_alias_hnd_getattr | ( | PyObject * | self, | |
char * | attrname | |||
) | [static] |
PyObject* new_samr_alias_hnd_object | ( | struct cli_state * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol | |||
) |
参照先 samr_alias_hnd_object::alias_pol・cli・samr_alias_hnd_object::cli・samr_alias_hnd_object::mem_ctx・pol.
00118 { 00119 samr_alias_hnd_object *o; 00120 00121 o = PyObject_New(samr_alias_hnd_object, &samr_alias_hnd_type); 00122 00123 o->cli = cli; 00124 o->mem_ctx = mem_ctx; 00125 memcpy(&o->alias_pol, pol, sizeof(POLICY_HND)); 00126 00127 return (PyObject*)o; 00128 }
static void py_samr_user_hnd_dealloc | ( | PyObject * | self | ) | [static] |
static PyObject* samr_set_user_info2 | ( | PyObject * | self, | |
PyObject * | args, | |||
PyObject * | kw | |||
) | [static] |
参照先 samr_user_hnd_object::cli・get_level_value()・sam_userinfo_ctr_info::id16・sam_userinfo_ctr_info::id21・sam_userinfo_ctr_info::info・level・rpc_pipe_client::mem_ctx・ntstatus・py_ntstatus_tuple()・py_to_SAM_USER_INFO_16()・py_to_SAM_USER_INFO_21()・result・rpccli_samr_set_userinfo2()・samr_error・samr_ntstatus・sam_userinfo_ctr_info::switch_value・talloc_init()・samr_user_hnd_object::user_pol.
00139 { 00140 samr_user_hnd_object *user_hnd = (samr_user_hnd_object *)self; 00141 static char *kwlist[] = { "dict", NULL }; 00142 PyObject *info, *result = NULL; 00143 SAM_USERINFO_CTR ctr; 00144 TALLOC_CTX *mem_ctx; 00145 uchar sess_key[16]; 00146 NTSTATUS ntstatus; 00147 int level; 00148 union { 00149 SAM_USER_INFO_16 id16; 00150 SAM_USER_INFO_21 id21; 00151 } pinfo; 00152 00153 if (!PyArg_ParseTupleAndKeywords( 00154 args, kw, "O!", kwlist, &PyDict_Type, &info)) 00155 return NULL; 00156 00157 if (!get_level_value(info, &level)) { 00158 PyErr_SetString(samr_error, "invalid info level"); 00159 return NULL; 00160 } 00161 00162 ZERO_STRUCT(ctr); 00163 00164 ctr.switch_value = level; 00165 00166 switch(level) { 00167 case 16: 00168 ctr.info.id16 = &pinfo.id16; 00169 00170 if (!py_to_SAM_USER_INFO_16(ctr.info.id16, info)) { 00171 PyErr_SetString( 00172 samr_error, "error converting user info"); 00173 goto done; 00174 } 00175 00176 break; 00177 case 21: 00178 ctr.info.id21 = &pinfo.id21; 00179 00180 if (!py_to_SAM_USER_INFO_21(ctr.info.id21, info)) { 00181 PyErr_SetString( 00182 samr_error, "error converting user info"); 00183 goto done; 00184 } 00185 00186 break; 00187 default: 00188 PyErr_SetString(samr_error, "unsupported info level"); 00189 goto done; 00190 } 00191 00192 /* Call RPC function */ 00193 00194 if (!(mem_ctx = talloc_init("samr_set_user_info2"))) { 00195 PyErr_SetString( 00196 samr_error, "unable to init talloc context\n"); 00197 goto done; 00198 } 00199 00200 ntstatus = rpccli_samr_set_userinfo2( 00201 user_hnd->cli, mem_ctx, &user_hnd->user_pol, level, 00202 sess_key, &ctr); 00203 00204 talloc_destroy(mem_ctx); 00205 00206 if (!NT_STATUS_IS_OK(ntstatus)) { 00207 PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); 00208 goto done; 00209 } 00210 00211 Py_INCREF(Py_None); 00212 result = Py_None; 00213 00214 done: 00215 return result; 00216 }
static PyObject* samr_delete_dom_user | ( | PyObject * | self, | |
PyObject * | args, | |||
PyObject * | kw | |||
) | [static] |
参照先 samr_user_hnd_object::cli・ntstatus・py_ntstatus_tuple()・result・rpccli_samr_delete_dom_user()・samr_error・samr_ntstatus・talloc_init()・samr_user_hnd_object::user_pol.
00220 { 00221 samr_user_hnd_object *user_hnd = (samr_user_hnd_object *)self; 00222 static char *kwlist[] = { NULL }; 00223 NTSTATUS ntstatus; 00224 TALLOC_CTX *mem_ctx; 00225 PyObject *result = NULL; 00226 00227 if (!PyArg_ParseTupleAndKeywords( 00228 args, kw, "", kwlist)) 00229 return NULL; 00230 00231 if (!(mem_ctx = talloc_init("samr_delete_dom_user"))) { 00232 PyErr_SetString(samr_error, "unable to init talloc context"); 00233 return NULL; 00234 } 00235 00236 ntstatus = rpccli_samr_delete_dom_user( 00237 user_hnd->cli, mem_ctx, &user_hnd->user_pol); 00238 00239 if (!NT_STATUS_IS_OK(ntstatus)) { 00240 PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); 00241 goto done; 00242 } 00243 00244 Py_INCREF(Py_None); 00245 result = Py_None; 00246 00247 done: 00248 talloc_destroy(mem_ctx); 00249 00250 return result; 00251 }
static PyObject* py_samr_user_hnd_getattr | ( | PyObject * | self, | |
char * | attrname | |||
) | [static] |
PyObject* new_samr_user_hnd_object | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol | |||
) |
参照先 cli・samr_user_hnd_object::cli・samr_user_hnd_object::mem_ctx・pol・samr_user_hnd_object::user_pol.
00288 { 00289 samr_user_hnd_object *o; 00290 00291 o = PyObject_New(samr_user_hnd_object, &samr_user_hnd_type); 00292 00293 o->cli = cli; 00294 o->mem_ctx = mem_ctx; 00295 memcpy(&o->user_pol, pol, sizeof(POLICY_HND)); 00296 00297 return (PyObject*)o; 00298 }
static void py_samr_connect_hnd_dealloc | ( | PyObject * | self | ) | [static] |
PyObject* new_samr_domain_hnd_object | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol | |||
) |
参照先 cli・samr_domain_hnd_object::cli・samr_domain_hnd_object::domain_pol・samr_domain_hnd_object::mem_ctx・pol・samr_domain_hnd_type.
参照元 samr_open_domain().
00309 { 00310 samr_domain_hnd_object *o; 00311 00312 o = PyObject_New(samr_domain_hnd_object, &samr_domain_hnd_type); 00313 00314 o->cli = cli; 00315 o->mem_ctx = mem_ctx; 00316 memcpy(&o->domain_pol, pol, sizeof(POLICY_HND)); 00317 00318 return (PyObject*)o; 00319 }
static PyObject* samr_open_domain | ( | PyObject * | self, | |
PyObject * | args, | |||
PyObject * | kw | |||
) | [static] |
参照先 samr_connect_hnd_object::cli・samr_connect_hnd_object::connect_pol・new_samr_domain_hnd_object()・ntstatus・py_ntstatus_tuple()・result・rpccli_samr_open_domain()・samr_error・samr_ntstatus・string_to_sid()・talloc_init().
00322 { 00323 samr_connect_hnd_object *connect_hnd = (samr_connect_hnd_object *)self; 00324 static char *kwlist[] = { "sid", "access", NULL }; 00325 uint32 desired_access = MAXIMUM_ALLOWED_ACCESS; 00326 char *sid_str; 00327 DOM_SID sid; 00328 TALLOC_CTX *mem_ctx = NULL; 00329 POLICY_HND domain_pol; 00330 NTSTATUS ntstatus; 00331 PyObject *result = NULL; 00332 00333 if (!PyArg_ParseTupleAndKeywords( 00334 args, kw, "s|i", kwlist, &sid_str, &desired_access)) 00335 return NULL; 00336 00337 if (!string_to_sid(&sid, sid_str)) { 00338 PyErr_SetString(PyExc_TypeError, "string is not a sid"); 00339 return NULL; 00340 } 00341 00342 if (!(mem_ctx = talloc_init("samr_open_domain"))) { 00343 PyErr_SetString(samr_error, "unable to init talloc context"); 00344 return NULL; 00345 } 00346 00347 ntstatus = rpccli_samr_open_domain( 00348 connect_hnd->cli, mem_ctx, &connect_hnd->connect_pol, 00349 desired_access, &sid, &domain_pol); 00350 00351 if (!NT_STATUS_IS_OK(ntstatus)) { 00352 PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); 00353 goto done; 00354 } 00355 00356 result = new_samr_domain_hnd_object( 00357 connect_hnd->cli, mem_ctx, &domain_pol); 00358 00359 done: 00360 if (!result) { 00361 if (mem_ctx) 00362 talloc_destroy(mem_ctx); 00363 } 00364 00365 return result; 00366 }
static PyObject* py_samr_connect_hnd_getattr | ( | PyObject * | self, | |
char * | attrname | |||
) | [static] |
PyObject* new_samr_connect_hnd_object | ( | struct rpc_pipe_client * | cli, | |
TALLOC_CTX * | mem_ctx, | |||
POLICY_HND * | pol | |||
) |
参照先 cli・samr_connect_hnd_object::cli・samr_connect_hnd_object::connect_pol・samr_connect_hnd_object::mem_ctx・pol.
参照元 samr_connect().
00401 { 00402 samr_connect_hnd_object *o; 00403 00404 o = PyObject_New(samr_connect_hnd_object, &samr_connect_hnd_type); 00405 00406 o->cli = cli; 00407 o->mem_ctx = mem_ctx; 00408 memcpy(&o->connect_pol, pol, sizeof(POLICY_HND)); 00409 00410 return (PyObject*)o; 00411 }
static void py_samr_domain_hnd_dealloc | ( | PyObject * | self | ) | [static] |
static PyObject* samr_enum_dom_groups | ( | PyObject * | self, | |
PyObject * | args, | |||
PyObject * | kw | |||
) | [static] |
参照先 samr_domain_hnd_object::cli・samr_domain_hnd_object::domain_pol・py_from_acct_info()・result・rpccli_samr_enum_dom_groups()・samr_error・size・talloc_init().
00422 { 00423 samr_domain_hnd_object *domain_hnd = (samr_domain_hnd_object *)self; 00424 static char *kwlist[] = { NULL }; 00425 TALLOC_CTX *mem_ctx; 00426 /* uint32 desired_access = MAXIMUM_ALLOWED_ACCESS; */ 00427 uint32 start_idx, size, num_dom_groups; 00428 struct acct_info *dom_groups; 00429 NTSTATUS result; 00430 PyObject *py_result = NULL; 00431 00432 if (!PyArg_ParseTupleAndKeywords(args, kw, "", kwlist)) 00433 return NULL; 00434 00435 if (!(mem_ctx = talloc_init("samr_enum_dom_groups"))) { 00436 PyErr_SetString(samr_error, "unable to init talloc context"); 00437 return NULL; 00438 } 00439 00440 start_idx = 0; 00441 size = 0xffff; 00442 00443 do { 00444 result = rpccli_samr_enum_dom_groups( 00445 domain_hnd->cli, mem_ctx, &domain_hnd->domain_pol, 00446 &start_idx, size, &dom_groups, &num_dom_groups); 00447 00448 if (NT_STATUS_IS_OK(result) || 00449 NT_STATUS_V(result) == NT_STATUS_V(STATUS_MORE_ENTRIES)) { 00450 py_from_acct_info(&py_result, dom_groups, 00451 num_dom_groups); 00452 } 00453 00454 } while (NT_STATUS_V(result) == NT_STATUS_V(STATUS_MORE_ENTRIES)); 00455 00456 return py_result; 00457 }
static PyObject* samr_create_dom_user | ( | PyObject * | self, | |
PyObject * | args, | |||
PyObject * | kw | |||
) | [static] |
参照先 samr_domain_hnd_object::cli・samr_domain_hnd_object::domain_pol・new_samr_user_hnd_object()・ntstatus・py_ntstatus_tuple()・result・rpccli_samr_create_dom_user()・samr_error・samr_ntstatus・talloc_init().
00461 { 00462 samr_domain_hnd_object *domain_hnd = (samr_domain_hnd_object *)self; 00463 static char *kwlist[] = { "account_name", "acb_info", NULL }; 00464 char *account_name; 00465 NTSTATUS ntstatus; 00466 uint32 acct_flags = 0; 00467 uint32 user_rid; 00468 PyObject *result = NULL; 00469 TALLOC_CTX *mem_ctx; 00470 uint32 acb_info = ACB_NORMAL; 00471 POLICY_HND user_pol; 00472 00473 if (!PyArg_ParseTupleAndKeywords( 00474 args, kw, "s|i", kwlist, &account_name, &acb_info)) 00475 return NULL; 00476 00477 if (!(mem_ctx = talloc_init("samr_create_dom_user"))) { 00478 PyErr_SetString(samr_error, "unable to init talloc context"); 00479 return NULL; 00480 } 00481 00482 acct_flags = SAMR_GENERIC_READ | SAMR_GENERIC_WRITE | 00483 SAMR_GENERIC_EXECUTE | SAMR_STANDARD_WRITEDAC | 00484 SAMR_STANDARD_DELETE | SAMR_USER_SETPASS | SAMR_USER_GETATTR | 00485 SAMR_USER_SETATTR; 00486 DEBUG(10, ("Creating account with flags: %d\n",acct_flags)); 00487 ntstatus = rpccli_samr_create_dom_user( 00488 domain_hnd->cli, mem_ctx, &domain_hnd->domain_pol, 00489 account_name, acb_info, acct_flags, &user_pol, &user_rid); 00490 00491 if (!NT_STATUS_IS_OK(ntstatus)) { 00492 PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); 00493 talloc_destroy(mem_ctx); 00494 goto done; 00495 } 00496 00497 result = new_samr_user_hnd_object( 00498 domain_hnd->cli, mem_ctx, &user_pol); 00499 00500 done: 00501 00502 return result; 00503 }
static PyObject* py_samr_domain_hnd_getattr | ( | PyObject * | self, | |
char * | attrname | |||
) | [static] |
static PyObject* samr_connect | ( | PyObject * | self, | |
PyObject * | args, | |||
PyObject * | kw | |||
) | [static] |
参照先 cli・cli_shutdown()・cli_state::mem_ctx・new_samr_connect_hnd_object()・ntstatus・open_pipe_creds()・cli_state::pipe_list・py_ntstatus_tuple()・result・rpccli_samr_connect()・samr_error・samr_ntstatus・server・talloc_init().
00537 { 00538 static char *kwlist[] = { "server", "creds", "access", NULL }; 00539 uint32 desired_access = MAXIMUM_ALLOWED_ACCESS; 00540 char *server, *errstr; 00541 struct cli_state *cli = NULL; 00542 POLICY_HND hnd; 00543 TALLOC_CTX *mem_ctx = NULL; 00544 PyObject *result = NULL, *creds = NULL; 00545 NTSTATUS ntstatus; 00546 00547 if (!PyArg_ParseTupleAndKeywords( 00548 args, kw, "s|Oi", kwlist, &server, &creds, 00549 &desired_access)) 00550 return NULL; 00551 00552 if (server[0] != '\\' || server[1] != '\\') { 00553 PyErr_SetString(PyExc_ValueError, "UNC name required"); 00554 return NULL; 00555 } 00556 00557 server += 2; 00558 00559 if (creds && creds != Py_None && !PyDict_Check(creds)) { 00560 PyErr_SetString(PyExc_TypeError, 00561 "credentials must be dictionary or None"); 00562 return NULL; 00563 } 00564 00565 if (!(cli = open_pipe_creds(server, creds, PI_SAMR, &errstr))) { 00566 PyErr_SetString(samr_error, errstr); 00567 free(errstr); 00568 return NULL; 00569 } 00570 00571 if (!(mem_ctx = talloc_init("samr_connect"))) { 00572 PyErr_SetString(samr_ntstatus, 00573 "unable to init talloc context\n"); 00574 goto done; 00575 } 00576 00577 ntstatus = rpccli_samr_connect(cli->pipe_list, mem_ctx, desired_access, &hnd); 00578 00579 if (!NT_STATUS_IS_OK(ntstatus)) { 00580 cli_shutdown(cli); 00581 PyErr_SetObject(samr_ntstatus, py_ntstatus_tuple(ntstatus)); 00582 goto done; 00583 } 00584 00585 result = new_samr_connect_hnd_object(cli->pipe_list, mem_ctx, &hnd); 00586 00587 done: 00588 if (!result) { 00589 if (cli) 00590 cli_shutdown(cli); 00591 00592 if (mem_ctx) 00593 talloc_destroy(mem_ctx); 00594 } 00595 00596 return result; 00597 }
static void const_init | ( | PyObject * | dict | ) | [static] |
参照先 module_const_vals・const_vals::name・const_vals::value.
00637 { 00638 struct const_vals *tmp; 00639 PyObject *obj; 00640 00641 for (tmp = module_const_vals; tmp->name; tmp++) { 00642 obj = PyInt_FromLong(tmp->value); 00643 PyDict_SetItemString(dict, tmp->name, obj); 00644 Py_DECREF(obj); 00645 } 00646 }
void initsamr | ( | void | ) |
参照先 const_init()・DEBUGLEVEL・py_samba_init()・samr_error・samr_group_hnd_type・samr_ntstatus・setup_logging().
00649 { 00650 PyObject *module, *dict; 00651 00652 /* Initialise module */ 00653 00654 module = Py_InitModule("samr", samr_methods); 00655 dict = PyModule_GetDict(module); 00656 00657 samr_error = PyErr_NewException("samr.error", NULL, NULL); 00658 PyDict_SetItemString(dict, "error", samr_error); 00659 00660 samr_ntstatus = PyErr_NewException("samr.ntstatus", NULL, NULL); 00661 PyDict_SetItemString(dict, "ntstatus", samr_ntstatus); 00662 00663 /* Initialise policy handle object */ 00664 00665 samr_connect_hnd_type.ob_type = &PyType_Type; 00666 samr_domain_hnd_type.ob_type = &PyType_Type; 00667 samr_user_hnd_type.ob_type = &PyType_Type; 00668 samr_group_hnd_type.ob_type = &PyType_Type; 00669 samr_alias_hnd_type.ob_type = &PyType_Type; 00670 00671 /* Initialise constants */ 00672 00673 const_init(dict); 00674 00675 /* Do samba initialisation */ 00676 00677 py_samba_init(); 00678 00679 setup_logging("samr", True); 00680 DEBUGLEVEL = 10; 00681 }
PyObject* samr_error |
PyObject* samr_ntstatus |
PyMethodDef samr_group_methods[] [static] |
PyTypeObject samr_group_hnd_type |
初期値:
{ PyObject_HEAD_INIT(NULL) 0, "SAMR Group Handle", sizeof(samr_group_hnd_object), 0, py_samr_group_hnd_dealloc, 0, py_samr_group_hnd_getattr, 0, 0, 0, 0, 0, 0, 0, }
PyMethodDef samr_alias_methods[] [static] |
PyTypeObject samr_alias_hnd_type |
初期値:
{ PyObject_HEAD_INIT(NULL) 0, "SAMR Alias Handle", sizeof(samr_alias_hnd_object), 0, py_samr_alias_hnd_dealloc, 0, py_samr_alias_hnd_getattr, 0, 0, 0, 0, 0, 0, 0, }
PyMethodDef samr_user_methods[] [static] |
初期値:
{ { "delete_domain_user", (PyCFunction)samr_delete_dom_user, METH_VARARGS | METH_KEYWORDS, "Delete domain user." }, { "set_user_info2", (PyCFunction)samr_set_user_info2, METH_VARARGS | METH_KEYWORDS, "Set user info 2" }, { NULL } }
PyTypeObject samr_user_hnd_type |
初期値:
{ PyObject_HEAD_INIT(NULL) 0, "SAMR User Handle", sizeof(samr_user_hnd_object), 0, py_samr_user_hnd_dealloc, 0, py_samr_user_hnd_getattr, 0, 0, 0, 0, 0, 0, 0, }
PyMethodDef samr_connect_methods[] [static] |
初期値:
{ { "open_domain", (PyCFunction)samr_open_domain, METH_VARARGS | METH_KEYWORDS, "Open a handle on a domain" }, { NULL } }
PyTypeObject samr_connect_hnd_type |
初期値:
{ PyObject_HEAD_INIT(NULL) 0, "SAMR Connect Handle", sizeof(samr_connect_hnd_object), 0, py_samr_connect_hnd_dealloc, 0, py_samr_connect_hnd_getattr, 0, 0, 0, 0, 0, 0, 0, }
PyMethodDef samr_domain_methods[] [static] |
初期値:
{ { "enum_domain_groups", (PyCFunction)samr_enum_dom_groups, METH_VARARGS | METH_KEYWORDS, "Enumerate domain groups" }, { "create_domain_user", (PyCFunction)samr_create_dom_user, METH_VARARGS | METH_KEYWORDS, "Create domain user" }, { NULL } }
PyTypeObject samr_domain_hnd_type |
初期値:
{ PyObject_HEAD_INIT(NULL) 0, "SAMR Domain Handle", sizeof(samr_domain_hnd_object), 0, py_samr_domain_hnd_dealloc, 0, py_samr_domain_hnd_getattr, 0, 0, 0, 0, 0, 0, 0, }
PyMethodDef samr_methods[] [static] |
初期値:
{ { "connect", (PyCFunction)samr_connect, METH_VARARGS | METH_KEYWORDS, "Open a connect handle" }, { NULL } }
struct const_vals module_const_vals[] [static] |