diff --git a/tasks/apps.yml b/tasks/apps.yml
index a0e7a50f4023cbe1f22df6d4032115ec199d8e7b..bf552033324e7a877e1999d72cbb1d606cff171c 100644
--- a/tasks/apps.yml
+++ b/tasks/apps.yml
@@ -1,6 +1,6 @@
 ---
 - name: List currently installed apps
-  ansible.builtin.shell: yunohost app map --output-as json
+  ansible.builtin.command: yunohost app map --output-as json
   register: ynh_installed_apps_raw
   changed_when: False
 
@@ -8,7 +8,7 @@
   ansible.builtin.set_fact: ynh_installed_apps="{{ ynh_installed_apps_raw.stdout | from_json }}"
 
 - name: Install yunohost apps
-  ansible.builtin.shell: yunohost app install {{ item.link }} \
+  ansible.builtin.command: yunohost app install {{ item.link }} \
      --label "{{ item.label }}" \
      --args "{% for key, value in item.args.items() %}{{ key }}={{ value 
     }}{% if not loop.last %}&{% endif %}{% endfor %}"
diff --git a/tasks/domains.yml b/tasks/domains.yml
index db41c0a0371693fb0863265976c54efb8fc46921..7c9ad27582957e9574ed799456bd47ac54e5f80e 100644
--- a/tasks/domains.yml
+++ b/tasks/domains.yml
@@ -1,6 +1,6 @@
 ---
 - name: List currently installed domains
-  ansible.builtin.shell: yunohost domain list --output-as json
+  ansible.builtin.command: yunohost domain list --output-as json
   register: ynh_installed_domains_raw
   changed_when: False
 
@@ -8,6 +8,6 @@
   ansible.builtin.set_fact: ynh_installed_domains="{{ ynh_installed_domains_raw.stdout | from_json }}"
 
 - name: Create domains
-  ansible.builtin.shell: yunohost domain add {{ item }}
+  ansible.builtin.command: yunohost domain add {{ item }}
   with_items: "{{ ynh_extra_domains }}"
   when: item not in ynh_installed_domains.domains
diff --git a/tasks/main.yml b/tasks/main.yml
index 3d9e9baf60bb61b90bc29384bc2536aacc3c9ac0..419d4e0911428d4a6294f61c51e7695099d64b2d 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -22,11 +22,11 @@
   when: ynh_file_install.stat.exists == False
 
 - name: Launch Yunohost postinstall
-  ansible.builtin.shell: "
+  ansible.builtin.command:
     yunohost tools postinstall \
-      --domain {{ ynh_main_domain }} \
-      --password {{ ynh_admin_password }} \
-      {% if ynh_ignore_dyndns_server == True %} --ignore-dyndns {% endif %}"
+      --domain "{{ ynh_main_domain }}" \
+      --password "{{ ynh_admin_password }}" \
+      {% if ynh_ignore_dyndns_server == True %} --ignore-dyndns {% endif %}
   when: ynh_file_install.stat.exists == False
 
 - name: Create extra domains
@@ -34,10 +34,10 @@
   when: ynh_extra_domains
 
 - name: Run first Yunohost diagnosis
-  ansible.builtin.shell: yunohost diagnosis run
+  ansible.builtin.command: yunohost diagnosis run
 
 - name: Install domain certificates
-  ansible.builtin.shell: yunohost domain cert-install
+  ansible.builtin.command: yunohost domain cert-install
   changed_when: False
 
 - name: Add Yunohost users
diff --git a/tasks/users.yml b/tasks/users.yml
index f3e7eb14c2070c00304a78a267f0451c67aea5d8..ac3e087bad0da05c4ad8c36b4c64da4d7b822f85 100644
--- a/tasks/users.yml
+++ b/tasks/users.yml
@@ -1,6 +1,6 @@
 ---
 - name: List users
-  ansible.builtin.shell: yunohost user list --output-as json
+  ansible.builtin.command: yunohost user list --output-as json
   register: ynh_registered_users_raw
   changed_when: False
 
@@ -8,11 +8,11 @@
   ansible.builtin.set_fact: ynh_registered_users="{{ ynh_registered_users_raw.stdout | from_json }}"
 
 - name: Create missing Yunohost users
-  ansible.builtin.shell: |
-    yunohost user create {{ item.name }} \
-    -f {{ item.firstname }} \
-    -l {{ item.lastname }} \
-    -d {{ item.mail_domain }} \
-    -p {{ item.pass }}
+  ansible.builtin.command:
+    yunohost user create "{{ item.name }}" \
+    -f "{{ item.firstname }}" \
+    -l "{{ item.lastname }}" \
+    -d "{{ item.mail_domain }}" \
+    -p "{{ item.pass }}"
   loop: "{{ ynh_users }}"
   when: item.name not in ynh_registered_users.users.keys()