2017-02-02 5 views
1

"Win32_NetworkLoginProfile"클래스를 사용하여 로컬 시스템에서 사용자 정보를 추출하고 있습니다. 내 컴퓨터의 Powershell에서 "Get-WmiObject -class Win32_NetworkLoginProfile | Select *"를 실행하면 Flags = 513이 표시됩니다.이 클래스에 대한 자세한 내용은 MSDN 링크 (https://msdn.microsoft.com/en-us/library/aa394221%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)를 확인했습니다. 여기에 검색어가 있습니다 :WMI 클래스의 BitMaps BitValues ​​계산

Flags = 513이 Flags의 BitValues에있는 값과 일치하지 않습니다. 513이 무엇을 의미하는지 어떻게 알 수 있습니까?

감사합니다. 다음지도 인 link에 따라 바이너리 형식으로

답변

1

Flags = 51310 0000 0001, 그래서 당신은 제로 및 제 9 비트에 있다고 볼 수

bit 0 = Script 
bit 1 = Account Disabled 
bit 3 = Home Dir Required 
bit 4 = Lockout 
bit 5 = Password Not Required 
bit 6 = Paswword Can't Change 
bit 7 = Encrypted Test Password Allowed 
bit 8 = Temp Duplicate Account 
bit 9 = Normal Account 
bit 11 = InterDomain Trust Account 
bit 12 = WorkStation Trust Account 
bit 13 = Server Trust Account 
bit 16 = Don't Expire Password 
bit 17 = MNS Logon Account 
bit 18 = Smartcard Required 
bit 19 = Trusted For Delegation 
bit 20 = Not Delegated 
bit 21 = Use DES Key Only 
bit 22 = Don't Require Preauthorization 
bit 23 = Password Expired 

및 마지막 513Script 대응 (A 로그온 스크립트 실행 이 값은 LAN Manager 2.0 및 Windows NT/Windows 2000에 대해 설정해야 함) 및 Normal Account (일반 사용자를 나타내는 기본 계정 유형).

BTW 당신은 ​​속성 한정자에서지도를 검색 할 수 있습니다, here보세요.

수신 전화 번호에 따라지도에서 값을 반환하는 다음 단계를 수행하여 기능을 구현할 수 있습니다. 비트 번호가 키와 해당 값으로 이미 포함 된 사전을 이미 생성했다고 가정합니다. WMI는 문자열로 513 값을 반환합니다. 숫자로 변환해야합니다. 변수가 v이라고합시다. 31에서 0까지 루프를 만들고 i 변수에 대해 가정 해 봅시다. 각 반복에서 v2^i 이상인 경우 사전에서 출력 배열로 i 키가있는 항목을 추가하고 을 2^i으로 줄입니다. 결과적으로 출력 배열에는 입력 된 값의 스위치 온 된 비트 수에 해당하는 사전의 항목이 포함됩니다.

+0

답변 해 주셔서 감사합니다. 그러나 513이 매개 변수로 전달 된 구현을 찾고 이진 (1000000001)으로 변경 한 다음 위의 매핑에서 해당 값을 가져옵니다. 위의 비트 결과가 사전 또는 열거 형에 저장되어 있다고 가정합니다. 나는 이진 값을 위에 정의 된 비트와 상관시킬 수 없다. 저는 C#을 선택 프로그래밍 언어로 사용하고 있습니다. – Leo

+0

@Leo 내 대답을 확인하고, 내가 요청한 기능에 대한 설명을 추가했습니다. – omegastripes