raven16
Goto Top

Powershell-Skript aus der CMD starten

Hi,

irgendwie bekomme ich es nicht hin, ein Powershell-Skript aus einer Command-Line (CMD) zu starten, wenn sich in der Pfadangabe ein Leerzeichen befindet. Zur Kontrolle habe ich im Powershell-Skript ein echo eingebaut, damit ich sehen kann, ob der Inhalt aus dem Skript in der CMD auftaucht.

C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile &'C:\Program Files\HP\hponcfg\changepw.ps1'  

Die Ausgabe die ich in der CMD bekomme:
C:\Program Files\HP\hponcfg>C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile   & 'C:\Program Files\HP\hponcfg\changepw.ps1'  
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Program Files\HP\hponcfg> Get-ChildItem

Der startet zwar die Powershell, aber führt mein Skript nicht aus.

Danke face-smile

Content-ID: 196997

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

Ausgedruckt am: 26.11.2024 um 04:11 Uhr

catachan
catachan 15.01.2013 um 11:52:05 Uhr
Goto Top
Hi

auf was steht die ExecutionPolicy ? Vielleicht muss diese extra eingestellt werden wenn du den Parameter -NoProfile verwendest

LG
raven16
raven16 15.01.2013 um 13:07:03 Uhr
Goto Top
Zitat von @catachan:
Hi

auf was steht die ExecutionPolicy ? Vielleicht muss diese extra eingestellt werden wenn du den Parameter -NoProfile verwendest

LG

Danke für die Rückmeldung. Ich denke mal an der Policy wird es nicht liegen, weil ich auf dem gleichen Server schon ein anderes Skript ohne Leerzeichen im Dateipfad über -NoProfile aufrufe
106543
106543 15.01.2013 um 13:32:25 Uhr
Goto Top
Zitat von @raven16:
Hi,

Hallöchen face-smile

irgendwie bekomme ich es nicht hin, ein Powershell-Skript aus einer Command-Line (CMD) zu starten, wenn sich in der Pfadangabe ein
Leerzeichen befindet. Zur Kontrolle habe ich im Powershell-Skript ein echo eingebaut, damit ich sehen kann, ob der Inhalt aus dem
Skript in der CMD auftaucht.

> C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile &'C:\Program Files\HP\hponcfg\changepw.ps1'  
> 

Die Ausgabe die ich in der CMD bekomme:
> C:\Program Files\HP\hponcfg>C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile   & 'C:\Program  
> Files\HP\hponcfg\changepw.ps1'  
> Windows PowerShell
> Copyright (C) 2009 Microsoft Corporation. All rights reserved.
> 
> PS C:\Program Files\HP\hponcfg> Get-ChildItem
> 

Der startet zwar die Powershell, aber führt mein Skript nicht aus.

Danke face-smile


Ich frage mich grade, wo diese Zeile herkommt, wenn dein Skript nicht ausgeführt wird ;)
PS C:\Program Files\HP\hponcfg> Get-ChildItem

Gerne face-smile
Grüße
Exze
raven16
raven16 21.01.2013 um 11:12:03 Uhr
Goto Top
Ich frage mich grade, wo diese Zeile herkommt, wenn dein Skript nicht ausgeführt wird ;)
> PS C:\Program Files\HP\hponcfg> Get-ChildItem
> 

Gerne face-smile
Grüße
Exze

Danke für den Hinweis & sry, ja diese Zeile in meiner .cmd-Datei bewirkt schon, dass Powershell gestartet wird, aber mein Skript läuft nicht durch.
Habe in meinem Skript zum Test
echo "########################################"  
eingebaut, um zu gucken, ob der mein Skript durchläuft, aber dies wird leider nicht ausgegeben in der Console.
106543
106543 21.01.2013 um 11:26:17 Uhr
Goto Top
Hi,

wie wärs wenn du dein Script mal postest ?
Ich denke dann muss der Fehler im Script liegen und nicht im Aufruf.

Grüße
Exzellius
raven16
raven16 21.01.2013 aktualisiert um 11:34:55 Uhr
Goto Top
Zitat von @106543:
Hi,

wie wärs wenn du dein Script mal postest ?
Ich denke dann muss der Fehler im Script liegen und nicht im Aufruf.

Grüße
Exzellius

Das Skript ist nicht sehr kompliziert. Aber kanns gerne zeigen
C:\Program Files\HP\hponcfg\changepw.cmd
C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile &'C:\Program Files\HP\hponcfg\changepw.ps1'  
PAUSE
C:\Program Files\HP\hponcfg\changepw.ps1
echo "PS-Skript wurde gestartet."  
cd "C:\Program Files\HP\hponcfg"  
echo "########################################"  

## Read ilocfg.xml
[xml]$ilocfg = get-content .\ilocfg.xml

## Change Password
$ilocfg.RIBCL.LOGIN.USER_INFO.ADD_USER.PASSWORD = "test12345"  
$ilocfg.save("C:\Program Files\HP\hponcfg\ilocfg.xml")  
106543
106543 21.01.2013 um 11:45:56 Uhr
Goto Top
Hi,

tu mir mal einen gefallen und erklär mir, warum er dir "PS-Script wurde gestartet" nicht ausgibt, allerdings den Pfad ändert ?
Ersetz mal "echo" durch "Write-Host".

Grüße
Exzellius
raven16
raven16 21.01.2013 um 11:58:12 Uhr
Goto Top
Zitat von @106543:
Hi,

tu mir mal einen gefallen und erklär mir, warum er dir "PS-Script wurde gestartet" nicht ausgibt, allerdings den
Pfad ändert ?
Ersetz mal "echo" durch "Write-Host".

Grüße
Exzellius

Ich habe es jetzt mal auf die Spitze getrieben:
cmd-Skript (liegt im gleichen Verzeichnis wie das PS-Skript)
C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile &'C:\Program Files\HP\hponcfg\changepw.ps1'  
PAUSE
ps-Skript (Hab alles außer Write-Host entfernt)
Write-Host "PS-Skript wurde gestartet."  
Ausgabe:
C:\Program Files\HP\hponcfg>C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile & 'C:\Program Files\HP\hponcfg\changepw.ps1'Windows PowerShellCopyright (C) 2009 Microsoft Corporation. All rights reserved.PS C:\Program Files\HP\hponcfg>


Der startet nur Powershell und startet danach das Skript nicht.
Das CMD-Skript läuft aber auch nicht bis zum Ende durch, weil sonst durch PAUSE noch einmal eine beliebige Taste braucht damit er das Fenster wiedeer schließt.
106543
106543 21.01.2013 um 12:29:26 Uhr
Goto Top
Hi,

hab leider keine PowerShell-Konsole hier zum testen (XP Client -_-). Versuch mal Folgendes anstatt deinem Aufruf:
C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile "C:\Program Files\HP\hponcfg\changepw.ps1"  
raven16
raven16 21.01.2013 um 14:34:41 Uhr
Goto Top
C:\Program Files\HP\hponcfg>C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile "C:\Program Files\HP\hponcfg\changepw.ps1"The term 'C:\Program' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path wasincluded, verify that the path is correct and try again.

Da stört ihn leider dieses verdammte Leerzeichen. Ich kann aber Program Files auch nicht einfach unbenennen. Oder ich muss gucken, dass ich das Skript vielleicht woanders ablegen kann und dann in das Verzeichnis mit cd wechsel
106543
106543 21.01.2013 um 14:41:25 Uhr
Goto Top
Hi,

hmmmm da weiß ich leider nicht mehr weiter.
Entschuldigung, vll sollte sich dass nochmal ein anderer User ansehen. So ein Experte in Sachen Powershell bin ich auch nicht.

Grüße
Exzellius
raven16
raven16 22.01.2013 um 09:16:03 Uhr
Goto Top
Zitat von @106543:
Hi,

hmmmm da weiß ich leider nicht mehr weiter.
Entschuldigung, vll sollte sich dass nochmal ein anderer User ansehen. So ein Experte in Sachen Powershell bin ich auch nicht.

Grüße
Exzellius

Danke trotzdem für die Bemühungen.
Es liegt auf jedenfall nur an den Leerzeichen im Dateipfad, wo das PS-Skript sich befindet.
Rufe ich das Skript an einem Ort auf, wo kein Leerzeichen im Pfad ist, funktionierts...

Falls jemand also noch eine Lösung dafür für mich hat immer her damit face-smile
106543
106543 22.01.2013 um 09:35:44 Uhr
Goto Top
Hi nochmal,

letzter Versuch ;)
probier folgenden Aufruf:
C:\WINNT\system32\windowspowershell\v1.0\powershell.exe -NoProfile & "C:\Program Files\HP\hponcfg\changepw.ps1"  

Grüße
Exzellius