<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://wpietrzak.pl/feed.xml" rel="self" type="application/atom+xml" /><link href="https://wpietrzak.pl/" rel="alternate" type="text/html" /><updated>2025-11-19T15:54:12+01:00</updated><id>https://wpietrzak.pl/feed.xml</id><title type="html">Wojciech Pietrzak Blog</title><subtitle>This is my first blog about PowerShell and many more!</subtitle><author><name>Wojciech Pietrzak</name></author><entry><title type="html">AI Automate IT - AI Agent for your bussiness!</title><link href="https://wpietrzak.pl/random/NewAIAgentInitiative/" rel="alternate" type="text/html" title="AI Automate IT - AI Agent for your bussiness!" /><published>2025-11-19T00:00:00+01:00</published><updated>2025-11-19T00:00:00+01:00</updated><id>https://wpietrzak.pl/random/NewAIAgentInitiative</id><content type="html" xml:base="https://wpietrzak.pl/random/NewAIAgentInitiative/"><![CDATA[<h1 id="ai-automate-it--invitation">AI Automate IT — Invitation</h1>

<p>Transform your operations with intelligent AI Agents tailored to your business. Join us to modernize workflows, boost efficiency, and unlock new growth.</p>

<ul>
  <li>Company: AI Automate IT</li>
  <li>Website: <a href="https://www.ai-automate.it/en">https://www.ai-automate.it/en</a></li>
  <li>Offer: End‑to‑end AI Agent implementations for your business</li>
</ul>

<h2 id="what-we-deliver">What we deliver</h2>

<ul>
  <li>Autonomous AI Agents that handle support, sales, and back‑office tasks 24/7.</li>
  <li>Secure integrations with your tools (CRM, calendars, databases, APIs).</li>
  <li>Monitoring, guardrails, and human‑in‑the‑loop controls for reliability.</li>
</ul>

<h2 id="why-partner-with-us">Why partner with us</h2>

<ul>
  <li>Faster response times, lower operational costs, higher customer satisfaction.</li>
  <li>Orchestrated workflows across cloud and on‑prem environments.</li>
  <li>Measurable ROI with clear KPIs and continuous optimization.</li>
</ul>

<h2 id="use-cases">Use cases</h2>

<ul>
  <li>Lead qualification, meeting booking, and pipeline enrichment.</li>
  <li>L1/L2 support with knowledge base grounding and audit trails.</li>
  <li>Document processing, approvals, and data synchronization.</li>
</ul>

<h2 id="get-started">Get started</h2>

<ol>
  <li>Book a discovery call at <a href="https://www.ai-automate.it/en">https://www.ai-automate.it/en</a></li>
  <li>We map your use cases and design an initial agent.</li>
  <li>Pilot in 2–4 weeks, then scale with confidence.</li>
</ol>

<p>Let’s implement AI Agents that work the way your business does.</p>]]></content><author><name>Wojciech Pietrzak</name></author><category term="Random" /><category term="AIAgent" /><summary type="html"><![CDATA[AI Automate IT — Invitation]]></summary></entry><entry><title type="html">New Search Function - GlpiTools</title><link href="https://wpietrzak.pl/glpi/SearchFunctionChange/" rel="alternate" type="text/html" title="New Search Function - GlpiTools" /><published>2022-04-03T00:00:00+02:00</published><updated>2022-04-03T00:00:00+02:00</updated><id>https://wpietrzak.pl/glpi/SearchFunctionChange</id><content type="html" xml:base="https://wpietrzak.pl/glpi/SearchFunctionChange/"><![CDATA[<p>Long story short 😀 Let’s begin !</p>

<p>First, go to the doc which describing the Search Function<br />
<a href="https://www.wpietrzak.pl/glpi/Search-GlpiToolsItems/">Search-GlpiToolsItems</a></p>

<p>Now you are able to put more filtering on a search, you can link with the operators like <strong>AND</strong><br />
But the better way to descibe it, is to have a real example<br />
Here is command which gets the computers<br />
<strong>Search-GlpiToolsItems -SearchFor Computer -SearchType contains, contains -SearchField 1, 40 -SearchValue c, virtual -SearchLink AND</strong></p>

<p>And now:<br />
<strong>SearchFor</strong> here we put what we want to search<br />
<strong>SearchType</strong> here you can specify a type of a search, you can choose between values like <strong>contains</strong> <strong>equals</strong> and more, you can put here more than one type<br />
<strong>SearchField</strong> here you need to specify field of a search which you can get from different command, and as well you can put here more than one value<br />
<strong>SearchValue</strong> put here values that you want to search, you can put more than one<br />
<strong>SearchLink</strong> here you are able to choose how do you want to link these values, <strong>you have two values for SearchType, SearchField, SearchValue you linking them with one SearchLink</strong>  like in a example</p>

<p><strong>This command has backward compatibility so you shoudn’t have problems with your scripts after module update, but be aware of this!</strong></p>]]></content><author><name>Wojciech Pietrzak</name></author><category term="Glpi" /><category term="GlpiTools" /><summary type="html"><![CDATA[Long story short 😀 Let’s begin !]]></summary></entry><entry><title type="html">3 Things to know - GlpiTools</title><link href="https://wpietrzak.pl/glpi/ThingsToKnowGlpiTools/" rel="alternate" type="text/html" title="3 Things to know - GlpiTools" /><published>2020-01-04T00:00:00+01:00</published><updated>2020-01-04T00:00:00+01:00</updated><id>https://wpietrzak.pl/glpi/ThingsToKnowGlpiTools</id><content type="html" xml:base="https://wpietrzak.pl/glpi/ThingsToKnowGlpiTools/"><![CDATA[<h1 id="begin">Begin</h1>
<p>If you reading this article, I assume that you already did steps from:
<a href="https://www.wpietrzak.pl/glpi/StartGlpiTools/">How to start with GlpiTools Module</a></p>

<p>There is a few things that you have to know about the module, and in my opinion is important to know them</p>

<p>Ok, Let’s go 😀</p>

<h1 id="process">Process</h1>

<h2 id="configuration-store">Configuration store</h2>
<p>Configuration is just a .json file<br />
I secure (just to hide real values, because converting is easy to revert) configuration parameters by converting them to secure strings</p>

<p>Depend on OS where do you use module, Configuration is stored in different places<br />
On Linux</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s2">"</span><span class="nv">$</span><span class="nn">env</span><span class="p">:</span><span class="nv">HOME</span><span class="s2">/.config/GlpiToolsConfig\Configuration.json"</span><span class="w">
</span></code></pre></div></div>
<p>On Windows</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s2">"</span><span class="nv">$</span><span class="nn">env</span><span class="p">:</span><span class="nv">LOCALAPPDATA</span><span class="s2">\GlpiToolsConfig\Configuration.json"</span><span class="w"> 
</span></code></pre></div></div>
<h2 id="parametersjson">Parameters.json</h2>
<p>This file is using for autocomplete parameters from functions like:</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-GlpiToolsItems</span><span class="w">
</span><span class="nx">Get-GlpiToolsListSearchOptions</span><span class="w">
</span><span class="n">Search-GlpiToolsItems</span><span class="w">
</span><span class="nx">Add-GlpiToolsItems</span><span class="w">
</span><span class="n">Update-GlpiToolsItems</span><span class="w">
</span><span class="nx">Remove-GlpiToolsItems</span><span class="w">
</span></code></pre></div></div>
<p>Parameters.json is located inside the module, inside Private folder<br />
On my computer this is:</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s2">"c:\Program Files\WindowsPowerShell\Modules\GlpiTools\Private\"</span><span class="w">
</span></code></pre></div></div>
<p>But, you have to check in your system where module is installed<br />
Check inside folders shown by command</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$</span><span class="nn">env</span><span class="p">:</span><span class="nv">PSModulePath</span><span class="w">
</span></code></pre></div></div>
<p>The most important thing is that, you can add to the file your own endpoints/components!!<br />
Do you installed new plugin and want to use it with module? You don’t have to wait for new functions or write it on your own<br />
All what you doing is</p>
<ul>
  <li>locate module on the disk</li>
  <li>add new component to parameters.json</li>
</ul>

<p>like:</p>
<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nl">"GlpiComponents"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
        </span><span class="s2">"Computer"</span><span class="p">,</span><span class="w">
        </span><span class="s2">"Monitor"</span><span class="p">,</span><span class="w">
        </span><span class="s2">"Software"</span><span class="p">,</span><span class="w">
        </span><span class="s2">"NetworkEquipment"</span><span class="p">,</span><span class="w">
        </span><span class="s2">"Peripheral"</span><span class="p">,</span><span class="w">
        </span><span class="s2">"Printer"</span><span class="p">,</span><span class="w">
        </span><span class="s2">"provide it here"</span><span class="w">
    </span><span class="p">]</span><span class="w">
</span></code></pre></div></div>
<p>The best way to find name of the endpoint/component is to look on database structure and names of the tables</p>

<p>Then you have to remember, to make a copy of this file if you updating/installing on your system or installing module on another system or server etc…</p>

<h2 id="search-glpitoolsitems">Search-GlpiToolsItems</h2>
<p>Function Search-GlpiToolsItems, can a little bit confuse you if you don’t know <strong>two</strong> things</p>
<h3 id="one">One</h3>
<p>This function will show that many properties, as see user which is use in API</p>

<p>But, the best way is to show it on example<br />
We have a Computers Tab, you are logged in as user used in API<br />
You see only three properites: ID, Name, and Serial number of all computers there</p>

<p>You use</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-GlpiToolsComputers</span><span class="w"> </span><span class="nt">-All</span><span class="w"> 
</span></code></pre></div></div>
<p>And you get all computers with all properties inside</p>

<p>Then, you use</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Search-GlpiToolsItems</span><span class="w"> </span><span class="nt">-SearchFor</span><span class="w"> </span><span class="nx">Computer</span><span class="w"> </span><span class="nt">-SearchType</span><span class="w"> </span><span class="nx">contains</span><span class="w"> </span><span class="nt">-SearchValue</span><span class="w"> </span><span class="err">&lt;</span><span class="nx">name</span><span class="w"> </span><span class="nx">of</span><span class="w"> </span><span class="nx">computer</span><span class="err">&gt;</span><span class="w">
</span></code></pre></div></div>
<p>And get only 3 properties, why?<br />
Because, to get that you have to modify the view in GUI</p>

<p>There is icon like “key” or “keytool” where you can define which properties do you see</p>

<p>Add there that many parameters, as you want to see when you will use Search function</p>

<h3 id="two">Two</h3>
<p>Function has one special parameter called “-SearchField”</p>

<p>This is a parameter where you provide an ID or parameter from output of another function</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-GlpiToolsListSearchOptions</span><span class="w">
</span></code></pre></div></div>
<p>By default Search function use parameter “name”, but if you want to search computer by property “serial number” you have to know which ID “serial number” has</p>

<p>This parameter is not mandatory, but is good to know how it works and how you can customize command to Search not only for names</p>

<h1 id="end">End</h1>
<p>And that’s it 😀<br />
If you have more questions, feel free to find me and PM on FB or Twitter</p>]]></content><author><name>Wojciech Pietrzak</name></author><category term="Glpi" /><category term="GlpiTools" /><summary type="html"><![CDATA[Begin If you reading this article, I assume that you already did steps from: How to start with GlpiTools Module]]></summary></entry><entry><title type="html">How to start with GlpiTools Module</title><link href="https://wpietrzak.pl/glpi/StartGlpiTools/" rel="alternate" type="text/html" title="How to start with GlpiTools Module" /><published>2019-12-30T00:00:00+01:00</published><updated>2019-12-30T00:00:00+01:00</updated><id>https://wpietrzak.pl/glpi/StartGlpiTools</id><content type="html" xml:base="https://wpietrzak.pl/glpi/StartGlpiTools/"><![CDATA[<h1 id="how-to-start">How To Start</h1>
<p>To start with module GlpiTools which wrap Glpi API into PowerShell functions you have to complete few steps below.</p>
<ul>
  <li>Install Module from PS Gallery</li>
  <li>Import Module to use functions</li>
  <li>Configure GLPI to use API</li>
  <li>Set API configuration</li>
</ul>

<p>Run PowerShell console with elevated permissions - its important!</p>
<h2 id="install-module-from-ps-gallery">Install Module from PS Gallery</h2>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Install-Module</span><span class="w"> </span><span class="nt">-Name</span><span class="w"> </span><span class="nx">GlpiTools</span><span class="w"> 
</span></code></pre></div></div>

<h2 id="import-module-to-use-functions">Import Module to use functions</h2>
<p>After Module Instalation from PS Gallery you have to import module to use</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Import-Module</span><span class="w"> </span><span class="nt">-Name</span><span class="w"> </span><span class="nx">GlpiTools</span><span class="w"> 
</span></code></pre></div></div>

<h2 id="configure-glpi-to-use-api">Configure GLPI to use API</h2>
<ul>
  <li>Enable API - Setup -&gt; General -&gt; API -] Enable Rest API</li>
  <li>Configure Access From Localhost - Setup -&gt; General -&gt; API -&gt; full access from localhost -] Filter access (I prefere to leave parameters, IPv4, IPv6 blank - not so secure but if you testing its enough, remember to change it)</li>
  <li>Path to Glpi API - Setup -&gt; General -&gt; API -] URL of the API</li>
  <li>Get app_token - Setup -&gt; General -&gt; API -&gt; full access from localhost -] Filter access (parameter Application token(app_token), click regenerate checkbox and save, after that app_token will show. Copy token and save it for later use)</li>
  <li>Get User API token - Administration -&gt; Users - (user) -&gt; Settings -] Remote access keys (parameter API token, click regenerate checkbox and save, after that User Token will show. Copy token and save it for later use) - ! Remember that user must have permissions to do what u want to do with API</li>
</ul>

<h2 id="set-api-configuration">Set API configuration</h2>
<p>Last step, and you are ready to go!</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$param</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w">
    </span><span class="n">AppToken</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"provide here app_token"</span><span class="w">
    </span><span class="n">UserToken</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"provide here user_token"</span><span class="w">
    </span><span class="n">PathToGlpi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"provide here URL of the API"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span><span class="n">Set-GlpiToolsConfig</span><span class="w"> </span><span class="err">@</span><span class="nx">param</span><span class="w">
</span></code></pre></div></div>
<h1 id="end-">End 😀</h1>
<p>You can check existing configuration by running</p>
<div class="language-powershell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Get-GlpiToolsConfig</span><span class="w">
</span></code></pre></div></div>
<p>There is always one configuration, so if you want to change, you have to run commands from “Set API configuration” step</p>

<p>Enjoy!</p>]]></content><author><name>Wojciech Pietrzak</name></author><category term="Glpi" /><category term="GlpiTools" /><summary type="html"><![CDATA[How To Start To start with module GlpiTools which wrap Glpi API into PowerShell functions you have to complete few steps below. Install Module from PS Gallery Import Module to use functions Configure GLPI to use API Set API configuration]]></summary></entry><entry><title type="html">Welcome at my Blog</title><link href="https://wpietrzak.pl/random/Welcome/" rel="alternate" type="text/html" title="Welcome at my Blog" /><published>2019-11-06T00:00:00+01:00</published><updated>2019-11-06T00:00:00+01:00</updated><id>https://wpietrzak.pl/random/Welcome</id><content type="html" xml:base="https://wpietrzak.pl/random/Welcome/"><![CDATA[<h1 id="welcome-at-my-blog-">Welcome at my Blog !</h1>]]></content><author><name>Wojciech Pietrzak</name></author><category term="Random" /><category term="Random" /><summary type="html"><![CDATA[Welcome at my Blog !]]></summary></entry></feed>