كيف يمكن للمرء تغيير اسم الكمبيوتر Windows 2000 في .NET 2.0؟
-
22-09-2019 - |
سؤال
أحاول تغيير اسم الكمبيوتر (اسم المضيف) على Windows 2000 باستخدام .NET 2.0. لم يتم ربط الكمبيوتر بمجال.
يوفر Windows XP و أعلى طريقة WMI Win32_ComputerSystem.Rename
, ، ولكن هذا غير متوفر في Windows 2000 (إشارة هنا).
أنا لا أكره الاتصال فقط ببرنامج خارجي إذا احتجت إلى ذلك ، لكن يبدو أنني لا يبدو أنه يجد برنامجًا يعمل على Windows 2000. يبدو أن البحث على Google لم يظهر أي شيء واضح.
شكرا لك مقدما.
المحلول
أعتقد أن واجهة برمجة تطبيقات Windows قد تكون مفيدة على Windows 2000: الاستخدام SetComputerNameEx
:
BOOL WINAPI SetComputerNameEx(
__in COMPUTER_NAME_FORMAT NameType,
__in LPCTSTR lpBuffer
);
تعتمد هذه العينة على العينة على pinvoke.net:
public class RenameComputer
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern bool SetComputerNameEx(COMPUTER_NAME_FORMAT NameType, string lpBuffer);
enum COMPUTER_NAME_FORMAT
{
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
}
//ComputerNamePhysicalDnsHostname used to rename the computer name and netbios name before domain join
public static bool Rename(string name)
{
bool result = SetComputerNameEx(COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsHostname, name);
if (!result)
throw new Win32Exception();
return result;
}
}
بالإضافة إلى P-inving the winapi قد تستخدمه أيضًا Process.Start
بالاشتراك مع netsh
الأمر كما هو موضح هنا.
نصائح أخرى
هناك مثال في C تحت هذا الرابط. هل يمكن أن بينفوك ذلك
لا تنتمي إلى StackOverflow