ipxe Computer hostname Same ? - Printable Version +- iPXE discussion forum (https://forum.ipxe.org) +-- Forum: iPXE user forums (/forumdisplay.php?fid=1) +--- Forum: General (/forumdisplay.php?fid=2) +--- Thread: ipxe Computer hostname Same ? (/showthread.php?tid=1755) |
ipxe Computer hostname Same ? - chinahcnet - 2012-01-28 17:59 Hello, everyone! ipxe, multi Computer boot windos xp, Computer hostname Same problem? Where can automatically set windows xp hostname? Thanks RE: ipxe Computer hostname Same ? - chinahcnet - 2012-01-29 13:00 + * Store hostname parameters in registry + * + * @v hostname ComputerName + * @ret ntstatus NT status + */ +static NTSTATUS store_hostname_parameters(LPSTR hostname) { + LPWSTR value_name; + HANDLE reg_key; + NTSTATUS status; + WCHAR buf[256]; + LPCWSTR star = L"star"; + WCHAR key_name_computername[] = ( L"\\Registry\\Machine\\SYSTEM\\" + L"CurrentControlSet\\Control\\ComputerName\\ComputerName\\"); + + WCHAR key_name_hostname[] = ( L"\\Registry\\Machine\\SYSTEM\\" + L"CurrentControlSet\\Services\\" + L"Tcpip\\Parameters\\" ); + + RtlStringCbPrintfW ( buf, sizeof ( buf ), + L"%wS-%S", star, hostname ); + value_name = buf; + /* Open key */ + status = reg_open ( key_name_computername, ®_key ); + if ( ! NT_SUCCESS ( status ) ) + goto err_reg_open; + + /* Store computername */ + status = reg_store_sz ( reg_key, L"ComputerName", value_name ); + if ( ! NT_SUCCESS ( status ) ) + goto err_reg_store; + + /* Close key */ + reg_close(reg_key); + + /* open key */ + status = reg_open(key_name_hostname, ®_key); + if (!NT_SUCCESS(status)) + goto err_reg_open; + + /* Store hostname */ + status = reg_store_sz ( reg_key, L"Hostname", value_name ); + if ( ! NT_SUCCESS ( status ) ) + goto err_reg_store; + status = reg_store_sz ( reg_key, L"NV Hostname", value_name ); + if ( ! NT_SUCCESS ( status ) ) + goto err_reg_store; + /* Store hostname end */ + err_reg_store: + reg_close ( reg_key ); + err_reg_open: + return status; +} + +/** * Store TCP/IP parameters in registry * * @v nic iBFT NIC structure @@ -904,6 +957,11 @@ UNICODE_STRING u_symlink; NTSTATUS status; + /* get computername */ + status = store_hostname_parameters(ibft_string(ibft, &nic->hostname)); + if(!NT_SUCCESS(status)) + DbgPrint("Set ComputerName Fail!\n"); + /* Dump structure information */ DbgPrint ( "Found iBFT NIC %d:\n", header->index ); DbgPrint ( " Flags = %#02x%s%s\n", header->flags, RE: ipxe Computer hostname Same ? - robinsmidsrod - 2016-07-30 22:10 What's this supposed to be a patch against? RE: ipxe Computer hostname Same ? - MultimediaMan - 2016-07-31 15:50 It's not a patch; I think it's a script/ or code to sync the hostname of the #running# client (in Windows XP/2003) to that of the hostname provided by the DHCP Server and/or iPXE (iBFT). Observations: This probably wouldn't work on a Domain-joined client. |