我有一個PowerShell模塊,其中包含許多常見的管理和部署功能。這被安裝在我們所有的客戶工作站上。從大量腳本調用此模塊,這些腳本通過計劃任務或部署期間在登錄時執行。從模塊內部訪問PowerShell腳本參數
從模塊內,就可以得到調用腳本的名稱:
function Get-CallingScript {
return ($script:MyInvocation.ScriptName)
}
然而,從模塊內,我還沒有發現訪問最初傳遞到參數的任何方式調用腳本。出於我的目的,我寧願以字典對象的形式訪問它們,但即使是原始的命令行也可以。不幸的是,考慮到我的用例,從腳本中訪問參數並將它們傳遞給模塊不是一種選擇。
任何想法?謝謝。
謝謝 - 使用全局變量MyInvocation的技巧解決了這個問題對我來說,但在方式不太你的建議。在我的測試中,UnboundArguments和BoundParameters總是空的。 但是,$ global:MyInvocation.MyCommand值確實填充了完整的命令行,並且可以從中提取參數。 – Dan
@丹有趣,感謝您的更新。 – briantist