このブログでは、エンドユーザーがGUIを使用してインストールまたはアンインストールするパッケージを選択できるようにする Chocolatey Agent Service を実装する方法を説明します。
Windows に関連する有用なテクノロジーはたくさんありますが、Chocolatey は中でも優れたものだと思います。Chocolatey を使うと、多くのコンピュータで Windows パッケージを管理する時間を大幅に節約できます。Chocolatey を使い始めてすぐに、あるといいなと思ったのは、管理者権限を持たないエンドユーザーがセルフサービスでソフトウェアのインストールを実行できる機能です。
同じように考える人が多かったのでしょうか、先ごろ、Chocolatey は、ビジネス顧客向けに Agent Service 機能をリリースしました。エンドユーザーがGUIを使用して、インストール、更新、アンインストールしたいパッケージを、社内のパッケージリポジトリの中からであっても、選択できるようになりました。
なお、この機能は Chocolatey for Business(C4B)版限定ですので、ご注意ください。
Chocolatey Agent Service のインストール
管理者以外のエンドユーザーが Chocolatey ソフトウェアをインストールできるようにするには、まず Chocolatey Agent Service をインストールして設定する必要があります。Chocolatey サービスは、デフォルトで32文字のランダムなパスワードを持つローカル管理者ユーザーを作成し、そのアカウントでサービスを実行します。こうすることで、エンドユーザーは大きな問題なくセルフサービスでソフトウェアをインストールできるようになります。
Chocolatey Agent をインストールし、推奨されている設定を行うには、次のコマンドを実行します。
choco install chocolatey-agent -y
choco feature disable --name=showNonElevatedWarnings
choco feature enable --name=useBackgroundService
choco feature enable --name=useBackgroundServiceWithNonAdministratorsOnly
ユーザーからの応答を必要とするパッケージがある場合は、サイレント・インストールはできないので、Interactive なインストールを有効にすることもできます。
choco feature enable --name=useBackgroundServiceInteractively
Chocolatey GUIのインストール
エンドユーザーは、もちろん、CLI(コマンドラインインターフェイス)よりも、GUIの方を使った方がいいでしょうから、ワークステーションに Chocolatey GUI をインストールして使用することもできます。
choco install chocolateygui –y
さて、Chocolatey ソース(パッケージリポジトリ)を Chocolatey Agent Service で使用できるようにする必要があります。 この例では、内部リポジトリ "choco-1" をセルフサービスで使用できるようにします。
choco source add –name=choco-1 http://choco-1 --allow-self-service
Chocolatey GUI でソース情報を管理者以外に非表示にしたい場合、”choco source disable” を実行することができます。ここでは、Chocolatey コミュニティリポジトリを非表示にしています。
choco source disable -n=chocolatey
この時点で、Chocolatey GUI は管理者でないエンドユーザーが使用できるように設定されています。エンドユーザーは、管理者の資格情報がなくても、マシン上にパッケージをインストール、アンインストール、更新することができます。
関連ブログ: Chocolatey パッケージの社内リポジトリ設定
Chocolatey GUI を使用した Chocolatey セルフサービスの使用
Chocolate GUIを立ち上げ、左ペインにあるソース “choco-1” をクリックします。このパッケージには、Citrix Receiver と Wireshark の2つのパッケージがあります。“Wireshark” 上で右クリックし、“Install” を選択すれば、パッケージのインストールを開始することができます。
“This PC” をソースとして選択すると、Chocolatey を使ってローカルマシンにインストールされたすべてのパッケージが表示されます。設定によって、パッケージのピン止め、アンインストール、再インストール、詳細表示などが可能です。
Chocolatey のセルフサービス機能は、エンドユーザーが独自にソフトウェアを管理できるようになる画期的な成果です。Windows エンドユーザーが多く存在する組織にとっては、望ましいオーバーヘッドの削減になります。Chocolatey GUI で実行できる他のタスクもありますが、これがエンドユーザーが最も多く使用するものです。
”choco list -lo –audit” を使って、ユーザーがどのマシンにどのソフトウェアをインストールしたのかを確認することができます。この例では、その出力を PowerShell の “Select-String -pattern dan” にパイプしています。このコマンドは、ローカルの “my user” アカウントでインストールされたソフトウェアをすべて表示します。実際にソフトウェアをインストールしたユーザーは、ローカル管理者である “ChocolateyLocalAdmin” であることにご注意ください。
PS C:\ > choco list -lo --audit | Select-String -Pattern dan
curl 7.58.0.20180213 User:ChocolateyLocalAdmin Domain:TestComputer Original User:dan InstallDateUtc:2018-03-16 15:31:34Z
このように、Windows エンドユーザーが簡単かつ安全に Windows ソフトウェアをインストールしたりアンインストールしたりすることができ、オーバーヘッドは軽減されます。
Dan Franciscus
Dan Franciscus is a systems engineer and VMware Certified Professional (VCP) specializing in VMware, PowerShell, and other Microsoft-based technologies. You can reach Dan at his blog (http://www.winsysblog.com/) or Twitter at @dan_franciscus.