# Need help with win\_package \[msi file with TRANSFORMS\]

**URL:** <https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288>\
**Category:** Ansible Project\
**Tags:** windows\
**Created:** [August 8, 2018, 7:24am UTC](https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288 "2018-08-08T07:24:30Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Julien](https://avatars.discourse-cdn.com/v4/letter/j/71e660/32.png) [@Julien](https://forum.ansible.com/u/Julien)\
**Post date:** [August 8, 2018, 7:24am UTC](https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288/1 "2018-08-08T07:24:30Z")

</div>

Hello,

I have some trouble with win\_package module, i’m trying to install a msi package with a deployment file, so i’ve wrote this task:

**- name:**  
**win\_package:**  
**path: C:\tmp\The msi package.msi**  
**arguments:**  
**- /passive**  
**- TRANSFORMS=‘“Group Policy Deployment.mst”’**  
**state: present**

The problem is that the Windows installer process always stay inactive

![](https://us1.discourse-cdn.com/ansible/original/2X/c/c278af3ca1a8fea0a5d17851efd873e51e6ce2f4.png)

Someone’s know the exact synthax for this task?

Best Regards  
Julien.

---

<div class="post-metadata">

**Author:** ![j.r.hawkesworth](https://avatars.discourse-cdn.com/v4/letter/j/a3d4f5/32.png) [@j.r.hawkesworth](https://forum.ansible.com/u/j.r.hawkesworth)\
**Post date:** [August 8, 2018, 8:41am UTC](https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288/2 "2018-08-08T08:41:45Z")

</div>

Try putting all the arguments on one line perhaps? I don’t think ‘arguments’ takes a list, just a string:

**- name:**  
**win\_package:**  
**path: C:\tmp\The msi package.msi**  
**arguments: /passive TRANSFORMS=‘“Group Policy Deployment.mst”’**  
**state: present**

MSIs seem to have different command line switches based on which installer technology they were created with. If you can’t find out from wherever you got the .msi from what the correct command line switches for an unattended installation.

You might need a full path (or relative path from the HOMEPATH of the user that ansible is running as) to the .mst file as well.

Hope this helps

Jon

---

<div class="post-metadata">

**Author:** ![Julien](https://avatars.discourse-cdn.com/v4/letter/j/71e660/32.png) [@Julien](https://forum.ansible.com/u/Julien)\
**Post date:** [August 30, 2018, 12:41pm UTC](https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288/3 "2018-08-30T12:41:11Z")

</div>

Hi Jon and thank’s for the reply,

I’ve tried to put all arguments in one line, but i have the same result, my playbook stay stuck :

 ![](https://us1.discourse-cdn.com/ansible/original/2X/7/73f3435ed39c2cca3dc3380f9bc202954c488bee.png)

The thing that i don’t understand is the command with the same command ( **msiexec /i The msi package.msi /passive**  **TRANSFORMS=‘“Group Policy Deployment.mst”’** ) on powershell works fine

Have you got any other solutions?  
Sorry for the late of the answer, i were on vacation

Best Regards,  
Julien.

---

<div class="post-metadata">

**Author:** ![Julien](https://avatars.discourse-cdn.com/v4/letter/j/71e660/32.png) [@Julien](https://forum.ansible.com/u/Julien)\
**Post date:** [August 30, 2018, 12:52pm UTC](https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288/4 "2018-08-30T12:52:07Z")

</div>

Missed the " " on the command, here it is :

**msiexec /i “C:\tmp\The msi package.msi” /passive**  **TRANSFORMS=‘“Group Policy Deployment.mst”’**

---

<div class="post-metadata">

**Author:** ![j.r.hawkesworth](https://avatars.discourse-cdn.com/v4/letter/j/a3d4f5/32.png) [@j.r.hawkesworth](https://forum.ansible.com/u/j.r.hawkesworth)\
**Post date:** [September 4, 2018, 8:52am UTC](https://forum.ansible.com/t/need-help-with-win-package-msi-file-with-transforms/28288/5 "2018-09-04T08:52:38Z")

</div>

There’s lots of ways msi installations can fail.

You can debug it a bit by passing the logging output switches in the arguments and then reviewing the logging from msi.

I would probably take a pragmatic approach and use `win_shell` to run msiexec, perhaps with the `creates` option to stop it from reattempting the installing if already installed.

Jon
