<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Hope This Helps</title>
    <link>https://hope-this-helps.de/serendipity/</link>
    <description>IT Tipps die das Leben einfacher machen</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 2.3.5 - http://www.s9y.org/</generator>
    <pubDate>Fri, 12 Dec 2025 21:08:00 GMT</pubDate>

    <image>
    <url>https://hope-this-helps.de/serendipity/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: Hope This Helps - IT Tipps die das Leben einfacher machen</title>
    <link>https://hope-this-helps.de/serendipity/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>Debian 12 - Probleme mit NVIDIA Treiber 590.11.XX</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-Probleme-mit-NVIDIA-Treiber-590.11.XX-724.html</link>
            <category>Client</category>
            <category>Linux</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-Probleme-mit-NVIDIA-Treiber-590.11.XX-724.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=724</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=724</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Nach einem Update meines Debian 12 Systems auf die aktuellsten Treiber hat nichts mehr funktioniert.&lt;br /&gt;
Die Grafik hat zwar funktioniert allerdings wurden meine Input Quellen gestört. Die Tastatur hat komische Zeichen gesendet und es war immer wieder als ob mir jemand die Cursor Tasten zwischen durch drückt. Kurzum ein arbeiten war nicht mehr möglich. Nach meiner Analyse habe ich den aktuellen NVIDIA Treiber als Verursacher ausgemacht. &lt;br /&gt;
&lt;br /&gt;
Zuerst hab ich mal alles runter geworfen das mit nvida zu tun hatte.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;sudo apt purge nvidia-*&lt;/pre&gt;Um das Problem zu lösen habe ich dann den Treiber auf den 580er Zweig gepinnt, dazu folgende Datei anlegen &lt;strong&gt;/etc/apt/preferences.d/nvidia-driver-pin&lt;/strong&gt; und diesen Inhalt einfügen&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;# Basic driver packages, includes foreign architectures
Package: src:nvidia-graphics-drivers:any src:nvidia-kmod-open:any
Pin: version 580*
Pin-Priority: 1000

# Basic driver packages, only in the native architectures
Package: src:nvidia-modprobe src:nvidia-persistenced src:nvidia-settings src:nvidia-xconfig
Pin: version 580*
Pin-Priority: 1000

# Meta packages, includes foreign architectures
# cuda-compat, built from cuda-drivers must not be part of the pinning
Package: cuda-drivers* src:nvidia-open:any
Pin: version 580*
Pin-Priority: 1000

# Extra driver packages, only in the native architectures
Package: src:libnvidia-nscq src:libnvsdm src:nvidia-fabricmanager src:nvidia-imex src:nvlink5 src:fabricmanager src:imex
Pin: version 580*
Pin-Priority: 1000
&lt;/pre&gt;dann die Treiber erneut installieren mit&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;sudo apt install cuda-drivers&lt;/pre&gt;Die Lösung funktioniert nur wenn das NVIDIA Repository eingebunden ist !&lt;br /&gt;
&lt;br /&gt;
Mehr Infos : &lt;a href=&quot;https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/debian.html&quot; title=&quot;Nvidia Driver&quot;&gt;Nvidia Driver&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 12 Dec 2025 22:08:00 +0100</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-724.html</guid>
    <category>client</category>
<category>driver</category>
<category>linux</category>
<category>nvidia</category>
<category>pinning</category>

</item>
<item>
    <title>Powershell to set new DNS Server for DHCP Reservations</title>
    <link>https://hope-this-helps.de/serendipity/archives/Powershell-to-set-new-DNS-Server-for-DHCP-Reservations-723.html</link>
            <category>DHCP</category>
            <category>Powershell</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Powershell-to-set-new-DNS-Server-for-DHCP-Reservations-723.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=723</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=723</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    I have IP reservations in my DHCP server for some clients. In this reservations I set an special DNS server for special name resolution. But now I have to change this IP because the DNS service was moved to a new server with new IP address.&lt;br /&gt;
I&#039;m ltry to write a script which will change the DNS entry in all my reservation.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;
I create a CSV file with all IP addresses which should be changed to the new DNS server (easy export from DHCP Server).&lt;br /&gt;
The column with the IP addreses in the CSV file needs a heading called &quot;IP&quot; and save the CSV in UTF-8 format with Delimiter &quot;;&quot; (even if we don&#039;t need it here).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Script to change the settings with log file&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;# new IP auf DNS server 
$NewDNS = &#039;192.168.100.100&#039;

# import csv file with all IPs
$IPs = Import-Csv -Path &quot;C:\data\reservations.csv&quot; -Delimiter &quot;;&quot; -Encoding &quot;UTF8&quot;

# write a log file
Start-Transcript -Path &quot;C:\data\Set_New_DHCP_Settings.log&quot;

# loop through all imported IP addresses
foreach ($IP in $IPs){

    # change the OptionId 6 (DNS server) for the IPs
    Write-Host &quot;IP:&quot; $IP.IP &quot;Type:&quot; $IP.Type &quot;- Set new DNS server:&quot; $NewDNS
    Set-DhcpServerv4OptionValue -ReservedIP $IP.IP -OptionId 6 -Value $NewDNS -Verbose
    
}

#Stop log file writing
Stop-Transcript &lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
If you need to change another DHCP Option you can find all OptionIDs here:&lt;br /&gt;
&lt;a href=&quot;https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml&quot;&gt;iana.org: DHCP and BOOTP Parameters&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 18 Apr 2025 11:14:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-723.html</guid>
    <category>DHCP</category>
<category>Powershell</category>
<category>windows - server</category>

</item>
<item>
    <title>Block downloading and installing &quot;Malicious Software Removal Tool&quot; via Update</title>
    <link>https://hope-this-helps.de/serendipity/archives/Block-downloading-and-installing-Malicious-Software-Removal-Tool-via-Update-722.html</link>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Block-downloading-and-installing-Malicious-Software-Removal-Tool-via-Update-722.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=722</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=722</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    I&#039;m looking for a methode to block &quot;Malicious Software Removal Tool&quot; updates from being downloaded and installed when doing Windows Update?&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;
You can set the following registry key to prevent downloading and installing MRT at windows update process.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Windows Registry Editor Version 5.00&lt;br /&gt;
&lt;br /&gt;
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MRT]&lt;br /&gt;
&quot;DontOfferThroughWUAU&quot;=dword:00000001&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
You can download and install the MRT manually without problems but via Microsoft Update or WSUS Update the patch will not downloaded. 
    </content:encoded>

    <pubDate>Fri, 18 Apr 2025 11:08:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-722.html</guid>
    <category>Malicious Software Removal Too</category>
<category>MRT</category>
<category>windows - clients</category>
<category>windows - server</category>
<category>Windows Update</category>
<category>WSUS</category>

</item>
<item>
    <title>Debian 12 : Sicheres löschen von Datenträgern</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-Sicheres-loeschen-von-Datentraegern-721.html</link>
            <category>Bash</category>
            <category>Client</category>
            <category>Linux</category>
            <category>Scripts-Code Schnipsel</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-Sicheres-loeschen-von-Datentraegern-721.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=721</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=721</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Wer unter Debian 12 einen Datenträger sicher löschen will kann hierfür &lt;strong&gt;shred&lt;/strong&gt; verwenden.&lt;br /&gt;
&lt;br /&gt;
mit &lt;strong&gt;lsblk&lt;/strong&gt; kann man sich alle Datenträger anzeigen lassen und dann als &lt;strong&gt;root&lt;/strong&gt; den Löschvorgang starten.&lt;br /&gt;
&lt;br /&gt;
In meinem Fall habe ich den folgenden Befehl genutzt:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;shred -vzn 1 /dev/DEVICE&lt;/pre&gt;&lt;br /&gt;
DEVICE ist natürlich duch den Namen der HDD zu ersetzen die mit lsblk ermittelt wurde (z.B. sdd)&lt;br /&gt;
&lt;br /&gt;
Wenn man nicht mit der Konsole arbeiten möchte kann man auch &lt;strong&gt;&lt;a href=&quot;https://github.com/martijnvanbrummelen/nwipe&quot; title=&quot;nwipe&quot; target=&quot;_blank&quot;&gt;nwipe&lt;/a&gt;&lt;/strong&gt; verwenden. Das dürfte einigen aus der Darin Boot and Nuke Suite bekannt sein. (Fork von dwipe)&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 29 Nov 2024 14:21:00 +0100</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-721.html</guid>
    <category>bash</category>
<category>client</category>
<category>erase</category>
<category>linux</category>
<category>löschen</category>
<category>scripts-code schnipsel</category>
<category>secure</category>
<category>server</category>
<category>sicher</category>

</item>
<item>
    <title>The Requested Template is not Supported by this CA (Error 0x80094800)</title>
    <link>https://hope-this-helps.de/serendipity/archives/The-Requested-Template-is-not-Supported-by-this-CA-Error-0x80094800-720.html</link>
            <category>Zertifikatsdienste</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/The-Requested-Template-is-not-Supported-by-this-CA-Error-0x80094800-720.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=720</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=720</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Ich hatte vor einigen tagen das Problem, dass ich ein neu erstelltes Zertifikats-Template nicht ausrollen konnte. Immer wenn der Benutzer das Zertifikat angefordert hatte, bekam ich folgende Fehlermeldung:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;strong&gt;“The requested certificate template is not supported by the CA. Denied by Policy Module 0x80094800, The request was for a certificate template that is not supported by the Active Directory Certificate Services policy:XXXXXXXXX. CRTSRV_E_UNSUPPORTED_CERT_TYPE”&lt;/strong&gt;&lt;/blockquote&gt; Ich habe also erneut das Template geprüft und einen Fehler bei den Berechtigungen vermutet. Der Benutzer hatte &quot;Read&quot; und &quot;Enroll&quot; Berechtigung, was eigentlich hättte genügen müssen.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Die Lösung war mal wieder einfach und simpel. Nachdem ich mir ein Default-Template der CA angeschaut hatte, fiel es mir wie Schuppen von den Augen. &lt;strong&gt;Es ist zwingend nötig, dass die Gruppe der &quot;Authenticated Users&quot; das Recht &quot;Read&quot; besitzen, damit das Enrollment funktioniert. &lt;/strong&gt;Es genügt nicht, dass der Benutzer oder die Gruppe die Berechtigung besitzt. Ein ähnliches Thema, wie bei der Sicherheitsfilterung von Gruppenrichtlinien. 
    </content:encoded>

    <pubDate>Sun, 20 Oct 2024 11:50:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-720.html</guid>
    <category>0x80094800</category>
<category>zertifikat</category>
<category>zertifikatsdienste</category>

</item>
<item>
    <title>Upgrade SQL Server Instances from Eval to Standard</title>
    <link>https://hope-this-helps.de/serendipity/archives/Upgrade-SQL-Server-Instances-from-Eval-to-Standard-719.html</link>
            <category>SQL Server</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Upgrade-SQL-Server-Instances-from-Eval-to-Standard-719.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=719</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=719</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    The procedure describe the upgrade from SQL eval to SQL Standard edition.&lt;br /&gt;
 &lt;br /&gt;
The follwoing tpoics are important before starting the process:&lt;br /&gt;
•	If you have an volume license you get no key. The Key is in the downloaded ISO hard set.&lt;br /&gt;
•	The upgrade must be done for every existing SQL instance step-by-step&lt;br /&gt;
•	The SQL instances will be restartet in the process&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;ATTENTION:  This upgrade can be undone and will restart the upgrading SQL instance.&lt;/strong&gt; &lt;br /&gt;
 &lt;br /&gt;
Check the actually edition on Server -&gt; Evaluation Edition&lt;br /&gt;
 &lt;!-- s9ymdb:269 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;713&quot; height=&quot;682&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_001.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Download iso file from for Microsoft license portal, mount iso file&quot;&lt;strong&gt;Microsoft SQL Server 2022 English x64&lt;/strong&gt;&quot; to VM and run &lt;strong&gt;setup.exe&lt;/strong&gt;&lt;br /&gt;
In the &quot;&lt;strong&gt;SQL Server Installation Center&lt;/strong&gt;&quot; click on &quot;&lt;strong&gt;Maintenance&quot; and &quot;Edition Upgrade&lt;/strong&gt;&quot;&lt;br /&gt;
&lt;!-- s9ymdb:270 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;824&quot; height=&quot;630&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_002.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
The Edition Upgrade Wizard will start and we have to select the correct license type.&lt;br /&gt;
&lt;strong&gt;ATTENTION: The product key will be automatically filled from the iso file when we have an volume license SQL server and downloded the iso file from your license portal.&lt;/strong&gt;&lt;br /&gt;
&lt;!-- s9ymdb:271 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;839&quot; height=&quot;736&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_003.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
After clicking next we have to accept the EULA&lt;br /&gt;
&lt;!-- s9ymdb:272 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;825&quot; height=&quot;737&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_004.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Now we can specify the SQL instance which we would like to upgrade.&lt;br /&gt;
&lt;strong&gt;IMPORTANT: The upgrade must be done for ALL instances!!&lt;/strong&gt;&lt;br /&gt;
&lt;!-- s9ymdb:273 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;823&quot; height=&quot;732&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_005.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
At the first run the wizard will check if the key, license and installed optionals are valid.&lt;br /&gt;
&lt;strong&gt;HINT: The warning of the downgrade can be ignored because the eval version has more features than the standard edition&lt;/strong&gt;&lt;br /&gt;
&lt;!-- s9ymdb:274 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;835&quot; height=&quot;740&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_006.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Now we can start the upgrade process&lt;br /&gt;
&lt;strong&gt;ATTENTION:  This upgrade can be undone and will restart the upgrading SQL instance.&lt;/strong&gt;&lt;br /&gt;
&lt;!-- s9ymdb:275 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;825&quot; height=&quot;729&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_007.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Database and Agent service will be restarted in this upgrade process&lt;br /&gt;
After upgrading we get a summary for the done steps&lt;br /&gt;
&lt;!-- s9ymdb:276 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;831&quot; height=&quot;724&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_008.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;strong&gt;ATTENTION: This procedure must be done for ALL existing SQL Instances. &lt;/strong&gt;&lt;br /&gt;
New one will automatically created as standard instances.&lt;br /&gt;
&lt;!-- s9ymdb:277 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;825&quot; height=&quot;732&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_009.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
After upgrading all instances we can check the SQL server edition in the Studio again:&lt;br /&gt;
 &lt;!-- s9ymdb:278 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;718&quot; height=&quot;679&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/SQL/SQL_Eval_to_Standard_010.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
 &lt;br /&gt;
Sources of Information:&lt;br /&gt;
&lt;a href=&quot;https://woshub.com/upgrade-mssqlserver-evaluation-to-standard-enterprise/&quot;&gt;Upgrade Microsoft SQL Server Evaluation Edition to Standard/Enterprise | Windows OS Hub (woshub.com)&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.mssqltips.com/sqlservertip/7794/upgrade-sql-server-from-evaluation-edition-to-standard-or-enterprise/&quot;&gt;Upgrade SQL Server from Evaluation Edition to Standard or Enterprise (mssqltips.com)&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 20 Oct 2024 11:35:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-719.html</guid>
    <category>sql server</category>
<category>upgrade eval</category>
<category>windows - server</category>

</item>
<item>
    <title>VMWare: Installationsfehler &quot;Die Microsoft-Software-Lizenzbedingungen wurden nicht gefunden&quot;</title>
    <link>https://hope-this-helps.de/serendipity/archives/VMWare-Installationsfehler-Die-Microsoft-Software-Lizenzbedingungen-wurden-nicht-gefunden-718.html</link>
            <category>VMWare</category>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/VMWare-Installationsfehler-Die-Microsoft-Software-Lizenzbedingungen-wurden-nicht-gefunden-718.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=718</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=718</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Bei der Installation eines Windows Betreibssystems unter VMWare oder VMWare Workstation kommt es zu folgendem Fehler:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Die Microsoft-Software-Lizenzbedinungen wurden nicht gefunden. Stellen Sie sicher, dass die Installationsquellen gültig sind, und starten Sie die Installation erneut.&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;Lösung:&lt;/strong&gt;&lt;br /&gt;
Die Lösung ist einfach wie simpel. Windows scheint hier ein Problem mit dem Floppy zu haben. Entfernen Sie das Floppy-Laufwerk in der Hardwareliste der VM und führen Sie die Installation erneut durch. Diese wird nun fehlerfrei durchlaufen. 
    </content:encoded>

    <pubDate>Sun, 06 Oct 2024 08:50:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-718.html</guid>
    <category>lizenzbedingungen</category>
<category>vmware</category>
<category>windows</category>
<category>windows - clients</category>
<category>windows - server</category>

</item>
<item>
    <title>Activation windows server via KMS Server</title>
    <link>https://hope-this-helps.de/serendipity/archives/Activation-windows-server-via-KMS-Server-714.html</link>
            <category>Server 2012 (R2)</category>
            <category>Server 2016</category>
            <category>Server 2019</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Activation-windows-server-via-KMS-Server-714.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=714</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=714</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    First, we must set a generic volume license key on the server. Every server edition has a unique generic key.&lt;br /&gt;
Start the command &quot;systeminfo&quot; in a command prompt to see what Server Edition you need:&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systeminfo | find &quot;OS&quot;&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;605&quot; height=&quot;104&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/Find-Server-OS.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
You find the commands to install the correct keys in the following list. &lt;br /&gt;
Install Product Keys&lt;br /&gt;
 This step is not needed if you have converted the server from eval to standard/datacenter edition because you installed the key at the process of converting.&lt;br /&gt;
 &lt;br /&gt;
Please enter the following command depend of your server edition and version in an administrative command prompt.&lt;br /&gt;
 &lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;cscript.exe c:\windows\system32\slmgr.vbs /ipk CB7KF-BWN84-R7R2Y-793K2-8XDDG&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;605&quot; height=&quot;74&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/Install-generic-Key.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Start activation via KMS server&lt;/strong&gt;&lt;br /&gt;
Now activate the windows server edition.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;cscript.exe c:\windows\system32\slmgr.vbs /ato&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;605&quot; height=&quot;84&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/Start-activation.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;strong&gt;Show KMS activation information&lt;/strong&gt;&lt;br /&gt;
The next command shows you the state of activation.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;cscript.exe c:\windows\system32\slmgr.vbs /dli&lt;/pre&gt;&lt;br /&gt;
&lt;!-- s9ymdb:279 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;606&quot; height=&quot;256&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/Show-Activation.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;strong&gt;Convert a MAC key activated server to KMS activation&lt;/strong&gt;&lt;br /&gt;
If a server is already activated with an MAC key looks like this:&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;cscript.exe c:\windows\system32\slmgr.vbs /dli&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;585&quot; height=&quot;155&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/Convert-MAC-To-KMS.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
You can simply do the same procedure to install the generic key and activate!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Delete an existing MAC key if necessary &lt;/strong&gt;&lt;br /&gt;
If you have trouble to overwrite the existing MAC key, you can delete the existing windows key with this command:&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;cscript.exe c:\windows\system32\slmgr.vbs /upk&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;480&quot; height=&quot;180&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/Delete-MAC.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;strong&gt;ATTENTION: &lt;/strong&gt; After this command the windows is not activated!&lt;br /&gt;
Now you install and activate the KMS key as descripted above.&lt;br /&gt;
&lt;br /&gt;
Microsoft Source of KMS Keys: &lt;a href=&quot;https://learn.microsoft.com/de-de/windows-server/get-started/kms-client-activation-keys?tabs=server2022%2Cwindows10ltsc%2Cversion1803%2Cwindows81&quot;&gt;Key Management Services-Clientaktivierung (KMS) und Product Keys&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 31 May 2024 21:58:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-714.html</guid>
    <category>kms</category>
<category>server 2012 (r2)</category>
<category>server 2016</category>
<category>server 2019</category>
<category>windows - server</category>

</item>
<item>
    <title>Convert Windows Server Evaluation to Standard/Datacenter Edition</title>
    <link>https://hope-this-helps.de/serendipity/archives/Convert-Windows-Server-Evaluation-to-StandardDatacenter-Edition-712.html</link>
            <category>KMS</category>
            <category>Server 2012 (R2)</category>
            <category>Server 2016</category>
            <category>Server 2019</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Convert-Windows-Server-Evaluation-to-StandardDatacenter-Edition-712.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=712</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=712</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
You want to convert your windows server evaluation edition to a standard or datacenter edition.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br /&gt;
Before we can activate the server via KMS or MAC we need to convert the evaluation edition into an standard or datacenter.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Check the current Edition&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;DISM /online /Get-CurrentEdition&lt;/pre&gt;&lt;br /&gt;
Here you see the server edition. If it is an ServerXXXEval you must convert the server edition into standard or datacenter&lt;br /&gt;
&lt;br /&gt;
&lt;img align=&quot;left width=&quot;457&quot; height=&quot;185&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/DISM-Get-Current-Edition.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Check the possible target editions&lt;/strong&gt;  &lt;br /&gt;
&lt;br /&gt;
To check the possible target edition, you can execute the next command:&lt;br /&gt;
 &lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;DISM /online /Get-TargetEditions&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;458&quot; height=&quot;193&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/DISM-Get-Target-Edition.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Convert the eval to standard or datacenter edition&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;ATTENTION: &lt;/strong&gt;The next step will need an intermediate reboot of the server!! &lt;br /&gt;
Now you can convert your evaluation edition to the target edition with the command below:&lt;br /&gt;
 &lt;br /&gt;
&lt;strong&gt;Standard: &lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;DISM /online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula&lt;/pre&gt;&lt;br /&gt;
&lt;strong&gt;Datacenter&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;DISM /online /Set-Edition:ServerDatacenter /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula&lt;/pre&gt;&lt;br /&gt;
&lt;img width=&quot;605&quot; height=&quot;248&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/DISM-Set-New-Edition.jpg&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
For the product key please use the generic volume license keys from the table below. With this keys you can also activate the server via KMS. If you have MAC Keys please use this keys for converting.&lt;br /&gt;
   &lt;br /&gt;
Server 2025 Standard     TVRH6-WHNXV-R9WG3-9XRFY-MY832&lt;br /&gt;
Server 2025 Datacenter 	D764K-2NDRG-47T6Q-P8T8W-YP6DF&lt;br /&gt;
Server 2022 Standard	VDYBN-27WPP-V4HQT-9VMD4-VMK7H&lt;br /&gt;
Server 2022 Datacenter	WX4NM-KYWYW-QJJR4-XV3QB-6VM33&lt;br /&gt;
Server 2019 Standard	N69G4-B89J2-4G8F4-WWYCC-J464C&lt;br /&gt;
Server 2019 Datacenter	WMDGN-G9PQG-XVVXX-R3X43-63DFG&lt;br /&gt;
Server 2016 Standard	WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY&lt;br /&gt;
Server 2016 Datacenter	CB7KF-BWN84-R7R2Y-793K2-8XDDG 
    </content:encoded>

    <pubDate>Fri, 31 May 2024 10:33:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-712.html</guid>
    <category>dism</category>
<category>evaluation</category>
<category>kms</category>
<category>server 2012 (r2)</category>
<category>server 2016</category>
<category>server 2019</category>
<category>server edition</category>
<category>windows - server</category>

</item>
<item>
    <title>VMWare Workstation: Netapp Simulator hängt scheinbar beim Booten</title>
    <link>https://hope-this-helps.de/serendipity/archives/VMWare-Workstation-Netapp-Simulator-haengt-scheinbar-beim-Booten-711.html</link>
            <category>Netapp Storage</category>
            <category>VMWare</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/VMWare-Workstation-Netapp-Simulator-haengt-scheinbar-beim-Booten-711.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=711</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=711</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem&lt;/strong&gt;&lt;br /&gt;
Nach der initialen Einrichtung des Netapp Simulators unter VMWare ESX oder VMWare Workstation scheint das ONTAP beim Starten stehen zu bleiben. Nach einigen Minuten ist der Node oder Cluster aber per SSH und HTTPS erreichbar.&lt;br /&gt;
&lt;img width=&quot;846&quot; height=&quot;177&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Anwendungen/ONTAP_Stucks_VMWare.png&quot; title=&quot;ONTAP_Stucks_VMWare.png&quot; alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung&lt;/strong&gt;&lt;br /&gt;
Leider handelt es sich hier um einen BUG, der nicht gefixt wird (weder VMWare noch Netapp).&lt;br /&gt;
Entweder man ignoriert das Verhalten, da der Cluster bzw. Node nach der Bootvorgang ganz normal erreichbar ist, oder man kann im VLOADER anpassen, damit die Anzeige korrekt ist. Das ist vor allem im Fehlerfall hilfreich!&lt;br /&gt;
Die Anpassung muss aber JEDES MAL gemacht werden und ist nicht persistent:&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;- Bootvorgang des Nodes am Anfang (Countdown) mit einer non-Enter-Taste unterbrechen.&lt;br /&gt;
- Der Prompt &quot;&lt;strong&gt;VLOADER&gt;&lt;/strong&gt;&quot; wird angezeigt&lt;br /&gt;
- Hier den Befehl &quot;&lt;strong&gt;setenv screen.textmode 1&lt;/strong&gt;&quot; eingbene&lt;br /&gt;
- Bootvorgang mit dem Befehl &quot;&lt;strong&gt;boot_ontap&lt;/strong&gt;&quot; starten&lt;br /&gt;
- Die Anzeige ist nun korrekt und der Bootvorgang wird vollständig angezeigt&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Quelle:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://kb.netapp.com/on-prem/ontap/ontap-select/Select-KBs/ONTAP_Select_node_9.13.1_appears_to_hang_during_boot&quot;&gt;ONTAP Select node 9.13.1 appears to hang during boot&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 19 May 2024 10:34:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-711.html</guid>
    <category>netapp simulator</category>
<category>netapp storage</category>
<category>ontap</category>
<category>stucks</category>
<category>vmware</category>

</item>
<item>
    <title>VirtualBox: Set DmiSystemVendor Installation ROK Datenträger Windows</title>
    <link>https://hope-this-helps.de/serendipity/archives/VirtualBox-Set-DmiSystemVendor-Installation-ROK-Datentraeger-Windows-710.html</link>
            <category>Virtualbox</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/VirtualBox-Set-DmiSystemVendor-Installation-ROK-Datentraeger-Windows-710.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=710</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=710</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Problem:&lt;br /&gt;
Wir wollten einen physikalischen Server inkl. Applikation auf einen virtuell Server umziehen und from scratch neu installieren (kein P2V). Hierzu mussten wir die originalen Installationsmedien des Herstellers verwenden, da es sich um eine ROK-Lizenzen gehandelt. Bei der Installation in einer VM unter VirtualBox kam der Hinweis, dass das installationsmedium Vendor branded ist und die Installation bricht ab.&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
Man kann der VM unter VirtualBox einen Vendor BIOS Tag mitgeben, damit die Installation funktioniert. Das konnten wir bei Fujitsu und HP sauber abbilden. &lt;br /&gt;
&lt;br /&gt;
Folgende Befehle haben hier den Vendor im BIOS gesetzt:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Fujitsu&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;VBoxManage setextradata &quot;Analysis&quot; &quot;VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor&quot;      &quot;FUJITSU&quot;
VBoxManage setextradata &quot;Analysis&quot; &quot;VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor&quot;        &quot;FUJITSU // Phoenix Technologies Ltd.&quot;&lt;/pre&gt;&lt;br /&gt;
&lt;strong&gt;HP&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;VBoxManage setextradata &quot;VM Name&quot; &quot;VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor&quot; &quot;HP&quot;
VBoxManage setextradata &quot;VM Name&quot; &quot;VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor&quot; &quot;HP&quot;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein überblick aller Befehle findet man hier: &lt;a href=&quot;https://www.virtualbox.org/manual/ch09.html#changedmi&quot;&gt;Configuring the BIOS DMI Information&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 15:28:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-710.html</guid>
    <category>BIOS</category>
<category>DmiSystemVendor</category>
<category>ROK</category>
<category>Vendor</category>
<category>virtualbox</category>
<category>windows - server</category>

</item>
<item>
    <title>Powershell: Unpin App from Taskbar</title>
    <link>https://hope-this-helps.de/serendipity/archives/Powershell-Unpin-App-from-Taskbar-709.html</link>
            <category>Powershell</category>
            <category>Server</category>
            <category>Windows - Server</category>
            <category>Windows Terminalserver</category>
            <category>XenApp, Presentaion Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Powershell-Unpin-App-from-Taskbar-709.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=709</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=709</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem:&lt;/strong&gt;&lt;br /&gt;
Ich habe nach einer Möglichkeit gesucht den Internet Explorer von der Taskleiste auf unseren Terminalservern zu entfernen und den Edge dafür zu setzen. Die Ernüchterung war, dass Unpin funktioniert, aber Pin nicht mehr unterstützt wird. Somit konnte ich zumindest den Internet Explorer von der Taskleiste entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Unpin App from Tasskbar&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Deutsches OS&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;$appname = &quot;Internet Explorer&quot;
((New-Object -Com Shell.Application).NameSpace(&#039;shell:::{4234d49b-0245-4df3-b780-3893943456e1}&#039;).Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace(&#039;&amp;&#039;,&#039;&#039;) -match &#039;Von Taskleiste lösen&#039;} | %{$_.DoIt(); $exec = $true}&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Englisches OS&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;$appname = &quot;Internet Explorer&quot;
((New-Object -Com Shell.Application).NameSpace(&#039;shell:::{4234d49b-0245-4df3-b780-3893943456e1}&#039;).Items() | ?{$_.Name -eq $appname}).Verbs() | ?{$_.Name.replace(&#039;&amp;&#039;,&#039;&#039;) -match &#039;Unpin from taskbar&#039;} | %{$_.DoIt(); $exec = $true}&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 15:21:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-709.html</guid>
    <category>Lösen</category>
<category>powershell</category>
<category>presentaion server</category>
<category>server</category>
<category>Taskbar</category>
<category>Taskleiste</category>
<category>Unpin</category>
<category>windows - server</category>
<category>windows terminalserver</category>
<category>xenapp</category>

</item>
<item>
    <title>Set NTFS Permissions via Powershell</title>
    <link>https://hope-this-helps.de/serendipity/archives/Set-NTFS-Permissions-via-Powershell-708.html</link>
            <category>Fileserver</category>
            <category>Powershell</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Set-NTFS-Permissions-via-Powershell-708.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=708</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=708</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Für die Migration eines Fileservers musste ich die NTFS-Berechtigungen neu setzen. Da mir die manuelle Berechtigung zu umständlich war, wollte ich das per Powershell durchführen. Die Berechtigung ist nicht ganz einfach zu setzen und auch nicht gleich verständlich. Hier ein Skript, welches ich verwendet habe um die entsprechenden Berechtigungen zu setzen. darin sind auch einige Ausführungen beinhaltet.&lt;br /&gt;
&lt;br /&gt;
Eine sehr gute Übersicht wie ACLs zu setzen sind, findet man hier:&lt;br /&gt;
&lt;a href=&quot;https://blue42.net/windows/changing-ntfs-security-permissions-using-powershell/#propagation-flags&quot;&gt;blue42: Changing NTFS Security Permissions using PowerShell&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Set-NTFSPermissions.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script set NTFS permissions for a folder.

.DESCRIPTION 
    Script set NTFS permissions for a folder. 
    It will get the original acces controll list (ACL), adds the permissions, remove inhitered permissions and save the new ACL.
 
.NOTES 

.COMPONENT 
    No powershell modules needed

.LINK 
    https://blue42.net/windows/changing-ntfs-security-permissions-using-powershell/#propagation-flags
 
.Parameter ParameterName 

#&gt;


# Folder
$Folder = &quot;C:\Data\Produktion&quot;

# Get ACL From Folder
$acl = Get-Acl -Path $Folder

# Generate access tokens

# 1: group (with domain part)
# 2: permission
# 3: inheritance flag
# 4: propagation flag
# 5: allow or deny permission
# For flags 3 and 4 look at: https://blue42.net/windows/changing-ntfs-security-permissions-using-powershell/#propagation-flags

$mdRule = New-Object System.Security.AccessControl.FileSystemAccessRule(&quot;acme\FS_Produktion_M&quot;,&quot;Modify&quot;,&quot;ContainerInherit,ObjectInherit&quot;,&quot;None&quot;,&quot;Allow&quot;)
$roRule = New-Object System.Security.AccessControl.FileSystemAccessRule(&quot;acme\FS_Produktion_R&quot;,&quot;ReadAndExecute&quot;,&quot;ContainerInherit,ObjectInherit&quot;,&quot;None&quot;,&quot;Allow&quot;)

# Disable/Enable inheritance (keep or delete inherited permissions)
# The first $true says we are blocking inheritance from the parent folder. The second parameter $false removes the current inherited permissions.
# OPTION 1: Block inheritance, keep inherited permissions and add the new
$acl.SetAccessRuleProtection($true, $true)

# OPTION 2: Block inheritance, remove inherited permissions and set only new
$acl.SetAccessRuleProtection($true, $false)

# Add Modify Rule to ACL Object
$acl.SetAccessRule($mdRule)
$acl.SetAccessRule($roRule)

# Save ACL-object to folder
Set-Acl -Path $folder -AclObject $acl
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 14:11:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-708.html</guid>
    <category>acl</category>
<category>fileserver</category>
<category>ntfs</category>
<category>permissions</category>
<category>powershell</category>

</item>
<item>
    <title>Powershell S/MIME Certificat Exporter</title>
    <link>https://hope-this-helps.de/serendipity/archives/Powershell-SMIME-Certificat-Exporter-707.html</link>
            <category>Outlook</category>
            <category>Powershell</category>
            <category>Zertifikatsdienste</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Powershell-SMIME-Certificat-Exporter-707.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=707</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=707</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Ich habe ein Skript benötigt, welches S/MIME Verschlüsselungs-Zertifikate exportiert um diese für eine Client-Migration zu erhalten. Das Skript setzt voraus, dass der S/MIME Private Key exportiertbar ist. Wenn das nicht gegeben ist, dann kann das Zertifikat nur noch an der CA mittels Key Recovery Agent (falls konfiguriert) oder Mimikaz wiederhergestellt werden.&lt;br /&gt;
&lt;br /&gt;
Es kann auch sein, dass die Suchroutine nach dem richtigen Zertifikat angepasst werden muss, je nachdem was man als Key Usage für das S/MIME-Zertifikat hinterlegt hat.&lt;br /&gt;
&lt;br /&gt;
Um des Export möglichst einfach für Endbenutzer zu machen, habe ich hierzu auch eine GUI außenherum gebaut.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;
&lt;#
.SYNOPSIS
    This script exports an S/MIME certificate with a private key and sends it as an email attachment.
.DESCRIPTION
    This script prompts the user to select an S/MIME certificate, exports it with the private key to a PFX file,
    and then sends an email with the exported PFX file as an attachment. The user is prompted to enter a password
    for the private key. After sending the email, the script deletes the PFX file.
.NOTES
    File Name: Export-SMIMECertificate.ps1
    Author   : Ralf Entner
    Date     : 2024-03-24

    Version History:
    1.0 - [2024-03-24] - Initial version.
    1.1 - [2024-04-01] - Only certificate for Encryption and language specific settings 

    Prerequisites:
    - This script requires Windows PowerShell.
    - The user running the script must have permission to access the S/MIME certificate.
    - The script relies on the user having access to Outlook for sending emails.
    - The user must enter a password for certificate export
#&gt;

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# Create a new instance of Windows Form
$form = New-Object System.Windows.Forms.Form
$form.Text = &quot;S/MIME Certificate Exporter&quot;
$form.Size = New-Object System.Drawing.Size(500,300)
$form.StartPosition = &quot;CenterScreen&quot;

# Create a label for certificate selection
$labelCert = New-Object System.Windows.Forms.Label
$labelCert.Location = New-Object System.Drawing.Point(10,20)
$labelCert.Size = New-Object System.Drawing.Size(460,20)
$labelCert.Text = &quot;Select the S/MIME certificate to export:&quot;
$form.Controls.Add($labelCert)

# Create a dropdown list (ComboBox) for certificates
$comboBoxCert = New-Object System.Windows.Forms.ComboBox
$comboBoxCert.Location = New-Object System.Drawing.Point(10,40)
$comboBoxCert.Size = New-Object System.Drawing.Size(460,20)
$form.Controls.Add($comboBoxCert)

# Create a label for password
$labelPass = New-Object System.Windows.Forms.Label
$labelPass.Location = New-Object System.Drawing.Point(10,80)
$labelPass.Size = New-Object System.Drawing.Size(460,20)
$labelPass.Text = &quot;Enter password for private key:&quot;
$form.Controls.Add($labelPass)

# Create a textbox for password
$textBoxPass = New-Object System.Windows.Forms.TextBox
$textBoxPass.Location = New-Object System.Drawing.Point(10,100)
$textBoxPass.Size = New-Object System.Drawing.Size(460,20)
$textBoxPass.PasswordChar = &quot;*&quot;
$form.Controls.Add($textBoxPass)

# Get OS language for certificate oid friendly name

if((Get-WinSystemLocale).Name -eq &quot;de-dE&quot;){

    $OIDFriendlyName = &#039;Schlüsselverwendung&#039;

} else{

    $OIDFriendlyName = &#039;KeyUsage&#039;

}

# Get certificates for &quot;secure email configuration&quot;
$certificates = Get-ChildItem -Path cert:\CurrentUser\My | ?{$_.EnhancedKeyUsageList -like &quot;*1.3.6.1.5.5.7.3.4*&quot;}
# Get only certificates for de/encryption
$certificates = $certificates | Where-Object{ $_.Extensions | Where-Object{ ($_.Oid.FriendlyName -eq $OIDFriendlyName ) -and ($_.Format(0) -like &quot;*(20)*&quot;) }}

# Populate the ComboBox with S/MIME certificate subjects
foreach ($cert in $certificates) {
    $comboBoxCert.Items.Add($cert.Thumbprint)
}

# Create an export button
$buttonExport = New-Object System.Windows.Forms.Button
$buttonExport.Location = New-Object System.Drawing.Point(150,140)
$buttonExport.Size = New-Object System.Drawing.Size(200,60)
$buttonExport.Text = &quot;Send S/MIME Certificate via Outlook Mail&quot;
$buttonExport.Add_Click({
    $selectedThumbprint = $comboBoxCert.SelectedItem
    if ([string]::IsNullOrWhiteSpace($selectedThumbprint)) {
        [System.Windows.Forms.MessageBox]::Show(&quot;Please select your S/MIME certificate.&quot;, &quot;Error&quot;, 
        [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Error)
        return
    }

    # Get the selected certificate
    $cert = $certificates | Where-Object {$_.Thumbprint -eq $selectedThumbprint}

    # Export the S/MIME certificate with private key
    $exportPath = $env:TEMP + &quot;\&quot;+ $cert.Thumbprint + &quot;.pfx&quot;
    $password = $textBoxPass.Text

    if ([string]::IsNullOrWhiteSpace($password)) {
        [System.Windows.Forms.MessageBox]::Show(&quot;Please enter a password for the certificate.&quot;, &quot;Error&quot;, 
        [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Error)
        return
    }

    try {
        Export-PfxCertificate -Cert $cert -FilePath $exportPath -Password (ConvertTo-SecureString -String $password -AsPlainText -Force)
        [System.Windows.Forms.MessageBox]::Show(&quot;S/MIME Certificate exported successfully.&quot;, &quot;Success&quot;, 
        [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)
    } catch {
        [System.Windows.Forms.MessageBox]::Show(&quot;Error exporting S/MIME certificate with private key: $_&quot;, &quot;Error&quot;,
        [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Error)
        return
    }

    # Create a new Outlook application object
    $outlook = New-Object -ComObject Outlook.Application

    # Create a new mail item
    $mail = $outlook.CreateItem(0)

    # Set email properties
    $mail.Subject = &quot;S/MIME Certificate&quot;
    $mail.Body = &quot;Please find the S/MIME certificate attached.&quot;

    # Attach the certificate file
    $attachment = $exportPath
    $mail.Attachments.Add($attachment)

    # Display the mail item
    $mail.Display()

    # Delete the PFX file after sending the email
    Remove-Item -Path $attachment -Force

})
$form.Controls.Add($buttonExport)

# Show the form
$form.ShowDialog() | Out-Null
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 13:55:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-707.html</guid>
    <category>outlook</category>
<category>powershell</category>
<category>s/mime</category>
<category>smime</category>
<category>verschlüsselung</category>
<category>zertifikat</category>
<category>zertifikatsdienste</category>

</item>
<item>
    <title>Printserver Migration Part #4: Import Printer and Settings</title>
    <link>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-4-Import-Printer-and-Settings-706.html</link>
            <category>Powershell</category>
            <category>Printserver</category>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-4-Import-Printer-and-Settings-706.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=706</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=706</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Ich stelle hier ein paar Skripte zur Verfügung, welche einem die Migration eines Printservers etwas vereinfachten. Selbstverständlich kann man das auch mir Printmig oder anderen Tools durchführen. Ich wollte meinen neuen Printserver from scratch neu installieren, daher der etwas andere Weg. Die Migration wird in vier Teile erfolgen:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-1-Export-Printer-TCP-und-LPR-Ports-703.html&quot;&gt;Part #1: Export TCP- und LPR-Ports&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-2-Export-Printer-and-Printer-Settings-704.html&quot;&gt;Part #2: Export Drucker mit allen Settings in eine XML-Datei&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-3-Import-TCP-und-LPR-Ports-705.html&quot;&gt;Part #3: Import TCP- und LPR-Ports &lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-4-Import-aller-Drucker-mit-allen-Settings-706.html&quot;&gt;Part #4: Import aller Drucker mit allen Settings&lt;/a&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;WICHTIG:&lt;/strong&gt; Vor dem nächsten schritt müssen erst alle nötigen Druckertreiber installiert werden. Sollte sich der Name oder die Version der Druckertreiber ändern, dann müssen diese vorher in der exportierten CSV-Datei angepasst werden.&lt;br /&gt;
Nachdem die Druckertreiber installiert wurden, kann man mit einem &lt;strong&gt;Get-PrinterDriver&lt;/strong&gt; dir Druckertreiber anzeigen lassen. Hier findet man unter dem Punkt &quot;Name&quot; den Namen, welcher in der CSV entsprechend ausgetauscht werden muss. Sollte der Name nicht übereinstimmen, dann erhält man einen Fehler bei der Erstellung des Druckers, dass der Treiber nicht gefunden wurde. Nachdem dir Treiber installiert sind und die CSV ggf. angepasst wurde, können dir Drucker nun per Powershell erstellt werden (inkl. Konfiguration aus der XML).&lt;br /&gt;
&lt;strong&gt;Hinweis:&lt;/strong&gt; Es hat sich gezeigt, dass Etikettendrucker nochmals gesondert geprüft werden müssen, da manche Informationen nicht im Windows-Treiber gespeichert wird (Druckkopf-Konfiguration).&lt;br /&gt;
Außerdem benötigt die Erstellung von Druckern, welche offline sind, ca. 1 Minute (TCP-Timeout).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Create-Printers_from_CSV.ps1&lt;br /&gt;
&lt;/strong&gt;&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Create-Printers_from_CSV.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script creates all printers from a csv file. Config will be restored by import xml file.

.DESCRIPTION 
    Script creates all printers with all settings from a csv and xml file.
    With the testmode $true you can run the script without any changes. It will only show whatif
    A log file will be created
 
.NOTES 
    You have to install the printer drivers on the system before you run the script.
    printer driver names must be changed in the csv file if it differs from the original names.
    If the pritner is offline the creation will take approximal 1 mintue.

.COMPONENT 
    No powershell modules needed

.LINK 
    No Links
 
.Parameter ParameterName 
    $CSVPath - Define export path of the csv file
    $Testmode - Defines testmode: $true = test | $false = live
    $Logpath - Path for log file
#&gt;

#Testmode ($true = active | $false = inactive)
$Testmode = $false

# CSV Import path
$CSVPath = &quot;C:\tgswinv\Printmig\Printers.csv&quot;

# XML import path
$XMLPath = &quot;C:\tgswinv\Printmig\&quot;

# Log File
$Logpath = &quot;C:\tgswinv\Printmig\CreatePrinter.log&quot;

#Start transciption 
Start-Transcript -Path $Logpath -Append

# Import Printers
$Printers = Import-Csv -Path $CSVPath -Delimiter &quot;;&quot;



foreach($Printer in $Printers){

    if(!(Get-Printer -Name $Printer.Name -ErrorAction SilentlyContinue))
    {
        Write-Host &quot;Generating new pritner&quot; $Printer.Name -ForegroundColor Green
        # If port not exists create a new one with parameters from csv import
        Add-Printer -Name $Printer.Name -PortName $Printer.Portname -DriverName $Printer.Drivername -Location $Printer.Location -Comment $Printer.Comment -WhatIf:$Testmode
        Start-Sleep -Seconds 2

        Write-Host &quot;Import printer configuration from xml&quot; $Printer.Name -ForegroundColor Green
        # If port not exists create a new one with parameters from csv import
        # Generate printer configuration path to xml file
        $XMLConfigFile = $XMLPath + $Printer.Name + &quot;.xml&quot;
        # Import printer configuration from xml file
        $XMLConfig = Get-Content $XMLConfigFile | Out-String
        # Set printer configuration from xml file
        Set-PrintConfiguration -PrinterName $Printer.Name -PrintTicketXml $XMLConfig -WhatIf:$Testmode
    }
}

Stop-Transcript
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 12:44:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-706.html</guid>
    <category>drucker</category>
<category>druckserver</category>
<category>migration</category>
<category>powershell</category>
<category>printer</category>
<category>printserver</category>
<category>windows - clients</category>
<category>windows - server</category>

</item>
<item>
    <title>Printserver Migration Part #3: Import TCP- und LPR-Ports</title>
    <link>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-3-Import-TCP-und-LPR-Ports-705.html</link>
            <category>Powershell</category>
            <category>Printserver</category>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-3-Import-TCP-und-LPR-Ports-705.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=705</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=705</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Ich stelle hier ein paar Skripte zur Verfügung, welche einem die Migration eines Printservers etwas vereinfachten. Selbstverständlich kann man das auch mir Printmig oder anderen Tools durchführen. Ich wollte meinen neuen Printserver from scratch neu installieren, daher der etwas andere Weg. Die Migration wird in vier Teile erfolgen:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-1-Export-Printer-TCP-und-LPR-Ports-703.html&quot;&gt;Part #1: Export TCP- und LPR-Ports&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-2-Export-Printer-and-Printer-Settings-704.html&quot;&gt;Part #2: Export Drucker mit allen Settings in eine XML-Datei&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-3-Import-TCP-und-LPR-Ports-705.html&quot;&gt;Part #3: Import TCP- und LPR-Ports &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-4-Import-aller-Drucker-mit-allen-Settings-706.html&quot;&gt;Part #4: Import aller Drucker mit allen Settings&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;Part #3: Import TCP- und LPR-Ports&lt;/strong&gt;&lt;br /&gt;
Jetzt können wir die TCP- und LPR-Ports auf dem neuen Printserver erstellen lassen. &lt;br /&gt;
Auch hier gibt es wieder zwei Skripte, da TCP-Ports anders erzeugt werden als LPD-Ports.&lt;br /&gt;
&lt;strong&gt;ACHTUNG: Vor der Erstellung der LPR-Ports muss der LPD-Service erst über den Servermanager installiert werden, damit der LPR-Porttype zur Verfügung steht.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;TIPP:&lt;/strong&gt; Sollten die Namen oder die IPs der Ports geändert werden, dann bitte vorher in der CSV anpassen!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Create-Printerports_TCP_from_CSV.ps1&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Create-Printerports_TCP_from_CSV.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script creates all TCP Printer Ports from a csv file.

.DESCRIPTION 
    Script creates all TCP Printer Ports with all settings from a csv file. In the csv file there are address, port number and smtp settings.
 
.NOTES 
    With the testmode $true you can run the script without any changes. It will only show whatif

.COMPONENT 
    No powershell modules needed

.LINK 
    No Links
 
.Parameter ParameterName 
    $CSVPath - Define import path of the csv file
    $Testmode - Defines testmode: $true = test | $false = live
#&gt;

$CSVPath = &quot;C:\tgswinv\Printmig\PortsTCP.csv&quot;
$Testmode = $false

# Import CSV with Port Informations
$PrinterPorts = Import-CSV -Path $CSVPath -Delimiter &quot;;&quot;

# Loop through 
Foreach($Port in $PrinterPorts){

Write-Host &quot;Creating Printerport $Name&quot;

# Check if Printerport already exists
if(!(Get-PrinterPort -Name $Port.Name -ErrorAction SilentlyContinue))
    {
        Add-PrinterPort -Name $Port.Name -PrinterHostAddress $Port.PrinterHostAddress -PortNumber $Port.Portnumber -SNMPCommunity $Port.SNMPCommunity -SNMP $true -WhatIf:$Testmode
    }
}&lt;/pre&gt;&lt;br /&gt;
&lt;strong&gt; Create-Printerports_LPR_from_CSV.ps1&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Create-Printerports_LPR_from_CSV.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script creates all LPR Printer Ports from a csv file.

.DESCRIPTION 
    Script creates all LPR Printer Ports with all settings from a csv file.
    In the csv file there are name, protocol, port nubmer and printer host address.
 
.NOTES 
    With the testmode $true you can run the script without any changes. It will only show whatif

.COMPONENT 
    ATTENTION: You have to install the LPR printer monitor before you add the ports!
    No powershell modules needed

.LINK 
    No Links
 
.Parameter ParameterName 
    $CSVPath - Define import path of the csv file
    $Testmode - Defines testmode: $true = test | $false = live
#&gt;

$CSVPath = &quot;C:\tgswinv\Printmig\PortsLPR.csv&quot;
$Testmode = $false

# Import CSV with Port Informations
$PrinterPorts = Import-CSV -Path $CSVPath -Delimiter &quot;;&quot;

# Loop through 
Foreach($Port in $PrinterPorts){

Write-Host &quot;Creating Printerport &quot;$Port.Name

# Check if Printerport already exists
if(!(Get-PrinterPort -Name $Port.Name -ErrorAction SilentlyContinue))
    {
        #Add-PrinterPort -Name $Port.PrinterName -PrinterHostAddress $Port.hostname -WhatIf:$Testmode
        Add-PrinterPort -PrinterName $Port.Printername -HostName $port.Hostname   -WhatIf:$Testmode
    }
}&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 12:33:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-705.html</guid>
    <category>drucker</category>
<category>druckserver</category>
<category>migration</category>
<category>powershell</category>
<category>printer</category>
<category>printserver</category>
<category>windows - clients</category>
<category>windows - server</category>

</item>
<item>
    <title>Printserver Migration Part #2: Export Printer and Printer Settings</title>
    <link>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-2-Export-Printer-and-Printer-Settings-704.html</link>
            <category>Powershell</category>
            <category>Printserver</category>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-2-Export-Printer-and-Printer-Settings-704.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=704</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=704</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Ich stelle hier ein paar Skripte zur Verfügung, welche einem die Migration eines Printservers etwas vereinfachten. Selbstverständlich kann man das auch mir Printmig oder anderen Tools durchführen. Ich wollte meinen neuen Printserver from scratch neu installieren, daher der etwas andere Weg. Die Migration wird in vier Teile erfolgen:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-1-Export-Printer-TCP-und-LPR-Ports-703.html&quot;&gt;Part #1: Export TCP- und LPR-Ports&lt;/a&gt;&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-2-Export-Printer-and-Printer-Settings-704.html&quot;&gt;Part #2: Export Drucker mit allen Settings in eine XML-Datei&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-3-Import-TCP-und-LPR-Ports-705.html&quot;&gt;Part #3: Import TCP- und LPR-Ports &lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-4-Import-aller-Drucker-mit-allen-Settings-706.html&quot;&gt;Part #4: Import aller Drucker mit allen Settings&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;Part #2: Export Drucker mit allen Settings in eine XML-Datei&lt;/strong&gt;&lt;br /&gt;
Mit dem nachfolgenden Skript erfolgt der Export aller installierten Drucker, welche Netzwerkdrucker sind. Es wird eine CSV mit den grundlegenden Druckerinformationen erstellt. Außerdem wird für jeden Drucker die Konfiguration in eine XML-Datei exportiert, welche die komplette Konfiguration der Schächte und Papierquellen etc. enthält. Mit diesen Informationen können später die Drucker vollständig auf dem neuen Server wiederhergestellt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Export-Printer_and_Printerconfiguration.ps1&lt;br /&gt;
&lt;/strong&gt;&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Export-Printer_and_Printerconfiguration.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script exports all network printers and printer settings.

.DESCRIPTION 
    Script exports all network Printers with all settings to a single csv file.
    The printer configurations are also exported in a xml file for each printer name (printername.xml)
    The export includes name, shared name, port name, driver name, location, comment und publishing information.

.NOTES 
    The script exports only network printers.

.COMPONENT 
    No powershell modules needed

.LINK 
    No Links
 
.Parameter ParameterName 
    $CSVPath - Define export path of the csv file
    $XMLPath - Define export path of xml file for each printer configuration
#&gt;
# Export CSV path
$CSVPath = &quot;C:\Printmig\Printers.csv&quot;
$XMLPath = &quot;C:\Printmig\&quot;

# Get all printers and informtaions
$Printers = Get-Printer | ?{$_.PortName -ne &quot;PORTPROMPT:&quot;} | select Name, ShareName, PortName, DriverName, Location, Comment, Published, Shared

# Export Printers to csv
$Printers | Export-Csv -Path $CSVPath -Delimiter &quot;;&quot; -Encoding UTF8 -NoTypeInformation

Foreach ($Printer in $Printers){

    #Exportpaht for XML

    $XMLFilePath = $XMLPath + $Printer.Name + &quot;.xml&quot;

    # Export PrinterConfiguration to XML
    $GPC = get-printconfiguration -PrinterName $Printer.Name
    $GPC.PrintTicketXML | out-file $XMLFilePath
}&lt;/pre&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 12:22:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-704.html</guid>
    <category>drucker</category>
<category>druckserver</category>
<category>migration</category>
<category>powershell</category>
<category>printer</category>
<category>printserver</category>
<category>windows - clients</category>
<category>windows - server</category>

</item>
<item>
    <title>Printserver Migration Part #1: Export TCP- und LPR-Ports</title>
    <link>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-1-Export-TCP-und-LPR-Ports-703.html</link>
            <category>Powershell</category>
            <category>Printserver</category>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-1-Export-TCP-und-LPR-Ports-703.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=703</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=703</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    Ich stelle hier ein paar Skripte zur Verfügung, welche einem die Migration eines Printservers etwas vereinfachten. Selbstverständlich kann man das auch mir Printmig oder anderen Tools durchführen. Ich wollte meinen neuen Printserver from scratch neu installieren, daher der etwas andere Weg. Die Migration wird in vier Teile erfolgen:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;strong&gt;&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-1-Export-Printer-TCP-und-LPR-Ports-703.html&quot;&gt;Part #1: Export TCP- und LPR-Ports&lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-2-Export-Printer-and-Printer-Settings-704.html&quot;&gt;Part #2: Export Drucker mit allen Settings in eine XML-Datei&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-3-Import-TCP-und-LPR-Ports-705.html&quot;&gt;Part #3: Import TCP- und LPR-Ports &lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Printserver-Migration-Part-4-Import-aller-Drucker-mit-allen-Settings-706.html&quot;&gt;Part #4: Import aller Drucker mit allen Settings&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;Part #1: Export TCP- und LPR-Ports&lt;/strong&gt;&lt;br /&gt;
Für den späteren Import der zwei Port-Typen werden unterschiedliche Informationen benötigt, daher habe ich hierfür zwei Skripte erstellt, welche die Konfigurationen exportieren:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Export-PrinterPorts_TCP_to_CSV.ps1&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Export-PrinterPorts_TCP_to_CSV.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script exports all TCP Printer Ports to a csv file.

.DESCRIPTION 
    Script exports all TCP Printer Ports with all settings to a csv file. In the csv file there are address, port number and smtp settings.
 
.NOTES 
    The script exports only TCP Ports, not LPR Ports (see other script).

.COMPONENT 
    No powershell modules needed

.LINK 
    No Links
 
.Parameter ParameterName 
    $CSVPath - Define export path of the csv file
#&gt;

# Export CSV path
$CSVPath = &quot;C:\Printmig\PortsTCP.csv&quot;

# Get Printerports with all nessesary informations
$Printerports = Get-PrinterPort | ?{$_.Description -like &quot;*TCP*&quot;} | select Name, PrinterHostAddress, PortNumber, SNMPCommunity, SNMPEnabled 

#Export informations to CSV
$Printerports | Export-Csv -Path $CSVPath -Delimiter &quot;;&quot; -Encoding UTF8 -NoTypeInformation&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Export-PrinterPorts_LPR_to_CSV.ps1&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: ps&quot;&gt;&lt;# 
.NAME
    Export-PrinterPorts_LPR_to_CSV.ps1

.AUTHOR
    Ralf Entner

.SYNOPSIS
    Script exports all LPR Printer Ports to a csv file.

.DESCRIPTION 
    Script exports all LPR Printer Ports with all settings to a csv file. In the csv file there are name, protocol, port nubmer and printer host address.
 
.NOTES 
    The script exports only LPR Ports, not TCP Ports (see other script).

.COMPONENT 
    No powershell modules needed

.LINK 
    No Links
 
.Parameter ParameterName 
    $CSVPath - Define export path of the csv file
#&gt;
# Export CSV path
$CSVPath = &quot;C:\Printmig\PortsLPR.csv&quot;

# Get Printerports with all nessesary informations
$Printerports = Get-PrinterPort | ?{$_.PortMonitor -eq &quot;LPR Port&quot;} | Select-Object Name, Protocol, PortNumber, PrinterHostAddress

#Export informations to CSV
$Printerports | Export-Csv -Path $CSVPath -Delimiter &quot;;&quot; -Encoding UTF8 -NoTypeInformation&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 12:13:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-703.html</guid>
    <category>drucker</category>
<category>druckserver</category>
<category>migration</category>
<category>powershell</category>
<category>printer</category>
<category>printserver</category>
<category>windows - clients</category>
<category>windows - server</category>

</item>
<item>
    <title>Microsoft VAMT: The specified product key is invalid or is unsupported</title>
    <link>https://hope-this-helps.de/serendipity/archives/Microsoft-VAMT-The-specified-product-key-is-invalid-or-is-unsupported-702.html</link>
            <category>AD und Dienste</category>
            <category>KMS</category>
            <category>Microsoft Office</category>
            <category>Windows - Clients</category>
            <category>Windows - Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Microsoft-VAMT-The-specified-product-key-is-invalid-or-is-unsupported-702.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=702</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=702</wfw:commentRss>
    

    <author>nospam@example.com (Ralf Entner)</author>
    <content:encoded>
    &lt;strong&gt;Problem&lt;/strong&gt;&lt;br /&gt;
Ich habe einen KMS Server aufgesetzt und das Volume Activation Management Tool (VAMT)  installiert um die Produkt Keys zu aktivieren. Dabei konnte ich die Server 2019 Keys nicht hinzufügen. Server 2016 und Server 2022 haben problemlos funktioniert. Beim Server 2019 habe ich immer die folgende Fehlermeldung erhalten:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;The specified product key is invalid or is unspported by this version of VAMT.&lt;br /&gt;
An update to support additional products may be available online.&lt;/blockquote&gt;&lt;br /&gt;
&lt;strong&gt;Ursache&lt;/strong&gt;&lt;br /&gt;
Nach einiger Internetsuche bin ich auf ähnliche Einträge mit anderen Windows Versionen gestoßen. Scheinbar kann das VAMT den Schlüssel nicht korrekt identifizieren. Die Identifikation erfolgt über die pkconfig Files im Ordner &lt;br /&gt;
&lt;strong&gt;C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\VAMT3\pkconfig&lt;/strong&gt; &lt;br /&gt;
auf dem VAMT Server. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung&lt;/strong&gt;&lt;br /&gt;
Nach etwas Recherche hat sich gezeigt, dass diese Dateien auch auf den jeweiligen Server-/Client-Betriebssystemen existieren. Diese findet man unter &lt;strong&gt;C:\Windows\System32\spp\tokens\pkeyconfig&lt;/strong&gt;&lt;br /&gt;
Hier geht es um die dort befindliche Datei &lt;strong&gt;pkeyconfig-csvlk.xrm-ms&lt;/strong&gt;&lt;br /&gt;
Diese ist auf dem VAMT-Server auch bereits vorhanden. Die Lösung sieht nun wie folgt aus:&lt;br /&gt;
- Datei &lt;strong&gt;pkeyconfig-csvlk.xrm-ms&lt;/strong&gt; auf dem VAMT-Server umbenennen&lt;br /&gt;
- Datei vom zu aktivierenden OS in das Verzeichnis kopieren (in meinem Fall von einem Server 2019)&lt;br /&gt;
- VAMT starten und Produkt Key eintragen&lt;br /&gt;
- VAMT schließen und originale Datei &lt;strong&gt;pkeyconfig-csvlk.xrm-ms&lt;/strong&gt; auf dem VAMT-Server wieder umbenennen&lt;br /&gt;
&lt;br /&gt;
Ich habe das Problem nicht bei Mircrosoft identifizieren können. Es gab scheinbar beim Server 2012 R2 schon mal das Problem. Dieser Artikel hat mich zumindest auf die richtige Spur gebracht.&lt;br /&gt;
&lt;br /&gt;
Quelle: &lt;a href=&quot;https://learn.microsoft.com/en-us/windows/deployment/volume-activation/vamt-known-issues#workarounds-for-adding-csvlks-for-windows-10-activation-to-vamt-31&quot;&gt;Microsoft Learn: VAMT known issues&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sun, 05 May 2024 11:48:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-702.html</guid>
    <category>ad und dienste</category>
<category>invalid product key</category>
<category>kms</category>
<category>microsoft office</category>
<category>vamt</category>
<category>volume license</category>
<category>windows - clients</category>
<category>windows - server</category>

</item>
<item>
    <title>xz-utils supply-chain attack : Scan nach Versionen</title>
    <link>https://hope-this-helps.de/serendipity/archives/xz-utils-supply-chain-attack-Scan-nach-Versionen-701.html</link>
            <category>Client</category>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/xz-utils-supply-chain-attack-Scan-nach-Versionen-701.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=701</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=701</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Leider wurde heute ein cve für die xz-utils veröffentlicht. Hier wurde eine supply-chain attack durchgeführt und schadhafter Code eingeschleust.&lt;br /&gt;
&lt;a href=&quot;https://www.tenable.com/blog/frequently-asked-questions-cve-2024-3094-supply-chain-backdoor-in-xz-utils&quot; title=&quot;https://www.tenable.com/blog/frequently-asked-questions-cve-2024-3094-supply-chain-backdoor-in-xz-utils&quot;&gt;https://www.tenable.com/blog/frequently-asked-questions-cve-2024-3094-supply-chain-backdoor-in-xz-utils&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ich hab dann meine Server durch gescannt nach verwundbaren Versionen. Hier das ansible-playbook dazu.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;---
- name: Scan for xz-utils and output Version
  hosts: all
  become: true
  gather_facts: true
  tasks:
    - name: Get Packages
      ansible.builtin.package_facts:
        manager: apt
      register: packages
    - name: scan for xz-utils
      ansible.builtin.set_fact:
        xz_ver: &quot;{{ packages.ansible_facts.packages[&#039;xz-utils&#039;][0].version }}&quot;
    - name: ouput Package Version
      ansible.builtin.debug: 
        var: xz_ver&lt;/pre&gt;&lt;br /&gt;
Der Output sieht dann so aus :&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;TASK [ouput Package Version] ******************
 ok: [HOSTNAME] =&gt; { &quot;xz_ver&quot;: &quot;5.4.1-0.2&quot; }
 ...
&lt;/pre&gt;&lt;br /&gt;
Links:&lt;br /&gt;
&lt;a href=&quot;https://www.tenable.com/cve/CVE-2024-3094&quot; target=&quot;_blank&quot; title=&quot;https://www.tenable.com/cve/CVE-2024-3094&quot;&gt;https://www.tenable.com/cve/CVE-2024-3094&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://lists.debian.org/debian-security-announce/2024/msg00057.html&quot; target=&quot;_blank&quot; title=&quot;https://lists.debian.org/debian-security-announce/2024/msg00057.html&quot;&gt;https://lists.debian.org/debian-security-announce/2024/msg00057.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users&quot; target=&quot;_blank&quot; title=&quot;https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users&quot;&gt;https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sat, 30 Mar 2024 00:40:00 +0100</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-701.html</guid>
    <category>client</category>
<category>cve-2024-3094</category>
<category>dsa 5649-1</category>
<category>linux</category>
<category>server</category>

</item>
<item>
    <title>Proxmox 8 : Clusternode hat graues Ausrufezeichen</title>
    <link>https://hope-this-helps.de/serendipity/archives/Proxmox-8-Clusternode-hat-graues-Ausrufezeichen-700.html</link>
            <category>Linux</category>
            <category>Proxmox</category>
            <category>Server</category>
            <category>Virtualisierung</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Proxmox-8-Clusternode-hat-graues-Ausrufezeichen-700.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=700</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=700</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Manchmal kann es vorkommen das unter Proxmox ein Node nur ein graues Ausrufezeichen zeigt. Das ist meistens auf einen Fehler mit dem Storage zurückzuführen. In meinem Fall hatte ich testweise den Proxmox Backup Server virtualisiert, das Storage kann dann beim booten nicht verbunden werden und sorgt für einen Fehler, daraus resultiert das graue Ausrufezeichen.&lt;br /&gt;
&lt;br /&gt;
Ein Neustart des Dienstes pvestatd auf dem betroffenen Node hat den Fehler behoben und der Node wurde grün &lt;img src=&quot;https://hope-this-helps.de/serendipity/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systemctl restart pvestatd.service&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Fri, 29 Mar 2024 17:24:00 +0100</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-700.html</guid>
    <category>grey</category>
<category>linux</category>
<category>node</category>
<category>proxmox</category>
<category>question mark</category>
<category>server</category>
<category>virtualisierung</category>

</item>
<item>
    <title>Debian 12 : ssh absichern mit port knocking</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-ssh-absichern-mit-port-knocking-698.html</link>
            <category>Client</category>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-ssh-absichern-mit-port-knocking-698.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=698</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=698</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Eins Vorweg Port Knocking ist kein 100% Schutz für den ssh Dienst , eine saubere Konfiguration ist notwendig. Was man aber damit erreicht ist das Portscanner diesen Port als nicht offen sehen. Somit hat man schon mal einen Teil der Angriffe weggefiltert. Hat der Angreifer jedoch die Möglichkeit den Traffic zwischen Client und Server mitzuschneiden kommt er früher oder später auf die Sequenz und kann den Port öffnen. &lt;div class=&quot;notify&quot; style=&quot;width:95%;padding:10px;border:1px dashed black;background-color:#ffa6a6;&quot;&gt;Verwendet hier keine fortlaufende Ports und mischt am besten die Protokolle.Wenn ein Portscan auf den Server ausgeführt wird ist sonst die Gefahr zu groß das durch Zufall die Sequenz getroffen wird.&lt;/div&gt;Ich habe das einfach mal aus Interesse eingerichtet und getestet, und es funktioniert &lt;img src=&quot;https://hope-this-helps.de/serendipity/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Installation von knockd (Server und Client)&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;apt install knockd&lt;/pre&gt;&lt;strong&gt;Installation von iptables (Server)&lt;/strong&gt;&lt;pre class=&quot;brush: shell&quot;&gt;apt install iptables iptables-persistent&lt;/pre&gt;&lt;strong&gt;Konfiguration des knockd (Server)&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration des knock Daemon (knockd) wird in der Datei &lt;strong&gt;/etc/knockd.conf&lt;/strong&gt; und &lt;strong&gt;/etc/default/knockd&lt;/strong&gt; durchgeführt. &lt;br /&gt;
&lt;br /&gt;
In der Datei &lt;strong&gt;/etc/default/knockd&lt;/strong&gt; ändern wir die Startart und definieren die KNOCKD_OPTS.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;...
START_KNOCKD=1
KNOCKD_OPTS=&quot;-i enp0s3&quot;&lt;/pre&gt;enp0s3 ist hier der Networkinterface Name. &lt;br /&gt;
START_KNOCKD=1 sorgt dafür das der Daemon beim Systemstart mit gestartet wird.&lt;br /&gt;
&lt;br /&gt;
Jetzt kümmern wir uns um die Datei &lt;strong&gt;/etc/knockd.conf&lt;/strong&gt; und schließen die Konfiguration ab.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence    = 8000,7000,9000,2123:udp
        seq_timeout = 5
        command     = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

[closeSSH]
        sequence    = 9000,7000,8000,2123:udp
        seq_timeout = 5
        command     = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn&lt;/pre&gt;Alle Konfigurationsmöglichkeiten kann man sich mit man knockd anschauen (und es gibt viele). Für das Beispiel hier verwende ich eine rudimentäre Konfiguration. Die Ports die unter Sequenz (sequence) angegeben sind muss man nacheinander &quot;anklopfen&quot; dann wird das command ausgeführt. Hier sieht man das iptables den Client auf den SSH Port freigibt. Und eben wieder entfernt wenn die Sequenz für closeSSH übergeben wird.&lt;br /&gt;
Nachdem die Konfiguration abgeschlossen ist muss der Dienst aktiviert und gestartet werden.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systemctl enable knockd &amp;&amp;amp; systemctl start knockd&lt;/pre&gt;Jetzt bereiten wir die Firewall für den Einsatz vor. Hiermit erstellen wir eine Regel das vorhandene Verbindungen nicht getrennt werden&lt;pre class=&quot;brush: shell&quot;&gt;iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;/pre&gt;in der folgenden Regel verbieten wir die Connection auf den Port 22 &lt;pre class=&quot;brush: shell&quot;&gt;iptables -A INPUT -p tcp --destination-port 22 -j DROP&lt;/pre&gt;jetzt wird das ganze noch gespeichert das es einen reboot überlebt&lt;pre class=&quot;brush: shell&quot;&gt;iptables-save &gt; /etc/iptables/rules.v4&lt;/pre&gt;Wenn ihr euch jetzt den Server einmal mit nmap anschaut, natürlich von einem anderen Client, ist der Port geschlossen.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:256 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;592&quot; height=&quot;169&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/nmap_ssh_close.png&quot;  alt=&quot;&quot;&gt;Ruft man jetzt knock auf dem Client mit der richtigen Sequenz auf wird der Port geöffnet&lt;pre class=&quot;brush: shell&quot;&gt;knock SERVERIP 8000 7000 9000 2123:udp&lt;/pre&gt; das kann man auch wieder schön mit nmap ermitteln.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:257 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;598&quot; height=&quot;196&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/nmap_ssh_open.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Im Logfile von knockd sieht das ganze dann so aus. Im ersten Block wurde die Sequenz richtig angegeben und somit der Client zugelassen. Im zweiten Block wurde die Sequenz richtig angegeben und der Port wurde wieder geschlossen.&lt;br /&gt;
&lt;!-- s9ymdb:258 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;1091&quot; height=&quot;257&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/knockd.png&quot;  alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Wed, 30 Aug 2023 00:50:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-698.html</guid>
    <category>client</category>
<category>knocking</category>
<category>linux</category>
<category>port</category>
<category>security</category>
<category>server</category>
<category>ssh</category>

</item>
<item>
    <title>Überprüfen von EoL (End of Life) Software</title>
    <link>https://hope-this-helps.de/serendipity/archives/UEberpruefen-von-EoL-End-of-Life-Software-697.html</link>
            <category>Scripts-Code Schnipsel</category>
            <category>Sonstige Software</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/UEberpruefen-von-EoL-End-of-Life-Software-697.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=697</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=697</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Ich werde öfter in meinem Job gefragt wie ich so schnell das Datum einer Software ermittele die EoL ist. Naja in vielen Fällen ist es ein curl auf die API von &lt;a href=&quot;https://endoflife.date/&quot; title=&quot;https://endoflife.date/&quot;&gt;https://endoflife.date/&lt;/a&gt;. Möchte ich mir z.B. alle .NET Versionen anzeigen lassen (;) greetz an JH) dann geht das mit diesem curl Aufruf&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;curl --request GET -s --url https://endoflife.date/api/dotnet.json --header &#039;Accept: application/json&#039; | jq&lt;/pre&gt; der Output liefert mit dann alle .NET Versionen mit den benötigten Versionen.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:254 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;377&quot; height=&quot;323&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/endoflife.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Das Projekt ist natürlich nur so gut wie die Contributors , Bock mit zu machen ? hier gehts zum Github &lt;a href=&quot;https://github.com/endoflife-date/endoflife.date/&quot; title=&quot;https://github.com/endoflife-date/endoflife.date/&quot;&gt;https://github.com/endoflife-date/endoflife.date/&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 26 Aug 2023 01:14:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-697.html</guid>
    <category>eol</category>
<category>scripts-code schnipsel</category>
<category>security</category>
<category>sonstige software</category>

</item>
<item>
    <title>Debian 12 : System Härten - Allgemein</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-System-Haerten-Allgemein-696.html</link>
            <category>Client</category>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-System-Haerten-Allgemein-696.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=696</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=696</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Einige der folgenden Einstellungen sind auch bereits in der Default Einstellung so. Da ich aber ein Set von Parametern für all meine Linux Systeme verwende setze ich diese nochmal explizit in einer config. Erstmal legen wir uns ein Backup der Default Config an &lt;pre class=&quot;brush: shell&quot;&gt;sudo sysctl -a &gt; /tmp/default_sysctl.txt&lt;/pre&gt; dann legen wir die Datei /etc/sysctl.d/97_hard.conf an und kopieren folgende Zeilen rein. &lt;br /&gt;
Die Erklärung zu den jeweiligen Konfiguration kann unter dem Link in der Quellenangabe nachgelesen werden. &lt;div class=&quot;notify&quot; style=&quot;width:95%;padding:10px;border:1px dashed black;background-color:#ffa6a6;&quot;&gt;Auch hier gilt wieder die Einstellungen müssen zu der eingesetzten Software kompatible sein.&lt;/div&gt;&lt;pre class=&quot;brush: shell&quot;&gt;kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
kernel.unprivileged_bpf_disabled=1
net.core.bpf_jit_harden=2
dev.tty.ldisc_autoload=0
vm.unprivileged_userfaultfd=0
kernel.kexec_load_disabled = 1
kernel.sysrq=4
kernel.unprivileged_userns_clone=0
kernel.perf_event_paranoid = 3
kernel.yama.ptrace_scope=2
vm.mmap_rnd_bits=32
vm.mmap_rnd_compat_bits=16
fs.protected_symlinks=1
fs.protected_hardlinks=1
fs.protected_fifos=2
fs.protected_regular=2&lt;/pre&gt;Nach einem Neustart werden die Kernelparameter aktiv, wer nicht solange warten möchte kann diese mit&lt;pre class=&quot;brush: shell&quot;&gt;service procps force-reload&lt;/pre&gt;sofort einlesen.&lt;br /&gt;
Quelle : &lt;br /&gt;
&lt;a href=&quot;https://www.kernel.org/doc/html/latest/admin-guide/sysctl/&quot; title=&quot;https://www.kernel.org/doc/html/latest/admin-guide/sysctl/&quot;&gt;https://www.kernel.org/doc/html/latest/admin-guide/sysctl/&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sat, 26 Aug 2023 00:52:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-696.html</guid>
    <category>client</category>
<category>kernel</category>
<category>linux</category>
<category>parameter</category>
<category>security</category>
<category>server</category>

</item>
<item>
    <title>Debian 12 : System Härten - Netzwerk</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-System-Haerten-Netzwerk-695.html</link>
            <category>Client</category>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-System-Haerten-Netzwerk-695.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=695</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=695</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Über Kernelparameter kann die Sicherheit des Systems noch etwas verbessert werden. &lt;br /&gt;
&lt;div class=&quot;notify&quot; style=&quot;width:95%;padding:10px;border:1px dashed black;background-color:#ffa6a6;&quot;&gt;&lt;strong&gt;Wichtig ist das die Einstellungen zu der eingesetzten Software passen !&lt;/strong&gt; &lt;br /&gt;
Ein OpenVPN Server z.B. würde mit den folgenden Einstellungen nicht laufen. Ein Apache Webserver hingegen schon.&lt;/div&gt;Erstmal legen wir uns ein Backup der Default Config an &lt;pre class=&quot;brush: shell&quot;&gt;sudo sysctl -a &gt; /tmp/default_sysctl.txt&lt;/pre&gt;dann legt man diese Datei an (sollte sie nicht bereits existieren) &lt;strong&gt;/etc/sysctl.d/98_ip.conf&lt;/strong&gt; und fügt diese Zeilen ein.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.conf.all.log_martians=1
net.ipv4.conf.default.log_martians=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv6.conf.all.forwarding=0
net.ipv6.conf.all.accept_source_route=0
net.ipv6.conf.default.accept_source_route=0
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
net.ipv6.conf.all.accept_ra=1
net.ipv6.conf.default.accept_ra=1
&lt;/pre&gt;Nach einem Neustart werden die Kernelparameter aktiv, wer nicht solange warten möchte kann diese mit&lt;pre class=&quot;brush: shell&quot;&gt;service procps force-reload&lt;/pre&gt;sofort einlesen. Hier kann nachgelesen werden was hier überhaupt konfiguriert wurde. &lt;a href=&quot;https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt&quot; title=&quot;https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt&quot;&gt;ip-sysctl.txt&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 25 Aug 2023 23:51:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-695.html</guid>
    <category>client</category>
<category>ip</category>
<category>ipv4</category>
<category>ipv6</category>
<category>kernel</category>
<category>linux</category>
<category>parameter</category>
<category>security</category>
<category>server</category>

</item>
<item>
    <title>Debian 12 : weiteres Absichern ssh Zugang</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-weiteres-Absichern-ssh-Zugang-694.html</link>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-weiteres-Absichern-ssh-Zugang-694.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=694</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=694</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    In einem &lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Debian-12-MFA-fuer-sshsusudo-aktivieren-693.html&quot; title=&quot;https://hope-this-helps.de/serendipity/archives/Debian-12-MFA-fuer-sshsusudo-aktivieren-693.html&quot;&gt;diesem Artikel&lt;/a&gt; habe ich erklärt wie man mfa für ssh konfiguriert. Jedoch ist hier noch der Zugriff aus allen IP Ranges möglich (solange die FW nicht anderweitig konfiguriert ist).&lt;br /&gt;
&lt;br /&gt;
Es gibt die Möglichkeit den Zugang in den den beiden Dateien &lt;strong&gt;/etc/hosts.allow&lt;/strong&gt; und &lt;strong&gt;/etc/hosts.deny&lt;/strong&gt; einzuschränken.&lt;br /&gt;
&lt;br /&gt;
Ich gehe mal davon aus das das Netzwerk die Mask 192.168.10.0/24 verwendet. Um jetzt nur Rechner aus dem Netzbereich eine ssh Verbindung zu ermöglich trägt man in die Datei &lt;strong&gt;/etc/hosts.allow&lt;/strong&gt; folgende Werte ein. Die Loopback Adressen sind aus Gründen der Kompatibilität mit aufgeführt.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;sshd: 192.168.10.
sshd : localhost
sshd : 127.0.0.1
sshd : ::1&lt;/pre&gt; und in der Datei &lt;strong&gt;/etc/hosts.deny&lt;/strong&gt; kann man Verbindungen die auf den ssh Deamon von allen anderen Adressen verbieten. Das erreicht man mit diesem Eintrag :&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;sshd: ALL&lt;/pre&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 25 Aug 2023 23:16:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-694.html</guid>
    <category>allow</category>
<category>deny</category>
<category>linux</category>
<category>security</category>
<category>server</category>
<category>sshd</category>

</item>
<item>
    <title>Debian 12 : MFA für ssh/su/sudo aktivieren</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-MFA-fuer-sshsusudo-aktivieren-693.html</link>
            <category>Client</category>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-MFA-fuer-sshsusudo-aktivieren-693.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=693</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=693</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Unter Windows ist es recht einfach einen MFA Schutz zu realisieren. Hier haben wir Windows Hello oder das Azure AD das uns das abnimmt. &lt;br /&gt;
Für den Mac gibt es TouchID aber für Linux muss man hier selbst etwas bauen.&lt;br /&gt;
&lt;br /&gt;
Installation des benötigten Pakets&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;apt install libpam-google-authenticator -y&lt;/pre&gt;Konfigurieren von libpam-google-authenticator&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;google-authenticator&lt;/pre&gt;Jetzt kommen einige Fragen zur Konfiguration&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;
Do you want authentication tokens to be time-based (y/n) y
&lt;/pre&gt;An dieser Stelle wird der QR Code Angezeigt, dieser kann kann jetzt gescannt werden und in der Authenticator App deiner Wahl eingepflegt werden. Und dann gehts weiter mit folgenden Fragen&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;Do you want me to update your &quot;/chris/.google_authenticator&quot; file? (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, a new token is generated every 30 seconds by the mobile app.
In order to compensate for possible time-skew between the client and the server,
we allow an extra token before and after the current time. This allows for a
time skew of up to 30 seconds between authentication server and client. If you
experience problems with poor time synchronization, you can increase the window
from its default size of 3 permitted codes (one previous code, the current
code, the next code) to 17 permitted codes (the 8 previous codes, the current
code, and the 8 next codes). This will permit for a time skew of up to 4 minutes
between client and server.
Do you want to do so? (y/n) n

If the computer that you are logging into isn&#039;t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y
&lt;/pre&gt;&lt;br /&gt;
Jetzt ist die Konfiguration abgeschlossen. Der Zeitpunkt ist gekommen in der wir die zu sichernden Dienste konfigurieren.&lt;br /&gt;
Hier als Beispiel ssh&lt;br /&gt;
&lt;br /&gt;
Öffnen der Datei &lt;strong&gt;/etc/pam.d/common-auth&lt;/strong&gt; und das PAM Modul aktivieren.&lt;br /&gt;
Dazu diese Zeilen einfügen in der config einfügen.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;# google mfa
auth required pam_google_authenticator.so nullok&lt;/pre&gt;&lt;div class=&quot;notify&quot; style=&quot;width:95%;padding:10px;border:1px dashed black;background-color:#ffa6a6;&quot;&gt;Nachdem alle User die Konfiguration durchlaufen haben muss &lt;strong&gt;nullok&lt;/strong&gt; aus der Zeile entfernt werden. Das sorgt dafür das nur noch User mit MFA eine Authentifizierung möglich ist.&lt;/div&gt;&lt;br /&gt;
&lt;!-- s9ymdb:253 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;724&quot; height=&quot;585&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/deb12mfaca.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Und jetzt noch die Datei &lt;strong&gt;/etc/ssh/sshd_config&lt;/strong&gt; anpassen.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;KbdInteractiveAuthentication yes
UsePAM yes&lt;/pre&gt;Jetzt noch den sshd Service neu starten und wir müssen uns mit einem MFA Token anmelden.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systemctl restart sshd&lt;/pre&gt;&lt;br /&gt;
&lt;!-- s9ymdb:248 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;812&quot; height=&quot;253&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/debian12mfa.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Noch sicherer wäre das ganze wenn man das Login auf pubkey umstellt. Hierzu muss VOR der Einrichtung ein Pubkey erzeugt und hinzugefügt werden. Dann kann man in der Datei &lt;strong&gt;/etc/pam.d/sshd&lt;/strong&gt; den Part &lt;strong&gt;@include common-auth&lt;/strong&gt; auskommentieren (# davor) und danach die Zeilen einfügen. &lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;# google mfa
auth required pam_google_authenticator.so&lt;/pre&gt;&lt;div class=&quot;notify&quot; style=&quot;width:95%;padding:10px;border:1px dashed black;background-color:#ffa6a6;&quot;&gt;Hintergrund ist das wir hier das common-auth modul deaktivieren , dieses ist für die Passwort Anmeldung zuständig. Wechseln wir auf das Pubkey Verfahren wird dieses Modul nicht mehr angezogen , was die Einstellung die oben erwähnt wurde deaktivert.&lt;/div&gt;&lt;br /&gt;
Da wir die Einstellungen im common-auth Modul setzen sind alle Dienste davon betroffen die dieses verwenden. d.h. jetzt sind alle Dienste über MFA abgesichert die dieses PAM Modul verwenden.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:252 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;820&quot; height=&quot;414&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/deb12srv.png&quot;  alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Mon, 21 Aug 2023 00:00:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-693.html</guid>
    <category>client</category>
<category>debian</category>
<category>linux</category>
<category>mfa</category>
<category>pam</category>
<category>security</category>
<category>server</category>

</item>
<item>
    <title>Debian 12 : Apache2 entfernen des Server Headers</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-Apache2-entfernen-des-Server-Headers-692.html</link>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-Apache2-entfernen-des-Server-Headers-692.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=692</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=692</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Nachdem ich erklärt habe wie man das für den nginx umsetzt wurde ich gefragt ob ich das auch für Apache erklären könnte. Ja kann ich &lt;img src=&quot;https://hope-this-helps.de/serendipity/plugins/serendipity_event_emoticate/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Problem&lt;/strong&gt; : Entfernen des Apache Server Headers aus dem Response des Webservers&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:247 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;405&quot; height=&quot;277&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/apache-ver-0.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung : &lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
als erstes installieren &amp;amp; aktivieren wir die benötigten Module.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;apt install libapache2-mod-security2 -y
a2enmod headers
systemctl restart apache2&lt;/pre&gt;&lt;br /&gt;
In der Konfigurationsdatei &lt;strong&gt;/etc/apache2/conf-available/security.conf&lt;/strong&gt; folgende Werte setzen&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;
ServerTokens Prod
ServerSignature Off
Header set X-Content-Type-Options: &quot;nosniff&quot;
Header set Content-Security-Policy &quot;frame-ancestors &#039;self&#039;;&quot;
&lt;/pre&gt; gefolgt von einem Neustart des Services&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systemctl restart apache2&lt;/pre&gt;&lt;br /&gt;
&lt;!-- s9ymdb:246 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;391&quot; height=&quot;303&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/apache-ver-1.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
Um auch den Servernamen aus dem Response zu entfernen muss die Konfiguration angepasst werden.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;SecRuleEngine DetectionOnly
ServerTokens Full
SecServerSignature &quot;Gameboy&quot;&lt;/pre&gt; gefolgt von einem Neustart des Services&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systemctl restart apache2&lt;/pre&gt;&lt;br /&gt;
&lt;!-- s9ymdb:245 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;397&quot; height=&quot;308&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/apache-ver-2.png&quot;  alt=&quot;&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
Hier gibts mehr Informationen : &lt;br /&gt;
&lt;a href=&quot;https://return42.github.io/handsOn/apache_setup/mod_security2.html&quot; title=&quot;https://return42.github.io/handsOn/apache_setup/mod_security2.html&quot;&gt;https://return42.github.io/handsOn/apache_setup/mod_security2.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/coreruleset/coreruleset&quot; title=&quot;https://github.com/coreruleset/coreruleset&quot;&gt;https://github.com/coreruleset/coreruleset&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://hope-this-helps.de/serendipity/archives/Grafana-Nach-Update-keinen-Zugriff-auf-Datenquelle-581.html&quot; title=&quot;https://hope-this-helps.de/serendipity/archives/Grafana-Nach-Update-keinen-Zugriff-auf-Datenquelle-581.html&quot;&gt;Hier hatte ich mal Ärger mit Grafana und mod_security&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 09 Aug 2023 22:33:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-692.html</guid>
    <category>apache</category>
<category>header</category>
<category>linux</category>
<category>security</category>
<category>server</category>

</item>
<item>
    <title>Debian 12 : nginx Server Header entfernen</title>
    <link>https://hope-this-helps.de/serendipity/archives/Debian-12-nginx-Server-Header-entfernen-691.html</link>
            <category>Linux</category>
            <category>Server</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/Debian-12-nginx-Server-Header-entfernen-691.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=691</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=691</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    &lt;strong&gt;Problem :&lt;/strong&gt; Entfernen des nginx server headers aus dem response des webservers&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:242 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;380&quot; height=&quot;206&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/nginx_default.png&quot; title=&quot;nginx default config&quot; alt=&quot;nginx default config&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Lösung : &lt;/strong&gt;Aus dem Security Aspekt sollte man diese Informationen entfernen.&lt;br /&gt;
&lt;br /&gt;
Um nur die Server Version zu entfernen , reicht es in der config Datei &lt;strong&gt;/etc/nginx/nginx.conf&lt;/strong&gt; den configparameter &lt;strong&gt;&quot;server_tokens off;&quot; &lt;/strong&gt;zu setzen.&lt;br /&gt;
&lt;!-- s9ymdb:243 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;380&quot; height=&quot;198&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/nginx_server_tokens.png&quot; title=&quot;nginx without version&quot; alt=&quot;nginx without version&quot;&gt;&lt;br /&gt;
Will man den Namen nginx komplett aus den Headern entfernen , müssen noch einige Packete installiert werden.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;apt install libnginx-mod-http-headers-more-filter&lt;/pre&gt;nach der Installation setzt man in der config noch folgende Parameter :&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;more_clear_headers Server;
more_set_headers &#039;Server: Gameboy&#039;;&lt;/pre&gt;&lt;br /&gt;
&lt;!-- s9ymdb:244 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;386&quot; height=&quot;208&quot;  src=&quot;https://hope-this-helps.de/serendipity/uploads/Bilder/nginx_server_header_remove.png&quot; title=&quot;remove nginx from headers&quot; alt=&quot;remove nginx from headers&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
Auszug aus der Config:&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;
http {

        ....
        
        server_tokens off;
        more_clear_headers Server;
        more_set_headers &#039;Server: Gameboy&#039;;

        ...
&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Sat, 29 Jul 2023 00:07:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-691.html</guid>
    <category>headers</category>
<category>linux</category>
<category>security</category>
<category>server</category>

</item>
<item>
    <title>[ PROXMOX ] - Debian 11 schlechte Performance beim SSH Login</title>
    <link>https://hope-this-helps.de/serendipity/archives/PROXMOX-Debian-11-schlechte-Performance-beim-SSH-Login-690.html</link>
            <category>Client</category>
            <category>Linux</category>
            <category>Server</category>
            <category>Virtualisierung</category>
    
    <comments>https://hope-this-helps.de/serendipity/archives/PROXMOX-Debian-11-schlechte-Performance-beim-SSH-Login-690.html#comments</comments>
    <wfw:comment>https://hope-this-helps.de/serendipity/wfwcomment.php?cid=690</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://hope-this-helps.de/serendipity/rss.php?version=2.0&amp;type=comments&amp;cid=690</wfw:commentRss>
    

    <author>nospam@example.com (Christopher Pope)</author>
    <content:encoded>
    Ich habe festgestellt das wenn man einen LXC mit Debian 11 auf einem Proxmox laufen lässt, die Performance auf ssh ziemlich schlecht ist. Auch sudo dauert ziemlich lange (wenn man es verwendet)&lt;br /&gt;
&lt;br /&gt;
Das liegt am Service &lt;a href=&quot;https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html&quot; title=&quot;https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html&quot;&gt;systemd-logind&lt;/a&gt; wenn man diesen deaktiviert hat man wieder die gewohnte Performance.&lt;br /&gt;
&lt;br /&gt;
Um zu verifizieren ob es an diesem Service liegt , grept einfach mal nach &lt;strong&gt;&#039;org.freedesktop.login1&#039;&lt;/strong&gt; in der Datei &lt;strong&gt;/var/log/auth.log&lt;/strong&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;grep &#039;org.freedesktop.login1&#039; /var/log/auth.log&lt;/pre&gt;wenn ihr dort Einträge findet, die wie folgt aussehen, liegt es vermutlich an diesem Dienst.&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;Failed to activate service &#039;org.freedesktop.login1&#039;: timed out (service_start_timeout=25000ms)&lt;/pre&gt;Problem wird dann mit diesen Befehl behoben (muss als root ausgeführt werden)&lt;br /&gt;
&lt;pre class=&quot;brush: shell&quot;&gt;systemctl mask systemd-logind &amp;&amp;amp; pam-auth-update&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Fri, 28 Oct 2022 17:56:00 +0200</pubDate>
    <guid isPermaLink="false">https://hope-this-helps.de/serendipity/archives/guid-690.html</guid>
    <category>client</category>
<category>debian11</category>
<category>linux</category>
<category>proxmox</category>
<category>server</category>
<category>ssh</category>
<category>sudo</category>
<category>virtualisierung</category>

</item>

</channel>
</rss>
