如何通过使用 ADSI 预备的 RIS 客户端计算机

文章翻译 文章翻译
文章编号: 302467 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

在 Active Directory 中的计算机对象的该 netbootGUID 属性设置为计算机的 GUID 如果可用) 或基于网络卡地址已启用要使用远程安装服务 (RIS) 中的计算机上的计算的值。 在客户端计算机的预先设置阶段设置 netbootGUID 属性。通过 Active Directory 服务接口 (ADSI) 客户端计算机可以是以编程方式预备的计算机对象的 netbootGUID 属性设置在 Active Directory 中的。

更多信息

启动 RIS 客户端计算机在网络上的时它将启动一个网络服务请求。RIS 服务器 (使用启动信息协商层 [BINL] 服务) 必须检查存在匹配客户端计算机的预备客户端计算机帐户的 Active Directory。BINL 通过其 netbootGUID 与在请求过程中发送的 GUID 相匹配的计算机对象的查询 Active Directory 来检查存在的客户端计算机。

在本节中提供的示例说明:
  • 如何以编程方式通过在 Active Directory 中设置 netbootGUID 属性预备客户机。
  • 如何确定什么 netbootGUID 属性应设置为。

代码示例

以编程方式预备客户端

下面的示例使用 Microsoft Visual Basic 来演示如何以编程方式通过 Active Directory 中的计算机对象上设置八位字节字符串值 netbootGUID 属性的预备客户端计算机。
'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 值

下面的示例演示如何以编程方式确定什么 netbootGUID 属性值应设置为计算机的使用 Microsoft Visual Basic 脚本。
'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 开发人员网络 (MSDN) 的网站:
http://msdn.microsoft.com/en-us/library/ms680589.aspx
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
183544如何调用 CLSID 和 ProgID 相关 Visual Basic 中的 COM api
有关 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
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 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