4

私はこの質問がSOで何度も尋ねられたことを知っていますが、どれも私の質問に答えません。Comptiat A +の調査から、自動化された(無人の)インストールを使用する場合、各マシンでOSをアクティブ化する前に、技術者は常に戻ってマシンSIDを変更する必要があることを知っています。ネットワークなどでSIDを取得する方法については多くの質問があるようですが、変更できないマシンSIDもあることは知っています。Fix-It Utilitiesブートディスクを使用したことがある方のために、「SIDを変更」ボタンがあります。これにより、Windowsがすでにアクティブ化されている場合、Windowsの起動に失敗します。

私の質問はこれに似ていますが、彼の質問は実際には答えられませんでした。私の質問は、c#を使用してMACHINEWindowsインストールSIDを取得するにはどうすればよいですか。

4

1 に答える 1

7

まあ、それはあなたが望むコンピュータSIDに依存します(真剣に!)。ローカルコンピューターがそれ自体に使用するSIDがあります...このためには、ローカル管理者ユーザーのSIDを取得し、最後から「-500」を削除してコンピューターのSIDを取得する必要があります。

.NET 3.5のC#の場合:

using System;
using System.Security.Principal;
using System.DirectoryServices;
using System.Linq;
public static SecurityIdentifier GetComputerSid()
{
    return new SecurityIdentifier((byte[])new DirectoryEntry(string.Format("WinNT://{0},Computer", Environment.MachineName)).Children.Cast<DirectoryEntry>().First().InvokeGet("objectSID"), 0).AccountDomainSid;
}

一方、Active Directoryが各ドメインメンバーコンピューターを識別するために使用するSIDがあります...ドメイン内のマシンアカウントのSIDを取得することによって取得するSID(ドル記号で終わるもの)。

于 2013-01-01T19:41:05.830 に答える