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 访问远程计算机。在 IMO(而不是 C#)中调试连接问题会更容易。您可以使用以下命令连接(来自 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 回答