2017-11-09 36 views
1

Wurde dieses Problem schon einmal behoben? Ich plane, mit C# AzureAD-Cmdlets aufzurufen. Aber ich versucht, viele Möglichkeiten, um das Modul zu importieren, wie:AzureAD-Modul kann nicht in C# importiert werden

InitialSessionState initialState = InitialSessionState.CreateDefault(); 
initialState.ExecutionPolicy = Microsoft.PowerShell.ExecutionPolicy.Bypass; 
initialState.AuthorizationManager = new System.Management.Automation.AuthorizationManager("O365"); 
initialState.LanguageMode = System.Management.Automation.PSLanguageMode.FullLanguage; 
initialState.ImportPSModule(new string[] {"AzureAD" }); 
Runspace runspace = RunspaceFactory.CreateRunspace(initialState); 

Oder

pipeline.Commands.AddScript("Import-Module -Name AzureAD -Force; Get-Module"); 
var modules = pipeline.Invoke(); 

Oder

pipeline.Commands.AddScript("Import-Module"); 
pipeline.Commands[0].Parameters.Add("Name", "AzureAD"); 
var modules = pipeline.Invoke() 

Niemand das Modul importieren. Auch ich verwende den vollständigen Pfad "C: \ Programme \ WindowsPowerShell \ Modules \ AzureAD \ 2.0.0.131 \ AzureAD.psd1". Ich habe Cmdlet "Install-Module AzureAD -Force" verwendet, um das AzureAD-Modul auf meinem Server zu installieren. Es gibt keinen Fehler, wenn ich das Importmodul in C# aufruft, aber wenn ich versuche, AzureAD-Cmdlet wie 'Connect-AzureAD' zu verwenden, erhalte ich folgende Fehlermeldung:

Der Befehl 'Connect-AzureAD' wurde gefunden das Modul 'AzureAD', aber das Modul konnte nicht geladen werden.

Ich habe beide 2 System.Management.Automation.dll versucht, das Problem ist das gleiche. Ich habe Powershell 4.0, 5.0 versucht. enter image description here

Hat jemand irgendwelche Ideen, bitte? Vielen Dank.

Übrigens, die erste Version Azure AD-Modul MSOnline funktioniert gut.

aktivierte ich das -Verbose Protokoll in dem Import-Modul AzureAD Cmdlets, dann überprüfte ich die ausführliche Ausgabe in PowerShell.Streams.Verbose, fand ich dort nur ein Datensatz ist:

Laden Modul von Pfad ‚C: \ Programme (x86) \ WindowsPowerShell \ Modules \ AzureAD \ 2.0.0.131 \ AzureAD.psd1 '.

Aber es sollte zig ausführliche Ausgabe haben, wie es Powershell-Eingabeaufforderung funktioniert in:

enter image description here

Dank

-Justin

Antwort

2

Ich kann es auch auf meiner Seite Repro. Ich löste es durch Deaktivieren von Prefer 32-Bit der Plattform Ziel, mehr Details finden Sie auf dem Screenshot.

enter image description here

Als ich das AzureADPreview Modul installieren, Code C# ich für den Test verwendet:

Runspace runspace = RunspaceFactory.CreateRunspace(); 
runspace.Open(); 
Pipeline pipeline = runspace.CreatePipeline(); 
pipeline.Commands.AddScript("Import-Module AzureADPreview -Force;"); 
pipeline.Commands.AddScript("Connect-AzureAD"); 
var result = pipeline.Invoke(); 

enter image description here

+1

Sehr gute Antwort. Eigentlich löse ich es einfach selbst, aber ja, toller Fang. Ich finde das mit Powershell.Streams.Error log. Vielen Dank. –

Verwandte Themen