Apakah Vanilla Powershell cukup bahasa untuk admin Windows & DB Server?

8

Apakah instalasi PowerShell yang bersih sudah cukup fungsional untuk Admin lingkungan Windows domain dan / atau SQL Server?

Jika tidak apa yang baik, gratis atau bayar, add-on pihak ketiga?

MotoWilliams
sumber

Jawaban:

8

Untuk menjawab pertanyaan ini, Anda perlu memperkecil tampilan ke gambar yang lebih besar dan bertanya apa artinya mengelola Server Windows dan SQL. Misalnya, berapa banyak dari hal-hal lain yang Anda miliki di lingkungan Anda:

  • Produk cadangan pihak ketiga seperti NetBackup atau BackupExec
  • Produk antivirus
  • Alat penyimpanan
  • Firewall atau perangkat lunak penyaringan web
  • Peringatan perangkat keras (seperti Direktur IBM atau SIM HP)

Semua hal ini memiliki mekanisme manajemen sendiri, dan karena PowerShell masih relatif baru, tidak semua layanan akan mengaktifkan PowerShell. Untuk saat ini, Anda mungkin perlu melompat keluar dari PowerShell untuk mengelola hal-hal seperti itu.

Di sisi lain, tidak ada bahasa lain yang berfungsi lebih baik di semua alat Windows itu.

Ketika Anda mengatakan "fungsionalitas untuk mengelola server", itu belum datang dari bahasa Windows. Di dunia * nix, Anda bisa tetap berada di dalam lingkungan scripting, tetapi dunia Windows belum cukup di sana.

Brent Ozar
sumber
2
Saya tidak setuju. Saya pikir PowerShell berisi fungsionalitas untuk "mengelola server" dan di mana mungkin kekurangan cmdlet tertentu, ia masih dapat memanfaatkan aplikasi konsol yang ada, aplikasi COM, dan rakitan .NET. Beberapa di antaranya akan membutuhkan pekerjaan untuk mengembangkan solusi, tetapi semakin lama PowerShell keluar, semakin banyak solusi yang disempurnakan.
Steven Murawski
Benar, seperti yang Anda katakan, masih perlu kerja untuk mengembangkan solusi Anda sendiri. Kami sedang menuju hari di mana Anda tidak perlu meninggalkan PowerShell untuk melakukan pekerjaan Anda, tetapi kami belum ada di sana, apakah Anda setuju?
Brent Ozar
Saya jauh lebih dekat untuk menyetujui itu. Mungkin saya menutup telepon semantik, tetapi "meninggalkan" PowerShell kepada saya berarti meninggalkan shell atau skrip atau host, yang tidak perlu. Jika kita mendefinisikan "meninggalkan" PowerShell sebagai menjauh dari cmdlet, maka saya setuju. :)
Steven Murawski
Saya tidak yakin saya setuju. Jika Anda dapat mengelola dengan WSH, Perl, atau C # (melalui WMI, Windows API, dll pihak ke-3, dll.) Maka Anda dapat melakukan hal yang sama di PowerShell dengan kode yang sama atau kurang.
Wedge
Benar - Anda tidak dapat mengelola Windows sepenuhnya melalui bahasa APAPUN , seperti yang saya katakan. "Tidak ada bahasa lain yang berfungsi lebih baik di semua alat Windows itu juga." Itu yang aku katakan.
Brent Ozar
4

Jawaban untuk pertanyaan pertama Anda adalah "YA" yang tegas.

Untuk mengelola domain Windows yang ada, "vanilla" PowerShell (tidak ada snapins tambahan) memberikan dukungan di luar kotak untuk WMI, ADSI, COM, dan .NET.

Mengelola mesin jarak jauh ditangani melalui WMI (atau COM / .NET tergantung pada use case).

Mengelola SQL Server dapat menggunakan perpustakaan SMO (lihat SQL Server PowerShell Extensions untuk ide-ide). Anda dapat mengakses data melalui ADO.NET.

Untuk menjawab bagian kedua dari pertanyaan Anda, seperti apa addon pihak ketiga yang baik, sangat tergantung pada apa yang perlu Anda lakukan. Seperti yang disebutkan John Cook, Ekstensi Komunitas PowerShell adalah tambahan umum yang bagus. Ada banyak, banyak lainnya. PowerShellCommunity.Org memiliki sejumlah referensi hebat untuk produk pihak ketiga dan Codeplex memiliki sejumlah besar proyek PowerShell open source.

Lebih banyak produk Microsoft menambahkan dukungan PowerShell (seperti SQL Server 2008, Exchange, Active Directory, dll.)

V2 (yang semakin dekat) berisi beberapa kemampuan kerja jarak jauh dan latar belakang yang hebat.

Steven Murawski
sumber
3

Powershell tidak menyertakan alat administrasi SQL, meskipun Anda dapat terus menggunakan hal-hal seperti osql atau isql. Saya tahu ada add-on Powershell yang memungkinkan Anda "me-mount" server SQL dan menavigasi seolah-olah itu adalah sistem file (mirip dengan hal-hal Registry yang ada di dalamnya).

Brad Wilson
sumber
1
Dimulai dengan SQL Server 2008, ada cmdlet PowerShell asli dan penyedia.
Steven Murawski
2

PowerShell Community Extenstions ( PSCX ) gratis dan nyaman untuk dimiliki.

John D. Cook
sumber
1

Dengan sendirinya dan sendiri, PowerShell tidak cukup.

Tetapi PowerShell tidak sendirian, dan Anda juga tidak. Ada ekstensi seperti John D. Cook yang disebutkan di atas, serta komunitas yang bersemangat berbagi apa yang mereka pelajari tentang hal itu.

Itu dibuat agar mudah dan terus-menerus diperluas, dan memberi Anda akses ke COM dan .NET objek yang diperlukan untuk mengelola apa pun yang Anda suka.

John Saunders
sumber
0

Selalu ada Perl. :) Untuk DBA SQL Server, lihat buku Linchi Shea .

K. Brian Kelley
sumber
0

Saya benar-benar menemukan snap-in Quest ActiveRoles sangat berguna untuk bekerja dengan dan mengelola Active Directory. Anda bisa mendapatkan snap-in di sini , tetapi saya pikir posting blog ini melakukan pekerjaan yang sangat baik untuk menjelaskan apa itu, bagaimana mengaturnya, dan bagaimana menggunakannya.

Abs
sumber
0

Sebagai seorang DBA di lingkungan yang agak besar, pendapat saya adalah YA. Kami telah membangun seluruh monitor MS SQL Server dan kerangka kerja pemeliharaan menggunakan PowerShell 1.0. Sistem ini mengotomatiskan pemantauan kapasitas harian serta mengotomatiskan pemeliharaan indeks cadangan dll.

Jagoop
sumber