Пароль к учетной записи компьютера в AD
Существует возможность ручного изменения пароля учетной записи компьютера, для чего понадобится утилита Netdom из пакета Resource Kit для Windows, а не оснастка Active Directory — Пользователи и компьютеры (Active Directory — Users and Computers). Утилита Netdom расположена в каталоге Support\Tools. Для сброса пароля учетной записи компьютера введите следующую команду:Первая ссылка в гугле
netdom resetpwd /server:<имя_сервера> /userd:<имя_пользователя>\Administrator /passwordd:*
После ввода команды будет выдано следующее сообщение:
Type the password associated with the domain user:
The machine account password for the local machine has been successfully reset.
The command completed successfully.
Программу Netdom следует запустить на компьютере, пароль которого необходимо изменить. Сервер должен являться контроллером домена, а пользователю, в свою очередь, требуется наличие административной учетной записи в домене для компьютера с модифицируемым паролем.
Для вступления в силу измененного пароля необходимо перезагрузить компьютер. Одновременный сброс пароля на локальном компьютере и контроллере домена позволяет гарантировать синхронизацию двух процессов, после чего начинается репликация данных Active Directory и произведенные изменения передаются другим контроллерам домена.
А, ну да, узнать пароль, полагаю, так же, как и у пользователей - никак. Ну или полным перебором по хэшу.
Необходимо задать свой собственный пароль для PassThrough Authentication в одной программе.
NetLogon service is the internal communication channel of Microsoft. One computer will create a unique identity in the domain and create some random password for the further communications within the domain. For eg, When the user tries to login, the computer will produce its identity to the AD and then it tries to authenticates the user. The user accounts are used for access privileges and it cannot communicate with AD directly so we are using the computer account for netlogon.
Это можно сделать примерно вот так:
CreateComputerAccount.vbs pseudohostname pseudohostpassword DOMAIN domaincontroller.fqdn domainadmin domainadminpassword
CreateComputerAccount.vbs:
'$Id: CreateComputerAccount.vbs,v 1.3 2011/03/24 06:57:27 nshankar Exp $
'CreateComputerAccount.vbs
'Create a Computer account in Active Directory, set it's password and
'echo the principal name, DNS domain name and password in a | separated
'list. If no password is supplied, a random password will be set. If no
'container DN is supplied, the account will be created in the default
'Computers container (such as CN=Computers,DC=example,DC=com). If an
'error occurs, the error code and possibly error text will be returned
'in the first two fields of the output string. If the operation is
'successful, the error code is always "0".
'Option Explicit
'On Error Resume Next
Dim strContainer, strName, strPassword, strDnsDomain , strDomainController, strDomainAdminUser , strDomainAdminPwd
Dim objContainer, objComputer, objRootDSE, objSystemInfo
strContainer = ""
strName = ""
strPassword = ""
strDnsDomain = ""
If WScript.Arguments.Count = 0 Then
WScript.Echo "Error : Usage: CreateComputerAccount.vbs <Name>"
WScript.Echo " [/p <Password>]"
WScript.Echo " [/c <ContainerDN> | /d <DnsDomain>]"
WScript.Echo "Output: <ErrorCode>|<ErrorText>|<PrincipalName>|<DnsDomain>|<Password>"
WScript.Quit
End If
Select Case WScript.Arguments.Count
Case 6
strName = Wscript.Arguments(0)
strPassword = Wscript.Arguments(1)
strDnsDomain = Wscript.Arguments(2)
strDomainController = Wscript.Arguments(3)
strDomainAdminUser = Wscript.Arguments(4)
strDomainAdminPwd = Wscript.Arguments(5)
strContainer = ""
Case Else
strMsg = "Error # in parameters passed"
WScript.Echo strMsg
WScript.Quit(0)
End Select
If strName = "" Then
WScript.Echo "Error : Usage: CreateComputerAccount.vbs <Name> [[p] <Password>] [[c] <ContainerDN>]"
WScript.Quit
End If
Function TranslateDnToDnsDomain(dn)
Dim objTrans, strCanon
'ADS_NAME_INITTYPE_GC 3
'ADS_NAME_TYPE_1779 1
'ADS_NAME_TYPE_CANONICAL 2
Set objTrans = CreateObject("NameTranslate")
objTrans.Init 3, ""
objTrans.Set 1, dn
strCanon = objTrans.Get(2)
strCanon = Mid(strCanon, 1, InStr(strCanon, "/") - 1)
TranslateDnToDnsDomain = strCanon
End Function
If strContainer <> "" Then
strDnsDomain = TranslateDnToDnsDomain(strContainer)
ElseIf strDnsDomain <> "" Then
'WScript.Echo "strDnsDomain is " & strDnsDomain
Set objRootDSE = GetObject("LDAP://" & strDomainController & "/RootDSE")
strContainer = "CN=Computers," & objRootDSE.Get("DefaultNamingContext")
Else
Set objRootDSE = GetObject("LDAP://RootDSE")
strContainer = "CN=Computers," & objRootDSE.Get("DefaultNamingContext")
strDnsDomain = TranslateDnToDnsDomain(strContainer)
End If
Function RandPass(pn)
Dim c, n, m, s, ret, i, r
c = "abcdefghjkmnpqrstuvwxyz"
n = "23456789"
m = "~$^-+."
ret = ""
Randomize
pn = pn - 1
For i = 0 to pn
If i Mod 8 = 4 Then
s = m
ElseIf i Mod 8 > 4 Then
s = n
Else
s = c
End If
r = Int(Rnd * Len(s
ret = ret & Mid(s, r + 1, 1)
Next
RandPass = ret
End Function
If strPassword = "" Then
strPassword = RandPass(8)
End If
If Err.Number = 0 Then
Dim strUsername, strPass, objNamespaceLDAP
strUserName = "cn=" & strDomainAdminUser & ",cn=Users," & objRootDSE.Get("DefaultNamingContext")
'WScript.Echo strUserName
'WScript.Echo "strcontainer" & strContainer
'WScript.Echo "hhhh" & objRootDSE.Get("DefaultNamingContext")
strPass = strDomainAdminPwd
Dim subStrings,tmp
subStrings = Split(","&objRootDSE.Get("DefaultNamingContext" ",DC=")
'Filter(objRootDSE.Get("DefaultNamingContext" "DC=", True, 0)
Dim cnt,cnt1
bndStr = ""
cnt1 = UBound(subStrings)
For cnt = 1 to cnt1
tmp = tmp + subStrings(cnt)
If cnt <> cnt1 Then
tmp = tmp & "."
End If
'WScript.Echo "bindStr" & tmp
Next
'WScript.Echo "bindStr" & tmp
Set objNamespaceLDAP = GetObject("LDAP:")
Set objContainer = objNamespaceLDAP.OpenDSObject("LDAP://" & strDomainController & "/" & strContainer,strUserName,strDomainAdminPwd,0)
If Err.Number = 0 Then
Set objComputer = objContainer.Create("Computer", "CN=" & strName)
'WScript.Echo objComputer
If Err.Number = 0 Then
objComputer.sAMAccountName = strName & "$"
objComputer.userAccountControl = 4128
objComputer.SetInfo
If Err.Number = 0 Then
objComputer.SetPassword strPassword
If Err.Number = 0 Then
WScript.Echo "SUCCESS#" & objComputer.sAMAccountName & "@" & tmp & "#" & tmp & "#"
WScript.Quit
End If
End If
End If
End If
End If
'If Err.Number = 0 Then
' WScript.Quit
If Err.Number = &H80071392 Then
Err.Description = "The object already exists"
ElseIf Err.Number = &H80072035 Then
Err.Description = "The server is unwilling to process the request"
Else
WScript.Echo "Error " & Hex(Err.Number) & "|" & Err.Description & "||"
End If
WScript.Quit
Взято у индусов из AdventNet/ZOHO
Нужно зайти на сервер в АД и нажать правой кнопкой мыши на комп пользователя, там можно будет изменить пароль на новый.
Оставить комментарий
danaql
У учетных записей компьютеров в AD как и у пользователей есть свои пароли. Как можно узнать пароль компьютера или назначить свой собственный ?