nagus
Goto Top

PowerShell Script läuft nicht in CMD

Hi zusammen,

ich stolpere gerade über folgendes Problem:

Ich möchte Software Verteilungsgruppen aus dem AD auslesen und dann die Member zählen. Beide Aufrufe funktionieren in der PowerShell. Beim Batch scheitere ich jedoch schon beim ersten Aufruf.

PowerShell -ExecutionPolicy Bypass -Command "& Get-ADgroup -Filter "name -like 'Software*'" | select -exp name"  

Ich vermute das mein Problem bei den Anführungszeichen nach dem -Filter liegt - finde aber nirgends einen Hinweis wie ich das maskieren kann.

Hier die Fehlermeldung
Get-ADGroup : Es wurde kein Parameter gefunden, der dem Parameternamen "like" entspricht.  
In Zeile:1 Zeichen:28
+ & Get-ADgroup -Filter name -like 'Software*'  
+                            ~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ADGroup], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADGroup

Vorab schon einmal für Eure Hilfe!
Nagus

Content-ID: 370365

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

Ausgedruckt am: 05.11.2024 um 04:11 Uhr

SlainteMhath
SlainteMhath 06.04.2018 um 12:30:26 Uhr
Goto Top
Moin,

mit dem üblichen ^ geht's nicht?

lg,
Slainte
emeriks
emeriks 06.04.2018 um 12:35:31 Uhr
Goto Top
Doppel "" ?

PowerShell -ExecutionPolicy Bypass -Command "& Get-ADgroup -Filter ""name -like 'Software*'"" | select -exp name"

E.
Nagus
Nagus 06.04.2018 um 12:43:23 Uhr
Goto Top
Nö - Parser Fehler ...
135799
Lösung 135799 06.04.2018 aktualisiert um 12:55:12 Uhr
Goto Top
Du hast mehrere Fehler ... Das & gehört in die Tonne und die Anführungszeichen escaped:
PowerShell -ExecutionPolicy Bypass -Command "Get-ADGroup -Filter \"name -like 'Software*'\" | select -exp name"  
Schon witzig wie die Leute hier im Dunkeln stochern, nur damit sie irgendein nutzloses Kommentar abgeben können obwohl sie keine Ahnung vom Thema haben ....

Schnuffi
Nagus
Nagus 06.04.2018 um 12:47:04 Uhr
Goto Top
meinst Du so?

PowerShell -ExecutionPolicy Bypass -Command "& Get-ADgroup -Filter ^"name -like 'software*'"^"


das klappt auch nicht ...
Nagus
Nagus 06.04.2018 um 12:49:01 Uhr
Goto Top
Das wars!
Nagus
Nagus 06.04.2018 um 14:16:40 Uhr
Goto Top
Super - Danke!!

Das ein Slash vor "name -like ... gehört wusste ich nicht. Im Buch war es auch ohne und das Script ist in der PSC gelaufen.

Wieder was gelernt face-smile
NetzwerkDude
NetzwerkDude 07.04.2018 um 12:35:35 Uhr
Goto Top
Ja mei, ist eben ein Forum und keine Lösungsmaschine, chill mal
emeriks
emeriks 07.04.2018 um 20:12:51 Uhr
Goto Top
Das ein Slash vor "name -like ... gehört wusste ich nicht. Im Buch war es auch ohne und das Script ist in der PSC gelaufen.
Dem ist ja auch nicht so.
Der Backslash muss nur vor das " . Und das auch nur deshalb, damit die Powershell.exe beim Auswerten der Kommandozeilenparameter weiß, dass beim " vor dem "name" der Parameter nicht aufhört sondern weitergeht. Einfach wie ein Programm "denken":
" kommt --> Parameter fängt an.
Erneut kommt " --> Parameter hört auf.
Damit dem nicht so ist, gibt es das "\", um solche Zeichen als "zum String gehörend" zu kennzeichnen. Das "Script" (es ist ja kein Script sondern nur ein simpler Einzeiler) führst Du doch in der Shell ohne umrahmenden " aus, oder?
Nagus
Nagus 09.04.2018 um 11:24:39 Uhr
Goto Top
Hi emeriks,

naja - wird mehr als ein Einzeiler. Wird eine Auswertung um die von Computer in der AD zu einzelnen Gruppen zu zählen.

Da ich mich erst seit zwei Tagen mit Power Shell beschäftige etwas holprig.

Danke aber für den Hinweis, der wird mir noch helfen face-smile