- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在自定义 c# cmdlet 中创建新的 RunSpace 是否被认为是不好的做法(或者是否有特定的理由不这样做)?例如,我有一个自定义 Cmdlet,如下所示,需要调用现有的 cmdlet,我想知道这样做是否会出现任何线程或其他问题。
public class SPCmdletNewBusinessSite : SPNewCmdletBase<SPSite>
{
...
private void ExecuteRunspaceCommand()
{
Runspace runspace = RunspaceFactory.CreateRunspace();
PSSnapInException snapInError;
runspace.RunspaceConfiguration.AddPSSnapIn("Microsoft.SharePoint.PowerShell", out snapInError);
runspace.ThreadOptions = PSThreadOptions.Default;
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
Command newSiteProc = new Command("New-SPSite");
newSiteProc.Parameters.Add(new CommandParameter("Url", "http://goober-dc/9393"));
newSiteProc.Parameters.Add(new CommandParameter("OwnerAlias", "GOOBER\\Administrator"));
newSiteProc.Parameters.Add(new CommandParameter("Template", "STS#1"));
newSiteProc.Parameters.Add(new CommandParameter("Language", "1033"));
newSiteProc.Parameters.Add(new CommandParameter("ContentDatabase", "Site_Specific_ContentDB"));
pipeline.Commands.Add(newSiteProc);
Collection<PSObject> results = new Collection<PSObject>();
results = pipeline.Invoke();
foreach (PSObject obj in results)
{
base.WriteObject(((SPSite)obj.BaseObject).RootWeb.Title);
}
}
}
最佳答案
如果要在 cmdlet 中调用另一个 cmdlet,通常的做法是使用嵌套管道而不是新的运行空间。这使您可以使用 cmdlet 的范围,从而可以访问相同的变量和上下文。新的运行空间是完全隔离的,因此重量更大,但如果您不污染调用范围,则可能需要。我认为您可能想要一个嵌套的管道,这样您就不必重新加载 sharepoint 管理单元(我假设在您调用新的 sharepoint cmdlet 时它已经加载了。)
您可以在 cmdlet 中使用此方法。这是一个嵌套管道,因为您的命令已经在管道中运行。
var pipe = Runspace.DefaultRunspace.CreateNestedPipeline(...);
pipe.Invoke()
关于sharepoint - 从自定义 C# cmdlet 中创建新的 RunSpace 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038992/
[Powershell]::create()-方法在“当前或新运行空间”中创建一个新的PowerShell-“Instance”。 有人可以解释一下进程,实例,运行空间和(可能是线程)在这方面如何相互
我试图理解为什么此代码将在Powershell ISE中运行,而不是在Powershell控制台中运行 function close-window (){ # close $hash.
我正在运行以下代码: RunspaceConfiguration config = RunspaceConfiguration.Create(); PSSnapInException warning;
我正在编写一个程序,它将在远程机器上运行一个程序。我已经安装了 windows sdk 并成功上传了我的文件现在我想远程运行更改目录并使用执行命令电源外壳。 程序编译并运行,但在答案变量中显示:“方法
我正在尝试使用 C# 在运行空间中执行带有参数的 Powershell 文件。不幸的是我得到以下输出: A command that prompts the user failed because t
我使用 WPF 和 Runspaces 编写了一个小应用程序,但遇到了一些困难。 $Runspace = [runspacefactory]::CreateRunspace() $Runspace.A
控制台应用程序: class Program { static void Main() { using (var runSpace = RunspaceFactory.
运行作业时,我正在寻找等效的PowerShell管道重定向*>&1。 我大致像这样运行作业: $Instance = [PowerShell]::Create() $Instance.
我正在尝试编写一个控制台应用程序来管理 Office 365 中的用户许可选项。我将运行空间与 MSOL powershell 模块结合使用。基本上,当我在命令参数中传递禁用计划列表时,我能够管理除
我正在尝试将我为通过远程 Powershell 以编程方式与 Exchange 2010 交互而编写的一些新代码集成到现有的 WinForms 应用程序中。我的代码在一个独立的测试应用程序中工作,但是
尝试启动Powershell时,出现以下消息: The shell cannot be started. A failure occurred during initialization: Canno
我有一个 MVC 网络应用程序,它显示了我们 AD 中用户的一些信息。 AD 与 Office 365 同步,因此使用 UPN 我可以使用 Windows PowerShell cmdlets for
背景 我正在编写一个以编程方式执行 PowerShell 脚本的应用程序。此应用程序具有自定义 PSHost 实现,以允许脚本输出日志记录语句。目前,我看到的行为是 一些 请求被正确转发到我的自定义
我是 StackOverflow 的活跃读者,因为它通常可以帮助我解决所有问题。 但是对于我的第一个问题,我将向您寻求有关 Powershell 中运行空间的帮助,特别是针对内存管理。 我创建了一些带
我正在尝试在运行某些脚本之前设置环境。这个环境由两部分组成。 一些我想预先加载的模块 一个充满特定模块的目录,可以通过简单的“导入模块” 加载 我可以为正在“预加载”的模块指定绝对路径。 我正在创建一
我需要一个调用内部Web服务的高性能脚本。因此,我编写了一个powershell脚本来创建运行空间线程,每个运行空间线程都向一个通用Web服务代理对象(New-WebServiceProxy)发出请求
在自定义 c# cmdlet 中创建新的 RunSpace 是否被认为是不好的做法(或者是否有特定的理由不这样做)?例如,我有一个自定义 Cmdlet,如下所示,需要调用现有的 cmdlet,我想知道
尝试在 C# 中使用 Azure cmdlet,除了特定的“Get-RoleInstanceCount”(Azure)之外,一切正常。 Azure cmdlet 启动时会运行以下命令: C:\Wind
我需要使用 powershell 将文件从 Azure VM 上的某个位置复制到我的本地计算机。例如,虚拟机上的 C:\tmp 到本地计算机上的 C:\tmp 该应用程序是使用系统自动化的 C#。目前
我当时在 ASP.NET MVC 中开发一个简单的记录管理 Web 应用程序。构建成功。但是,当我转到程序包管理器控制台时,我总是会收到此错误。 The type initializer for 'S
我是一名优秀的程序员,十分优秀!