Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Module spécifié "MSOnline" Il n'a pas été chargé car dans un répertoire de modulus non trouvé d'un fichier de module valide.

Pour une de mes applications, j'ai un service Windows (sur Windows Server 2012 R2 x64), Le rôle de qui consiste à effectuer de nombreuses tâches pour différents horaires et déclencheurs. L'un d'eux - Réinitialiser le mot de passe de l'utilisateur dans Office 365. Sur le serveur sur lequel le service est en cours d'exécution, une assistrage d'entrée est installée dans Microsoft Online Services et module Microsoft Azure Active Directory pour Windows PowerShell (MSOnline version 1.1.166.0).

De PowerShell Je peux appeler avec succès ce qui suit avec mon utilisateur.

$> $cred = Get-Credential
$> Connect-MsolService -Credential $cred

Si je cours PowerShell En tant que compte avec lequel mon service est lancé, cela fonctionne également bien. Lors du démarrage de la fonction de réinitialisation du mot de passe du service Windows Le message suivant apparaît:

The term 'Connect-MsolService' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Ajout d'un drapeau de débogage pour importer le module dans le code m'a permis de faire glisser le problème à la commande. import-module MSOnline. Nous avons eu une erreur:

The specified module 'MSOnline' was not loaded because no valid module file was found in any module directory.

Nous avons déjà essayé de supprimer et de réinstaller dans la version x64 Deux instruments (assistant d'entrée à Microsoft Online Services et module Microsoft Azure Active Directory pour Windows PowerShell). Variable du système "PATH" Droite avec:% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files \ Microsoft \ Web Platform Installateur \

Dans le dossier C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules Il y a des dossiers de module imbriqués MSOL MSOnline et MSOnlineExtended.

Copier deux dossiers dans C: \ Windows \ sysWOW64 \ WindowsPowerShell \ v1.0 \ Modules, Comme indiqué qu'une solution dans de nombreuses autres sections, il n'est pas effectué ici avec l'erreur suivante:

System.Management.Automation.CmdletInvocationException: Could not load file or assembly 'file:///C:\Windows\system32\WindowsPowerShell\v1.0\Modules\MSOnline\Microsoft.Online.Administration.Automation.PSModule.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format. ---> System.BadImageFormatException: Could not load file or assembly 

Code utilisé pour le service Windows, Il a été démarré et testé avec succès en tant qu'outil séparé sur le même serveur, et ce code a également été lancé sans faille sur la machine de développeur.

Ces études nous font penser qu'il existe une sorte de problème avec le service lui-même, mais nous ne pouvons pas comprendre que / Pourquoi.

Remercier.
Invité:

Blanche

Confirmation de:

Nous avons trouvé le problème. Modification du paramètre de réglage de la plate-forme cible sur "préférer 32 bits" dans les propriétés du projet résolva le problème.

Pour répondre aux questions, connectez-vous ou registre