Créer une fonction avec des variables d'appel optionnelles
Est-il un moyen pour créer un paramètre dans une fonction PowerShell où il faut l'appeler afin qu'elle soit considérée comme?
Un exemple donné par commandlet (le gras étant ce que je veux faire):
Invoke-Command
-computername
Server01
-Scriptblock
{...}
Voici un exemple de ce que je veux faire avec la fonction
Function DoStuff($computername, -arg2, -domain $domain)
Test-parameter(-domain) if (-domain -eq $true) {
use $domain
}
Else {
$domain = "Domain1"
}
test-parameter($arg2) {
if ($arg2 -eq $true) {
Do something
}
else {
Do the opposite
}
}
Donc en résumé:
Si "-arg2" est présent, je veux quelque chose de se produire dans le script. Si "Domaine" est présent et a une dispute avec elle, je veux que, pour être utilisé au lieu de l'ensemble de l'argument.
source d'informationauteur user100541
Vous devez vous connecter pour publier un commentaire.
Powershell offre beaucoup de la prise en charge intégrée pour le paramètre commun scénarios, y compris les paramètres obligatoires, les paramètres facultatifs, "switch" (aka drapeau) les paramètres et les "jeux de paramètres."
Par défaut, tous les paramètres sont optionnels. La plupart approche de base est tout simplement de vérifier chacune de
$null
puis de mettre en œuvre quelle que soit la logique que vous voulez à partir de là. C'est essentiellement ce que vous avez déjà montré dans votre exemple de code.Si vous voulez vous renseigner sur toutes les spéciales de soutien que Powershell peut vous donner, consultez ces liens:
about_Functions
about_Functions_Advanced
about_Functions_Advanced_Parameters
Je ne pense pas que votre question est très claire, ce code suppose que si vous allez inclure le paramètre de domaine, c'est toujours " nom " (c'est à dire dostuff computername arg2 -domaine du domaine), ce qui est également le nom de l'ordinateur paramètre obligatoire.
Pas sûr de comprendre la question correctement.
De ce que je comprends, vous voulez être en mesure d'assigner une valeur à un Domaine si elle est nulle et aussi ce que pour vérifier si $args2 est fourni et en fonction de la valeur, d'exécuter un certain code?
J'ai changé le code pour réassembler les hypothèses formulées ci-dessus.
N'a que de l'aide?
Je suis tombé sur cette question dans ma recherche d'une réponse à le même problème. J'ai trouvé un magnifique aperçu/tutoriel, que je tiens à partager avec vous, les futurs voyageurs:
PowerShell ABC - P est pour les Paramètres