Ist Vanilla Powershell genug für eine Sprache für Windows- und DB Server-Administratoren?

8

Verfügt eine Neuinstallation von PowerShell allein über genügend Funktionen, um eine Windows-Domänenumgebung und / oder SQL Server zu verwalten?

Wenn nicht, was sind gute, kostenlose oder kostenpflichtige Add-Ons von Drittanbietern?

MotoWilliams
quelle

Antworten:

8

Um diese Frage zu beantworten, müssen Sie das Gesamtbild verkleinern und fragen, was es bedeutet, Windows- und SQL-Server zu verwalten. Wie viele dieser anderen Dinge haben Sie beispielsweise in Ihrer Umgebung:

  • Backup-Produkte von Drittanbietern wie NetBackup oder BackupExec
  • Antivirenprodukte
  • Aufbewahrungswerkzeuge
  • Firewalls oder Webfilter-Software
  • Hardware-Alarmierung (wie IBM Director oder HP SIM)

Alle diese Dinge haben ihre eigenen Verwaltungsmechanismen, und da PowerShell noch relativ neu ist, werden nicht alle Dienste PowerShell-fähig sein. Im Moment müssen Sie möglicherweise aus PowerShell herausspringen, um solche Dinge zu verwalten.

Auf der anderen Seite gibt es auch keine andere Sprache, die in all diesen Windows-Tools besser funktioniert.

Wenn Sie "Funktionalität zum Verwalten von Servern" sagen, stammt dies noch nicht aus einer Windows-Sprache. In der * nix-Welt können Sie in einer Skriptumgebung bleiben, aber die Windows-Welt ist noch nicht ganz da.

Brent Ozar
quelle
2
Ich stimme dir nicht zu. Ich denke, PowerShell enthält die Funktionalität zum "Verwalten von Servern". Wenn bestimmte Cmdlets fehlen, können vorhandene Konsolenanwendungen, COM-Apps und .NET-Assemblys weiterhin genutzt werden. Einige davon erfordern Arbeit, um die Lösung zu entwickeln. Je länger PowerShell verfügbar ist, desto verfeinerte Lösungen stehen zur Verfügung.
Steven Murawski
Richtig, wie Sie sagten, wird es noch Arbeit erfordern, um Ihre eigene Lösung zu entwickeln. Wir nähern uns dem Tag, an dem Sie PowerShell nie verlassen müssen, um Ihre Arbeit zu erledigen, aber wir sind noch nicht da, würden Sie zustimmen?
Brent Ozar
Ich bin dem viel näher. Vielleicht bin ich auf Semantik fixiert, aber PowerShell mir zu überlassen bedeutet, die Shell, das Skript oder den Host zu verlassen, was nicht notwendig ist. Wenn wir PowerShell als "Verlassen" von Cmdlets definieren, stimme ich zu. :)
Steven Murawski
Ich bin mir nicht sicher, ob ich damit einverstanden bin. Wenn Sie mit WSH, Perl oder C # (über WMI, Windows-APIs, DLLs von Drittanbietern usw.) verwalten können, können Sie dies in PowerShell mit demselben oder weniger Code tun.
Wedge
Richtig - Sie können Windows nicht vollständig über JEDE Sprache verwalten, wie ich bereits sagte. "Es gibt auch keine andere Sprache, die mit all diesen Windows-Tools besser funktioniert." Das ist, was ich gesagt habe.
Brent Ozar
4

Die Antwort auf Ihre erste Frage ist ein klares "JA".

Um eine vorhandene Windows-Domäne zu verwalten, bietet "Vanilla" PowerShell (keine zusätzlichen Snapins) sofort Unterstützung für WMI, ADSI, COM und .NET.

Die Verwaltung von Remotecomputern erfolgt über WMI (oder COM / .NET je nach Anwendungsfall).

Das Verwalten von SQL Server kann die SMO-Bibliotheken verwenden ( Ideen finden Sie in den SQL Server PowerShell-Erweiterungen ). Sie können über ADO.NET auf Daten zugreifen.

Die Beantwortung des zweiten Teils Ihrer Frage, was gute Addons von Drittanbietern sind, hängt wirklich davon ab, was Sie tun müssen. Wie John Cook erwähnte, sind die PowerShell-Community-Erweiterungen eine großartige allgemeine Ergänzung. Es gibt viele, viele andere. PowerShellCommunity.Org verfügt über eine Reihe hervorragender Referenzen für Produkte von Drittanbietern und Codeplex über eine große Anzahl von Open Source-PowerShell-Projekten.

Weitere Microsoft-Produkte bieten PowerShell-Unterstützung (wie SQL Server 2008, Exchange, Active Directory usw.)

V2 (das sich nähert) enthält einige großartige Funktionen für Remoting und Hintergrundjobs.

Steven Murawski
quelle
3

Powershell wird nicht mit SQL-Verwaltungstools geliefert, obwohl Sie weiterhin Dinge wie osql oder isql verwenden können. Ich weiß, dass es Powershell-Add-Ins gibt, mit denen Sie einen SQL-Server "mounten" und darin navigieren können, als wäre es ein Dateisystem (ähnlich wie das eingebaute Registrierungsmaterial).

Brad Wilson
quelle
1
Ab SQL Server 2008 gibt es native PowerShell-Cmdlets und einen Anbieter.
Steven Murawski
2

Die PowerShell Community Extenstions ( PSCX ) sind kostenlos und bequem zu haben.

John D. Cook
quelle
1

PowerShell allein reicht nicht aus.

Aber PowerShell ist nicht allein und Sie auch nicht. Es gibt Erweiterungen wie die oben erwähnten von John D. Cook sowie eine lebendige Community, die teilt, was sie darüber erfahren.

Es ist einfach und ständig zu erweitern und bietet Ihnen Zugriff auf COM- und .NET-Objekte, die für die Verwaltung beliebiger Aufgaben erforderlich sind.

John Saunders
quelle
0

Ich habe das Quest ActiveRoles-Snap-In wirklich als sehr nützlich für die Arbeit mit und die Verwaltung von Active Directory empfunden. Sie können das Snap-In hier herunterladen , aber ich denke, dieser Blog-Beitrag leistet hervorragende Arbeit darin, zu erklären, was es ist, wie es eingerichtet und wie es verwendet wird.

Abs
quelle
0

Als DBA in einer ziemlich großen Umgebung ist meine Meinung JA. Wir haben ein komplettes MS SQL Server-Monitor- und Wartungsframework erstellt, das nur PowerShell 1.0 verwendet. Dieses System automatisiert die tägliche Kapazitätsüberwachung sowie die Wartung des Sicherungsindex usw.

Jagoop
quelle