Gerade bin ich neu in der Programmierwelt, also bitte vergib mir meine Unwissenheit. Ich habe Code ausgeschnitten/eingefügt, um zu versuchen, etwas über mich selbst zu sagen, aber ich bin irgendwie festgefahren.Wie überprüft man, ob eine Firewall-Regel über Powershell existiert, wenn nicht, Skript pausieren, bis es funktioniert?
Ich habe ein Powershell-Skript, das eine Azure ARM-Vorlage über Custom Script Extension ausführt, um eine Firewallregel zu installieren, und ich habe ein anderes .ps1-Skript, das ich nur ausführen möchte, wenn die Firewallregel aktiviert/installiert wurde.
Ich habe festgestellt, dass Sie 2x ps1-Skripte über Custom Script Extensions bereitstellen können, aber beide laufen zur gleichen Zeit, weshalb ich möchte, dass der 2. nur fortgesetzt/gestartet wird, sobald die Firewall-Regel erkannt wurde.
Hier ist, was ich bisher getestet haben, wenn die Regel existiert oder nicht:
$text = 'Hello World'
$r = Get-NetFirewallRule -DisplayName 'MY FIREWALL RULE NAME' -ErrorAction SilentlyContinue ; if ($r) {$text | Set-Content 'c:/temp/found.txt'} else {$text | Set-Content 'c:/temp/not-found.txt'}
#This sections is the continuation of the script when the rule has been found
$text | Set-Content 'c:/temp/helloword1.txt'
Also, was ich denke, wenn sie es nicht die Regel, dann Pause/Wiederholung bis tut gefunden hat, Sobald es die Regel gefunden hat, fahre fort/starte das Skript.
Ich ignoriere meine helloworld/found/not-found.txt-Dateien, wie erwähnt, ich habe diese verwendet, um die Lücken zu füllen, um herauszufinden, ob die Regel gefunden wird oder nicht.
Jede Hilfe würde sehr geschätzt werden.
ein 'while() {} 'wird nicht schlafen, wenn es das erste Mal gefunden wird. – ConnorLSW
Ja, aber er könnte es auf Variable speichern wollen, die Antwort, die ich direkt nach dem Speichern lol –
realisiert, während beide richtig sind, konnte ich leider nicht beide richtig machen. aber danke! macht das! meine das gleiche wie - nicht? – Beefcake