Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > join a samba domain

Reply
Thread Tools

join a samba domain

 
 
Toff
Guest
Posts: n/a
 
      12-22-2008
hi,

I 'm trying to write a script to make my computer join a samba.

domeone have any idea ??


thanks regards,

************************************************** ***********************
# -*- coding: iso-8859-1 *-*

import win32com.client
import os,sys
import win32api
import impers
import socket
from win32com.client import GetObject
import wmi

def main():
test()
joindom()
def test():
import wmi
c = wmi.WMI()
os = c.Win32_ComputerSystem
for method_name in os.methods:
method = getattr(os, method_name)
print method

def joindom():
#Joining a computer to a domain
#=========================
JOIN_DOMAIN = 1
ACCT_CREATE = 2
ACCT_DELETE = 4
WIN9X_UPGRADE = 16
DOMAIN_JOIN_IF_JOINED = 32
JOIN_UNSECURE = 64
MACHINE_PASSWORD_PASSED = 128
DEFERRED_SPN_SET = 256
INSTALL_INVOCATION = 262144
strDomain = "mydom"
strPassword = "mydompw"
strUser = "admin"

strComputer = socket.gethostname()
print strComputer
#objComputer = win32com.client.GetObject(r"winmgmts:
{impersonationLevel=Impersonate}!\\mypc\root
\cimv2:Win32_ComputerSystem.Name='mypc'")
import wmi
c = wmi.WMI()
d = c.Win32_ComputerSystem
d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")


if __name__=='__main__':
main()
************************************************** *********************
 
Reply With Quote
 
 
 
 
Tim Golden
Guest
Posts: n/a
 
      12-22-2008
Toff wrote:
> hi,
>
> I 'm trying to write a script to make my computer join a samba.
>
> domeone have any idea ??


Ummm. It's not clear if you're saying that your code doesn't
work, or asking for general advice, or what? I'm not in a
position to have my machine join a domain or workgroup, but
you seem to have got most things in place already. The only
thing I would expect to have to change is this last line:

> import wmi
> c = wmi.WMI()
> d = c.Win32_ComputerSystem
> d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")


because the d is only a WMI *class*, not a WMI *instance*,
so doesn't refer as it should to your computer system but
to the class of computer systems. Try something like this (untested):

<code>
import wmi

c = wmi.WMI ()
for d in c.Win32_ComputerSystem ():
d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

</code>

TJG
 
Reply With Quote
 
 
 
 
Toff
Guest
Posts: n/a
 
      12-22-2008
On 22 déc, 17:02, Tim Golden <m...@timgolden.me.uk> wrote:
> Toff wrote:
> > hi,

>
> > I 'm trying to write a script to make my computer join a samba.

>
> > domeone have any idea ??

>
> Ummm. It's not clear if you're saying that your code doesn't
> work, or asking for general advice, or what? I'm not in a
> position to have my machine join a domain or workgroup, but
> you seem to have got most things in place already. The only
> thing I would expect to have to change is this last line:
>
> > * *import wmi
> > * *c = wmi.WMI()
> > * *d = c.Win32_ComputerSystem
> > * *d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

>
> because the d is only a WMI *class*, not a WMI *instance*,
> so doesn't refer as it should to your computer system but
> to the class of computer systems. Try something like this (untested):
>
> <code>
> import wmi
>
> c = wmi.WMI ()
> for d in c.Win32_ComputerSystem ():
> * d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")
>
> </code>
>
> TJG

thanks but it doesn't work
I've got this errors

Traceback (most recent call last):
File "integrdom.py", line 51, in <module>
main()
File "integrdom.py", line 13, in main
joindom()
File "integrdom.py", line 44, in joindom
d.JoinDomainOrWorkGroup(None, 3, "domcd", "adminLocal", r"admin
\domcd")
File "c:\Python25\Lib\site-packages\wmi.py", line 493, in __getattr__
handle_com_error (error_info)
File "c:\Python25\Lib\site-packages\wmi.py", line 189, in
handle_com_error
raise x_wmi, "\n".join (exception_string)
wmi.x_wmi

 
Reply With Quote
 
Méta-MCI \(MVP\)
Guest
Posts: n/a
 
      12-22-2008
Hi!

If you are under Vista, you must change the LSA parameter.
See:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Lsa
LMCompatibilityLevel
try with value 1 or 0


And use a Samba not too old.


@-salutations
--
Michel Claveau

 
Reply With Quote
 
Tim Golden
Guest
Posts: n/a
 
      12-22-2008
Toff wrote:
> On 22 déc, 17:02, Tim Golden <m...@timgolden.me.uk> wrote:
>> Toff wrote:
>>> hi,
>>> I 'm trying to write a script to make my computer join a samba.
>>> domeone have any idea ??

>> Ummm. It's not clear if you're saying that your code doesn't
>> work, or asking for general advice, or what? I'm not in a
>> position to have my machine join a domain or workgroup, but
>> you seem to have got most things in place already. The only
>> thing I would expect to have to change is this last line:
>>
>>> import wmi
>>> c = wmi.WMI()
>>> d = c.Win32_ComputerSystem
>>> d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

>> because the d is only a WMI *class*, not a WMI *instance*,
>> so doesn't refer as it should to your computer system but
>> to the class of computer systems. Try something like this (untested):
>>
>> <code>
>> import wmi
>>
>> c = wmi.WMI ()
>> for d in c.Win32_ComputerSystem ():
>> d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")
>>
>> </code>
>>
>> TJG

> thanks but it doesn't work
> I've got this errors
>
> Traceback (most recent call last):
> File "integrdom.py", line 51, in <module>
> main()
> File "integrdom.py", line 13, in main
> joindom()
> File "integrdom.py", line 44, in joindom
> d.JoinDomainOrWorkGroup(None, 3, "domcd", "adminLocal", r"admin
> \domcd")
> File "c:\Python25\Lib\site-packages\wmi.py", line 493, in __getattr__
> handle_com_error (error_info)
> File "c:\Python25\Lib\site-packages\wmi.py", line 189, in
> handle_com_error
> raise x_wmi, "\n".join (exception_string)
> wmi.x_wmi



Do you not get *anything* after than wmi.x_wmi? Not even
a messy exception string?

TJG
 
Reply With Quote
 
Toff
Guest
Posts: n/a
 
      12-22-2008
On 22 déc, 17:57, Tim Golden <m...@timgolden.me.uk> wrote:
> Toff wrote:
> > On 22 déc, 17:02, Tim Golden <m...@timgolden.me.uk> wrote:
> >> Toff wrote:
> >>> hi,
> >>> I 'm trying to write a script to make my computer join a samba.
> >>> domeone have any idea ??
> >> Ummm. It's not clear if you're saying that your code doesn't
> >> work, or asking for general advice, or what? I'm not in a
> >> position to have my machine join a domain or workgroup, but
> >> you seem to have got most things in place already. The only
> >> thing I would expect to have to change is this last line:

>
> >>> * *import wmi
> >>> * *c = wmi.WMI()
> >>> * *d = c.Win32_ComputerSystem
> >>> * *d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")
> >> because the d is only a WMI *class*, not a WMI *instance*,
> >> so doesn't refer as it should to your computer system but
> >> to the class of computer systems. Try something like this (untested):

>
> >> <code>
> >> import wmi

>
> >> c = wmi.WMI ()
> >> for d in c.Win32_ComputerSystem ():
> >> * d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

>
> >> </code>

>
> >> TJG

> > thanks but it doesn't work
> > I've got this errors

>
> > Traceback (most recent call last):
> > *File "integrdom.py", line 51, in <module>
> > * *main()
> > *File "integrdom.py", line 13, in main
> > * *joindom()
> > *File "integrdom.py", line 44, in joindom
> > * *d.JoinDomainOrWorkGroup(None, 3, "domcd", "adminLocal", r"admin
> > \domcd")
> > *File "c:\Python25\Lib\site-packages\wmi.py", line 493, in __getattr__
> > * *handle_com_error (error_info)
> > *File "c:\Python25\Lib\site-packages\wmi.py", line 189, in
> > handle_com_error
> > * *raise x_wmi, "\n".join (exception_string)
> > wmi.x_wmi

>
> Do you not get *anything* after than wmi.x_wmi? Not even
> a messy exception string?
>
> TJG


no pessy string

something strange:

import wmi
c = wmi.WMI()
os = c.Win32_ComputerSystem
for method_name in os.methods:
method = getattr(os, method_name)
print method

it doesn't give the same parameter order for JoinDomainOrWorkGroup
than MSDN doc
 
Reply With Quote
 
Jens Henrik Leonhard Jensen
Guest
Posts: n/a
 
      12-22-2008
Toff wrote:
> d = c.Win32_ComputerSystem
> d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

Shouldn't r"admin\\mydom" be "admin\\mydom" or r"admin\mydom".
Or maybe just "admin"

/Jens Henrik
 
Reply With Quote
 
Toff
Guest
Posts: n/a
 
      12-22-2008
On 22 déc, 18:59, Jens Henrik Leonhard Jensen
<j...@statsbiblioteket.dk> wrote:
> Toff wrote:
> > * *d = c.Win32_ComputerSystem
> > * *d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

>
> Shouldn't r"admin\\mydom" be "admin\\mydom" or r"admin\mydom".
> Or maybe just "admin"
>
> /Jens Henrik


you are right but i've got the same error.
 
Reply With Quote
 
Toff
Guest
Posts: n/a
 
      12-23-2008
On 22 déc, 19:37, Toff <christophed...@gmail.com> wrote:
> On 22 déc, 18:59, Jens Henrik Leonhard Jensen
>
> <j...@statsbiblioteket.dk> wrote:
> > Toff wrote:
> > > * *d = c.Win32_ComputerSystem
> > > * *d.JoinDomainOrWorkGroup(None, 3, "mydom", "mydompw", r"admin\\mydom")

>
> > Shouldn't r"admin\\mydom" be "admin\\mydom" or r"admin\mydom".
> > Or maybe just "admin"

>
> > /Jens Henrik

>
> you are right but i've got the same error.


the more i look at my script the more i think it s a BUG.

#ALL works great
import wmi
c = wmi.WMI()
for computer in c.Win32_ComputerSystem():
if computer.PartOfDomain:
print computer.Domain #DOMCD
print computer.SystemStartupOptions # (u'"Microsoft Windows XP
Professionnel" /noexecute=optin /fastdetect',)

#error message
computer.JoinDomainOrWorkGroup('DOMCD', 'adminLocal', 'admin\
\DOMCD',None,3 )


##############
DOMCD
(u'"Microsoft Windows XP Professionnel" /noexecute=optin /
fastdetect',)
Traceback (most recent call last):
File "integrdom.py", line 51, in <module>
main()
File "integrdom.py", line 13, in main
joindom()
File "integrdom.py", line 47, in joindom
computer.JoinDomainOrWorkGroup('DOMCD', 'adminLocal', 'admin\
\DOMCD',None,3
)
File "c:\Python25\Lib\site-packages\wmi.py", line 493, in
__getattr__
handle_com_error (error_info)
File "c:\Python25\Lib\site-packages\wmi.py", line 189, in
handle_com_error
raise x_wmi, "\n".join (exception_string)
wmi.x_wmi
 
Reply With Quote
 
Toff
Guest
Posts: n/a
 
      12-23-2008
Or maybe could I try with
LoadLibrary("netapi32.dll");
and the netjoindomain function ?

but it doesn't look very easy ....
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Making a server on one domain the domain controller of a new domain Limited Wisdom MCSA 7 09-13-2006 02:18 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57