1 回答

TA貢獻1816條經驗 獲得超4個贊
根據 Microsoft 的說法,組類型枚舉的定義方式如下:
1 (0x00000001) 指定由系統創建的組。
2 (0x00000002) 指定具有全局范圍的組。
4 (0x00000004) 指定具有域本地作用域的組。
8 (0x00000008) 指定具有通用范圍的組。
16 (0x00000010) 為 Windows Server 授權管理器指定一個 APP_BASIC 組。
32 (0x00000020) 為 Windows Server 授權管理器指定一個 APP_QUERY 組。
2147483648 (0x80000000) 指定安全組。如果未設置此標志,則該組為通訊組。
但這也是一個標志枚舉——意味著可以通過將它們相加來組合值。所以是的,0x80000004
實際上是一個有效值,表示“域本地安全組”。(0x4
是域本地通訊組)
但是你必須轉換為一個整數(它不會讓你用十六進制值設置它)。我很驚訝你得到的異常是“服務器不愿意處理請求”,因為當我這樣做時:
(int)?0x80000004
我收到此編譯器錯誤:
CS0221:常量值“2147483652”無法轉換為“int”(使用“unchecked”語法覆蓋)
那是因為 的十進制值為0x80000004
2147483652,不適合 32 位整數。
但是你確實需要給它一個 32 位整數(你不能只轉換為 a?long
)。所以你必須遵循建議并unchecked
在鑄造時使用:
unchecked((int)?0x80000004)
這給你一個十進制值 -2147483644。
所以你的代碼應該是這樣的:
groupToCreate.Properties["groupType"].Add(unchecked((int)?GroupType.DomainLocalGroup));
- 1 回答
- 0 關注
- 164 瀏覽
添加回答
舉報