freakiedigi
Goto Top

Windows Autostart - Programm soll nur automatisch starten im richtigen IP-Adressbereich

Wir haben eine Software bei der die Verknüpfung im Autostart "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" liegt.

Nun haben wir aber zukünfigt Notebooks welche am Arbeitsplatz und unterwegs genutzt werden. Das Programm soll aber nur am Arbeitsplatz automatisch starten.

Ich habe mir eine Batchdatei oder eine Powershell vorgestellt welche ich in den Autostart lege und dann prüft ob es eine aktive Adresse im richtigen IP-Adressbereich (Arbeitsplatz) hat und erst dann das Programm startet.

Hat bitte jemand für mich eine Lösung?

Ich bin noch recht neu hier und dies ist meine erste Frage.

Content-Key: 463360

Url: https://administrator.de/contentid/463360

Printed on: April 23, 2024 at 07:04 o'clock

Member: sabines
sabines Jun 18, 2019 updated at 07:39:05 (UTC)
Goto Top
Zitat von @freakiedigi:

Ich bin noch recht neu hier und dies ist meine erste Frage.

Moin,

wie wäre es dann mit einer Begrüßung und diesen Satz an den Anfang setzen?
Prüf' doch einfach ob eine Datei auf einem Netzwerklaufwerk existiert und starte dann das Programm, im else Fall machst Du nichts.

Gruss
Member: Penny.Cilin
Penny.Cilin Jun 18, 2019 at 08:38:51 (UTC)
Goto Top
Hallo,

wenn man sich in einem Forum registriert dann sollte man sich auch die Diskusssionsrichtlinien zum Beispiel und auch die Forums FAQs durchlesen.

Aber wer macht das heute noch? - Lieber pumpt man seine Frage raus und wundert sich über entsprechende Antworten. face-sad

Zu Deiner Frage:
Es gibt mehrere Wege das zu steuern.
Frage den Adreßbereich ab, wenn dieser korrekt ist dann soll das uns unbekannte Programm gestartet werden.
Diese Abfrage kann entweder via
  • Batch
  • Powershell
  • Geplante Aufgaben (Scheduled Task)
  • usw.
erfolgen.

Um welches Programm geht es? Oder ist dies geheim?

Gruss Penny.
Member: eisbein
eisbein Jun 18, 2019 at 09:34:25 (UTC)
Goto Top
Wir haben einen ähnlichen Fall einfach mit unterschiedlichen Benutzerkonten (Mobil und Büro) abgedeckt.

Hängt natürlich von der Anzahl der Geräte und der gewünschten Sicherheit ab face-wink
Member: freakiedigi
freakiedigi Jun 18, 2019 at 09:38:39 (UTC)
Goto Top
Ich habe es doch gar nicht böse gemeint, aber ich war in meinem Gedankengang und suchte schnell nach einer Lösung.
Die Suche hier im Forum habe ich natürlich verwendet, aber nach zwei Stunden nicht das passende gefunden.

Die Notebooks sind in einer Windows Dömäne und es soll Outlook am Arbeitsplatz automatisch gestartet werden, aber wenn man unterwegs ist nicht.

Leider fehlen mir die erforderlichen Kenntnisse im Batch bzw. Powershell um eine else Abfrage zu erstellen.
Ich bin auch schon die ganze Zeit am googeln, aber bekomme es noch nicht zusammen gebaut.

Das hier sah schon nach was nützliches aus.
@echo off
setlocal

for /f "tokens=2 delims=:" %%a in ('ipconfig^|find "IP Address"') do (  
    for /f "tokens=1,2 delims=." %%b in ('echo %%a') do (   
        if "%%b.%%c"==" 172.18" (echo do stuff) else echo no match. exiting&exit /b 1  
    )
)   
Member: freakiedigi
freakiedigi Jun 18, 2019 at 13:59:40 (UTC)
Goto Top
Mittlerweile bin ich ein wenig weiter, aber es ist nicht perfekt.

1. Der Benutzer soll kein schwarzes Fenster sehen
2. Das schwarze Fenster bleibt leider offen

@ECHO OFF
ipconfig    | find /i "192.168.178." > NUL  
IF %ERRORLEVEL% == 0 GOTO outlook
GOTO END
:outlook
"C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"  
GOTO END
:END

Hat bitte jemand eine Idee?
Member: Penny.Cilin
Penny.Cilin Jun 18, 2019 at 14:15:37 (UTC)
Goto Top
Ja, wie wäre es mit
EXIT /B 0
am Ende des Skriptes?
Ach ja, den Syntax erfährst Du mit
EXIT /?
.

Gruss Penny.
Member: freakiedigi
freakiedigi Jun 18, 2019 at 14:23:56 (UTC)
Goto Top
Ich habe dies jetzt gestestet, aber es funktioniert leider nicht. Fenster bleibt weiterhin offen.
Wenn ich aber Outlook wieder beende, dann geht auch das schwarze Fenster (Eingabeaufforderung) mit zu.
Member: Penny.Cilin
Solution Penny.Cilin Jun 18, 2019 at 14:45:49 (UTC)
Goto Top
Nönönö.

Ändere mal die Zeile
"C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"  
in
start "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"  

Und teste.
Member: erikro
erikro Jun 18, 2019 at 15:05:21 (UTC)
Goto Top
Moin,

ab Windows 8 mit der Powershell:

if($(Get-NetIPConfiguration).ipv4address.ipaddress -match "192\.168\.178.*") {start-process -filepath "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"}  

Allerdings fürchte ich, dass das mit der Netzmaske bei 90% aller User auch zuhause startet. face-wink

hth

Erik
Member: freakiedigi
freakiedigi Jun 19, 2019 at 11:49:38 (UTC)
Goto Top
Also erstmal vielen Dank an @Penny.Cilin und @erikro. Mit eurer Hilfe habe ich nun die finale Lösung:

Ich habe folgende Batch Datei erstellt, da wir mehrere Netze haben:
IP-Adressen sind verfremdet!
@ECHO OFF
ipconfig | find /i "192.168.111." > NUL  
IF %ERRORLEVEL% == 0 GOTO startprogram
ipconfig | find /i "192.168.222." > NUL  
IF %ERRORLEVEL% == 0 GOTO startprogram
GOTO END
:startprogram
cd "C:\Program Files (x86)\Microsoft Office\Office14"  
start OUTLOOK.EXE
GOTO END
:END
danach habe ich die CMD in eine EXE konvertiert mit dem Bat To Exe Converter v2.4.8

Diese EXE habe ich auf dem Notebook unter: "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" abgelegt.
Zur Sicherheit habe ich in der AV-Lösung die erstellte EXE als Ausnahme deklariert.

Nun kommt kein schwarzes Fenster mehr, es zeigt nichts an und es wird Outlook nur noch am Arbeitplatz automatisch gestartet, ansonsten nicht.

Danke Danke!
Member: Penny.Cilin
Penny.Cilin Jun 20, 2019 at 08:34:14 (UTC)
Goto Top
Zitat von @freakiedigi:

Also erstmal vielen Dank an @Penny.Cilin und @erikro. Mit eurer Hilfe habe ich nun die finale Lösung:
Gut. Super, dass wir Dir helfen konnten.

danach habe ich die CMD in eine EXE konvertiert mit dem Bat To Exe Converter v2.4.8
Nun, zur Sicherheit trägt die Konvertierung definitiv NICHT bei.
Den Vorteil, welchen Du hast, ist dass das CLI-Fenster (Command line Interface) nicht angezeigt wird.
Es gibt hier im Forum verschiedene Fragen und Lösungen, wie man eine Batchdatei unsichtbar startet.
Eines davon ist zum Beispiel CMDOW.
Alternative gibt es auch Lösungen via VBS Skript, oder mit Powershell.

Danke Danke!
Bitte bitte.

Gruss Penny.