<p>I have a PowerShell script that I want to run on some Azure AKS nodes (running Windows) to deploy a security tool. There is no daemon set for this by the software vendor. How would I get it done?</p>
<p>Thanks a million
Abdel</p>

<p>Similar question has been asked <a href="https://techcommunity.microsoft.com/t5/azure-devops/run-a-powershell-script-on-azure-aks-nodes/m-p/2689781" rel="nofollow noreferrer">here</a>. User <a href="https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/1138854" rel="nofollow noreferrer">philipwelz</a> has written:</p>
<blockquote>
<p>Hey,</p>
<p>although there could be ways to do this, i would recommend that you dont. The reason is that your AKS setup should not allow execute scripts inside container directly on AKS nodes. This would imply a huge security issue IMO.</p>
<p>I suggest to find a way the execute your script directly on your nodes, for example with PowerShell remoting or any way that suits you.</p>
<p>BR,<br />
Philip</p>
</blockquote>
<p>This user is right. You should avoid executing scripts on your AKS nodes. In your situation if you want to deploy Prisma cloud you need to go with the <a href="https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html" rel="nofollow noreferrer">following doc</a>. You are right that install scripts work only on Linux:</p>
<blockquote>
<p>Install scripts work on Linux hosts only.</p>
</blockquote>
<p>But, for the Windows and Mac software you have specific yaml files:</p>
<blockquote>
<p>For macOS and Windows hosts, use twistcli to generate Defender DaemonSet YAML configuration files, and then deploy it with kubectl, as described in the following procedure.</p>
</blockquote>
<p>The entire procedure is described in detail in the document I have quoted. Pay attention to step 3 and step 4. As you can see, there is no need to run any powershell script:</p>
<p>STEP 3:</p>
<blockquote>
<ul>
<li>Generate a  <a href="https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html#" rel="nofollow noreferrer">defender.yaml</a>  file, where:</li>
</ul>
</blockquote>
<pre><code>   The following command connects to Console (specified in  [--address](https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html#)) as user &lt;ADMIN&gt; (specified in  [--user](https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html#)), and generates a Defender DaemonSet YAML config file according to the configuration options passed to  [twistcli](https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html#). The  [--cluster-address](https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/install/install_kubernetes.html#)  option specifies the address Defender uses to connect to Console.
   
   $ &lt;PLATFORM&gt;/twistcli defender export kubernetes \
     --user &lt;ADMIN_USER&gt; \
     --address &lt;PRISMA_CLOUD_COMPUTE_CONSOLE_URL&gt; \
     --cluster-address &lt;PRISMA_CLOUD_COMPUTE_HOSTNAME&gt;
   
   -   &lt;PLATFORM&gt; can be linux, osx, or windows.
       
   -   &lt;ADMIN_USER&gt; is the name of a Prisma Cloud user with the System Admin role.
</code></pre>
<p>and then STEP 4:</p>
<pre><code>kubectl create -f ./defender.yaml
</code></pre>
