Wie gebe ich ein array oder eine Liste als parameter, um eine PowerShell-Funktion?

Schreibe ich ein PowerShell-Skript, um eine Liste der Zertifikate, die abgelaufen ist, innerhalb von 30 Tagen. Das Skript ist funktionsfähig, aber das problem ist es gibt zu viele app-und-pres-Server, und ich möchte zu minimieren, die Skript-code. Meine Funktion ist:

function CheckCert($ComputerNames)
{
    $deadline = (Get-Date).AddDays($global:threshold) # Set deadline date
    Invoke-Command -ComputerName $ComputerNames { Dir Cert:\LocalMachine\My } |
        foreach {
            If ($_.NotAfter -le $deadline)
            {
                $_ | Select Issuer, Subject, NotAfter, @{Label="Expires In (Days)";Expression={($_.NotAfter - (Get-Date)).Days}}
            }
        }
}

Und ich bin dem Aufruf dieser Funktion wie:

Switch ($xMenu1)
{
    1 {CheckCert -ComputerNames "CUKIRUNCSVR0242"}
    2 {CheckCert}
    3 {CheckCert}
    ...

Möchte ich weitergeben ComputerNames wie serv1, serv2, serv3 und diese Anzahl von Servern kann variieren von 1 bis 6 je nach der ausgewählten option aus dem Menü. **ODER Kann ich definieren, eine Liste von Servern, von verschiedenen envirinments und übergeben Sie den Namen der Liste als parameter, und ändern Sie meine CheckCert Funktion Durchlaufen für jeden server, und bekommen Sie das abgelaufene Zertifikat details?

Switch ($xMenu1)
{
    1 {CheckCert -ComputerNames CIT_envList}
    2 {CheckCert -ComputerNames SIT_envList}
    3 {CheckCert -ComputerNames Prod_envList}
    ...

Und Ihre server-Listen sind so etwas wie:

CIT_envList = serv1, serv2

SIT_envList = serv1, serv2, serv3,

PROD_envList = serv1, serv2, serv3, serv4
InformationsquelleAutor nectar | 2014-03-26
Schreibe einen Kommentar