2017-08-07 14 views
1

を発見していない私は、ビルド時に、それが次のエラーで失敗したときしかし7Zip4Powershellを使用してフォルダを7zipをするには、以下のPSスクリプトを書いている:はTFS PowerShellがインストール-モジュールを

Install-Module : The term 'Install-Module' is not recognized as the name of a cmdlet, function, script file, or 
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try 
again. 
At C:\Build\Work\19\s\DevOps\7zCompress.ps1:3 char:5 
+ Install-Module -Scope CurrentUser -Name 7Zip4PowerShell -Verbose -Force 
+ ~~~~~~~~~~~~~~ 
+ CategoryInfo : ObjectNotFound: (Install-Module:String) [], CommandNotFoundException 
+ FullyQualifiedErrorId : CommandNotFoundException 
Compress-7Zip : The term 'Compress-7Zip' is not recognized as the name of a cmdlet, function, script file, or operable 
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 
At C:\Build\Work\19\s\DevOps\7zCompress.ps1:18 char:1 
+ Compress-7Zip -Path $sourcedir -ArchiveFileName $filename -CompressionLevel $com ... 
+ ~~~~~~~~~~~~~ 
+ CategoryInfo : ObjectNotFound: (Compress-7Zip:String) [], CommandNotFoundException 
+ FullyQualifiedErrorId : CommandNotFoundException 
Process completed with exit code 0 and had 1 error(s) written to the error stream. 

スクリプト

param([string]$sourcedir, [string]$filename, [string]$compressionLevel, [string]$compressionMethod) 
If (-not (Get-Module -ListAvailable -Name 7Zip4PowerShell)) { 
    Install-Module -Scope CurrentUser -Name 7Zip4PowerShell -Verbose -Force 
} 

If(Test-Path $filename) { 
    Remove-Item $filename 
} 

If (-not $compressionLevel) { 
    $compressionLevel = "Normal" 
} 

If (-not $compressionMethod) { 
    $compressionMethod = "Lzma2" 
} 

Compress-7Zip -Path $sourcedir -ArchiveFileName $filename -CompressionLevel $compressionLevel -CompressionMethod $compressionMethod 

TFS 2015オンプレミスにInstall-Moduleが有効なコマンドであると認識させるにはどうすればよいですか?私はすでにそのマシンにInstall-Module用のMSIをインストールしました。おそらくビルドエージェント機能として追加する必要がありますか?

+1

'Install-Module'を' Import-Module'に変更しますか? – gms0ulman

+0

上記の@ gms0ulmanには、インストールモジュールがないので、セッションにインポートする必要があります。 – Paolis

+0

パッケージ管理がインストールされている場合は 'install-module'がありますが、' get-module'はモジュールがすでにローカルで利用可能であることを示しているので、インポートするだけです。 –

答えて

-1

エラーメッセージに従って、ビルドエージェントマシンでPowerShellバージョンを再度確認してください。以降、あなたのPowershell 5.0から

原因は、インストール・モジュール、セーブ・モジュールにコマンドレットを使用することができます。下位バージョンのPSを使用している場合、同様のエラーが発生します。

ビルドサービスアカウントを使用してビルドエージェントに手動でRDPを適用し、PSスクリプトを実行することもできます。問題が環境またはビルド定義に関連している場合は、これが絞り込まれます。

関連する問題