如何藉由使用 ADSI prestage RIS 用戶端電腦

文章翻譯 文章翻譯
文章編號: 302467 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

簡介

netbootGUID 屬性在 Active Directory 中的電腦物件的設定為任一電腦的 GUID 如果可用或根據 [啟用才能使用遠端安裝服務 (RIS) 的電腦的網路卡位址計算的值。 netbootGUID 屬性是設定在用戶端電腦的預備階段。利用 Active Directory 服務介面 (ADSI) 用戶端電腦可以是以程式設計方式 prestaged 設定 Active Directory 中的電腦物件 netbootGUID 屬性。

其他相關資訊

網路上的 RIS 用戶端電腦啟動時它會啟動網路服務要求。(使用開機資訊交涉階層 [BINL] 服務) 的 RIS 伺服器必須檢查 Active Directory 預備用戶端電腦帳戶符合用戶端電腦存在。BINL 藉由為其 netbootGUID 符合要求期間所傳送的 GUID 的電腦物件查詢 Active Directory 檢查之用戶端電腦存在。

這一節中所提供的範例會示範:
  • 如何以程式設計方式 prestage 設定 netbootGUID 屬性在 Active Directory 中的 [用戶端電腦。
  • 如何判斷什麼 netbootGUID 屬性應設為。

程式碼範例

以程式設計方式 prestage 用戶端

下列範例會使用 Microsoft Visual Basic 會示範如何以程式設計方式 prestage 八位元資料組字串值,netbootGUID 屬性的設定在 Active Directory 中的電腦物件上的 [用戶端電腦。
'Here is an example of using the CLSIDFromString function to set
'netbootGUID attribute on an existing computer object.
'You can also set netbootGUID at the creation time of the computer object

Private Declare Function CLSIDFromString _
    Lib "ole32.dll" (ByVal lpszProgID As Long, _
                    pCLSID As Byte) As Long

Private Sub Form_Load()
  Dim oComp As IADs
  Dim retval As Long
  Dim strGUID As String
  Dim pGUID(0 To 15) As Byte

  strGUID = "{EEF00083-8597-4c2c-9ACB-FC860480FC5D}"
  retval = CLSIDFromString(StrPtr(strGUID), pGUID(0))
  Set oComp = GetObject("LDAP://cn=comp1,cn=computers,dc=mydomain,dc=com")
  oComp.Put "netbootGUID", CVar(pGUID)
  oComp.SetInfo 
  Set oComp = nothing
End Sub
				

以程式設計方式判斷 NetbootGUID 值

下列範例會使用 Microsoft Visual Basic 指令碼會示範如何以程式設計方式判斷什麼 netbootGUID 屬性值應該設定為針對電腦。
'The sample uses WMI to return the UUID on the system.
'If a UUID can not be found on the system it returns all F's.
'What RIS does in this case is it uses a zero'd out version of the MAC 
'address of the NIC the machine is booting off of. 
'This sample will return the value required to set the 
'netbootGUID attribute

Option Explicit

Dim boolWFMCapable
Dim szUUID
Dim szMac
Dim SystemSet
Dim szAdapterDescription
Dim SystemItem
Dim NetworkAdapterSet
Dim NetworkAdapter
Dim iMacCount
 
Set SystemSet = GetObject("winmgmts:").InstancesOf ("Win32_ComputerSystemProduct")
 
For Each SystemItem In SystemSet
  szUUID = SystemItem.UUID
  If szUUID = "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF" Then
    MsgBox "No system UUID could be found. This system does " & _
           "not appear to support Intel's Wired For Management " & _
           "specification. This script will now try and retrive " & _
           "a MAC based UUID.", vbInformation, "Not WFM capable"
    boolWFMCapable = 0
  Else
    InputBox "Successfully retrieved a system UUID, " & szUUID & _
             ". This UUID has been placed in the text area below " & _
             "for your convenience.", "WFM Capable", szUUID
    boolWFMCapable = 1
  End If
Next
 
If boolWFMCapable = 0 Then
  Set NetworkAdapterSet = GetObject("winmgmts:").InstancesOf ("Win32_NetworkAdapter")
 
  iMACCount = 0
  For Each NetworkAdapter In NetworkAdapterSet
    If NetworkAdapter.AdapterType = "Ethernet 802.3" Then
      szAdapterDescription = NetworkAdapter.Description
      If NetworkAdapter.Description <> "Packet Scheduler Miniport" Then
        szMAC = NetworkAdapter.MACAddress
        szUUID = "00000000-0000-0000-0000-"&Replace(szMAC, ":", "")
        InputBox "Based on the network adapter with the description """ & _
                 szAdapterDescription & """, your system's UUID would " & _
                 "be " & szUUID & ". This UUID has been placed in the " & _
                 "text area below for your convenience." , _<BR/>
                 "Not WFM Capable", szUUID
      End If 
    End If
    iMACCount = iMACCount + 1
  Next
End If
				

?考

如需有關 ADSI 的詳細資訊,請造訪下列 Microsoft 網站 (英文):
使用中目錄服務介面概觀
http://technet.microsoft.com/en-us/windowsserver/2000/bb735360.aspx
如需在遠端安裝服務的詳細資訊,請造訪下列 Microsoft 網站:
RIS 用戶端安裝和管理組態選項
http://pssweb/eps/performance/mnp_default.asp?loadtype=dynamic&loadurl=/eps/performance/msi/documentation/risclient.htm

遠端作業系統安裝
http://technet.microsoft.com/en-us/library/bb742586.aspx
如需有關如何以程式設計方式判斷電腦的 GUID 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
198871IShellFolder::GetDisplayNameOf 傳回 GUID 的名稱
如需有關由遠端安裝開機磁片所產生的電腦的 GUID 的資訊,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
242920遠端安裝開機磁片的運作方式
如需有關 CLSIDFromString 的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站]:
http://msdn.microsoft.com/en-us/library/ms680589.aspx
如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
183544如何呼叫 CLSID 與 ProgID 相關 COM API 在 Visual Basic 中
要了解 WMI 請造訪下列 MSDN 網站:
http://msdn.microsoft.com/en-us/library/bb985153.aspx

屬性

文章編號: 302467 - 上次校閱: 2006年8月4日 - 版次: 5.1
這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
關鍵字:?
kbmt kbdswadsi2003swept kbhowto KB302467 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:302467
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com