2015-11-03 119 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足夠的信息被列入顯示一個明顯的和常見的誤解,你還需要什麼? –