2012-01-28 22 views
0

ASP.NET Webサイト(vb.NETを使用)からMicrosoft Online Services移行ツールキットのPowerShellコマンドを使用する方法を理解しようとしています。ASP.NETサイト内のPowerShellモジュールの参照方法

私はASP.NETでPowerShellを使用する方法についてのガイドを使用してオフに開始しました - ここから:私はOnline Services移行ツールキットPowerShellコマンドレットを実装する方法をうまくしようとしていhttp://devinfra-us.blogspot.com/2011/02/using-powershell-20-from-aspnet-part-1.html

を。ここで

は私のコードビハインドからの抜粋です:私はページを経由して、コードを実行しようとすると

Sub GetUsers() 

    Dim iss As InitialSessionState = InitialSessionState.CreateDefault() 
    iss.ImportPSModule(New String() {"MSOnline"}) 
    Using myRunSpace As Runspace = RunspaceFactory.CreateRunspace(iss) 
     myRunSpace.Open() 

     ' Execute the Get-CsTrustedApplication cmdlet. 
     Using powershell As System.Management.Automation.PowerShell = System.Management.Automation.PowerShell.Create() 

      powershell.Runspace = myRunSpace 

      Dim connect As New Command("Get-MSOnlineUser -Enabled") 
      Dim secureString As New System.Security.SecureString() 
      Dim myPassword As String = "ThePassword" 

      For Each c As Char In myPassword 
       secureString.AppendChar(c) 
      Next 

      connect.Parameters.Add("Credential", New PSCredential("[email protected]", secureString)) 
      powershell.Commands.AddCommand(connect) 

      Dim results As Collection(Of PSObject) = Nothing 
      Dim errors As Collection(Of ErrorRecord) = Nothing 

      results = powershell.Invoke() 
      errors = powershell.Streams.[Error].ReadAll() 

      For Each obj As PSObject In results 
       Response.Write(obj.Properties("Identity").Value.ToString()) 
      Next 

     End Using 
    End Using 

End Sub 

、私は「は、次のエラー

に用語を取得していますGET- MSOnlineUser-Enabled 'が という名前のコマンドレット、関数、スクリプトファイル、または実行可能なプログラムとして認識されません。 の名前の綴りを確認するか、パスが含まれている場合は、パス が正しいことを確認して、もう一度やり直してください。

私は、オンラインサービス移行ツールキットPowerShell CmdLetsをインポートする方法を検討していないと思います。また、次の行が正確にわからない場合もあります。

iss.ImportPSModule(New String() {"MSOnline"}) 

正確に正しいですか。モジュール名を確認できる方法はありますか?

また、.dllファイルを参照する場所と方法がわかりません。現時点では、それらを私のbinフォルダにコピーしましたが、参照として追加することはできません。そのため、ImportPSModuleステートメントはどこでそれらを見つけるべきかを知っていますか?特に、Webサイトが最終プロダクションサーバに公開されている場合。

x86またはx64コマンドレットを使用する必要がありますか?私はWin7 x64で開発していますが、Webサイトがx86またはx64として構築されているかどうかはわかりません。サーバがどのようなアーキテクチャであるかを知る必要がありますか?

答えて

1

"Get-MSOnlineUser-Enabled"はコマンドではありません。 "Get-MSOnlineUser"はです。私はちょっとあなたがそれをconnect.Parameters.Add("Credential", ...)でスクリプトの下でさらに正しいものにしたのを少し混乱させましたが、-Enabledに対して同じことをしませんでした。

connect.AddArgument("Enabled")またはconnect.Parameters.Add("Enabled", true)を使用するとよいです。

+0

私はそれを試みました...今、エラーが表示されます。「Get-MSOnlineUser」という用語は、コマンドレット、関数、スクリプトファイル、または実行可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから、もう一度やり直してください。 – Ben

+0

私は、ASP.NETサイトがコマンドレットにアクセスしていることを確認し、それらが適切にインポートされていることを確認する必要があります。 – Ben

+0

これはまったくばかげた質問ですが、実際にロードしようとしているASP.NETサーバーにMSOnlineモジュールをインストールしましたか? – x0n

関連する問題