Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst PowerShell-Script per Batch aufrufen

Mitglied: halington

halington (Level 1) - Jetzt verbinden

16.04.2018, aktualisiert 15:35 Uhr, 273 Aufrufe, 8 Kommentare

Hallo zusammen,

ich versuche ein PowerShell-Script (pstest.ps1) per Batch aufzurufen.
Im ersten Schritt versuche ich den String, der später in die Batch kommt, direkt aus PS aufzurufen.
Das funktioniert auch. Trotzdem erscheint eine Fehlermeldung. Kann mir jemand sagen wieso?

Start-Process powershell -ArgumentList "-noexit", "-noprofile", "-Command &{$Verzeichnis=Get-Location}; &{. $Verzeichnis\pstest.ps1}"
01.
Ausgabe in der neuen PS: 
02.
C:\Users\Danny\Desktop\pstest=Get-Location : Die Benennung "C:\Users\Danny\Desktop\pstest=Get-Location" wurde nicht 
03.
als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die 
04.
Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. 
05.
In Zeile:1 Zeichen:3 
06.
+ &{C:\Users\Danny\Desktop\pstest=Get-Location}; &{. C:\Users\Danny\D ... 
07.
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
08.
    + CategoryInfo          : ObjectNotFound: (C:\Users\Danny...st=Get-Location:String) [], CommandNotFoundException 
09.
    + FullyQualifiedErrorId : CommandNotFoundException 
10.
 
11.
Hallo dies ist ein pstest 
12.
Drücken Sie die Eingabetaste, um den Vorgang fortzusetzen...:

Damit es später egal ist wo ich den Ordner mit den Scripten liegen habe nutze ich Get-Location.

Grüße
Halington
Mitglied: AndreasHoster
16.04.2018 um 16:20 Uhr
Weil Variablen in Strings mit " aufgelöst werden.
Sagt auch die Fehlermeldung:
Die Benennung "C:\Users\Danny\Desktop\pstest=Get-Location" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt.

$Verzeichnis hat den Wert C:\Users\Danny\Desktop\pstest, damit wird
"-Command &{$Verzeichnis=Get-Location}; &{. $Verzeichnis\pstest.ps1}"
in
"-Command &{C:\Users\Danny\Desktop\pstest=Get-Location}; &{. C:\Users\Danny\Desktop\pstest\pstest.ps1}"
aufgelöst.

Einfache Hochkommas ' verwenden.
Bitte warten ..
Mitglied: 135950
LÖSUNG 16.04.2018, aktualisiert 18.04.2018
Moin.
Erstens rufst du eine Variablenzuweisung mit einem Scriptblock auf, das geht so schon mal nicht, zweitens ist das vollkommen überflüssig.
So sieht dann deine Batch aus:
01.
@echo off 
02.
Powershell -NoExit -Executionpolicy ByPass -noprofile -Command "&'%~dp0\pstest.ps1'"
Gruß m.
Bitte warten ..
Mitglied: halington
18.04.2018 um 00:59 Uhr
Hallo ihr beiden,

vielen Dank für eure Antworten.
Ich habe das jetzt fast fertig.

01.
PowerShell -NoProfile -Command Set-ExecutionPolicy -ExecutionPolicy Bypass -Force -ErrorAction SilentlyContinue -Scope Process; PowerShell -Command "&'%~dp0\pstest.ps1' -Verb runAs"
Leider funktioniert das noch nicht.

01.
PS C:\Users\Danny\Desktop\pstest> C:\Users\Danny\Desktop\pstest\location.ps1 
02.
Die Datei "C:\Users\Danny\Desktop\pstest\location.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere  
03.
Informationen finden Sie unter "about_Execution_Policies" (https:/go.microsoft.com/fwlink/?LinkID=135170). 
04.
    + CategoryInfo          : Sicherheitsfehler: (:) [], ParentContainsErrorRecordException 
05.
    + FullyQualifiedErrorId : UnauthorizedAccess
Also es soll temporär die Ausführung von Scripten erlaubt und dann das Script pstest.ps1 aufgerufen werden. Normalerweise trennt man doch PowerShell-Befehle mit einem Semikolon, oder? Könnt ihr mir vielleicht sagen weshalb das so nicht geht?
Bitte warten ..
Mitglied: 135950
18.04.2018, aktualisiert um 07:51 Uhr
Du brauchst die Executionpolicy vorher nicht setzen! Dazu genügt es sie mit -Executionpolicy ByPass direkt zu umgehen, siehe mein Code oben.
Bitte warten ..
Mitglied: halington
18.04.2018 um 11:41 Uhr
Hi marathon,

das ist ja das Problem. Wenn ich deinen Code ausführe erhalte ich exakt die selbe Fehlermeldung.
Bitte warten ..
Mitglied: 135950
18.04.2018, aktualisiert um 11:52 Uhr
Zitat von halington:

Hi marathon,

das ist ja das Problem. Wenn ich deinen Code ausführe erhalte ich exakt die selbe Fehlermeldung.
Dann führst du die Powershell nicht als Administrator aus, das ist ja sowieso Voraussetzung wenn du das Runas-Verb nutzen willst.

Und sicher klappt das!

Guckst du hier bei einer "Restricted" Shell einmal "ohne" Bypass und einmal "mit"

screenshot - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: halington
18.04.2018 um 11:59 Uhr
Nein, ich hab schlauerweise den Code in der ISE von einer .ps1 ausgeführt was ja in dem Fall logischerweise nicht funktionieren kann......
Ich hab den Code jetzt in meine eigentliche Batch gepackt und ausgeführt. Läuft. Vielen Dank für die Hilfe.
Bitte warten ..
Mitglied: 135950
18.04.2018, aktualisiert um 12:01 Uhr
Zitat von halington:

Nein, ich hab schlauerweise den Code in der ISE von einer .ps1 ausgeführt was ja in dem Fall logischerweise nicht funktionieren kann......
Jaa das war gaaanz schlau .
Ich hab den Code jetzt in meine eigentliche Batch gepackt und ausgeführt. Läuft. Vielen Dank für die Hilfe.
Naja das war ja eigentlich auch deine Intention im Titel: "PowerShell-Script per Batch aufrufen" .

Dann noch das grüne Schildchen dran gepackt und feeedich.
Bitte warten ..
Ähnliche Inhalte
Entwicklung
VBS Script in Powershell aufrufen
gelöst Frage von HanutaEntwicklung7 Kommentare

Hallo Zusammen, ich möchte einen VBS Script in Powershell aufrufenist das überhaupt möglich ? Wenn ja, wie ? VG ...

Batch & Shell
Powershell oder Batch Script
gelöst Frage von HistorikBatch & Shell13 Kommentare

Hallo zusammen, ich bin neu hier und benötige jemand der mir ein Script erstellt ,dass mir die Daten ausliest: ...

Batch & Shell

Batch lässt sich nicht aus Powershell-Script starten

gelöst Frage von complexBatch & Shell4 Kommentare

Guten Morgen Jungs! stehe vor einem kuriosen Problem und hoffe, ihr könnt mir helfen. Eins vorne Weg: Ich weiß ...

Windows Server

Powershell Script in Script ausführen

Frage von diematrix125Windows Server2 Kommentare

Hallo! Ich habe hier momentan zwei verschiedene Skripte: 1. Skript zum Erstellen von Usern 2. Skript zum Erstellen der ...

Neue Wissensbeiträge
Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Microsoft
Folder Security Viewer-Lizenzen zu gewinnen
Information von kgborn vor 1 TagMicrosoft

Ich nehme das Thema mal in Absprache mit Frank hier auf, da es für den einen oder anderen Administrator ...

Hardware

Feueralarm killt Festplatten in Rechenzentrum - führt zu größerem Ausfall

Information von kgborn vor 1 TagHardware12 Kommentare

Noch ein kleiner Beitrag für Administratoren, die in Rechenzentren aktiv sind - so als Fingerzeig. Denn es gibt Szenarien, ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++27 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

Linux
Linux Server oder Windows Server - lohnt eine Umstellung auf Linux und ebenso basierende SW bei einer langfristigen Planung?
Frage von motus5Linux27 Kommentare

Wir brauchen bei uns einen neuen Server. Dieser wird als Fileserver, Domäne Controller sowie Exchange Server verwendet. Wir versuchen ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless22 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...