background img

The New Stuff

Autoit: Изменение принадлежности компьютера к рабочей группе

Скрипт меняет принадлежность компьютера к рабочей группе. Сделан на основе кода VBS.

$ProcessName = "AutoIt3.exe"
$RetArr = _ProcessExistsVbs($ProcessName) 
If IsArray($RetArr) Then MsgBox(64, "", "Process <" & $RetArr[1] & "> exists." & @LF & @LF & _ 
    "The returned PID is: " & $RetArr[2] & @LF & @LF & _ 
    "Returned Executable Path is: " & @LF & $RetArr[3] & @LF & @LF & _ 
    "Command Line of executed process is: " & @LF & $RetArr[4]) 

Func _ProcessExistsVbs($ProcName) 
     Local $Code = "" 
    $Code &= 'Function ProcessExists(ProcessName)' & @LF 
    $Code &= 'Const JOIN_DOMAIN = 1' & @LF 
    $Code &= 'Const ACCT_CREATE = 2' & @LF 
    $Code &= 'Const ACCT_DELETE = 4' & @LF 
    $Code &= 'Const WIN9X_UPGRADE = 16' & @LF 
    $Code &= 'Const DOMAIN_JOIN_IF_JOINED = 32' & @LF 
    $Code &= 'Const JOIN_UNSECURE = 64' & @LF 
    $Code &= 'Const MACHINE_PASSWORD_PASSED = 128' & @LF 
    $Code &= 'Const DEFERRED_SPN_SET = 256' & @LF 
    $Code &= 'Const INSTALL_INVOCATION = 262144' & @LF 
    $Code &= 'strDomain = "NewGr"' & @LF                        //Здесь задается имя рабочей группы или домена
    $Code &= 'Set objNetwork = CreateObject("WScript.Network")' & @LF 
    $Code &= 'strComputer = objNetwork.ComputerName' & @LF 

    $Code &= "Set objComputer = GetObject(" & """winmgmts:{impersonationLevel=Impersonate}!\\""" & " & _" & @LF 
    $Code &= "strComputer & " & """\root\cimv2:Win32_ComputerSystem.Name='""" & " & _" & @LF 
    $Code &= "strComputer & " & """'""" & ")" & @LF

    Local $VbsObj = ObjCreate("ScriptControl") 
    If @error Then Return SetError(1, 0, -1) 
    $VbsObj.Language = "vbscript" 
$VbsObj.AddCode($Code) 
    Local $RetArr = $VbsObj.[i]Run[/i]("ProcessExists", $ProcName) 
    If $RetArr = 0 Then Return SetError(0, 0, 0) 
    Return $RetArr 
EndFunc

Источник: http://forum.ru-board.com/topic.cgi?forum=5&topic=33902
Скрипт меняет принадлежность компьютера к рабочей группе. Сделан на основе кода VBS.

$ProcessName = "AutoIt3.exe"
$RetArr = _ProcessExistsVbs($ProcessName) 
If IsArray($RetArr) Then MsgBox(64, "", "Process <" & $RetArr[1] & "> exists." & @LF & @LF & _ 
    "The returned PID is: " & $RetArr[2] & @LF & @LF & _ 
    "Returned Executable Path is: " & @LF & $RetArr[3] & @LF & @LF & _ 
    "Command Line of executed process is: " & @LF & $RetArr[4]) 

Func _ProcessExistsVbs($ProcName) 
     Local $Code = "" 
    $Code &= 'Function ProcessExists(ProcessName)' & @LF 
    $Code &= 'Const JOIN_DOMAIN = 1' & @LF 
    $Code &= 'Const ACCT_CREATE = 2' & @LF 
    $Code &= 'Const ACCT_DELETE = 4' & @LF 
    $Code &= 'Const WIN9X_UPGRADE = 16' & @LF 
    $Code &= 'Const DOMAIN_JOIN_IF_JOINED = 32' & @LF 
    $Code &= 'Const JOIN_UNSECURE = 64' & @LF 
    $Code &= 'Const MACHINE_PASSWORD_PASSED = 128' & @LF 
    $Code &= 'Const DEFERRED_SPN_SET = 256' & @LF 
    $Code &= 'Const INSTALL_INVOCATION = 262144' & @LF 
    $Code &= 'strDomain = "NewGr"' & @LF                        //Здесь задается имя рабочей группы или домена
    $Code &= 'Set objNetwork = CreateObject("WScript.Network")' & @LF 
    $Code &= 'strComputer = objNetwork.ComputerName' & @LF 

    $Code &= "Set objComputer = GetObject(" & """winmgmts:{impersonationLevel=Impersonate}!\\""" & " & _" & @LF 
    $Code &= "strComputer & " & """\root\cimv2:Win32_ComputerSystem.Name='""" & " & _" & @LF 
    $Code &= "strComputer & " & """'""" & ")" & @LF

    Local $VbsObj = ObjCreate("ScriptControl") 
    If @error Then Return SetError(1, 0, -1) 
    $VbsObj.Language = "vbscript" 
$VbsObj.AddCode($Code) 
    Local $RetArr = $VbsObj.[i]Run[/i]("ProcessExists", $ProcName) 
    If $RetArr = 0 Then Return SetError(0, 0, 0) 
    Return $RetArr 
EndFunc

Источник: http://forum.ru-board.com/topic.cgi?forum=5&topic=33902

0 коммент.:

Отправить комментарий

Popular Posts