読者です 読者をやめる 読者になる 読者になる

社内 Windows 10 Anniversary update 配布とストアアプリ 完全運用

お仕事系

本記事は、以下のようなことをやりたいと思っている情シスユーザ向け・・・かも。

ちょぅと硬いですかね。

要件
 1.Windowsストアは起動を禁止(削除でもOK)
 2.一部のストアアプリは起動させたい。
   計算機、付箋なと
 3.必要ならば、起動禁止、削除したストアアプリを復活、インストールさせたい。

既に稼働中のPCにWindows 10 Anniversary update をできればユーザーに適用させた場合のことです。(だって、情シス部員が回るわけにいかないですから)

そこで問題は、ストアアプリでしょう。

なんで、また、Xboxとかあるんですかね。homeeditionとかつくるなら、デフォルトで、officeeditionとか作ってほしいぐらいです。ったく。情シスにはたまらないほど、面倒な運用を考える必要がありますよね。

 

既に、社内には、AD環境以下のWindows10PCが主役で動いています。もちろん中小なので固定したライセンスではなく、、Windows 10 Anniversary updateをそのうち当てなきゃならいのですが、前記事で。。。

1279.hatenablog.comに書いたようにストアアプリがフッカーツで。。

 

これまで、1511を初期として、展開した方法は以下でした。

 1.ストアアプリ
  新たなユーザにはモダンストアアプリを初期インストールさせないよう
  コマンドを入力し実行、以後の新規のローカルユーザは、ストアアプリが表示、
  インストールされない。
  ※後日、計算機が使えないことに気付く。(初期で起動させると消えないらしい)
 2.初期タイルメニュー
  ローカルデフォルトに、事前に作成した初期タイルメニューを保存
  Layoutmodification(32).xml(32bitの場合)
  C:\Users\Default\AppData\Local\Microsoft\Windows\Shell 以下に保存
  これにより、初期タイルメニューも制御

何気に、2って重要なんですよ、知らない方は、過去記事読んでくださいね。

1279.hatenablog.com

ここで、既存のPcにAnniversary updateを適用すると以下のように。

 1.ストアアプリ
  スタートメニュー上に初期インストールされる。
  Xbox等。
 2.タイルメニュー
  該当PCに過去にログオンした場合は、その状態た保たれる。
  該当PCで新たにログオンしたユーザは、Windows10 anniversary update用の初期タ

  イルとなる。
  Layoutmodification(32).xmlのファイル無い為に発生。
  さらに、ストアアプリとして、インストールされてはいないものの、
  インストールショートカットも自動配布される。

 

以下、既存Pcにanniversary updateを適用する場合の設定です。

尚、検証中の数台の運用になるので、その点ご理解下さいね。

また、あくまでも私たちのやり方で、正解というわけではないので、その点ご理解下さい。

 

 

 1.Windowsストアは起動を禁止
 禁止せず、特定Windowsストアアプリを禁止。
 現時点では、ストアアプリ群ではなくWindowsストアを禁止に設定(アンインストールはしない)
 尚、本設定は、グループポリシーにあるが、うまく動かないバグの可能性もあるため、アプリのみ停止する
 設定を行う。
 
2.Windowsストアアプリ起動禁止
 上記方法を利用してあえて、一部のアプリの設定の禁止を行うことは可能。
 
 1.2は、グループポリシーによってコントロール
 事前にアプリケーション名の調査が必要。実際のインストールディレクト
  以下は、WindowsStoreを禁止にする場合です。その他のアプリをあえて、止めたい場合は、パス以下のフォルダとアプリ名を調査する必要があります。コマンドは後述。
  [コンピュータの構成] または [ユーザの構成]
  [ポリシー]
   [Windows の設定]
    [セキュリティの設定]
     [ソフトフェアの制限のポリシー]
      [追加の規則]
       (パスの規則)
        パス:%ProgramFiles%\WindowsApps\Microsoft.WindowsStore*
        セキュリティレベル:許可しない

 

3.Windowsストアアプリ削除
 アップデートが行われる前に各Pcにアンインストールを行うPowerShellとそれを起動するタスク+バッチをグループポリシーで配布する。
 コマンドはpowershellでアンインストールを行うだけとなり、ユーザは、故意にコマンドさせわかれば、
 インストールは行えるが、タスクスケジューラが、ログオン時に実行とさせるため、結局はアンインストールとなる。
 尚、Windowsストアは、禁止で起動しない。

ここややこしいです。削除するPowerShellは、ps1という拡張子で保存します。たとえば、# 3D Builder というアプリを削除する場合は、
Get-AppxPackage *3dbuilder* | Remove-AppxPackage

と書いて保存すればいいですが、そもそも、ps1という拡張子のファイルは、windows10の仕様上、powershellを実行するのではなく、テキストで開く設定となります。(レジストリいじれば起動しますが)さらに、さらに、powerShell実行のセキュリティがデフォルト Restricted となっていて、タスクとかから起動するすらもできません。全台直接変更はリモートでは無理かなと。

でも、穴があります。バッチファイルから、Remote実行を許可して命令すると起動するのです。

ここで、アプリを削除するpowersehllを "c:\temp\Appdel.ps1"に保存します。

さらに、これをリモート実行させる、バッチを

"c:\temp\kido.bat"とします。

そして、

Appdel.ps1の内容は、

# 3D Builder
Get-AppxPackage *3dbuilder* | Remove-AppxPackage

kido.batの内容は、上記を起動するコマンドです。

powershell -ExecutionPolicy RemoteSigned -File "C:\temp\Appdel.ps1"

このバッチを起動するよう、タスクスケジューラに作ります。

実行ユーザは、users です。ログオン時のユーザなので。

起動は、ログオン時ですが、、、さらに注意。(以下は体感)

anniversary update直後のログオン時に、なんと、順次アプリがインストールされるので、その前にタスクが実行されてもスルーです。(次回のログオン時は削除されますけどね)

なので、タスク実行、ログオン時に遅延で1分後、さらに、15分間 5分おきに繰り返しにしておきます。

そうすると、だいたい消えました。そうです、今度起動する度にバッチが一瞬でてくることになります。いいかなぁと思っていますが、一応、さらにVBScriptからBATを起動さえると、コマンドプロンプトもださないようにもできたりと。

タスク、ファイルはグループポリシーで作成できますので。(ここでは、こまかく書きませんが。)

削除したいアプリは

”Get-AppxPackage"とpowerSehllで打てばでます。そこから抜粋するのたいへーんなんです。

羅列しちゃいましたが、絵があったほうがよかったですかねーやっぱり。

 

尚、補足ですが、スタートメニューのタイルですが、

既にログオンしたユーザがAnniversary updateしてもそれまでのタイルが保持されますが、上記のようにAnniversary update以後、デフォルトに忍び込ませた、Layoutmodification.xmlがきえちゃうので、新規のユーザは、タイルの内容が違います。

さらに、そこには、インストールするだけのショートカットのストアアプリもでてきます。だから、やはり、グループポリシー等で、常に、Layoutmodification.xmlを更新させる方法をとる必要があるかもしれません。

 

みなさんはどうですか?結構これ行き詰まりながらも、頑張ってみました。無理やりですかね。でも、今後のアップデートもだいたいこの方法でアプリは制御できそうです。