2009-07-28 12 views
4

マシン(XP、Vista、およびWin 7)が(理想的には.NET言語の)ワークグループをプログラムによって変更する方法はありますか?マシンがどのワークグループに属しているかを判断するためのコードが見つかりましたが、場合によってはこれを変更する必要があるかもしれません。マシンのワークグループをプログラムでどのように変更できますか?

これはちょっと変わったようですが、ユーザー用の自動リカバリインストールを構築することを考えています(100台以上の2〜10台のマシンでそれぞれ独自の「サーバー」を持つサイト)。一般的なシナリオは、「ちょっと、私のサーバーが亡くなりました。私たちのPoint of Saleソフトウェアを別のマシンで稼働させ、一時的な/新しいサーバーにすることができますか?私は手動でマシン名を設定する必要があります(古いサーバーの名前に名前を変更します - これはすでにコードがあります)、ネットワーク上の他のマシンから見えるようにワークグループを再確認してください。私はできるだけこれを自動化できるようにしたいと思います。情報付き

(編集)

は、私はもう少し検索をした掲示し、私は実際にEXEを(それを行うことは大したなかったことを)実行せずに、直接これを行うことができることがわかりました。あなたはSetComputerNameEx()APIへの呼び出しを行う必要があるだろうのように簡潔

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

解決策を投稿していただきありがとうございます。 – scor4er

答えて

2

のために取り外さ

using System; 
using System.Management; 

//クラスのものが見えます。それを達成するためのC#コードの例は、MSDNまたはpinvoke.netにあります。

SetComputerNameEx関数のドキュメントはhereです。

Windowsサポートツールのnetdom.exeユーティリティを使用することもできます。コードからそのEXEを呼び出し、適切なパラメータを渡します。この場合、/ JOINWORKGROUPパラメータを使用するように見えます。

関連する問題