首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在整个程序中维护powershell远程会话?

如何在整个程序中维护powershell远程会话?
EN

Stack Overflow用户
提问于 2013-06-03 16:02:27
回答 2查看 1.3K关注 0票数 0

我想使用c# language.It在远程计算机上执行一些Active directory查询

代码语言:javascript
复制
  PowerShell ps = PowerShell.Create();;

 ps.AddScript(@"$Session = New-PSsession -Computername com1");
 ps.AddScript(@"Invoke-Command -Command {Import-Module ActiveDirectory} -Session $Session");
 ps.Invoke();

我想在第一次执行后跳过上面的命令执行,并且应该保持会话,直到程序exit.Please帮助我执行更多的脚本,并建立相同的会话。

确切地说,我只想在整个program.Thanks中创建一次会话

EN

回答 2

Stack Overflow用户

发布于 2013-06-03 18:47:47

最后,我得到了我的问题的解决方案,非常简单的..its。

将Powershell对象设置为静态变量,并在脚本调用函数后清除命令。

代码语言:javascript
复制
ps.commands.clear();

现在,在不影响当前会话的情况下,我们可以执行查询easily..Let me know是否有其他有效的方法。

谢谢。

票数 1
EN

Stack Overflow用户

发布于 2013-06-05 02:26:45

代码语言:javascript
复制
int iRemotePort = 5985;
string strShellURI = @"http://schemas.microsoft.com/powershell/Microsoft.PowerShell";
string strAppName = @"/wsman";
AuthenticationMechanism auth = AuthenticationMechanism.Negotiate;

WSManConnectionInfo ci = new WSManConnectionInfo(
    false,
    sRemote,
    iRemotePort,
    strAppName,
    strShellURI,
    creds);
ci.AuthenticationMechanism = auth;

Runspace runspace = RunspaceFactory.CreateRunspace(ci);
runspace.Open();

PowerShell psh = PowerShell.Create();
psh.Runspace = runspace;

将Powershell对象作为类中的静态变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16892353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档