【发布时间】:2016-10-15 00:43:55
【问题描述】:
我正在尝试在 C# 中执行以下 powershell 命令
Invoke-Command -Session $session -ScriptBlock {
Get-MailboxPermission -Identity ${identity} -User ${user}
}
我尝试使用以下 C# 代码,但无法设置身份和用户参数。
var command = new PSCommand();
command.AddCommand("Invoke-Command");
command.AddParameter("ScriptBlock", ScriptBlock.Create("Get-MailboxPermission -Identity ${identity} -User ${user}"));
command.AddParameter("identity", mailbox);
command.AddParameter("user", user);
当我在创建 ScriptBlock 时对值进行硬编码时,它工作正常。如何动态设置参数。
有没有更好的方法来做到这一点,而不是像下面那样连接值。
command.AddParameter("ScriptBlock", ScriptBlock.Create("Get-MailboxPermission -Identity " + mailbox + " -User " + user));
【问题讨论】:
-
command.AddParameter("ScriptBlock", ScriptBlock.Create("param(${identity}, ${user}) Get-MailboxPermission -Identity ${identity} -User ${user}")); command.AddParameter("ArgumentList", new object[]{mailbox, user}); -
谢谢@PetSerAl 正是我在寻找。您为什么不将此作为答案发布?可以帮助正在寻找相同解决方案的人。
标签: c# powershell scriptblock