<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>batch &#8211; SystemTechnics</title>
	<atom:link href="https://www.systemtechnics.de/tag/batch/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.systemtechnics.de</link>
	<description>IT Consulting</description>
	<lastBuildDate>Mon, 21 Jul 2025 13:15:53 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.systemtechnics.de/wp-content/uploads/cropped-2003-logo-st-transparanet-x200-32x32.png</url>
	<title>batch &#8211; SystemTechnics</title>
	<link>https://www.systemtechnics.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Einzeiler um den Wechsel von Classic Outlook zu New Outlook zu verhindern</title>
		<link>https://www.systemtechnics.de/einzeiler-um-den-wechsel-von-classic-outlook-zu-new-outlook-zu-verhindern/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sat, 09 Nov 2024 05:45:37 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[reg]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[script]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3833</guid>

					<description><![CDATA[Um den vielleicht ungewollten Wechseln von dem klassischen Outlook zum &#8222;New Outlook&#8220; kann folgender Einzeiler verwendet werden: (Achtung: Das Code [&#8230;]]]></description>
										<content:encoded><![CDATA[


<p>Um den vielleicht ungewollten Wechseln von dem klassischen Outlook zum &#8222;New Outlook&#8220; kann folgender Einzeiler verwendet werden:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bat" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">reg add HKEY_CURRENT_USER\Software\Policies\Microsoft\office\16.0\outlook\preferences  /t REG_DWORD /v NewOutlookMigrationUserSetting /d 0</pre>



<p>(Achtung: Das Code Plugin macht aus <strong>office\16.0\outlook</strong> ein <strong>office.0\outlook</strong>. )</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Onedrive per Batch Deinstallieren</title>
		<link>https://www.systemtechnics.de/onedrive-per-batch-deinstallieren/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Mon, 03 Jun 2024 06:37:49 +0000</pubDate>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[deinstallation]]></category>
		<category><![CDATA[errorlevel]]></category>
		<category><![CDATA[onedrive]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[uninstall]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3800</guid>

					<description><![CDATA[Leider ist bei frisch installierten Systemen Microsoft OneDrive automatisch installiert. Mit folgendem Script lässt sich dieses (bitte als Administrator starten) [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Leider ist bei frisch installierten Systemen Microsoft OneDrive automatisch installiert. Mit folgendem Script lässt sich dieses (bitte als Administrator starten) sehr einfach Deinstallieren.</p>
<p>Das Original Script ist deskmodder entnommen, ich habe es noch um eine Abfrage erweitert ob dieses auch wirklich als Administrator gestartet wurde.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">@echo off
cls

:abfrage
CHOICE /C JN /M "Batch als Administrator gestartet?"
IF %ERRORLEVEL% EQU 1 goto starte
echo Bitte starte das Script mit der rechten Maustaste
echo Als Administrator starten
goto ende

:starte
set x86="%SYSTEMROOT%\System32\OneDriveSetup.exe"
set x64="%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe"

echo OneDrive beenden
echo.
taskkill /f /im OneDrive.exe > NUL 2>&amp;1
ping 127.0.0.1 -n 5 > NUL 2>&amp;1

echo OneDrive deinstallieren
echo.
if exist %x64% (
%x64% /uninstall
) else (
%x86% /uninstall
)
ping 127.0.0.1 -n 5 > NUL 2>&amp;1

echo OneDrive letzte Reste entfernen
echo.
rd "%USERPROFILE%\OneDrive" /Q /S > NUL 2>&amp;1
rd "C:\OneDriveTemp" /Q /S > NUL 2>&amp;1
rd "%LOCALAPPDATA%\Microsoft\OneDrive" /Q /S > NUL 2>&amp;1
rd "%PROGRAMDATA%\Microsoft OneDrive" /Q /S > NUL 2>&amp;1

echo OneDrive aus Datei Explorer entfernen
echo.
REG DELETE "HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f > NUL 2>&amp;1
REG DELETE "HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" /f > NUL 2>&amp;1
REG DELETE "HKEY_CURRENT_USER\Software\Classes\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder" /f > NUL 2>&amp;1
REG DELETE "HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\ShellFolder" /f > NUL 2>&amp;1

pause

:ende</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mehrere IP Adressen in die Hosts Datei eintragen</title>
		<link>https://www.systemtechnics.de/mehrere-ip-adressen-in-die-hosts-datei-eintragen/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sun, 01 Oct 2023 16:16:52 +0000</pubDate>
				<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[gpo]]></category>
		<category><![CDATA[hosts]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[ipadresse]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3668</guid>

					<description><![CDATA[Möchte man mehrere IP Adressen in die lokale Windows Hosts Datei einpflegen, so kann man folgendes Script verwenden. Dafür wird [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Möchte man mehrere IP Adressen in die lokale Windows Hosts Datei einpflegen, so kann man folgendes Script verwenden. Dafür wird zu dem Script noch eine weitere Datei benötigt in der die gewünschten IP Adressen enthalten sind.</p>
<p>In dem Script wird auch geprüft ob dies hinzufügende IP Adresse schon vorhanden ist und dementsprechend wird mit der nächsten IP Adresse weiter gearbeitet.</p>
<p>Hier nun das Script:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">:: Autor Knut Herter
:: Datum 1.10.2023
::
:: Zweck : In die lokale Hosts Datei muessen der Eintraege a la w.x.y.z www.meine-testdomain.de 
:: hinzugefuegt werden sofern dieser nicht vorhanden sind
::
::@echo off
setlocal enabledelayedexpansion

set "hosts_file=%SystemRoot%\System32\drivers\etc\hosts"

rem Stelle sicher, dass die Eingabedatei vorhanden ist und setze sie als Eingabequelle
set "input_file=input.txt"
if not exist "!input_file!" (
    echo Eingabedatei "!input_file!" nicht gefunden.
    exit /b
)

rem Schleife zum Lesen der Eingabedatei
for /f "tokens=1,2" %%a in (!input_file!) do (
    set "ip_to_check=%%a"
    set "hostname=%%b"

    rem Überprüfen, ob die IP bereits in der Hosts-Datei vorhanden ist
    findstr /C:"!ip_to_check!" "!hosts_file!" >nul
    if !errorlevel! neq 0 (
        echo IP-Adresse !ip_to_check! für !hostname! nicht gefunden. Füge sie hinzu.

        rem IP-Adresse und Hostname zur Hosts-Datei hinzufügen
        echo !ip_to_check!    !hostname! >> "!hosts_file!"
    ) else (
        echo IP-Adresse !ip_to_check! für !hostname! bereits in der Hosts-Datei vorhanden.
    )
)

endlocal</pre>


<p>Das Script erwartet die Datei<em><strong> input.txt</strong></em> und muss mit administrativen Rechten gestartet werden. In dieser sehen die Einträge in folgender Form. Ist die Datei nicht vorhanden, dann wir die komplette Verarbeitung abgebrochen.</p>


<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">192.168.1.100 example1.com
10.0.0.1 example2.com
192.168.2.200 example3.com</pre>


<p>Natürlich kann man das Script auch ein Domänenumgebung mit einer GPO verwenden.</p>
<p>Möchte man nur eine einzelne IP Adresse aufnehmen, dann kann man auch folgendes Script verwenden: <a href="/hosts-datei-mit-einem-script-bearbeiten/">KLICK</a></p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Anmeldeinformationsverwaltung in Batch</title>
		<link>https://www.systemtechnics.de/anmeldeinformationsverwaltung-in-batch/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Fri, 11 Aug 2023 16:46:43 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[anmeldeinformationsverwaltung]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[cmdkey]]></category>
		<category><![CDATA[tresor]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3612</guid>

					<description><![CDATA[Unter Windows gibt es ja die Anmeldeinformationsverwaltung, in der Windows Passwörter zu Anmeldungen auf Websites, verbundenen Anwendungen oder Netzwerken speichert. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Unter Windows gibt es ja die Anmeldeinformationsverwaltung, in der Windows Passwörter zu Anmeldungen auf Websites, verbundenen Anwendungen oder Netzwerken speichert.</p>
<p>Mit dem Befehl <strong><em>cmdkey.exe</em></strong> kann man diese mit Skripten ganz gut bearbeiten. Hier ein paar Beispiele:</p>



<p>Anmeldeinfo zu einem Serverlaufwerk hinzufügen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">cmdkey /add:*.lix.net /user: lix\knut /pass:geheimes_passwort</pre>



<p>Eine bestimmte Anmeldeinfo löschen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">cmdkey /delete Domain:target=*.lix.net</pre>



<p>Mehrere Anmeldeinfos (nach Suchkriterium) löschen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">for /F "tokens=1,* delims= " %G in ('cmdkey /list ^| findstr 10.10.10.') do cmdkey /delete %H</pre>



<p>Anmeldeinfos auflisten</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">cmdkey /list</pre>



<div class="uk-scope">
<div class=" " uk-slider="sets: true; autoplay: true ; autoplay-interval: 2500">

    
    <div class="uk-position-relative uk-visible-toggle uk-margin">

        <ul class="uk-slider-items uk-grid uk-grid-match uk-child-width-1-1">
        
            <li >

                <div class="uk-panel uk-text-center">

                    
                    
                                        <div class="uk-text-center uk-margin uk-margin-remove-top"><img decoding="async" src="/wp-content/uploads/Anmeldeinfo00.png" class=" uk-transition-scale uk-transition-opaque" alt="Tresor"></div>
                    
                    
                        
                        
                        
                        
                        
                        
                        
                    
                </div>

            </li>

        
            <li >

                <div class="uk-panel uk-text-center">

                    
                    
                                        <div class="uk-text-center uk-margin uk-margin-remove-top"><img decoding="async" src="/wp-content/uploads/Anmeldeinfo01.png" class=" uk-transition-scale uk-transition-opaque"></div>
                    
                    
                        
                        
                        
                        
                        
                        
                        
                    
                </div>

            </li>

        
            <li >

                <div class="uk-panel uk-text-center">

                    
                    
                                        <div class="uk-text-center uk-margin uk-margin-remove-top"><img decoding="async" src="/wp-content/uploads/Anmeldeinfo02.png" class=" uk-transition-scale uk-transition-opaque"></div>
                    
                    
                        
                        
                        
                        
                        
                        
                        
                    
                </div>

            </li>

        
            <li >

                <div class="uk-panel uk-text-center">

                    
                    
                                        <div class="uk-text-center uk-margin uk-margin-remove-top"><img decoding="async" src="/wp-content/uploads/Anmeldeinfo03.png" class=" uk-transition-scale uk-transition-opaque"></div>
                    
                    
                        
                        
                        
                        
                        
                        
                        
                    
                </div>

            </li>

                </ul>

        
    </div>

    
        <ul class="uk-slider-nav uk-dotnav uk-flex-center uk-margin-remove-bottom"></ul>
    
    
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AD Benutzergruppen übertragen</title>
		<link>https://www.systemtechnics.de/ad-benutzergruppen-uebertragen/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Fri, 23 Jun 2023 15:09:30 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[activedirectory]]></category>
		<category><![CDATA[ad]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[Benutzer]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3585</guid>

					<description><![CDATA[Möchte man Benutzergruppen eines Referenznutzers auf einen anderen Nutzer im Active Direktor (AD) übertragen, so kann man ganz einfach folgende [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Möchte man Benutzergruppen eines Referenznutzers auf einen anderen Nutzer im Active Direktor (AD) übertragen, so kann man ganz einfach folgende zwei Befehle mit der Powershell Konsole verwenden.</p>



<p>Zuerst lesen wir die Gruppenliste des Referenznutzers <strong>KMustermann</strong> in die Variable <strong>Gruppenliste</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$Gruppenliste = Get-ADUser -Properties MemberOf -Identity 'KMustermann'</pre>



<p>Im Anschluss übertragen wir die diese Gruppen mit dem zweiten Befehl zu dem Nutzer <strong>KHerter</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Add-ADPrincipalGroupMembership -MemberOf $Gruppenliste.MemberOf -Identity 'KHerter' </pre>



<p>Sind bei dem Zielnutzer (<strong>KHerter</strong>) schon diverse Gruppen enthalten, so werden die Gruppen des Referenznutzers (<strong>KMustermann</strong>) addiert. Eine entsprechende Fehlermeldung, falls eventuelle Nutzergruppen schon vorhanden, sind gibt es nicht.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="986" height="523" src="https://www.systemtechnics.de/wp-content/uploads/AD-Gruppen_kopieren.png" alt="" class="wp-image-3587" srcset="https://www.systemtechnics.de/wp-content/uploads/AD-Gruppen_kopieren.png 986w, https://www.systemtechnics.de/wp-content/uploads/AD-Gruppen_kopieren-300x159.png 300w, https://www.systemtechnics.de/wp-content/uploads/AD-Gruppen_kopieren-768x407.png 768w" sizes="(max-width: 986px) 100vw, 986px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Anmeldescript &#8211; Teile nur einmalig laufen lassen</title>
		<link>https://www.systemtechnics.de/anmeldescript-teile-nur-einmalig-laufen-lassen/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Sat, 13 May 2023 15:49:07 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[anmeldescript]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[merker]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3551</guid>

					<description><![CDATA[Manchmal möchte man in seinem AD-Anmelde Script bestimmte Aktionen nur einmalig laufen lassen. Dies erreiche ich am einfachsten mit lokalen [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Manchmal möchte man in seinem AD-Anmelde Script bestimmte Aktionen nur einmalig laufen lassen. Dies erreiche ich am einfachsten mit lokalen &#8222;Markern&#8220;, also leeren Dateien auf dem jeweiligen Rechner welches ich im Script prüfe.</p>
<p>Das Schema läuft im Prinzip wie folgt ab:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">:: Update notwendig? 
 if exist "\\server-01\merker\%computername%-%username%-meineDB.txt" echo Kein Update notwendig
 if exist "\\server-01\merker\%computername%-%username%-meineDB.txt" goto FIN

:: Datenbank muss frisch kopiert werden
xcopy \\server-01\software\meineDB.accdr %userprofile%\meineDB.accdr /R /Y
echo 1 > "\\server-01\merker\%computername%-%username%-meineDB.txt"

:FIN</pre>



<p>In Zeile zwei und drei prüfe ich das vorhanden sein einer Datei auf dem <strong>Server-01</strong> ab. In das Verzeichnis/Freigabe <strong>Merker</strong> muss natürlich die Gruppe jeder Schreib- und Leserechte besitzen. Ist die Datei vorhanden, dann springe ich ab Zeile drei zur Sprungmarke <strong>FIN</strong>.</p>



<p>Ab Zeile 5 können nun Dinge einmalig durchgeführt werden. Am Ende der Verarbeitung (Zeile 7) muss natürlich die Merk-Datei geschrieben werden. Beim zweiten Lauf des Skriptes wird also nichts mehr verarbeitet.</p>



<p>Möchte ich einem bestimmten Nutzer/Computer ein Update bereitstellen, so brauche ich nur die entsprechende Merk-Datei löschen und diesen neu anmelden lassen.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Userprofile &#8211; Pfad aus Variable extrahieren</title>
		<link>https://www.systemtechnics.de/userprofile-pfad-aus-variable-extrahieren/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Thu, 11 May 2023 03:49:59 +0000</pubDate>
				<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[set]]></category>
		<category><![CDATA[sicherheitscenter]]></category>
		<category><![CDATA[trusted path]]></category>
		<category><![CDATA[username]]></category>
		<category><![CDATA[userprofile]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3543</guid>

					<description><![CDATA[Ich hatte heute das &#8222;Problem&#8220; bei einem Kunden, dass ich einen Schlüssel in die Registry per Script laden sollte.Es geht [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Ich hatte heute das &#8222;Problem&#8220; bei einem Kunden, dass ich einen Schlüssel in die Registry per Script laden sollte.<br />Es geht um den Trust Center, in dem man einen Pfad konfigurieren kann aus dem man &#8222;unsichere&#8220; Access-Datenbanken ohne Hinweismeldung starten kann.</p>
<p>Der zu importierende Key wäre folgender:</p>



<pre class="wp-block-code"><code>Windows Registry Editor Version 5.00 
&#91;HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location0] 
"Path"="C:\\Users\\Knut.lixd\\AppData\\Roaming\\MyAccessApp\\"
"Description"=""
"Date"="16/06/2022 9:20"</code></pre>



<p>Das Problem dabei: Im Pfad steht nicht nur mein Name <strong>Knut</strong> ( %username%) sondern auch die Domäne (<strong>lixd</strong>). Somit kann ich die Umgebungsvariable %Username% nicht einfach verwenden und muss mir dies anders zusammenbauen. Verwende ich %Userprofile%, dann fehlen mir die doppelten &#8222;\&#8220;.<br />Die Idee war nun aus %Userprofile% das <strong>C:\Users</strong> zu entfernen und in den String oben einzubauen.</p>
<p>Dies geht am einfachsten wie folgt:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">@echo off
setlocal enabledelayedexpansion
set "uprofile=%userprofile%"
set "uprofile=!uprofile:C:\Users\=!"
echo %uprofile%</pre>



<p>In der Variable die Variable <strong>uprofile</strong> kann ich nun weiter verwenden um mir eine Registry (trust.reg) Datei für den Import (reg Import trust.reg /reg:64) zu bauen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">:: Trustcenter bearbeiten
echo Bearbeite Trustcenter
echo Windows Registry Editor Version 5.00 > %temp%\trust.reg
echo [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Access\Security\Trusted Locations\Location0] >> %temp%\trust.reg
echo "Path"="C:\\Users\\%uprofile%\\AppData\\Roaming\\MyAccessApp\\"  >> %temp%\trust.reg
echo "Description"=""  >> %temp%\trust.reg
echo "Date"="16/06/2022 9:20"  >> %temp%\trust.reg
reg import %temp%\trust.reg /reg:64
del %temp%\trust.reg
</pre>



<p>Damit dies nicht bei jedem Batch lauf passiert sollte man sich entsprechende Marker setzten und entsprechend abfragen. Per Datei oder Registry Eintrag, je nach belieben. Dies beschreibe ich (vermutlich) man in einem anderen Beitrag.</p>



<p>Zwei Gedanken noch dazu:</p>



<ul class="wp-block-list">
<li>Ist in der Registry Location0 schon vorhanden, so wird diese überschrieben. Das kann man sicherlich besser lösen, war bei dem Kunden mit komplett neuen Benutzerprofilen nicht von Relevanz.</li>



<li>Das Benutzerprofil muss nicht zwingender Weise auf C: liegen. Bei Servergespeicherten Profilen muss man den String anders zusammenbauen. ( set &#8222;uprofile=!uprofile:\=\\!&#8220; )</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mit CMD/VBS ein Icon auf den Desktop anlegen</title>
		<link>https://www.systemtechnics.de/mit-cmd-vbs-ein-icon-auf-den-desktop-anlegen/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Thu, 01 Dec 2022 10:49:05 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[vbs]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3389</guid>

					<description><![CDATA[Mit folgendem Script kann man mit einfachen Mitteln ein (Desktop-)Icon anlegen.&#160;Die anzupassenden Variablen sollten selbsterklärend sein. Eine umfangreiche Liste mit [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mit folgendem Script kann man mit einfachen Mitteln ein (Desktop-)Icon anlegen.&nbsp;Die anzupassenden Variablen sollten selbsterklärend sein.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bat" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">echo off
cls

:: Variablen setzen

:: Bei Bedarf Variablen anpassen
::
set IconTitle="%HomePath%\desktop\Fernwartung SystemTechnics.lnk"
set Target="https://www.systemtechnics.de/fernwartung/"
set WorkingDirectory="%temp%"
set Description="Download Link zum aktuellen Teamviewer"
set VBSFile=%date%-sc001
set IconNum=15

:: Hier nichts mehr anpassen
::

cls
echo .........................................................
echo .
echo . Erstelle Icon %IconTitle% - %Target%
echo .
echo .........................................................

:: Datum wg. Temp-File ermitteln
for /f "tokens=1-4" %%a in ('cmd.exe /c "echo. | date"') do if %%a == Aktuelles set date=%%d

:: Icon auf Desktop vorhanden?
if exist %IconTitle% echo Icon vorhanden
::if exist %IconTitle% goto icon_skip

:: Temp VBScript anlegen
::
 >%temp%\%VBSFile%.vbs echo Set objShell=WScript.CreateObject("Wscript.Shell")
>>%temp%\%VBSFile%.vbs echo Set objShortcut=objShell.CreateShortcut(%IconTitle%)
>>%temp%\%VBSFile%.vbs echo objShortcut.TargetPath=%Target%
>>%temp%\%VBSFile%.vbs echo objShortcut.Description=%Description%
>>%temp%\%VBSFile%.vbs echo objShortcut.WorkingDirectory=%WorkingDirectory%
>>%temp%\%VBSFile%.vbs echo objShortCut.IconLocation = "C:\Windows\SystemResources\shell32.dll.mun, %IconNum%"
>>%temp%\%VBSFile%.vbs echo objShortcut.Save

::... anschliessend starten ...
cscript //nologo %temp%\%VBSFile%.vbs

::... und wieder entfernen.
del %temp%\%VBSFile%.vbs

:icon_skip
exit
</pre>



<p>Eine umfangreiche Liste mit freier Icons ist unter <a href="https://github.com/topics/icon-pack" target="_blank" rel="noopener">https://github.com/topics/icon-pack</a> zu finden. Man kann diese dann sicherlich in eine ICO-Datei exportieren und im Script entsprechend bereitstellen.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="842" src="https://www.systemtechnics.de/wp-content/uploads/icon-anlegen-batch-1024x842.png" alt="" class="wp-image-3390" srcset="https://www.systemtechnics.de/wp-content/uploads/icon-anlegen-batch-1024x842.png 1024w, https://www.systemtechnics.de/wp-content/uploads/icon-anlegen-batch-300x247.png 300w, https://www.systemtechnics.de/wp-content/uploads/icon-anlegen-batch-768x631.png 768w, https://www.systemtechnics.de/wp-content/uploads/icon-anlegen-batch.png 1034w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Apps flott unter Windows 10/11 installieren</title>
		<link>https://www.systemtechnics.de/apps-flott-unter-windows-10-11-installieren/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Thu, 03 Feb 2022 17:09:02 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[7zip]]></category>
		<category><![CDATA[acrobat]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[irfanfiew]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[winget]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3175</guid>

					<description><![CDATA[Mit Windows 10/11 kam auch ein Paketmanager, wie man es unter Linux gewohnt ist dazu. Über diesen Paketmanager &#8222;WinGet&#8220; kann [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Mit Windows 10/11 kam auch ein Paketmanager, wie man es unter Linux gewohnt ist dazu. Über diesen Paketmanager &#8222;WinGet&#8220; kann man mittels Powershell einfach Programme nach installieren. Gerade wenn man viele Rechner installieren möchte ist dies eine sehr einfache Möglichkeit (sofern man kein SCCM zur Hand hat). Ein weiterer Vorteil gegenüber einer manuellen Installation ist, dass man die Apps sehr einfach aktualisieren kann. (<strong><em>winget upgrade &#8211;all</em></strong>)</p>
<p><span style="font-size: revert; color: initial;">Installiert wird WinGet über der Microsoft Appstore. Dazu einfach </span><em style="font-size: revert; color: initial;"><strong>winget</strong></em><span style="font-size: revert; color: initial;"> in die Suchzeile eingeben und installieren.</span></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="833" src="https://www.systemtechnics.de/wp-content/uploads/Appstore-winget-1024x833.png" alt="" class="wp-image-3176" srcset="https://www.systemtechnics.de/wp-content/uploads/Appstore-winget-1024x833.png 1024w, https://www.systemtechnics.de/wp-content/uploads/Appstore-winget-300x244.png 300w, https://www.systemtechnics.de/wp-content/uploads/Appstore-winget-768x625.png 768w, https://www.systemtechnics.de/wp-content/uploads/Appstore-winget.png 1246w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Anschließend kann man in der Powershell (oder Command-Box) den Befehl WinGet ausführen. Ohne Parameter wird einem eine Liste möglicher Befehle ausgegeben.<strong><em> WinGet List</em></strong> zeigt z.B. alle installierten Apps an.</p>



<p>Hier meine Apps, die ich eigentlich auf jeden Rechner drauf mache und für notwendig erachte:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">winget install 7zip.7zip --accept-package-agreements --silent --accept-source-agreements 
winget install Irfanview -s msstore --accept-package-agreements --silent  
winget install Ghisler.TotalCommander --accept-package-agreements  
winget install Mozilla.Firefox --accept-package-agreements  
winget install Google.Chrome --accept-package-agreements  
winget install "Adobe Acrobat Reader DC" -s msstore --accept-package-agreements  
winget install vlc -s msstore --accept-package-agreements
winget install Notepad++.Notepad++ --accept-package-agreements  
winget install Zoom.Zoom --accept-package-agreements</pre>



<p>Zusätzlich vielleicht noch folgende Apps:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">winget install HopToDesk --accept-package-agreements
winget install TeamViewer.TeamViewer --accept-package-agreements
winget install TeamViewer.TeamViewer.Host --accept-package-agreements
winget install Putty.Putty --accept-package-agreements
winget install TimKosse.FileZilla.Client --accept-package-agreements
winget install WinSCP.WinSCP --accept-package-agreements
winget install sysinternals --accept-package-agreements</pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="789" src="https://www.systemtechnics.de/wp-content/uploads/winget-powershell-1024x789.png" alt="" class="wp-image-3177" srcset="https://www.systemtechnics.de/wp-content/uploads/winget-powershell-1024x789.png 1024w, https://www.systemtechnics.de/wp-content/uploads/winget-powershell-300x231.png 300w, https://www.systemtechnics.de/wp-content/uploads/winget-powershell-768x592.png 768w, https://www.systemtechnics.de/wp-content/uploads/winget-powershell-1536x1183.png 1536w, https://www.systemtechnics.de/wp-content/uploads/winget-powershell.png 1594w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Möchte man eine bestimmte Software installieren, dann kann man den Parameter <em><strong>search</strong></em> (also winget search AppName ) bemühen.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Batch &#8211; Ermitteln der öffentlichen IP Adresse hinter einem NAT Router</title>
		<link>https://www.systemtechnics.de/batch-ermitteln-der-oeffentlichen-ip-adresse-hinter-einem-nat-router/</link>
		
		<dc:creator><![CDATA[knut]]></dc:creator>
		<pubDate>Fri, 10 Sep 2021 15:39:13 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Anleitungen]]></category>
		<category><![CDATA[Batch/Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[batch]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[ip-adresse]]></category>
		<category><![CDATA[nat]]></category>
		<guid isPermaLink="false">https://www.systemtechnics.de/?p=3087</guid>

					<description><![CDATA[Möchte man regelmäßig seine öffentlichen IP Adresse ermitteln und diese in einer Datei Protokollieren, so kann man einfach folgendes Windows [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Möchte man regelmäßig seine öffentlichen IP Adresse ermitteln und diese in einer Datei Protokollieren, so kann man einfach folgendes Windows Batch-Script verwenden:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">echo off 
cls

::
:: ** Dies Script ermittelt die externe IP, sofern man hinter einem NAT Router sich befindet,
:: ** und schreibt diese in die Datei aus der Variablen "report"

:: **** ein paar Umgebungsvariablen zum anpassen
:: **
::
set report=c:\temp\oeff-ip.txt
set curlpath=curl.exe

:: **********************************************************************************************
:: **** Ab hier nichts mehr anpassen
:: **********************************************************************************************
::

:: Datum und Uhrzeit ermitteln und in Variablen sichern
for /f "tokens=1-3" %%a in ('cmd.exe /c "echo. | time"') do if %%a == Aktuelle set time=%%c
for /f "tokens=1-4" %%a in ('cmd.exe /c "echo. | date"') do if %%a == Aktuelles set date=%%d

echo|set /p="%date% - %time% - IP = " >> %report%
%curlpath% -s http://ip.tx2.net >> %report%
echo. >> %report%</pre>



<p>Wer mag kann die Variable <strong><em>report</em> </strong>entsprechend anpassen und mittels Aufgabenplanung das Script regelmäßig ausführen lassen.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="668" height="391" src="https://www.systemtechnics.de/wp-content/uploads/oeff-ip.png" alt="" class="wp-image-3091" srcset="https://www.systemtechnics.de/wp-content/uploads/oeff-ip.png 668w, https://www.systemtechnics.de/wp-content/uploads/oeff-ip-300x176.png 300w" sizes="auto, (max-width: 668px) 100vw, 668px" /></figure></div>


]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
