Como inserir um computador cliente do RIS usando a ADSI

Traduções deste artigo Traduções deste artigo
ID do artigo: 302467 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

INTRODUÇÃO

O atributo netbootGUID de um objeto de computador no Active Directory é definido como GUID do computador, se disponível, ou um valor calculado com base no endereço da placa de rede para um computador que foi ativado para usar os serviços de instalação remota (RIS). O atributo netbootGUID é definido durante a fase de inserção do computador cliente. Usando as Active Directory Services Interface (ADSI), um computador cliente pode ser inserido programaticamente, definindo netbootGUID atributo do objeto de computador no Active Directory.

Mais Informações

Quando um computador de cliente do RIS na rede é iniciado, ele inicia uma solicitação de serviço de rede. O servidor RIS (usando o serviço de Boot Information Negotiation Layer [BINL]) deve Verifique o Active Directory a existência de uma conta de computador cliente inserido que coincide com o computador cliente. BINL verifica a existência de um computador cliente consultando o Active Directory para um objeto de computador cuja netbootGUID corresponde ao GUID enviada durante a solicitação.

Demonstram os exemplos fornecidos nesta seção:
  • Como inserir computadores clientes programaticamente, definindo o atributo netbootGUID no Active Directory.
  • Como determinar o que o netbootGUID atributo deve ser definido como.

Exemplos de código

Inserir programaticamente o cliente

O exemplo a seguir usa o Microsoft Visual Basic para demonstrar como para programaticamente inserir o computador cliente definindo o valor de seqüência de caracteres de octeto do atributo netbootGUID no objeto de computador no 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
				

Determinar programaticamente NetbootGUID valor

O exemplo a seguir usa o Microsoft Visual Basic Script para demonstrar como programaticamente determine o que o valor do atributo netbootGUID deve ser definido um computador.
'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
				

Referências

Para obter mais informações sobre o ADSI, visite o seguinte site:
Visão geral sobre o Directory Services Interface Active
http://technet.microsoft.com/en-us/windowsserver/2000/bb735360.aspx
Para obter mais informações sobre serviços de instalação remota, visite os seguintes sites:
Instalação de cliente do RIS e opções de configuração administrativa
http://pssweb/eps/performance/mnp_default.asp?loadtype=dynamic&loadurl=/eps/performance/msi/documentation/risclient.htm

Instalação Brazilian OS remota
http://technet.microsoft.com/en-us/library/bb742586.aspx
Para obter mais informações sobre como determinar programaticamente o GUID do computador, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
198871IShellFolder::GetDisplayNameOf retorna nomes com GUIDs
Para obter mais informações sobre como o GUID do computador é gerado pelo disco de inicialização de instalação remota, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
242920Como funciona o disco de inicialização de instalação remota
Para obter mais informações sobre CLSIDFromString, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms680589.aspx
Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
183544Como chamar CLSID e ProgID relacionados COM APIs no Visual Basic
Para obter uma visão geral do WMI, visite o seguinte site da MSDN:
http://msdn.microsoft.com/en-us/library/bb985153.aspx

Propriedades

ID do artigo: 302467 - Última revisão: sexta-feira, 4 de agosto de 2006 - Revisão: 5.1
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
Palavras-chave: 
kbmt kbdswadsi2003swept kbhowto KB302467 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 302467

Submeter comentários

 

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