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

Powershell - Powershell script aus cmd aufrufen

Mitglied: HerrTaler

HerrTaler (Level 1) - Jetzt verbinden

29.08.2011, aktualisiert 30.08.2011, 43717 Aufrufe, 6 Kommentare

Bekomme Fehlermeldung, wenn ich Powershell-script aus cmd aufrufen möchte

Wenn ich mein Powershell-script aus einem Powershell-Fenster aufrufe läuft mein Script ohne Probleme. Wenn ich hingegen den gleichen Aufruf aus einem CMD Fenster tätige bekomme ich folgende Fehlermeldung.

c:\windows und 3 sind Parameter, die ich an das Script übegebe. In dem Script mache ich ein
"get-item $verzeichnis > $fileNew" und durchsuche es mit einem select-string. ($verzeichnis entspricht c:\windows)

Wenn ich nicht c:\windows nehme sondern z.B. temp geht der aufruf. Es scheint also nur an der Anzahl der Zeichen zu liegen.

01.
  
02.
Y:\>powershell.exe test.ps1 c:\temp\test7.ps1 c:\windows\* 3

c:\windows un die 3 sind Parameter die ich übergebe


Fehlermeldung:
01.
  
02.
 
03.
Select-String : "-a---        07.07.2011     09:39    1458176 HP Enterprise Dis 
04.
covery Agent (x86" wird analysiert - Nicht genügend )-Zeichen. 
05.
Bei C:\temp\test7.ps1:52 Zeichen:32 
06.
+        $vorhanden=select-string <<<<  -path $fileOld -pattern $suchtext -Quie 
07.
08.
    + CategoryInfo          : NotSpecified: (:) [Select-String], ArgumentExcep 
09.
   tion 
10.
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co 
11.
   mmands.SelectStringCommand 
12.
 
13.
Select-String : "                                             ) 2.52.000.7292.m 
14.
si               " wird analysiert - Zu viele )-Zeichen. 
15.
Bei C:\temp\test7.ps1:51 Zeichen:21 
16.
+        select-string <<<<  -path $fileOld -pattern $suchtext >> $fileError 
17.
    + CategoryInfo          : NotSpecified: (:) [Select-String], ArgumentExcep 
18.
   tion 
19.
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co 
20.
   mmands.SelectStringCommand 
21.
 
22.
Select-String : "                                             ) 2.52.000.7292.m 
23.
si               " wird analysiert - Zu viele )-Zeichen. 
24.
Bei C:\temp\test7.ps1:52 Zeichen:32 
25.
+        $vorhanden=select-string <<<<  -path $fileOld -pattern $suchtext -Quie 
26.
27.
    + CategoryInfo          : NotSpecified: (:) [Select-String], ArgumentExcep 
28.
   tion 
29.
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co 
30.
   mmands.SelectStringCommand
Mitglied: 0cool
29.08.2011 um 19:20 Uhr
Hallo HerrTaler:

was macht der " * " bei deinen Parametern?
Normaler weise ist der Stern eine Wildcard.

Gruß

0cool
Bitte warten ..
Mitglied: HerrTaler
30.08.2011 um 09:19 Uhr
Der "*" gehört zu der Zeichenkette, die ich übergebe und wird später auch als wildcard genutzt. Das ist auch nicht das Problem. Mich wundert einfach, dass es scheinbar einen Unterschied gibt, ob ich aus einem cmd den Aufruf (powershell.exe test.ps1 c:\temp\test7.ps1 c:\windows\* 3) starte oder aus einem Powershell Fenster (./test.ps1)
Bitte warten ..
Mitglied: 0cool
30.08.2011 um 13:16 Uhr
Hallo HerrTaler,

jetzt hab ich das problem gesehen.

Ich Aufruf ist: powershell.exe test.ps1 c:\temp\test7.ps1 c:\windows\* 3

Der richtige Aufruf wäre powershell.exe c:\temp\test7.ps1 c:\windows\* 3 (ungetestet)

Bei Ihrem Aufruf haben Sie einmal zuviel das Script angegeben und das wäre an der Zweiten stelle

Syntax:
01.
powershell.exe "C:\temp\test.ps1" para1 para2
Gruß

0cool
Bitte warten ..
Mitglied: HerrTaler
30.08.2011 um 14:25 Uhr
Sorry ich war zu dämlich den Aufruf richtig ins Forum einzustellen.

im cmd:

c:\temp> powershell ./test.ps1 c:\windows

im powershell:

PS C:\temp> powershell ./test1.ps1 c:\windows\*

c:\temp> bzw PS c:\temp> ist der Prompt (Der Aufruf ist also genau gleich)


Unten ist der Programmteil, welches das Problem verursacht. Das Problem tritt auch nur auf bei Verzeichnissen mit "vielen" Unterverzeichnissen ("viele" das ist bei mir schon das Windows-Verzeichnis). Ich habe mein script inzwischen anders gelöst, aber die Ursache würde mich trotzdem interessieren.
01.
 
02.
# Variable 
03.
$a=0 
04.
$verzeichnis = $args[0]                                  
05.
$fileNew = "c:\temp\new.txt"                             
06.
$fileOld = "c:\temp\old.txt"                             
07.
$fileError = "c:\temp\error.txt"                         
08.
$suchtext="text"                                         
09.
$count=0                                                 
10.
$vorhanden=0                                             
11.
$verzeichnis1= $args[0]                                  
12.
  
13.
  
14.
  
15.
 
16.
  
17.
#aktuellen Verzeichnisstatus abfragen 
18.
get-item $verzeichnis > $fileNew 
19.
  
20.
#Logdatei leeren 
21.
"---------    Errorlog       " + "Verzeichnis:" + $Verzeichnis + "    --------" > $fileError 
22.
  
23.
# In der Datei erst ab Zeile 8 anfangen zu suchen 
24.
$file = [system.io.file]::OpenText($fileNew) 
25.
For ($a = 1; $a -le 7; $a++) 
26.
27.
   $suchtext=$file.ReadLine() 
28.
29.
  
30.
# Zeile für Zeile aktueller Verzeichnisinhalt mit altem Verzeichnisinhalt vergleichen 
31.
while (!($file.EndOfStream)) 
32.
33.
    $suchtext=$file.ReadLine() 
34.
    select-string -path $fileOld -pattern $suchtext >> $fileError 
35.
    $vorhanden=select-string -path $fileOld -pattern $suchtext -Quiet 
36.
  
37.
#coutner für die gefundenen Dublikate setzen 
38.
     if ($vorhanden -eq „true“) 
39.
40.
           $count=$count+1 
41.
42.
  
43.
44.
  
45.
# Datei wieder schließen 
46.
$file.close() 
47.
 
Bitte warten ..
Mitglied: 0cool
30.08.2011 um 14:44 Uhr
HerrTaler: Sorry da muss ich passen, so weit kenn ich mich mit der PowerShell nicht aus. Da müssen andere Leute dran.

Viel Erfolg

0cool
Bitte warten ..
Mitglied: 0cool
30.08.2011 um 14:50 Uhr
HerrTaler: Sorry da muss ich passen, so weit kenn ich mich mit der PowerShell nicht aus. Da müssen andere Leute dran.

Viel Erfolg

0cool
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell: CMD Kommando mit Parameter aufrufen

gelöst Frage von bonnerjungBatch & Shell8 Kommentare

Hallo Admins, ich möchte gerne einen CMD Befehl mit Parameter aus der Powershell aufrufen, finde aber so schnell keine ...

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 Script läuft nicht in CMD

gelöst Frage von NagusBatch & Shell10 Kommentare

Hi zusammen, ich stolpere gerade über folgendes Problem: Ich möchte Software Verteilungsgruppen aus dem AD auslesen und dann die ...

Batch & Shell

Cmd Befehle in Powershell GUI aufrufen

gelöst Frage von Markus2016Batch & Shell5 Kommentare

Hallo zusammen, ich brauche etwas Hilfe. In meiner erstellten GUI möchte ich ein paar Funktionen mit cmd Befehlen aufrufen. ...

Neue Wissensbeiträge
E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 13 StundenE-Mail3 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 14 StundenHyper-V

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Sicherheits-Tools

Trend Micro WorryFree Business Security (WFBS) 10 - neuer Patch 1470 verfügbar

Tipp von VGem-e vor 18 StundenSicherheits-Tools1 Kommentar

Servus, mal sehen, ob mit Patch 1470, zu finden unter dann die angeblich fehlerhafte Funktion, die unter W10 im ...

Server-Hardware

Lösung für Ersatz eines defekter Raid-Controllers

Anleitung von wellknown vor 1 TagServer-Hardware3 Kommentare

Hallo, da ich nichts gefunden habe und selbst eine Lösung brauchte, hier eine kleine Anleitung für alle die vor ...

Heiß diskutierte Inhalte
Windows Server
Mit der alten Domäneprofil anmelden ohne Server
gelöst Frage von SyosseWindows Server37 Kommentare

Hallo Jungs Folgendes Szenario: Ich habe bei einem sehr kleinen Unternehmen (2Personen) den Server migriert, soweit hat alles geklappt. ...

Sicherheits-Tools
Virenprogramm lässt Programme nicht starten
Frage von SurferGirlSicherheits-Tools23 Kommentare

Hallo, ich bin neu hier, ich hoffe ich habe die richtige Rubrik gewählt. Falls nicht, tut es mir leid. ...

Windows Server
Kann DNS-Einträge nicht finden
gelöst Frage von BPeterWindows Server19 Kommentare

Hallo, wenn ich folgenden Befehl absetze, bekomme ich eine Liste zurück mit allen Einträgen der DNS-Zone. Wenn ich aber ...

Windows Server
SQL Server Instanz (Eplan) auf WIN 2008 RC2 Server frisst RAM ohne Limit
Frage von derinderinderinWindows Server17 Kommentare

Hallo Zusammen, Wir haben hier einen Windows 2008 RC2 Server. Darauf läuft ein SQL Server Express 2014 Version 12.0.4232.0. ...