我在C#中编写一个.Net组件,需要为Exchange在线打开Remote Powershell连接以执行cmdlet。但是,有一个位于本地计算机和Internet之间的Web代理服务器。我没有在IE中提供代理服务器设置。我需要在打开远程运行空间时以某种方式提供Web代理服务器的IP地址和端口号。
我使用以下代码:
PSCredential credential = new PSCredential(userEmail, securePassword);
connectionInfo = new WSManConnectionInfo(new Uri("https://ps.outlook.com/powershell"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
connectionInfo.MaximumConnectionRedirectionCount = 2;
runspace = RunspaceFactory.CreateRunspace(connectionInfo);
runspace.Open();
powershell.Runspace = runspace;
//Create the command and add a parameter
powershell.AddCommand("Get-MailboxFolderStatistics");
powershell.AddParameter("identity", sMailbox);
...
...
...
pipeline = remoteRunspace.CreatePipeline()
foreach (Command command in cmdlet.GetCommands())
{
pipeline.Commands.Add(command);
}
commandResults = pipeline.Invoke();
我应该在Runspace对象的RunspaceconnectionInfo的ProxyAccessType,ProxyCredentials,ProxyAuthentication属性中提供什么。
是否有办法通过提供Web代理服务器设置来打开远程运行空间,而无需在IE中使用代理设置。我想通过我的应用程序中的用户界面将代理服务器ip和port传递给我的api
请建议。
谢谢, GAGAN
答案 0 :(得分:0)
可以使用New-WSManSessionOption配置代理设置
答案 1 :(得分:0)
例如,如果你想配置代理以使用fiddler,你可以这样做:
PSSessionOption sessionOptions = new PSSessionOption();
sessionOptions.ProxyAccessType = ProxyAccessType.IEConfig;
sessionOptions.ProxyAuthentication = AuthenticationMechanism.Negotiate;
wsManConnectionInfoInstance.SetSessionOptions(sessionOptions);