Invoke-Commandを使用して、複数のリモートサーバー上のアプリケーションプールの一覧を取得しようとしています。これまでのところ私のようなものがあります:私はエラーを取得しかしInvoke-Commandを使用してリモートサーバー上のアプリケーションプールを取得する
$servers = Get-Content -Path "C:\Path\to\servers.txt"
$array = New-Object -TypeName 'System.Collections.ArrayList'
foreach ($server in $servers) {
Invoke-Command -ComputerName $server -ScriptBlock {
Import-Module WebAdministration
$sites = Get-ChildItem IIS:\sites
foreach ($site in $sites) {
$array.Add($site.bindings)}}}
を:
You cannot call a method on a null-valued expression.
+ CategoryInfo : InvalidOperation: (Add:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
+ PSComputerName : computername
を私は通常の配列の代わりのArrayListを使用してみました、私は次のエラーを取得する:
Method invocation failed because [Microsoft.IIs.PowerShell.Framework.ConfigurationElement] doesn't contain a method named 'op_Addition'.
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
+ PSComputerName : computername
誰かが正しい方向に向けるのを助けることができますか?
リモートセッションのオブジェクトをローカルコンピュータ上のアレイに追加することはできません。 'Invoke-Command'ブロックがバインディングを返してから、外側のforeachループで結果を受け取るようにします。 –