From f0df809eb7887fb562f9f409c322d105f6cae246 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Wed, 21 Sep 2011 20:53:46 +0000 Subject: [PATCH] [SYSSETUP] Set the account domain name. svn path=/trunk/; revision=53794 --- reactos/dll/win32/syssetup/wizard.c | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/reactos/dll/win32/syssetup/wizard.c b/reactos/dll/win32/syssetup/wizard.c index cae440df81d..bfb7af0f6bb 100644 --- a/reactos/dll/win32/syssetup/wizard.c +++ b/reactos/dll/win32/syssetup/wizard.c @@ -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; }