iPXE discussion forum
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, &reg_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, &reg_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.