Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Отключение пользователя из группы админов на удаленной машине (http://forum.oszone.net/showthread.php?t=218631)

andDaviD 22-10-2011 15:05 1779290

Отключение пользователя из группы админов на удаленной машине
 
I need do something like this code

Код:

strUser = "myUser"
strComputer = "myremoteComuter"
strPassword = "myPassword_"

Set objUser = GetObject("WinNT://" & strComputer & "/" & strUser & ",user",strUser,strPassword)


If Err.Number = 0 Then
objUser.AccountDisabled = true
objUser.SetInfo
End If

But there is not such methods GetObject that takes 3 parameters.

Iska 22-10-2011 15:44 1779310

andDaviD, напишите то же самое, но по-русски.

andDaviD 22-10-2011 16:33 1779330

Мне необходимо выполнить следующий код:
Код:

strUser = "myUser"
strComputer = "myremoteComuter"
strPassword = "myPassword_"

Set objUser = GetObject("WinNT://" & strComputer & "/" & strUser & ",user",strUser,strPassword)


If Err.Number = 0 Then
objUser.AccountDisabled = true
objUser.SetInfo
End If

Но не существует метода GetObject, который принимает 3 параметра. как мне подключиться к удаленной машине и отключить аккаунт пользователя?

Iska 22-10-2011 20:40 1779497

«GetObject()» — нет, для этого предназначен метод «OpenDSObject()». Пример смотрите здесь: How to Validate a User Exists in a Windows NT Domain - 4GuysFromRolla.com.

andDaviD 22-10-2011 21:37 1779540

да, похоже это то, что я ищу. только у меня вылетает ошибка на строке
Код:

Set objIADSUser = objIADS.GetObject("user", strClientUsername)
"Не найден сетевой путь". Хотя путь есть. Не знаете с чем связано?

Iska 22-10-2011 23:52 1779609

andDaviD, мне сейчас сложно сказать — нет доступа ни к сети, ни к домену. Для локальной машины работает:
Код:

Option Explicit

Const ADS_SECURE_AUTHENTICATION = &H01

Dim strComputer
Dim strAdminUserName
Dim strAdminPassword
Dim strUserName

Dim objIADsNamespace
Dim objIADsComputer
Dim objIADsUser


strComputer          = "MyComputer,computer"
strAdminUserName    = "Администратор"
strAdminPassword    = "MyPassword"
strUserName          = "AdminUser"

Set objIADsNamespace = GetObject("WinNT:")
Set objIADsComputer  = objIADsNamespace.OpenDSObject("WinNT://" & strComputer, strAdminUserName, strAdminPassword, ADS_SECURE_AUTHENTICATION)
Set objIADsUser      = objIADsComputer.GetObject("user", strUserName)

objIADsUser.AccountDisabled = True
objIADsUser.SetInfo

Set objIADsUser      = Nothing
Set objIADsComputer  = Nothing
Set objIADsNamespace = Nothing

WScript.Quit 0

Или, короче:
Код:

Option Explicit

Const ADS_SECURE_AUTHENTICATION = &H01

Dim strComputer
Dim strAdminUserName
Dim strAdminPassword
Dim strUserName


strComputer          = "MyComputer,computer"
strAdminUserName    = "Администратор"
strAdminPassword    = "MyPassword"
strUserName          = "AdminUser"

With GetObject("WinNT:").OpenDSObject( _
        "WinNT://" & strComputer, strAdminUserName, strAdminPassword, ADS_SECURE_AUTHENTICATION _
        ).GetObject("user", strUserName)
       
        .AccountDisabled = True
        .SetInfo
End With

WScript.Quit 0


andDaviD 23-10-2011 00:03 1779613

Спасибо. Разобрался. У меня так заработало:

Код:

strNTDomain = "david"
strAdminUsername = "R"
strAdminPassword = "100200300Aa_"
strClientUsername = "Bala"
strOldPassword = "100200300Aa__"
strNewPassword = "100200300Aa_"


Set objIADSUser = GetObject("WinNT:").OpenDSObject("WinNT://david/" & strClientUsername & ",user", strAdminUsername ,strAdminPassword , ADS_SECURE_AUTHENTICATION)

objIADSUser.ChangePassword strOldPassword,strNewPassword
objIADSUser.SetInfo

Осталось это к C# прилепить.Но это уже другая история )


Время: 17:30.

Время: 17:30.
© OSzone.net 2001-