Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Antworten
IvicaE
Beiträge: 136
Registriert: 13 Sep 2016, 14:10

Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von IvicaE »

Hallo Leute,

ich habe hier ein Problem.
Ich möchte auf einigen unserer Windows 10 Rechner das SMBv1-Protokoll wieder einschalten weil wir das noch eine Zeit lang benötigen.
Ich habe auch schnell eine Vorgehensweise gefunden die in der CMD auch super funktioniert:

Code: Alles auswählen

dism /online /enable-feature /FeatureName:SMB1Protocol /All
Danach werde ich noch gefragt ob ich das System neu Starten möchte (Y/N) und erledigt.

Implementiere ich das in ein winst-script funktioniert es nicht und bleibt immer hängen bei der Stelle:
Call "dism.exe /online /enable-feature /FeatureName:SMB1Protocol /All"
Waiting until the called process is finished
Start process as invoker: Username
Und da bleibt es unendlich lang stehen.
(Übrigens: Username wurde geändert. Da steht in der manuellen Winst-Ausführung mein Benutzername und der ist Administrator)

Ich führe es in der winbatch aus, habe aber auch bereits ExecWith Pfad-Zur-cmd C: (32 und 64 Bit) probiert und jedes mal das selbe Problem...

Code: Alles auswählen

Winbatch_install /SysNative
Sub_check_exitcode
ExitWindows /Reboot

[Winbatch_install]
dism.exe /online /enable-feature /FeatureName:SMB1Protocol /All
Als auch

Code: Alles auswählen

ExecWith_dism "%systemroot%\cmd64.exe" /C
Sub_check_exitcode
ExitWindows /Reboot

[ExecWith_dism]
dism.exe /online /enable-feature /FeatureName:SMB1Protocol /All

Ich vermute mal jetzt daß es eventuell daran scheitert daß der Prozess nun im Hintergrund auf die Eingabe von Y oder N wartet auf die Frage ob das System neu gestartet werden soll?
Könnte das der Grund sein?
Wenn ja: wie lösen?
Wenn nein: was dann?

Ich hoffe auf eure Hilfe und bedanke mich schon einmal im Voraus für eure Mühe!
IvicaE
Beiträge: 136
Registriert: 13 Sep 2016, 14:10

Re: Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von IvicaE »

Ich habe es nun mit dem DISM-Parameter "/quiet" ausprobiert und der eigentliche Vorgang des Installierens / Deinstallierens hat auch geklappt.
Da aber Windows SOFORT nach dem Ausführen und ohne Zutun von OPSI das System neu startet, bekommt OPSI bzw. die Protokollierung von OPSI das gar nicht mit und im configed steht dann 'failed'.

Also entweder gibt es eine Lösung ohne diesen quiet-Parameter in DISM (z.B. ich gebe ein N für No Restart in der CMD mit und Reboote das System selber im Script) oder ich schaffe es nach dem Neustart OPSI mitzuteilen das alles ok ist.

Jemand eine Lösung?
uncle_scrooge
Beiträge: 650
Registriert: 21 Feb 2012, 12:03
Wohnort: Mainz

Re: Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von uncle_scrooge »

Häng' noch ein /norestart dran. Und sorge für den notwendigen Neustart selber.
IvicaE
Beiträge: 136
Registriert: 13 Sep 2016, 14:10

Re: Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von IvicaE »

@uncle_scrooge

Danke, genau das hat noch gefehlt..

Ich hätte nicht bereits aus dem Häuschen sein dürfen als ich den Parameter 'quiet' im DISM entdeckt habe sondern weiter lesen sollen bis ich den NoRestart-Parameter gefunden hätte...
IvicaE
Beiträge: 136
Registriert: 13 Sep 2016, 14:10

Re: Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von IvicaE »

Ich habe noch ein kleines weiteres Problemchen beim Rebooten des Ganzen:

Code: Alles auswählen

ExitWindows /ImmediateReboot
Verursacht einen sofortigen Reboot.
Damit habe ich 2 Probleme:

Problem 1:
Wenn ein User angemeldet ist, so soll dieser wie beim Normalen 'Reboot'-Parameter einen Hinweis bekommen das in sounso langer Zeit der Rechner neu gestartet wird.
Problem 2:
Das Script bricht eben 'immediatly' ab und erledigt nicht das korrekte Beenden des OPSI-Scripts (ExitCode usw..).
Ich muss dann ein Flag in der Registry setzen und abfragen um steuern zu können wo dann weitergemacht wird nach dem Neustart...

Jedenfalls ist das alles unbefriedigend und ich habe weiter recherchiert um eine geeignete Lösung zu finden.
Dann habe ich gelesen daß 'RebootWanted' genau das so macht wie gewünscht!
Wenn ein User angemeldet: Hinweis und Restart in 60 Minuten (bissl viel, kann man das auch steuern so nebenbei gefragt?)
Wenn kein User angemeldet: sofortiger Restart
In beiden Fällen: das Script wird zu Ende abgearbeitet und erst dann folgt der Reboot.

So, im winst-manual steht das dieser Parameter abgekündigt ist und der normale 'reboot'-Parameter dies genau so übernimmt.
Habe ich so ausprobiert und leider macht diese Vorgehensweise kein Unterschied ob User angemeldet oder nicht angemeldet ist und ich bekomme immer 60 Minuten Zeit bevor die Ksite neu gestartet wird. So lange will ich natürlich aber nicht warten... Das Script wird aber zu Ende ausgeführt und das ist ja schon einmal gut.

So, die Frage ist jetzt:
Das abgekündigte 'RebootWanted' nutzen (falls das überhaupt noch geht) oder mache ich was falsch oder habe es falsch verstanden mit dem Reboot-Parameter?
Also so sieht es aus und ich mache danach nur noch das 'Sub_check_exitcode':

Code: Alles auswählen

ExitWindows /Reboot
fredfanatics
Beiträge: 39
Registriert: 10 Nov 2016, 09:33

Re: Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von fredfanatics »

Code: Alles auswählen

ExitWindows /Reboot
Macht genau was Du willst. Kein User angemeldet -> sofortiger Reboot, ansonsten Aufforderung an den Nutzer mit Wartezeit
IvicaE
Beiträge: 136
Registriert: 13 Sep 2016, 14:10

Re: Windows Features per DISM aktivieren / deaktivieren schlägt fehl

Beitrag von IvicaE »

fredfanatics hat geschrieben:Code: Alles auswählen
ExitWindows /Reboot

Macht genau was Du willst. Kein User angemeldet -> sofortiger Reboot, ansonsten Aufforderung an den Nutzer mit Wartezeit
Ja, ich habe auch gerade herausgefunden das nicht angemeldet unterschiedlich sein kann:

- Anmeldebildschirm (Synonym für 'Abgemeldet') nach einem 'frisch' gestartetem System -> Reboot wird gleich ausgeführt
- Anmeldebildschirm nach einer Abmeldung eines Benutzers -> Reboot wird in 60 Minuten ausgeführt

Das habe ich nicht gewusst und als ich getestet habe, habe ich den User zuvor abgemeldet gehabt und prompt hat es nicht funktioniert.
Jetzt, nachdem ich es getestet habe nach einem Neustart ohne den Benutzer angemeldet zu haben war es genau wie gewünscht. Das reicht mir auch so denn so wird es in der Regel auch immer sein!

Danke jedenfalls für die Hilfe! ;)
Antworten