Door Anoniem: Binnen Windows is alles een object, wat allemaal te benaderen en manipuleren is vanuit Powershell. Applicaties die dit ondersteunen kan je er ook mee aanspreken. Je kan dus alles direct vanuit Powershell.
Vanuit Bash of een andere shell kan je ook alles, het gaat alleen op een andere manier. Het een is niet per se beter of slechter dan het ander.
Wat je beschrijft is dat die applicaties een API hebben die vanuit PowerShell te gebruiken is. In Linux/Unix hebben daemonprocessen waarvoor het zinvol is om er vanuit een shell of vanuit scripts mee te communiceren ook een API die aangeroepen kan worden, bijvoorbeeld in de vorm van een commandline-utility waaraan je opdrachten via aanroepparameters doorgeeft. Zo werd dat al gedaan lang voordat PowerShell was bedacht.
Je hoeft niet een config bestand aan te roepen en een service te herstarten om je Apache2/nginx hostname aan te passen bv. Via Powershell kan je dit allemaal in 1 commando aan IIS doorgeven.
Kleine nitpick: je roept een configuratiebestand niet aan, je opent het in een tekst-editor en wijzigt het.
Zowel Apache2 als Nginx ondersteunen een reload: ze kunnen gewijzigde configuratiebestanden inlezen zonder herstart.
Ik zou zeggen dat je zo'n on-the-fly-wijziging in de configuratie wilt vastleggen. Ik vermoed dat dat vanuit PowerShell ook gebeurt, dat de hostname-wijziging die je noemt in de registry wordt vastgelegd.
Als dat betekent dat een serverproces zelf zijn configuratie kan wijzigen dan ben ik daar niet kapot van. Ik heb, inmiddels ruim 20 jaar geleden, met IIS 4 te maken gehad en daarmee heb ik meerdere keren meegemaakt dat als de server crashte die de complete configuratie in de registry kon verminken zodat je veel meer moest herstellen dan nodig zou moeten zijn. Dat soort dingen kan je echt missen als kiespijn, dan zijn tekstbestandjes waar het serverproces geen schrijfrechten op heeft in al hun eenvoud veel robuuster. Maar wat ik met IIS 4 heb meegemaakt is neem ik aan allang achterhaald, en dan hoop ik dat je met PowerShell niet (of niet alleen) het serverproces aanspreekt maar een configuratieapplicatie/object waar het serverproces zelf geen toegang toe heeft met wijzigrechten.
Dat het wijzigen van een configuratiebestand en een reload twee handelingen zijn (mogelijk aangevuld met bijvoorbeeld een commit in een git-repository zodat er nog wat handelingen bijkomen) is nauwelijks van belang: het zijn kleinigheden in vergelijking met het denkwerk en de besluitvorming die eraan vooraf gaan en er gaat sowieso meer tijd zitten in zorgvuldigheid dan in dit soort details. En er zijn trouwens zat situaties waarin wat extra handelingen juist mijn voorkeur hebben, want al te simpele handelingen zijn een uitnodiging om dingen gedachtenloos te doen en maken dat ongelukken in wel heel kleine hoekjes zitten. Een iets hoger drempeltje kan dan de zorgvuldigheid enorm steunen. De neiging van de IT-wereld om alles zo laagdrempelig mogelijk te maken klopt wat mij betreft niet voor dingen die je vooral niet gedachtenloos moet doen.
Hoe dan ook, je kan dus ook alles vanuit Bash of een andere shell. De manier waarop is alleen anders ingericht dan in Windows/PowerShell. Het een is niet per se beter of slechter dan het ander, er zijn gewoon meerdere manieren mogelijk waarop je dingen kan opzetten. Zelfs als je daar duidelijke voorkeuren in hebt (die heb ik zelf beslist ook) betekent dat nog niet dat het een beter is dan het ander. Voorkeuren zijn geen ultieme waarheden, want mensen verschillen van elkaar en de voorkeur van de een is even legitiem als die van een ander.
Uiteindelijk gaat het om de vraag of iets goed werkt in de praktijk. Zowel Linux/Unix als Windows bestaan inmiddels al vele tientallen jaren, en in die tijd zijn in beide werelden echt wel de nodige onhandige hebbelijkheden en onvolkomenheden bijgeschaafd en verbeterd. Dan hebben nog steeds verschillende mensen voorkeur voor verschillende benaderingen, maar persoonlijke voorkeuren zijn niet meer dan persoonlijke argumenten, die zeggen niet of iets in algemene zin wel of niet goed in elkaar zit.