1

.NET2.0を使用してWindows2000でコンピュータの名前(ホスト名)を変更しようとしています。コンピューターがドメインに参加していません。

Windows XP以降ではWMIメソッドWin32_ComputerSystem.Renameが提供されていますが、これはWindows 2000では使用できません(ここを参照)。

必要に応じて外部プログラムを呼び出すことを嫌うわけではありませんが、Windows2000で動作するプログラムを見つけることもできないようです。Googleで検索しても明らかなことは何も見つかりませんでした。

前もって感謝します。

4

2 に答える 2

3

WindowsAPIはWindows2000で役立つかもしれないと思います:使用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;
    }
}

WinAPIをp-invokingすることに加えて、ここで説明するようにコマンドとProcess.Start組み合わせて使用​​することもできます。netsh

于 2010-02-24T23:23:41.400 に答える
0

そのリンクの下にCの例があります。あなたはそれをピンボークすることができます

于 2010-02-24T23:23:20.463 に答える