Paramterübergabe an PowerShell Script
Hallo zusammen,
ich habe ein wenig mit PowerShell herumexperimentiert und bräuchte nun eine kleine Hilfestellung, da ich nicht mehr weiterkomme:
Per PS Befehl möchte ich die Beschreibung (eingetragenes Datum) der Useraccounts auslesen, dazu habe ich mir folgendes erarbeitet:
Get-ADUser -properties * -Filter 'Description -like "**.01.*"' | FT Name, Description
Das klappte auch soweit ganz gut und ich habe den Befehl in ein Script importiert, dass ich dann per CMD aufrufen kann
Script:
Get-ADUser -properties * -Filter 'Description -like "**.01.*"' | FT Name, Description
Der Aufruf per CMD erfolgt dann folgendermaßen: powershell.exe -command C:\test.ps1
Auch das funktioniert wunderbar.
Nun möchte ich im nächsten Schritt beim Aufruf des Scripts meinen Filter ändern.
Dazu wäre es mir am liebsten, wenn ich das Script mit dem Parameter JAN aufrufe, soll folgender Befehl ausgeführt werden:
Get-ADUser -properties * -Filter 'Description -like "**.01.*"' | FT Name, Description
Mit dem Parameter FEB soll folgender Befehl ausgeführt werden:
Get-ADUser -properties * -Filter 'Description -like "**.02.*"' | FT Name, Description
etc...
An dieser Stelle komme ich aber nicht mehr weiter. Geht das überhaupt? Wenn ja, wie?
Muss ich dann jeden einzelnen Befehl im Script als Variable definieren, oder kann ich auch nur die eine Zahl die geändert werden soll als Variable definieren?
Für ein wenig Hilfe wäre ich dankbar.
ich habe ein wenig mit PowerShell herumexperimentiert und bräuchte nun eine kleine Hilfestellung, da ich nicht mehr weiterkomme:
Per PS Befehl möchte ich die Beschreibung (eingetragenes Datum) der Useraccounts auslesen, dazu habe ich mir folgendes erarbeitet:
Get-ADUser -properties * -Filter 'Description -like "**.01.*"' | FT Name, Description
Das klappte auch soweit ganz gut und ich habe den Befehl in ein Script importiert, dass ich dann per CMD aufrufen kann
Script:
- Active-Directory-Befehle (AD-Modul) in PowerShell laden
- Variable für Zeilenumbruch definieren
Get-ADUser -properties * -Filter 'Description -like "**.01.*"' | FT Name, Description
Der Aufruf per CMD erfolgt dann folgendermaßen: powershell.exe -command C:\test.ps1
Auch das funktioniert wunderbar.
Nun möchte ich im nächsten Schritt beim Aufruf des Scripts meinen Filter ändern.
Dazu wäre es mir am liebsten, wenn ich das Script mit dem Parameter JAN aufrufe, soll folgender Befehl ausgeführt werden:
Get-ADUser -properties * -Filter 'Description -like "**.01.*"' | FT Name, Description
Mit dem Parameter FEB soll folgender Befehl ausgeführt werden:
Get-ADUser -properties * -Filter 'Description -like "**.02.*"' | FT Name, Description
etc...
An dieser Stelle komme ich aber nicht mehr weiter. Geht das überhaupt? Wenn ja, wie?
Muss ich dann jeden einzelnen Befehl im Script als Variable definieren, oder kann ich auch nur die eine Zahl die geändert werden soll als Variable definieren?
Für ein wenig Hilfe wäre ich dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 227386
Url: https://administrator.de/contentid/227386
Ausgedruckt am: 17.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Otaris,
kein Problem, die Parameterübergabe machst du so: (Dabei ist wichtig das param() in der ersten Zeile des Scriptes stehen muss)
Dein Script rufst du dann aus deiner CMD-Shell so auf:
Grüße Uwe
kein Problem, die Parameterübergabe machst du so: (Dabei ist wichtig das param() in der ersten Zeile des Scriptes stehen muss)
param (
[String] $par1
)
$filter = ""
switch($par1.ToUpper()){
"JAN"{ $filter = "*.01.*"}
"FEB"{ $filter = "*.02.*"}
# usw. ...
# im Falle das kein passender Wert angegeben wurde setze einen Default-Filter
default {$filter = "*"}
}
Get-ADUser -Filter "Description -like '$filter'" -properties * | ft Name, Description
powershell.exe -noexit C:\test.ps1 'JAN'
Zitat von @Otaris:
Hallo Uwe,
Vielen Dank schonmal für deine Unterstützung.
Hab es mal probiert, aber so ganz klappt es noch nicht.
Wenn ich das Script auch direkt in PS aufrufe erhalte ich immernoch eine Fehlermeldung und eine Abfrage nach
Würdest du mich da nochmal unterstützen?
ahh sorry, habe den -Filter Parameter vergessen, habs oben korrigiert ....Hallo Uwe,
Vielen Dank schonmal für deine Unterstützung.
Hab es mal probiert, aber so ganz klappt es noch nicht.
Wenn ich das Script auch direkt in PS aufrufe erhalte ich immernoch eine Fehlermeldung und eine Abfrage nach
Würdest du mich da nochmal unterstützen?
Grüße Uwe