2013-01-01 1 views
4

나는이 질문을 여러 번 물었습니다.하지만 그들 중 누구도 내 질문에 답하지 않습니다. 자동화 된 (무인) 설치를 사용하는 경우 기술자는 각 컴퓨터에서 OS를 활성화하기 전에 항상 돌아가서 MACHINE SID를 변경해야한다는 Comptiat A +에 대해 공부했습니다. 네트워크 등으로 SID를 얻는 방법에 대한 많은 질문이있는 것으로 보이지만 바꿀 수없는 컴퓨터 SID도 있다는 것을 알고 있습니다. Fix-It 유틸리티 부팅 디스크를 사용하는 사용자에게는 "SID 변경"버튼이 있으며 이미 활성화되어있는 경우 부팅에 실패하게됩니다.C#에서 Windows 설치 SID를 얻으려면 어떻게해야합니까?

내 질문은 this과 비슷하지만 그의 질문은 절대로 답변되지 않았습니다. 내 질문은 어떻게 C#을 사용하여 MACHINE Windows 설치 SID를 얻는가입니다.

답변

5

음, 원하는 컴퓨터 SID에 따라 달라집니다 (심각하게!). 로컬 컴퓨터가 자체적으로 사용하는 SID가 있습니다.이 경우 로컬 Administrator 사용자의 SID를 가져 와서 컴퓨터의 SID를 얻으려면 끝에 "-500"을 제거하면됩니다. .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를 얻어서 가져 그 하나있다 도메인의 컴퓨터 계정 - 달러 기호로 끝나는 계정.

+0

답변 해 주셔서 감사합니다. 이것은 전 세계적으로 고유 한 것입니까? – FrostyFire

+0

@JABFreeware 위키 피 디아에 따르면 :'Microsoft Windows NT 계열의 운영 체제에서 보안 식별자 (일반적으로 SID로 약칭 함)는 사용자, 사용자 그룹 또는 기타 보안 주체의 고유하고 불변 인 식별자입니다. " 즉, 중복 된 SID는 일반적으로 Microsoft Windows 시스템에서 문제가되지 않습니다. ' –

+0

기본적으로 합법적 인 Windows 설치는 동일한 키를 공유 할 수 없습니다 :) 감사합니다. +1. 이것은 매우 잘 작동합니다! – FrostyFire

관련 문제