Powershell Befehl in einer Batch ausführen
Hallo zusammen,
ich habe eine Batchdatei in der ich Powershell Befehle ausführen möchte.
Leider funktioniert das nicht wie gewünscht. Wenn ich die Befehle in einer separaten *.ps1 Datei speicher, funktioniert das.
ich habe eine Batchdatei in der ich Powershell Befehle ausführen möchte.
Leider funktioniert das nicht wie gewünscht. Wenn ich die Befehle in einer separaten *.ps1 Datei speicher, funktioniert das.
@echo off
powershell -Executionpolicy ByPass -noexit -Command $name = Read-Host -Prompt 'Computername eingeben '
powershell -Executionpolicy ByPass -noexit -Command $dom = Read-Host -Prompt 'Dom„nennamen eingeben '
powershell -Executionpolicy ByPass -noexit -Command Add-Computer -DomainName $dom -NewName $name -Force -Restart
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1200322315
Url: https://administrator.de/forum/powershell-befehl-in-einer-batch-ausfuehren-1200322315.html
Ausgedruckt am: 22.12.2024 um 16:12 Uhr
7 Kommentare
Neuester Kommentar
Moin,
works as designed!
Zeil 1: du startest die Powershell, definierst die Variable $name und schließt die Powershell wieder - die Daten sind alle weg
Zeil 2: du startest die Powershell, definierst die Variable $dom und schließt die Powershell wieder - die Daten sind alle weg
Zeil 3: du startest die Powershell, willst auf Variablen zugreifen, die es nicht (mehr) gibt und schließt die Powershell - nichts passiert.
erstelle entweder ALLES in einer *.ps1 oder ALLES in Batch. Tipp: Nimm ersteres
Gruß
em-pie
Edit: etwas Typo
works as designed!
Zeil 1: du startest die Powershell, definierst die Variable $name und schließt die Powershell wieder - die Daten sind alle weg
Zeil 2: du startest die Powershell, definierst die Variable $dom und schließt die Powershell wieder - die Daten sind alle weg
Zeil 3: du startest die Powershell, willst auf Variablen zugreifen, die es nicht (mehr) gibt und schließt die Powershell - nichts passiert.
erstelle entweder ALLES in einer *.ps1 oder ALLES in Batch. Tipp: Nimm ersteres
Gruß
em-pie
Edit: etwas Typo
@echo off
powershell -EP ByPass -noexit -C "Add-Computer -DomainName (Read-Host 'Domainnennamen eingeben') -NewName (Read-Host 'Computername eingeben') -Force -Restart"
Moin Moin
em-pie hat recht.
Du BIST in der CMD Umgebung.
Dann wechselst du in die Powershell Umgebung.
Dort kannst du Sachen Machen und auch definieren.
Aber die Variablen worein Du schreibst müssen vorher vorhanden sein.
Es sind unterschiedliche Umgebungen die nur sehr wenig miteinander zu tun haben.
Ich bin zwar auch mehr in der CMD Umgebung gehaftet, Aber bisher sehe Ich keinerlei Argument nicht bei PS zu bleiben.
em-pie hat recht.
Du BIST in der CMD Umgebung.
Dann wechselst du in die Powershell Umgebung.
Dort kannst du Sachen Machen und auch definieren.
Aber die Variablen worein Du schreibst müssen vorher vorhanden sein.
Es sind unterschiedliche Umgebungen die nur sehr wenig miteinander zu tun haben.
Ich bin zwar auch mehr in der CMD Umgebung gehaftet, Aber bisher sehe Ich keinerlei Argument nicht bei PS zu bleiben.
Willst du mehrere Codezeilen zusamnenfassen trenne diese mittels Semikolon (;) voneinander. Alternativ kann man auch Zeilenumbrüche in ner Batch verwenden, muss diese dann aber mit ^ escapen usw, alles nicht sehr schön, besser gleich endlich auf reine ps1 umsteigen.