2010-06-14 7 views
5

J'ai besoin d'écrire un programme ou un script qui fait quelques choses avec (ou à) un serveur après une installation de Windows. Parmi ceux-ci est l'ajout du serveur à un domaine.Comment puis-je ajouter un ordinateur à un domaine par programmation (en utilisant .NET)?

Existe-t-il un moyen de le faire par programme ou en utilisant une commande de script?

+3

Cela semble plus lié à l'informatique. ServerFault est probablement le meilleur endroit à demander: http://serverfault.com. –

Répondre

2

Si vous voulez le faire à partir du contrôleur de domaine:

Source:net computer \\computername /add

Si vous voulez le faire à partir du poste de travail:

Source:NETDOM JOIN /DOMAIN:[DOMAINNAME] /USERD:[USERNAME] /PASSWORDD:[PASSWORD]

+0

Cette commande ne demanderait-elle pas un mot de passe? Comment puis-je lui donner un mot de passe d'une routine d'appel? –

+1

@Andrew: Dans mes rapports avec la commande 'net', il suppose que les informations d'identification sont basées sur l'utilisateur qui l'exécute. Par exemple, si vous vous êtes connecté à un ordinateur de domaine et tenté de mapper un lecteur réseau à un autre ordinateur (net use x: \\ NomOrdinateur \ NomPartage), il utilisera vos informations d'identification/jeton de domaine pour tenter d'accéder à ce partage. Donc, si vous avez ce script exécuté en tant qu'utilisateur de domaine avec les autorisations appropriées, vous ne devriez pas être invité/requis pour entrer des informations d'identification. – Jaxidian

+0

Comment exécuter le script en tant qu'utilisateur de domaine avant que l'ordinateur ne soit ajouté au domaine? –

0

Je ne sais pas comment faire cela moi-même, mais peut-être jeter un oeil au code source de Samba. Si je me souviens bien, la distribution Samba comprend un utilitaire de ligne de commande qui fait exactement ce que vous voulez (il peut ajouter des hôtes à un domaine); Je ne me souviens pas du nom exact de l'utilitaire, mais il devrait toujours être là. Je pense que son but était de migrer automatiquement un ancien domaine Windows NT vers Samba!

1

Ce n'est pas facile si vous écrivez un programme, mais c'est possible et vous pouvez trouver les exemples de code correspondants.

Tout d'abord, vous devez créer un compte d'ordinateur dans le domaine. Pour ce faire, vous pouvez utiliser la fonction NetUserAdd. L'exemple de code correspondant que vous trouverez sous http://msdn.microsoft.com/en-us/library/aa370254%28VS.85%29.aspx. Si vous avez un nouveau compte d'ordinateur déjà créé dans Active Directory (de quelque manière que ce soit) dans l'unité d'organisation de destination correspondante, vous pouvez ignorer l'étape. Vous devez seulement comprendre, quel mot de passe avez ce compte (le mot de passe sera construit en fonction du nom de l'ordinateur, voir l'exemple de code pour plus de détails).

Ensuite, vous devez obtenir SID du domaine auquel vous ajoutez l'ordinateur, et à la fin, vous devez utiliser ainsi nommé LSA API pour faire tout le travail au niveau local en ce qui concerne des LsaSetTrustedDomainInformation. L'exemple de code correspondant que vous pouvez trouver dans http://support.microsoft.com/kb/145697.

Si vous devez créer un compte d'ordinateur dans le domaine, veillez à toujours utiliser le même contrôleur de domaine. Sinon, vous pouvez avoir un petit problème jusqu'à ce que le nouveau compte soit répliqué sur le contrôleur de domaine suivant que vous utilisez (une petite boucle d'attente avec des tentatives peut être suffisante).

P.S. Si vous rencontrez des problèmes avec la mise en œuvre, vous pouvez me poser une question supplémentaire à ce sujet.

Questions connexes