gpt4 book ai didi

c# - 如何以编程方式更改机器的工作组?

转载 作者:行者123 更新时间:2023-11-30 12:37:23 24 4
gpt4 key购买 nike

有什么方法可以通过编程方式更改机器(XP、Vista 和 Win 7)所属的工作组(最好使用 .NET 语言)?我找到了代码来帮助确定一台机器属于哪个工作组,但在某些情况下我可能需要更改它。

这听起来有点奇怪,但我正在考虑为我们的用户构建一个自动恢复安装(在 100 多个不同站点的 2 到 10 台机器上,每台机器都有自己的“服务器”)。一个常见的场景是,“嘿,我的服务器死机了。你能让我们的销售点软件在另一台机器上运行并使其成为我们的临时/新服务器吗?”。我最终不得不手动配置他们的机器名称(将其重命名为旧服务器的名称 - 我已经有这方面的代码),然后仔细检查工作组以确保它对网络上的其他机器可见。我希望能够尽可能地实现自动化。

(编辑)

根据发布的信息,我进行了更多搜索,发现我实际上可以直接执行此操作,而无需运行 EXE(并不是说这样做有什么大不了的)。

using System;
using System.Management;

//为简洁起见删除了类内容

ManagementObject manage = new ManagementObject(string.Format("Win32_ComputerSystem.Name='{0}'", Environment.MachineName));
object[] args = { "WorkgroupName", null, null, null };
manage.InvokeMethod("JoinDomainOrWorkgroup", args);

最佳答案

看起来您必须调用 SetComputerNameEx() API。可以在 MSDN 上找到完成它的 C# 代码示例。或 pinvoke.net .

可以找到 SetComputerNameEx 函数的文档 here .

您还可以使用 netdom.exe Windows 支持工具中的实用程序。您将从您的代码中调用该 EXE 并将适当的参数传递给它 - 在这种情况下,您似乎想要使用/JOINWORKGROUP 参数。

关于c# - 如何以编程方式更改机器的工作组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com