[SYSSETUP]

Set the account domain name.

svn path=/trunk/; revision=53794
This commit is contained in:
Eric Kohl 2011-09-21 20:53:46 +00:00
parent a694d0b795
commit f0df809eb7

View file

@ -520,6 +520,47 @@ OwnerPageDlgProc(HWND hwndDlg,
return FALSE;
}
static
NTSTATUS
SetAccountDomain(LPWSTR DomainName)
{
POLICY_ACCOUNT_DOMAIN_INFO Info;
LSA_OBJECT_ATTRIBUTES ObjectAttributes;
LSA_HANDLE PolicyHandle;
NTSTATUS Status;
memset(&ObjectAttributes, 0, sizeof(LSA_OBJECT_ATTRIBUTES));
ObjectAttributes.Length = sizeof(LSA_OBJECT_ATTRIBUTES);
Status = LsaOpenPolicy(NULL,
&ObjectAttributes,
POLICY_TRUST_ADMIN,
&PolicyHandle);
if (Status != STATUS_SUCCESS)
{
DPRINT("LsaOpenPolicy failed (Status: 0x%08lx)\n", Status);
return Status;
}
Info.DomainName.Buffer = DomainName;
Info.DomainName.Length = wcslen(DomainName) * sizeof(WCHAR);
Info.DomainName.MaximumLength = Info.DomainName.Length + sizeof(WCHAR);
Info.DomainSid = NULL;
Status = LsaSetInformationPolicy(PolicyHandle,
PolicyAccountDomainInformation,
(PVOID)&Info);
if (Status != STATUS_SUCCESS)
{
DPRINT("LsaSetInformationPolicy failed (Status: 0x%08lx)\n", Status);
}
LsaClose(PolicyHandle);
return Status;
}
static
BOOL
WriteComputerSettings(WCHAR * ComputerName, HWND hwndDlg)
@ -545,6 +586,9 @@ WriteComputerSettings(WCHAR * ComputerName, HWND hwndDlg)
/* Try to also set DNS hostname */
SetComputerNameExW(ComputerNamePhysicalDnsHostname, ComputerName);
/* Set the account domain name */
SetAccountDomain(ComputerName);
return TRUE;
}