在这里有一个奇怪的问题。我可以在Lync Server 2010实例中启动从C#应用程序到PowerShell的远程会话。我能够获得所有特定于Lync的cmdlet并执行它们,但是如果我尝试使用标准cmdlet执行某些操作(在我的情况下为了将文件转换为字节数组,我的“get-content”) - 它不会识别命令。在Lync的远程会话中执行标准PowerShell cmdlet
是否有方法/需要将标准PS集cmdlet加载到该会话中?感觉就像我在这里失去了一些东西...
在此先感谢!
ň
编辑:这是我已经打算上的代码片段...
PSCredential creds = new PSCredential(lyncUser, lyncPW);
WSManConnectionInfo conn = new WSManConnectionInfo(new Uri(lyncURI), schema, creds);
conn.AuthenticationMechanism = AuthenticationMechanism.Default;
Runspace rs = RunspaceFactory.CreateRunspace(conn);
rs.Open();
List<FileInfo> files = getWavFiles();
foreach (var file in files)
{
Pipeline lyncCommands = rs.CreatePipeline();
Command getContent = new Command("Get-Content");
getContent.Parameters.Add(file.FullName);
getContent.Parameters.Add("readcount", 0);
getContent.Parameters.Add("encoding", "byte");
lyncCommands.Commands.Add(getContent);
Command importAnnouncement = new Command("import-csannouncementfile");
importAnnouncement.Parameters.Add("parent", "applicationserver:myserver.mydomain.mycom");
importAnnouncement.Parameters.Add("filename", file.Name);
importAnnouncement.Parameters.Add("force");
lyncCommands.Commands.Add(importAnnouncement);
foreach (PSObject r in lyncCommands.Invoke())
{
Console.WriteLine(r.ToString() + Environment.NewLine);
}
}
的“进口csannouncement”部分将只是正常工作......这是“获取内容“部分冒险...
你连接到一个特殊的Lync远程处理端点。您可以通过执行'icm -Session $ lyncSession {$ ExecutionContext.SessionState.InvokeCommand.GetCmdlets()}' –
来查看哪些cmdlet可用。谢谢,Keith。是的,我正在连接到OCSpowershell网址。我可以在它上面的get-command命令中输入,但是我看到的只有一个是Lync cmdlet。所以......其余的人在哪里?我甚至无法运行add-pssnapin ... – napo
可能是因为您应该执行导入会话,该导入会话允许您在本地调用Lync cmdlet,以便您可以访问其他cmdlet。这是保护服务器的常用方法。此快速入门包含更多详细信息:http://blogs.technet.com/b/csps/archive/2010/06/16/qsremoteaccess.aspx –