PowerShell Powershell Skript bleibt bei der Ausführung stehen

Reinhard77

Lieutenant
Registriert
Feb. 2019
Beiträge
904
Hallo,

ich arbeite an einem Powershell Skript, welches einfach an bestimmten Stellen stehenbleibt und ich weiß nicht wieso.
Das passiert z.B. in einem Fall dann, wenn das Windowsfeature SMB installiert wird.
Ich sehe da keinen Fehler und würde gern wissen, woran das liegen kann?

Danke schonmal für eure Tipps.
 
Rück raus das Skript oder lass es sein...
 
Ich kann diese Arbeit hier nicht posten, da ich es hier nicht auf dem Rechner habe, von dem ich hier schreibe. Aber im Grunde sind es doch immer die gleichen Befehle, die für solche Fälle zum Einsatz kommen, wie z.B.

PowerShell:
Install-WindowsFeature -Name Web-Server

Ich dachte da evtl. an diverse Versionsunterschiede, dass dieses Feature in unterschiedlichen Windowsversionen unterschiedliche Versionen haben kann, da das Skript für mehreren Windwos 10 Versionen gemacht ist.
 
Zuletzt bearbeitet:
ohne irgendwas kann hier keiner Helfen...
was bekommst Du denn für Meldungen?
 
Das passiert z.B. in einem Fall dann, wenn das Windowsfeature SMB installiert wird.
Nun da wird wohl auch die Netzwerkverbindug neu gestartet.
Alternativ gibt auch folgenden Befehl:
dism /online /norestart /Enable-Feature /FeatureName:Web-Server
 
redjack1000 schrieb:
Dann solltest du Verständnis dafür haben, das ohne genaue Beschreibung bzw. Code, keine Hilfe möglich ist.

CU
redjack

Hier ist der Code (ist übrigens doch mit einem DISM Befehl realisiert):

PowerShell:
if((Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol).State -eq "Enabled"){
    Write-Host "SMB1 bereits installiert"
} else {
    DISM /online /enable-feature /featurename:SMB1Protocol /LimitAccess | Out-Null
    Write-Host "SMB1 installiert"
}
 
Wenn dein Script genau an dieser Stelle ohne Meldung hängen bleibt, führe doch mal den DISM Befehl ohne das Script drumherum und ohne "| out-null" aus und schau was passiert.
 
dein Skript bleibt "stehen" weil "Get/Enable-WindowsOptionalFeature" sich behäbig verhält. Darüber hinaus ist da ein CMD innerhalb der PS, das sollte man immer vermeiden.

hier der gefixte code
PowerShell:
if ((Get-SmbServerConfiguration).EnableSMB1Protocol) {
    'SMB1 bereits installiert'
}else {
    'SMB1 wird installiert...'
    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    'SMB1 ist vollständig  installiert worden'
}
 
Zurück
Oben