簡體   English   中英

YAML Powershell 每次都安裝模塊?

[英]YAML Powershell Install-Module every time?

我有一個執行 powershell 腳本的管道。 在該腳本中,我需要安裝一個模塊。

### INSTALL MODULES AND LOGIN TO POWER ###
Write-Host "### Installing PBI module..." -ForegroundColor Green;
Install-module -Name "MicrosoftPowerBIMgmt" -AllowClobber -Scope CurrentUser -Verbose

我的問題是:可以只安裝一次模塊,而不必在每次腳本運行時都安裝?

命令Install-Module將其安裝在該環境中,並且還有一個-Scope開關,用於選擇為AllUsers (Windows) 安裝還是僅為運行該命令的CurrentUser安裝。 此開關會影響模塊的安裝路徑以及它是否進入用戶配置文件或系統位置。 它默認為 CurrentUser。

兩者的安裝位置都可以通過環境變量 $env:PSModulePath

正如 Theo 指出的那樣,一旦安裝,您就可以使用Import-Module來調用它。 但是,這對您來說是否可行取決於您在其下運行代碼的用戶、他們的配置文件是否是持久的以及它是為什么-Scope安裝的。

如其他答案/評論中所述,使用Import-Module導入以前安裝的模塊。 如果你想知道你是否已經安裝了一個模塊(比如說,Azure 的Az模塊),你可以使用:

$installed = Get-InstalledModule Az

if ($installed) {
  Import-Module Az
} else {
  Install-Module Az -AllowClobber -Scope CurrentUser -Verbose
}

首先,從文檔中,我們可以知道托管代理沒有安裝MicrosoftPowerBIMgmt模塊。 所以我們需要安裝模塊。

其次,管道完成后,我們的服務器將回收當前使用的主機代理的圖像。 當您重新運行管道時,系統將獲得一個全新的代理圖像。 因此,必須在每個管道中執行此 powershell 任務,以使環境滿足您的要求。

關於這一點,您可以參考文檔

每次運行管道時,您都會獲得一個全新的虛擬機。 虛擬機在使用一次后被丟棄。

如果不想每次都安裝模塊,可以考慮設置一個自托管代理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM