Uso dei comandi di PowerShell senza alcun parametro


0

Come indicato qui nella sintassi della guida di PowerShell:

I parametri possono essere obbligatori o facoltativi. In un diagramma di sintassi, gli elementi opzionali sono racchiusi tra parentesi ([]).

Quindi in un comando come Set-NetIPAddressindicato:

NAME
    Set-NetIPAddress

SYNOPSIS
    Modifies the configuration of an IP address.


SYNTAX
    Set-NetIPAddress [[-IPAddress] [<String[]>]] [-AddressFamily [<AddressFamily[]>]] [-AddressState
    [<AddressState[]>]] [-CimSession [<CimSession[]>]] [-IncludeAllCompartments] [-InterfaceAlias [<String[]>]]
    [-InterfaceIndex [<UInt32[]>]] [-PassThru] [-PolicyStore [<String>]] [-PreferredLifetime [<TimeSpan>]]
    [-PrefixLength [<Byte>]] [-PrefixOrigin [<PrefixOrigin[]>]] [-SkipAsSource [<Boolean>]] [-SuffixOrigin
    [<SuffixOrigin[]>]] [-ThrottleLimit [<Int32>]] [-Type [<Type[]>]] [-ValidLifetime [<TimeSpan>]] [-Confirm]
    [-WhatIf] [<CommonParameters>]

    Set-NetIPAddress [-CimSession [<CimSession[]>]] [-PassThru] [-PreferredLifetime [<TimeSpan>]] [-PrefixLength
    [<Byte>]] [-SkipAsSource [<Boolean>]] [-ThrottleLimit [<Int32>]] [-ValidLifetime [<TimeSpan>]] [-Confirm]
    [-WhatIf] [<CommonParameters>]

non ci sono parametri necessari ma a che serve eseguire questo comando e molti altri senza parametri durante l'esecuzione che non hanno risultati ovvi solo andando a un nuovo prompt?


Poiché si tratta di un Set-*cmdlet, non esiste alcun motivo per eseguirlo senza parametri. Ma qual è la tua vera domanda? La logica per il Set-NetIPAddressè probabilmente che non volevi cambiare nulla e come tale tutto ha avuto successo. Quale uscita ti aspettavi?
Seth,

Sono solo curioso a riguardo. Inoltre ricordo che c'era un comando che non aveva alcun parametro necessario nella sintassi ma che lo eseguiva senza alcun parametro genera un errore. Non me lo ricordavo ora.
Harsini,

Non troverai una risposta universale a questo in quanto dipende dalla persona che ha scritto il cmdlet. Molti cmdlet che richiedono un set di parametri ti chiederanno semplicemente se non fornisci tali parametri (purché vengano chiamati autonomi). Almeno questa è la mia esperienza.
Seth,

-InputObjectè necessario per set-netipaddresscome visto durante la corsaget-help set-netipaddress -full
SimonS

se fosse necessario, dovrebbe essere restituito un messaggio di errore quando si utilizza senza alcun parametro.
Harsini,

Risposte:


0

Due cose.

  1. Immagino, come la maggior parte dei cmdlet di PowerShell, che tu sia in grado di passare alcuni di quei valori sulla pipeline (ad esempio, reindirizzato da un altro comando prima di questo - '192.168.1.3' | Set-NetIPAddress). Nel qual caso non ci sarebbero parametri forniti nel senso tradizionale della parola.

  2. Penso che ciò che vedi potrebbe essere una limitazione nei diagrammi di sintassi di PowerShell. Immagino che dovresti fornire almeno uno di questi parametri, ma nessuno in particolare è richiesto che li rende tutti "opzionali" in un certo senso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.