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-Key: 196997

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

Printed on: April 20, 2024 at 04:04 o'clock

Member: catachan
catachan Jan 15, 2013 at 10:52:05 (UTC)
Goto Top
Hi

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

LG
Member: raven16
raven16 Jan 15, 2013 at 12:07:03 (UTC)
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
Mitglied: 106543
106543 Jan 15, 2013 at 12:32:25 (UTC)
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
Member: raven16
raven16 Jan 21, 2013 at 10:12:03 (UTC)
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.
Mitglied: 106543
106543 Jan 21, 2013 at 10:26:17 (UTC)
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
Member: raven16
raven16 Jan 21, 2013 updated at 10:34:55 (UTC)
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")  
Mitglied: 106543
106543 Jan 21, 2013 at 10:45:56 (UTC)
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
Member: raven16
raven16 Jan 21, 2013 at 10:58:12 (UTC)
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.
Mitglied: 106543
106543 Jan 21, 2013 at 11:29:26 (UTC)
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"  
Member: raven16
raven16 Jan 21, 2013 at 13:34:41 (UTC)
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
Mitglied: 106543
106543 Jan 21, 2013 at 13:41:25 (UTC)
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
Member: raven16
raven16 Jan 22, 2013 at 08:16:03 (UTC)
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
Mitglied: 106543
106543 Jan 22, 2013 at 08:35:44 (UTC)
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