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

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

Printed on: April 24, 2024 at 17:04 o'clock

Member: SlainteMhath
SlainteMhath Apr 06, 2018 at 10:30:26 (UTC)
Goto Top
Moin,

mit dem üblichen ^ geht's nicht?

lg,
Slainte
Member: emeriks
emeriks Apr 06, 2018 at 10:35:31 (UTC)
Goto Top
Doppel "" ?

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

E.
Member: Nagus
Nagus Apr 06, 2018 at 10:43:23 (UTC)
Goto Top
Nö - Parser Fehler ...
Mitglied: 135799
Solution 135799 Apr 06, 2018 updated at 10:55:12 (UTC)
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
Member: Nagus
Nagus Apr 06, 2018 at 10:47:04 (UTC)
Goto Top
meinst Du so?

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


das klappt auch nicht ...
Member: Nagus
Nagus Apr 06, 2018 at 10:49:01 (UTC)
Goto Top
Das wars!
Member: Nagus
Nagus Apr 06, 2018 at 12:16:40 (UTC)
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
Member: NetzwerkDude
NetzwerkDude Apr 07, 2018 at 10:35:35 (UTC)
Goto Top
Ja mei, ist eben ein Forum und keine Lösungsmaschine, chill mal
Member: emeriks
emeriks Apr 07, 2018 at 18:12:51 (UTC)
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?
Member: Nagus
Nagus Apr 09, 2018 at 09:24:39 (UTC)
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