2008-12-03 5 views
2

Je suis à la recherche d'un moyen de modifier par programme les fonctionnalités ("Programmes et fonctionnalités" -> "Activer ou désactiver les fonctionnalités Windows") dans Windows Vista (et plus récent Redmond OS, par exemple Server 2008).Comment puis-je modifier les fonctionnalités de Windows Vista par programmation?

La solution idéale serait sous la forme d'un script Powershell (Get-Features, Set-Features), cependant tous les pointeurs vers MSDN/autre documentation seraient les bienvenus! (Ma première recherche rapide sur Google/StackOverflow est arrivée vide).

Avoir un moyen automatique d'activer ou de désactiver des fonctions me permettrait d'automatiser la configuration de l'ordinateur pour différents scénarios. Par exemple, pour développer des applications ASP.NET à l'aide d'IIS, vous devez installer un ensemble de fonctionnalités IIS qui ne sont pas installées par défaut. Mon processus actuel de "s'assurer qu'au moins les fonctionnalités montrées dans cette capture d'écran sont vérifiées" laisse beaucoup à désirer.

Répondre

0

Il n'y a malheureusement pas encore d'ensemble de cmdlets, ni de WMI ou d'autres zones facilement accessibles. Fait intéressant, les fonctions de gestion de rôles basées sur les scripts de Server Core ne fonctionneront que sur Server Core :). Windows 7 peut apporter un certain soulagement à cet égard - mais il pourrait aussi ne pas. En attendant, il vous reste à peu près les API Win32 natives mentionnées dans l'autre réponse. En outre, je tiens à souligner que MS ne veut pas délibérément que les applications installent des fonctionnalités majeures du système d'exploitation en raison des considérations de sécurité. L'ajout d'IIS n'est pas quelque chose fait à la légère, et il apporte avec lui des considérations et des responsabilités de sécurité. Les configurations d'application de Witness MS, qui vérifient les pré-demandes comme ça, mais n'offrent pas de les installer pour vous. Bien que je comprenne que vous souhaitiez rendre la configuration de votre application aussi simple que possible, il y a aussi des dommages à faire en mettant des fonctionnalités majeures dans le système d'exploitation sous le nez de quelqu'un :). Personnellement, je préférerais que les applications fassent preuve de prudence, me disent ce dont elles ont besoin et me permettent de décider comment et quoi installer les choses - en particulier les principales fonctionnalités qui ouvriront les ports et pourront exécuter du code arbitraire, comme IIS .

+0

Eh bien, je voudrais être en mesure de configurer mes machines d'une manière répétable. Je veux que toutes mes machines dev aient des fonctionnalités spécifiques installées. Êtes-vous en train de dire qu'il est MIEUX de sélectionner manuellement toutes les fonctionnalités pour CHAQUE machine sur la base de captures d'écran/notes écrites? –

1

Dans Windows Server 2008, il existe la commande ServerManagerCmd. Cela peut installer IIS avec ou sans les sous-fonctionnalités que vous voulez. Vous pouvez également installer/désinstaller la plupart des principales fonctionnalités de Windows.

  1. Vous pouvez configurer votre serveur comme vous le souhaitez puis exécutez ServerManagerCmd -query template.xml. Cela exporte la configuration dans un fichier XML.
  2. Vous devez transform the file pour le préparer pour une utilisation sur d'autres serveurs
  3. Copiez le fichier transformé au serveur que vous souhaitez configurer et exécuter ServerManagerCmd -inputPath transformTemplate.xml
1

La façon de le faire dans Vista Windows 2008 utilise l'outil de ligne de commande PKGMGR. Recherchez MSDN pour cet outil pour rechercher une liste de fonctionnalités/packages.

1

Il semble en direct Powershell V2 sur Server 2008 R2 (version bêta) a un module qui fait exactement cela. Espérons que Windows 7 aura cette fonctionnalité et ...

Pour plus de détails, voir Managing Server Features with PowerShell Cmdlets on Windows 2008 Server R2 Beta

+0

Existe-t-il un module comparable pour Windows 7 x64? Lorsque j'essaie d'exécuter "Import-Module ServerManager", j'obtiens l'erreur suivante: "Le module spécifié 'ServerManager' n'a pas été chargé car aucun fichier de module valide n'a été trouvé dans un répertoire de module." Dois-je le télécharger quelque part? Y a-t-il un module différent à utiliser? Toute aide est grandement appréciée! –

+0

Je viens de trouver une extension qui fonctionne pour Windows 7. "Module PowerShell pour ajouter/supprimer des fonctionnalités de Windows 7" - http://code.msdn.microsoft.com/PSClientManager –

Questions connexes