NetRequestProvisioningPackageInstall, fonction (lmjoin.h)

La fonction NetRequestProvisioningPackageInstall s’exécute localement sur un ordinateur pour modifier une image de système d’exploitation Windows montée sur un volume. Le registre est chargé à partir de l’image et les données du package d’approvisionnement sont écrites où elles peuvent être récupérées pendant la phase d’achèvement d’une opération de jointure de domaine hors connexion.

Syntaxe

NET_API_STATUS NET_API_FUNCTION NetRequestProvisioningPackageInstall(
  [in] BYTE    *pPackageBinData,
  [in] DWORD   dwPackageBinDataSize,
  [in] DWORD   dwProvisionOptions,
  [in] LPCWSTR lpWindowsPath,
       PVOID   pvReserved
);

Paramètres

[in] pPackageBinData

Pointeur vers une mémoire tampon requise pour initialiser le registre d’une image de système d’exploitation Windows afin de traiter le changement d’état local final pendant la phase d’achèvement de l’opération de jonction de domaine hors connexion.

L’objet blob binaire opaque des métadonnées sérialisées passées dans le paramètre pPackageBinData est retourné par la fonction NetCreateProvisioningPackage .

[in] dwPackageBinDataSize

Taille, en octets, de la mémoire tampon pointée vers le paramètre pPackageBinData .

Ce paramètre ne doit pas être NULL.

[in] dwProvisionOptions

Ensemble d’indicateurs de bits qui définissent des options pour cette fonction. Ce paramètre utilise une ou plusieurs des valeurs suivantes définies dans le fichier d’en-tête Lmjoin.h .

Valeur Signification
NETSETUP_PROVISION_ONLINE_CALLER
0x40000000
Cet indicateur est requis si le paramètre lpWindowsPath référence le répertoire du système d’exploitation Windows en cours d’exécution plutôt qu’une image de système d’exploitation Windows hors connexion montée sur un volume accessible. Si cet indicateur est spécifié, la fonction NetRequestProvisioningPackageInstall doit être appelée par un membre du groupe Administrateurs local.

[in] lpWindowsPath

Pointeur vers une chaîne de caractères terminée par NULL qui spécifie le chemin d’accès à une image de système d’exploitation Windows sous laquelle se trouvent les ruches du Registre. Cette image doit être hors connexion et ne pas être démarrée, sauf si le paramètre dwProvisionOptions contient NETSETUP_PROVISION_ONLINE_CALLER, auquel cas le répertoire du système d’exploitation exécuté localement est autorisé.

Ce chemin peut être un chemin UNC sur un serveur distant.

pvReserved

Réservé pour un usage futur.

Valeur retournée

Si la fonction réussit, la valeur de retour est NERR_Success.

Si la fonction échoue, la valeur de retour peut être l’un des codes d’erreur gestion du réseau suivants.

Code de retour Description
NERR_NoOfflineJoinInfo
Les informations de saisie semi-automatique de jointure hors connexion sont introuvables.
NERR_BadOfflineJoinInfo
Les informations de saisie semi-automatique de jointure hors connexion étaient incorrectes.
NERR_CantCreateJoinInfo
Impossible de créer des informations de jointure hors connexion. Vérifiez que vous avez accès à l’emplacement du chemin d’accès spécifié et aux autorisations pour modifier son contenu. L’exécution en tant qu’administrateur avec élévation de privilèges peut être nécessaire.
NERR_BadDomainJoinInfo
Les informations de jointure de domaine enregistrées étaient incomplètes ou incorrectes.
NERR_JoinPerformedMustRestart
L’opération de jointure hors connexion s’est terminée avec succès, mais un redémarrage est nécessaire.
NERR_NoJoinPending
Aucune opération de jointure hors connexion n’était en attente.
NERR_ValuesNotSet
Impossible de définir une ou plusieurs valeurs de nom de domaine ou de machine demandées sur l’ordinateur local.
NERR_CantVerifyHostname
Impossible de vérifier le nom d’hôte de l’ordinateur actuel par rapport à la valeur enregistrée dans les informations d’achèvement de la jointure.
NERR_CantLoadOfflineHive
Impossible de charger la ruche de Registre hors connexion spécifiée. Vérifiez que vous avez accès à l’emplacement du chemin d’accès spécifié et aux autorisations pour modifier son contenu. L’exécution en tant qu’administrateur avec élévation de privilèges peut être nécessaire.
NERR_ConnectionInsecure
Les exigences minimales de sécurité de session pour cette opération n’ont pas été satisfaites.
NERR_ProvisioningBlobUnsupported
La version de l’objet blob d’approvisionnement de compte d’ordinateur n’est pas prise en charge.

Notes

La fonction NetRequestProvisioningPackageInstall est prise en charge sur Windows 8 pour les opérations de jointure de domaine hors connexion. Pour Windows 7, utilisez NetRequestOfflineDomainJoin.

Le scénario de jonction de domaine hors connexion utilise deux fonctions :

  • NetCreateProvisioningPackage est une fonction d’approvisionnement qui est d’abord appelée pour effectuer les opérations réseau nécessaires à la création et à la configuration de l’objet ordinateur dans Active Directory. La sortie de NetCreateProvisioningPackage est un package utilisé pour l’étape suivante.
  • NetRequestProvisioningPackageInstall, une fonction d’initialisation d’image, est appelée pour injecter la sortie de la fonction d’approvisionnement NetCreateProvisioningPackage dans une image de système d’exploitation Windows à utiliser pendant l’installation.
Les modifications apportées au code d’initialisation Windows détectent cet état enregistré et affectent la partie locale uniquement de la jonction de domaine et installent toutes les informations de certificat et de stratégie qui ont pu être présentes dans le package.

La fonction NetCreateProvisioningPackage crée ou réutilise le compte d’ordinateur dans le domaine, collecte toutes les métadonnées nécessaires et les retourne dans un package. Le package peut être consommé par l’opération de demande de jonction de domaine hors connexion qui fournit toutes les entrées nécessaires pour terminer la jonction de domaine lors du premier démarrage sans aucune opération réseau (mises à jour de l’état local uniquement).

Note de sécurité : Le package créé par la fonction NetCreateProvisioningPackage contient des données très sensibles. Il doit être traité de manière aussi sécurisée qu’un mot de passe en texte clair. Le package contient le mot de passe du compte d’ordinateur et d’autres informations sur le domaine, notamment le nom de domaine, le nom d’un contrôleur de domaine et l’ID de sécurité (SID) du domaine. Si le package est transporté physiquement ou sur le réseau, il faut veiller à le transporter en toute sécurité. La conception ne prévoit aucune disposition pour la sécurisation de ces données. Ce problème existe aujourd’hui avec les fichiers de réponses d’installation sans assistance qui peuvent contenir un certain nombre de secrets, y compris les mots de passe utilisateur du domaine. L’appelant doit sécuriser le package. Les solutions à ce problème sont variées. Par exemple, une clé pré-échangée peut être utilisée pour chiffrer une session entre le consommateur et l’entité d’approvisionnement, ce qui permet un transfert sécurisé du package.

Le package retourné dans le paramètre pPackageBinData par la fonction NetCreateProvisioningPackage est versionné pour permettre des scénarios d’interopérabilité et de facilité de service entre différentes versions de Windows (par exemple, la jonction d’un client, l’approvisionnement d’une machine et l’utilisation d’un contrôleur de domaine). Actuellement, le scénario de jointure hors connexion ne limite pas la durée de vie du package retourné par la fonction NetCreateProvisioningPackage .

Toutes les phases du processus d’approvisionnement s’ajoutent à un fichier NetSetup.log sur l’ordinateur local. Le processus d’approvisionnement peut inclure jusqu’à trois ordinateurs différents : l’ordinateur où le package d’approvisionnement est créé, l’ordinateur qui demande l’installation du package et l’ordinateur sur lequel le package est installé. Les informations du fichier NetSetup.log seront stockées sur les trois ordinateurs en fonction de l’opération effectuée. L’examen du contenu de ces fichiers est le moyen le plus courant de résoudre les erreurs d’approvisionnement en ligne et hors connexion. Les opérations d’approvisionnement entreprises par les administrateurs sont enregistrées dans le fichier NetSetup.log dans %WINDIR%\Debug. Les opérations d’approvisionnement effectuées par des non-administrateurs sont enregistrées dans le fichier NetSetup.log dans le dossier %USERPROFILE%\Debug .

Spécifications

   
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête lmjoin.h (include Lm.h)
Bibliothèque Netapi32.lib
DLL Netapi32.dll

Voir aussi

NETSETUP_PROVISIONING_PARAMS

NetCreateProvisioningPackage

NetJoinDomain

NetProvisionComputerAccount

NetRenameMachineInDomain

NetRequestOfflineDomainJoin

NetUnjoinDomain

Fonctions de gestion réseau

Vue d’ensemble de la gestion du réseau