2015-11-03 78 views
1

我正在构建一个powershell脚本,其中的一部分更改了几个资源日历上的权限。正常的命令(其中工程,没有问题):powershell脚本混合变量与参数

Set-MailboxFolderPermission -Identity "ResourceCalendar:\Calendar" -user Default -AccessRights Reviewer 

我已经尝试使用:

Set-MailboxFolderPermission -Identity "$line.name:\Calendar" -user Default -AccessRights Reviewer 

Set-MailboxFolderPermission -Identity $line.name:\Calendar -user Default -AccessRights Reviewer 

但它不断抛出的错误。

该变量可以在其他地方使用 - 它是从脚本开头导入的CSV中捕获的。它与我无法连接到它的:\ Calendar有关。

+0

“它不断抛出错误” - 什么错误? (你必须告诉我们,因为我们看不到你的屏幕。) –

回答

6

the parser evaluates parameter arguments,它会将它们视为可扩展的字符串 - 这意味着​​解释方法一样:

$line + ".name" 

取消引用变量的属性,使用子表达式运算符$()

Set-MailboxFolderPermission -Identity "$($line.name):\Calendar" -user Default -AccessRights Reviewer 

现在,$()中的所有内容都将被评估为PowerShell表达式。

+0

谢谢!这正是它需要的:) – Weighsone

+1

但是Mathias R. Jessen - 如果你只是这样回答,OP并不鼓励在问题中包含相关细节。 :) –

+0

@Bill_Stewart足够的信息被列入显示一个明显的和常见的误解,你还需要什么? –