2016-11-09 5 views
-3

Also habe ich dieses Skript, das einen Snap-Mirror auf unserem DR-Server basierend auf seinem Speicherort erstellt. Unten ist nur ein kleiner Teil eines Skripts. Ich muss eine if-Anweisung schreiben, wenn location = 'uk' dann die untenstehende Funktion nicht ausführen, andernfalls wenn location = 'us', dann snap-mirror erstellen.Benötigen Sie Hilfe beim Schreiben von if-Anweisung in PowerShell

function Create-SnapMirror { 
    [CmdletBinding(PositionalBinding=$false, 
        HelpUri='http://www.microsoft.com/', 
        ConfirmImpact='Medium')] 
    [OutputType([Boolean])] 
    Param(
     [Parameter(Mandatory=$true, 
        ValueFromPipeline=$true, 
        ValueFromPipelineByPropertyName=$true, 
        ValueFromRemainingArguments=$false, 
        Position=0)] 
     [ValidateNotNull()] 
     [ValidateNotNullOrEmpty()] 
     [String]$SourcePath, 

     [Parameter(Mandatory=$true, 
        ValueFromPipeline=$true, 
        ValueFromPipelineByPropertyName=$true, 
        ValueFromRemainingArguments=$false, 
        Position=1)] 
     [ValidateNotNull()] 
     [ValidateNotNullOrEmpty()] 
     [String]$DestinationPath, 

     [Parameter(Mandatory=$true, 
        ValueFromPipeline=$true, 
        ValueFromPipelineByPropertyName=$true, 
        ValueFromRemainingArguments=$false, 
        Position=2)] 
     [ValidateNotNull()] 
     [ValidateNotNullOrEmpty()] 
     [String]$LogName 
    ) 

    $success = $null 
    $error.Clear() 
} 
+0

Woher kommt der 'Standort'? – TessellatingHeckler

+0

es ist ein Parameter, der vom Benutzer eingegeben werden würde, der das Skript ab diesem Moment nur 2 Standorte existiert uns oder Großbritannien – Jesus

Antwort

1

Unter der Annahme, dass die Logik außerhalb der Funktion erforderlich ist, können Sie dies erreichen, indem er einfach in der if-Anweisung den Funktionsaufruf Einkapselung wie folgt:

if($Location -eq 'us') { Create-SnapMirror -SourcePath $MySourcePath -DestinationPath $MyDestinationPath -LogName $MyLogName } 

Wenn Sie jedoch die Lage überprüfen möchten innerhalb die Funktion, die Sie zuerst benötigen, um den Standort entweder von den Eingabeparametern oder von einer anderen Methode zu erhalten. Unter der Annahme, dass Sie die Position in einer Variablen namens $ Ort haben, können Sie einfach fügen Sie den folgenden in Ihrer Funktion vor jeder anderen Aktion:

if($Location -ne 'us') { return } 

Dies wird die Funktion verlassen; Sie können weitere Aktionen hinzufügen, z. B. die Protokollierung innerhalb der Klammer.

Verwandte Themen