Vanilla Powershell est-il assez parlant pour les administrateurs Windows et DB Server?
8
Une installation propre de PowerShell en elle-même a-t-elle suffisamment de fonctionnalités pour administrer un environnement de domaine Windows et / ou des serveurs SQL?
Sinon, quels sont les bons, gratuits ou payants, modules complémentaires tiers?
Pour répondre à cette question, vous devez effectuer un zoom arrière sur la vue d'ensemble et demander ce que signifie administrer les serveurs Windows et SQL. Par exemple, combien de ces autres choses avez-vous dans votre environnement:
Produits de sauvegarde tiers comme NetBackup ou BackupExec
Produits antivirus
Outils de stockage
Pare-feu ou logiciel de filtrage Web
Alertes matérielles (comme IBM Director ou HP SIM)
Toutes ces choses ont leurs propres mécanismes de gestion, et comme PowerShell est encore relativement nouveau, tous les services ne seront pas compatibles avec PowerShell. Pour l'instant, vous devrez peut-être quitter PowerShell pour gérer des choses comme celles-ci.
D'un autre côté, il n'y a pas d'autre langage qui fonctionne mieux dans tous ces outils Windows.
Lorsque vous dites "fonctionnalité pour administrer les serveurs", cela ne vient pas encore d'une langue Windows. Dans le monde * nix, vous pouvez rester dans un environnement de script, mais le monde Windows n'est pas encore tout à fait là.
Je ne suis pas d'accord. Je pense que PowerShell contient la fonctionnalité pour "administrer les serveurs" et où il peut manquer d'applets de commande spécifiques, il peut toujours tirer parti des applications de console existantes, des applications COM et des assemblages .NET. Une partie de cela nécessitera du travail pour développer la solution, mais plus PowerShell est sorti, plus des solutions raffinées seront disponibles.
Steven Murawski
Bon, comme vous l'avez dit, il faudra encore du travail pour développer votre propre solution. Nous nous dirigeons vers le jour où vous ne devrez jamais quitter PowerShell pour faire votre travail, mais nous n'y sommes pas encore, êtes-vous d'accord?
Brent Ozar
Je suis beaucoup plus près d'accepter cela. Peut-être que je suis accroché à la sémantique, mais "laisser" PowerShell pour moi signifie quitter le shell ou le script ou l'hôte, ce qui n'est pas nécessaire. Si nous définissons «quitter» PowerShell comme s'éloigner des applets de commande, alors je suis d'accord. :)
Steven Murawski
Je ne suis pas sûr d'être d'accord. Si vous pouvez administrer avec WSH, Perl ou C # (via WMI, les API Windows, les DLL tierces, etc.), vous pouvez faire la même chose dans PowerShell avec le même code ou moins.
Wedge
À droite - vous ne pouvez pas administrer Windows complètement à travers TOUT langage, comme je l'ai dit. "Il n'y a pas d'autre langage qui fonctionne mieux dans tous ces outils Windows." Voilà ce que j'ai dit.
Brent Ozar
4
La réponse à votre première question est un "OUI" retentissant.
Pour gérer un domaine Windows existant, PowerShell "vanilla" (sans composants logiciels enfichables supplémentaires) fournit une prise en charge prête à l'emploi pour WMI, ADSI, COM et .NET.
La gestion des machines distantes est gérée via WMI (ou COM / .NET selon le cas d'utilisation).
La gestion de SQL Server peut utiliser les bibliothèques SMO (voir les extensions SQL Server PowerShell pour des idées). Vous pouvez accéder aux données via ADO.NET.
Pour répondre à la deuxième partie de votre question, en ce qui concerne les bons addons tiers, cela dépend vraiment de ce que vous devez faire. Comme John Cook l'a mentionné, les extensions de communauté PowerShell sont un excellent ajout général. Il y en a beaucoup, beaucoup d'autres. PowerShellCommunity.Org a un certain nombre de grandes références pour les produits tiers et Codeplex a un grand nombre de projets PowerShell open source.
D'autres produits Microsoft ajoutent la prise en charge de PowerShell (comme SQL Server 2008, Exchange, Active Directory, etc.)
V2 (qui approche) contient de grandes capacités de travail à distance et en arrière-plan.
Powershell n'est pas fourni avec les outils d'administration SQL, bien que vous puissiez continuer à utiliser des choses comme osql ou isql. Je sais qu'il existe des compléments Powershell qui vous permettent de «monter» un serveur SQL et de le naviguer comme s'il s'agissait d'un système de fichiers (un peu comme les éléments du registre intégrés).
En soi et par vous-même, PowerShell ne suffit pas.
Mais PowerShell n'est pas seul, et vous non plus. Il existe des extensions telles que John D. Cook mentionne ci-dessus, ainsi qu'une communauté dynamique partageant ce qu'ils en apprennent.
Il est conçu pour être facilement et constamment étendu et vous donne accès aux objets COM et .NET nécessaires pour administrer ce que vous voulez.
J'ai vraiment trouvé le composant logiciel enfichable Quest ActiveRoles très utile pour travailler avec et gérer Active Directory. Vous pouvez obtenir le composant logiciel enfichable ici , mais je pense que ce billet de blog fait un excellent travail expliquant ce que c'est, comment le configurer et comment l'utiliser.
En tant qu'administrateur de base de données dans un environnement plutôt vaste, mon opinion est OUI. Nous avons construit un environnement de surveillance et de maintenance MS SQL Server complet en utilisant uniquement PowerShell 1.0. Ce système automatise la surveillance quotidienne de la capacité ainsi que l'automatisation de la maintenance des index de sauvegarde, etc.
La réponse à votre première question est un "OUI" retentissant.
Pour gérer un domaine Windows existant, PowerShell "vanilla" (sans composants logiciels enfichables supplémentaires) fournit une prise en charge prête à l'emploi pour WMI, ADSI, COM et .NET.
La gestion des machines distantes est gérée via WMI (ou COM / .NET selon le cas d'utilisation).
La gestion de SQL Server peut utiliser les bibliothèques SMO (voir les extensions SQL Server PowerShell pour des idées). Vous pouvez accéder aux données via ADO.NET.
Pour répondre à la deuxième partie de votre question, en ce qui concerne les bons addons tiers, cela dépend vraiment de ce que vous devez faire. Comme John Cook l'a mentionné, les extensions de communauté PowerShell sont un excellent ajout général. Il y en a beaucoup, beaucoup d'autres. PowerShellCommunity.Org a un certain nombre de grandes références pour les produits tiers et Codeplex a un grand nombre de projets PowerShell open source.
D'autres produits Microsoft ajoutent la prise en charge de PowerShell (comme SQL Server 2008, Exchange, Active Directory, etc.)
V2 (qui approche) contient de grandes capacités de travail à distance et en arrière-plan.
la source
Powershell n'est pas fourni avec les outils d'administration SQL, bien que vous puissiez continuer à utiliser des choses comme osql ou isql. Je sais qu'il existe des compléments Powershell qui vous permettent de «monter» un serveur SQL et de le naviguer comme s'il s'agissait d'un système de fichiers (un peu comme les éléments du registre intégrés).
la source
Les extensions de communauté PowerShell ( PSCX ) sont gratuites et pratiques.
la source
En soi et par vous-même, PowerShell ne suffit pas.
Mais PowerShell n'est pas seul, et vous non plus. Il existe des extensions telles que John D. Cook mentionne ci-dessus, ainsi qu'une communauté dynamique partageant ce qu'ils en apprennent.
Il est conçu pour être facilement et constamment étendu et vous donne accès aux objets COM et .NET nécessaires pour administrer ce que vous voulez.
la source
Il y a toujours Perl. :) Pour les DBA SQL Server, consultez le livre de Linchi Shea .
la source
J'ai vraiment trouvé le composant logiciel enfichable Quest ActiveRoles très utile pour travailler avec et gérer Active Directory. Vous pouvez obtenir le composant logiciel enfichable ici , mais je pense que ce billet de blog fait un excellent travail expliquant ce que c'est, comment le configurer et comment l'utiliser.
la source
En tant qu'administrateur de base de données dans un environnement plutôt vaste, mon opinion est OUI. Nous avons construit un environnement de surveillance et de maintenance MS SQL Server complet en utilisant uniquement PowerShell 1.0. Ce système automatise la surveillance quotidienne de la capacité ainsi que l'automatisation de la maintenance des index de sauvegarde, etc.
la source