none
Wie bekomme ich meine If Schleife die funktioniert in einen Workflow?

    Frage

  • Hallo,

    ich habe eine If Schleife gebaut die auch einbahnfrei läuft, nun muss ich das in einen Workflow bauen dann als Runbook in den Azure rein machen.

    Das Problem ist wie bekomme ich meine If-Schleife in einen Workflow rein damit es genau so weiter läuft. Ich hab enoch nie einen Workflow gebaut habe zwar seit einer Woche sehr viel darüber gelesen , aber ich kann meine Funktion nicht adaptieren, kann mir jemand helfen?

    Viele Grüße

    Montag, 9. Oktober 2017 14:49

Alle Antworten

  • Moin,

    wie wäre es, wenn Du konkrete Informationen liefern würdest? Code-Ausschnitte, Fehlermeldungen, so etwas halt...

    Die einzige adäquate Antwort auf die obige Frage wäre "If-Anweisungen funktionieren in Workflows".


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    Montag, 9. Oktober 2017 19:48
  • So sieht mein Workflow Skript aus. Sobald ich Workflow und Inlinescript weg lasse funktioniert es ohne Probleme,wobei ich nicht mal weis ob das Inlinescript richtig ist, ich habe im Internet überall gesucht aber konnte irgendwie mein skript nicht in ein Workflow rein bekommen.Fehler hab ich keine, wenn ich es lauffen lasse läuft es einmal ohne Fehler durch, aber als Aktion passiert nichts.

    Workflow Move-Computer {

    Param([Parameter(Mandatory=$true,Position=1)]
       [string]$computerName)

     

    Inlinescript {-PSComputername ($TargetComputer = $computerName) 
     
    If (-PSComputerName $TargetComputer -like "DEFRARZ1*")
    {Move-AdObject -identity "CN=DEFRARZ1PLTEST2,CN=Computers,DC=XXX,DC=eu" -TargetPath "OU=PROD,OU=Server,OU=DEFRARZ1,OU=EMEA,OU=Service-Region,DC=XXX,DC=eu"
     $GroupName = ("U-L-SRV-"+($TargetComputer))
     New-ADGroup -GroupScope DomainLocal -Name $GroupName -DisplayName $GroupName  -Path "OU=ServerGroups,OU=DEFRARZ1,OU=EMEA,OU=Service-Region,DC=XXX, DC=eu" -Verbose
                }

    elseif (-PSComputerName $TargetComputer -like "DEDREGLA*")
    {Move-AdObject -identity "CN=DEDREGLAPLTEST2,CN=Computers,DC=XXX,DC=eu" -TargetPath "OU=PROD,OU=Server,OU=DEDREGLA,OU=EMEA,OU=Service-Region,DC=XXX,DC=eu"
     $GroupName = ("U-L-SRV-"+($TargetComputer))
     New-ADGroup -GroupScope DomainLocal -Name $GroupName -DisplayName $GroupName  -Path "OU=ServerGroups,OU=DEDREGLA,OU=EMEA,OU=Service-Region,DC=XXX, DC=eu" -Verbose
                }

    elseif (-PSComputerName $TargetComputer -like "DESTRSIG*")
    {Move-AdObject -identity "CN=DESTRSIGPLTEST2,CN=Computers,DC=XXX,DC=eu" -TargetPath "OU=PROD,OU=Server,OU=DESTRSIG,OU=EMEA,OU=Service-Region,DC=XXX,DC=eu"
     $GroupName = ("U-L-SRV-"+($TargetComputer))
     New-ADGroup -GroupScope DomainLocal -Name $GroupName -DisplayName $GroupName  -Path "OU=ServerGroups,OU=DESTRSIG,OU=EMEA,OU=Service-Region,DC=XXX, DC=eu" -Verbose
                }


    else {(Write-Output "Dieses computer existiert nicht")}

    }}



    • Bearbeitet Uffy86 Dienstag, 10. Oktober 2017 12:08
    Dienstag, 10. Oktober 2017 11:39
  • Moin,

    nach einem raschen Blick in den Code (bitte nutze den Codeblock, wenn Du Code postest!) würde ich sagen, dass

    1. der Teil -PSComputername ($TargetComputer = $computerName) nur einmal vorhanden sein muss, und zwar nach der schließenden geschweiften Klammer des InlineScript.

    2. in die If-Klauseln -PSComputername nicht hineingehört, sondern nur das, was danach kommt.


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    Dienstag, 10. Oktober 2017 12:22
  • nun habe ich es so gemacht, aber hat sich wieder nichts getan, Normalerweise , wenn ich es Starte kommt eine abfrage nach dem Computernamen. Jetzt wenn ich es starte kommt kein Fehler es läuft einmal durch, aber passiert ist in dem AD wieder nichts die Computer werden nicht verschoben und neue Ordner werden auch nichts erstellt, die Abfrage kommt auch nicht damit das System weis welchen Computer er verschieben soll.

    Workflow Move-Computer {
    
    Param([Parameter(Mandatory=$true,Position=1)]
       [string]$computerName)
    
      
    
    Inlinescript {
    
    If ($TargetComputer -like "DEFRARZ1*") 
    {Move-AdObject -identity "CN=DEFRARZ1PLTEST2,CN=Computers,DC=MSTrain,DC=eu" -TargetPath "OU=PROD,OU=Server,OU=DEFRARZ1,OU=EMEA,OU=Service-Region,DC=MSTrain,DC=eu"
     $GroupName = ("U-L-SRV-"+($TargetComputer))
     New-ADGroup -GroupScope DomainLocal -Name $GroupName -DisplayName $GroupName  -Path "OU=ServerGroups,OU=DEFRARZ1,OU=EMEA,OU=Service-Region,DC=MSTrain, DC=eu" -Verbose
                }
    
    elseif ($TargetComputer -like "DEDREGLA*")
    {Move-AdObject -identity "CN=DEDREGLAPLTEST2,CN=Computers,DC=MSTrain,DC=eu" -TargetPath "OU=PROD,OU=Server,OU=DEDREGLA,OU=EMEA,OU=Service-Region,DC=MSTrain,DC=eu"
     $GroupName = ("U-L-SRV-"+($TargetComputer))
     New-ADGroup -GroupScope DomainLocal -Name $GroupName -DisplayName $GroupName  -Path "OU=ServerGroups,OU=DEDREGLA,OU=EMEA,OU=Service-Region,DC=MSTrain, DC=eu" -Verbose
                }
    
    elseif ($TargetComputer -like "DESTRSIG*")
    {Move-AdObject -identity "CN=DESTRSIGPLTEST2,CN=Computers,DC=MSTrain,DC=eu" -TargetPath "OU=PROD,OU=Server,OU=DESTRSIG,OU=EMEA,OU=Service-Region,DC=MSTrain,DC=eu"
     $GroupName = ("U-L-SRV-"+($TargetComputer))
     New-ADGroup -GroupScope DomainLocal -Name $GroupName -DisplayName $GroupName  -Path "OU=ServerGroups,OU=DESTRSIG,OU=EMEA,OU=Service-Region,DC=MSTrain, DC=eu" -Verbose
                }
    
    
    else {(Write-Output "Dieses computer existiert nicht")}
    
    }-PSComputerName ($TargetComputer = $computerName)
    
    }


    • Bearbeitet Uffy86 Dienstag, 10. Oktober 2017 13:25
    Dienstag, 10. Oktober 2017 13:25