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, 45736 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.
t
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.
t
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 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

Powershell-Script als Admin über CMD ausführen

gelöst Frage von TobiasedBatch & Shell2 Kommentare

Guten Morgen, ich möchte gern ein Powershell Script mit Administrator rechten über eine batch Datei ausführen. Dies funktioniert soweit ...

Batch & Shell

Powershell-Script über Task Scheduler zeigt CMD während Ausführung

Frage von DanielBodenseeBatch & Shell5 Kommentare

Hallo zusammen, ich habe eine Frage die nicht direkt mit Powershell zu tun hat :-) Über den Task Scheduler ...

Batch & Shell

Powershell: Aufruf robocopy mit Parameter

Frage von bensonhedgesBatch & Shell1 Kommentar

Hallo, ich bin Powershell-Neuling und habe ein Problem mit der Übergabe von robocopy-Optionen in einer Variable: $Options = "/COPYALL ...

Neue Wissensbeiträge
Router & Routing

Zyxel VMG 1312 B30A - Firmwareupdate nur im "privaten" Firefox Modus möglich

Tipp von the-buccaneer vor 11 StundenRouter & Routing1 Kommentar

Hatte hier ein Zyxel 1312 das ums verrecken kein Firmwareupdate durchführen wollte. Datei ist auswählbar, dann kommt der Fortschrittskreisel ...

Windows 7

Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019

Information von kgborn vor 1 TagWindows 75 Kommentare

Kleine Info für die Admins der oben genannten Maschinen. Ab Juli 2019 werden Updates von Microsoft nur noch mit ...

Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 3 TagenFirewall2 Kommentare

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 5 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Heiß diskutierte Inhalte
Hardware
IT-Werkzeugkoffer bis 50,- EUR
gelöst Frage von departure69Hardware48 Kommentare

Hallo. Ich bin als IT-Systembetreuer einer Gemeinde zusätzlich auch der IT-Systembetreuer einer Grund- und Hauptschule. Dort muß ich jedoch ...

Netzwerke
Verteilung von Programmdaten außerhalb des internen Netzwerkes
Frage von mertaufmbergNetzwerke27 Kommentare

Guten Morgen liebe Administratoren, ich versuche zurzeit eine möglichst sichere und einfache Lösung zu suchen, um ein Programmverzeichnis über ...

Netzwerkmanagement
Richtfunknetzwerk mit vielen Hops stabiler gestalten
Frage von turti83Netzwerkmanagement22 Kommentare

Hallo, in meinem Dorf habe ich vor ca. einem Jahr ein Backbone aufgebaut um die Nachbarschaft mit Internet zu ...

Hyper-V
Intel MSC Raid 5 Rebuild
Frage von DannysHyper-V19 Kommentare

Hallo Community, Ich habe einen Modul Server von Intel in Betrieb. Dort ist eine Festplatte aus dem Raid 5 ...