PowerShell Skripte für das Datei Kontextmenü erstellen - am Beispiel VirusTotal API

Mitglied: NetzwerkDude

NetzwerkDude (Level 2) - Jetzt verbinden

17.08.2020 um 12:39 Uhr, 1916 Aufrufe, 3 Kommentare, 3 Danke

Moin,

wenn ihr ein Tool habt das mit einer Datei "irgendwas" macht und das Tool von Usern benutzt werden soll die keinen Bock auf die Kommandozeile haben, kann man PowerShell .ps1 skripte auf eine angeklickte Datei über das Rechtsklick-Kontextmenü anwenden.

Als erstes erstellen wir das Kontextmenü:
Im Regedit unter
Computer\HKEY_CLASSES_ROOT\*\shell\
erstellt man einen Schlüssel mit beliebigen Namen, als Standardwert kommt der Name des zukünftigen Tools rein, hier "VirusTotalCheck"
nun erstellt ihr unter dieser Schlüssel einen weiteren mit dem namen "command"
Hier kommt als Standardwert der Befehl der ausgeführt werden soll beim klick:
(Führe Powershell 7 aus, das Skript unter dem Pfad und als Parameter übergebe die angeklickte Datei (%V)

So schauts aus:
clipboard01 - Klicke auf das Bild, um es zu vergrößern

Und schon erscheint es im Kontextmenü:
clipboard02 - Klicke auf das Bild, um es zu vergrößern

Hier als Regdatei zum direkt importieren:
(Hier das ganze escaping beachten!)


Jetzt können wir also auch das Skript in D:\Code\006_KleineTools\VirusTotalChecker.ps1 ablegen, hier der Code (bitte nicht allzu representativ nehmen, habe den mal schnell gehackt um was sinnvolles zu machen )
bitte eueren eigenen API Key von VirusTotal eintragen in die Variable $APIKey in Zeile 7

MFG
N-Dude

PS: Der Code läuft nicht mit PowerShell 5.x, das liegt an der Invoke-Restmethod anweisung die 7er features benutzt. Außerdem wird die "depricated" v2 VirusTotal API benutzt, aber die neue ist wohl noch Beta - versteh einer Google....
Mitglied: TK1987
17.08.2020, aktualisiert um 16:18 Uhr
Moin,

Zitat von NetzwerkDude:
Im Regedit unter
Computer\HKEY_CLASSES_ROOT\*\shell\
erstellt man einen Schlüssel mit beliebigen Namen, als Standardwert kommt der Name des zukünftigen Tools rein, hier "VirusTotalCheck"
Diese Methode hat jedoch einen Nachteil: Es kann immer nur eine Datei als Argument an das Skript übergeben werden (bzw. wird bei einer Multiselektion für jede Datei eine neue Instanz geöffnet).

Eine Alternative hierzu, die es auch ermöglicht mehrere Dateien als Argumente an das Skript zu übergeben, ist der SendTo Ordner.

1) Explorer Öffnen und in der Adressleiste shell:sendto eingeben (man landet im Ordner %userprofile%\AppData\Roaming\Microsoft \Windows\SendTo)
2) Hier nun eine Verknüpfung des Powershell-Skripts anlegen; und das Verknüpfungsziel wie folgt abändern
Nun kann man im Explorer nach belieben mehrere Dateien selektieren und über das Kontextmenü "Senden an" als Array an das Skript übergeben.

sendto - Klicke auf das Bild, um es zu vergrößern

Die Argumente sind dann (sofern nicht unter Parameter eine andere Variable definiert wurde), unter der Variable $Args zu erreichen.

Gruß Thomas
Bitte warten ..
Mitglied: NetzwerkDude
17.08.2020 um 16:04 Uhr
Danke für den Hinweis
Bitte warten ..
Mitglied: TK1987
17.08.2020 um 16:09 Uhr
Aber gerne doch
Bitte warten ..
Heiß diskutierte Inhalte
Switche und Hubs
Kaufberatung (10G) Switche für Unternehmensnetzwerk
ipzipzapFrageSwitche und Hubs27 Kommentare

Moin, unsere Firma zieht um und am neu renovierten Standort muss/soll alles neu. Auf drei Etagen stehen Racks, in ...

Drucker und Scanner
Vorlage Endlospapier Nadeldrucker
Hanspeter82FrageDrucker und Scanner17 Kommentare

Hallo, hab die Aufagbe bekommen, eine Vorlage zuerstellen bzgl. Druck auf Endlos Papier über einen Nadeldrucker. Habe allerdings kein ...

Exchange Server
Primäre Mailadresse auf Kleinbuchstaben anpassen
JoergDdorfFrageExchange Server16 Kommentare

Hallo Alle, wir betreiben ein Exchange Hybrid (2016/365). Ich stehe vor dem Problem, dass ich die bestehenden primären Mailadresse ...

LAN, WAN, Wireless
2 Lan Dosen (Unterputz) miteinander Verbinden
gelöst RickHHFrageLAN, WAN, Wireless12 Kommentare

Moin zusammen, ich würde mir gerne auf dem Dachboden 2 Landosen in einen Raum Bauen. Ein Netzwerkkabel geht hoch, ...

Windows Userverwaltung
Active Directory Gruppen auslesen
gelöst MMaiwaldFrageWindows Userverwaltung12 Kommentare

Guten Abend, ich habe mir das Codeschnipsel geschnappt und möchte dieses noch erweitern. Dazu möchte ich noch die Beschreibung ...

Windows Netzwerk
Tool zum prüfen ob Gerät noch online ist
Ringi1970FrageWindows Netzwerk10 Kommentare

Hallo zusammen, ich suche nach einer Freeware, die mir bestimmte Geräte / Workstations (Windows Geräte, feste IP Adressen) prüft ...

Ähnliche Inhalte
Viren und Trojaner

Beispiel für gefährliche SPAM E-Mail mit PDF Datei im Anhang

SystembastlerErfahrungsberichtViren und Trojaner12 Kommentare

Liebe Admins, kam gestern mit der E-Post. Ganz mieses Gerät, weil PDF im Anhang mit drop box link. Schon ...

Humor (lol)

Ein schönes Beispiel für "Frech gewinnt"

DerWoWussteTippHumor (lol)7 Kommentare

Von einem Käufer weiß ich, dass hier ein Downloadlink zum Windows update advisor ausgeliefert wird und weiter nichts :-) ...

Exchange Server

Exchange Server über Sicherheitslücke (EWS API) angreifbar - PoC bekannt

kgbornInformationExchange Server3 Kommentare

In allen Versionen des Microsoft Exchange Server gibt es eine Schwachstelle CVE-2018-8581, die Angreifer remote eine Escalation of Privileges ...

Batch & Shell

Weiterentwicklung von Powershell

Penny.CilinInformationBatch & Shell

Anbei ein Artikel im Heise Newsticker bzgl. Powershell: Systemverwaltung: PowerShell goes Cross-Plattform

Windows 10

Powershell 5 BSOD

agowa338TippWindows 108 Kommentare

Aktuell gibt es in PowerShell (Version 5.11.4393.206) einen sehr fiesen Bug. Wenn man die PowerShell "Als Administrator" startet und ...

Microsoft

PowerShell script für LAPS

kgbornInformationMicrosoft5 Kommentare

Kurzer Hinweis für Admins im AD-Umfeld. Ich bin die Tage auf das PowerShell Script der Woche “Local Administrator Password ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT