1
我創建一個動態腳本塊下面,所以我可以使用本地函數和變量,並很容易地通過調用命令將它們傳遞到遠程計算機的方式。問題是,由於Create內部的所有文本都用雙引號括起來,所以我放棄了所有的語法高亮,因爲所有編輯器都將代碼視爲一個大字符串。Synax高亮W /動態腳本塊
雖然這只是一個表面問題,我想找到一個解決辦法,讓我的代碼,而無需雙引號進行傳遞。我試過在Create中傳遞一個變量,而不是實際的文本,但它不會被解釋。
function local_admin($a, $b) {
([adsi]"WinNT://localhost/Administrators,group").Add("WinNT://$a/$b,user")
}
$SB = [ScriptBlock]::Create(@"
#Define Function
function local_admin {$Function:local_admin}
local_admin domain username
"@)
Invoke-Command -ComputerName server2 -ScriptBlock $SB
如果我這樣做,輸出就是: $功能:local_admin「代碼」 功能是從來沒有實際運行。 – RogeR
我更新了我的答案 - 抱歉,我最初誤解了您的問題。 –
這工作表示感謝!我的確有點像[ScriptBlock] :: Create方法,因爲它可以讀取所有局部變量,而無需在ArgumentList中聲明它們。 任何想法上這是更好的方法? – RogeR