0

リモート PowerShell にアクセスするための C# コードがあり、実行後に次のエラーが発生しました: アクセスが拒否されました。コードは次のとおりです。

string shell = "http://schemas.microsoft.com/powershell/Microsoft.PowerShell";
var target = new Uri("http://Computername/wsman");

Pipeline p = runSpace.CreatePipeline();
SecureString passing = new SecureString();
string password = "pass";
foreach (char c in password)
{
    passing.AppendChar(c);
}
passing.MakeReadOnly();
var cred = new PSCredential(@"Domain\User", passing);
var connectionInfo = new WSManConnectionInfo(target, shell, cred); runSpace = RunspaceFactory.CreateRunspace(connectionInfo);    
 runSpace.Open(); 

このアドレスにアクセスできないため、このエラーが発生します: http://schemas.microsoft.com/powershell/Microsoft.PowerShell

それに接続するためにこのアドレスを入力した後、次のメッセージを表示します: リクエストの処理中にエラーが発生しました。

スキーマの別のアドレス、またはこのコードを記述する別の方法はありますか?

私を助けてください。ありがとう、

4

1 に答える 1

0

まず、PowerShellからリモートマシンにアクセスしてみてください。(C#の代わりに)IMOで接続の問題をデバッグする方が簡単です。次のコマンドで接続できますか(64ビットコンソールから):

$config = 'Microsoft.PowerShell'
$connuri = 'http://Computername:5985/wsman'
$s = New-PSSession -ConnectionUri $connuri -ConfigurationName $config -Credential (Get-Credential)
Invoke-Command -Session $s -ScriptBlock {Get-PSSessionConfiguration} | Format-List *

それが機能する場合は、ポート番号が欠落しているか、C#にコーディングの問題がある可能性があります。ただし、少なくともPowerShell構成の問題(私が思うに)は除外されます。

于 2012-08-27T20:06:59.897 に答える