Saya terus membaca di mana-mana bahwa PowerShell adalah jalan masa depan. Ketika pertama kali dirilis saya melakukan sejumlah laboratorium virtual, tetapi sejak itu saya masih belum menggunakannya di lingkungan produksi. Saya tahu harinya akan tiba ketika saya berurusan dengan OS di tempat OS tersebut sudah diinstal, jadi saya ingin siap.
Saya ingin tahu:
- Apakah Anda menggunakannya?
- Apa proses 'bootstrap' Anda untuk menggunakan PowerShell?
- Apa jenis tugas administrasi sistem yang Anda skrip dengannya?
- Saya seorang administrator database SQL Server. Apa saja hal-hal keren yang bisa dilakukan dengannya?
Tampaknya semua orang setuju bahwa Microsoft mendorong ini keras, tetapi belum ada yang benar-benar menggunakannya. Saya ingin mendengar dari administrator sistem di luar sana yang menggunakannya untuk melakukan tugas setiap hari dan membagikan beberapa contoh kode.
windows
windows-server-2008
windows-server-2003
sql-server
powershell
Nick Kavadias
sumber
sumber
Jawaban:
Microsoft melakukan semua yang dapat dilakukan untuk menjadikan PowerShell sebagai pilihan pengguna listrik dan penulis otomasi di mana saja. Lewat sudah hari-hari menyusun kode dalam. NET untuk melakukan hal yang sama, sekarang Anda hanya perlu notepad.exe dan google. Kami penggemar beratnya di kantor, terutama karena Konsol Manajemen Exchange 2007 TIDAK termasuk semua yang dapat Anda lakukan di PowerShell. Microsoft sengaja gagal menerapkan hal-hal yang hanya dilakukan sesekali saja, lebih mudah untuk mengembangkannya, yang benar-benar memaksa penggunaannya jika Anda memiliki sesuatu yang menyerupai lingkungan yang kompleks.
Mengelola produk generasi baru Microsoft (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) semuanya memiliki kait PowerShell yang sangat kaya. Setelah Remote Powershell (PowerShell 2.0 IIRC) dikerahkan dengan Server 2008 R2, itu akan menjadi LEBIH BANYAK berguna bagi penulis otomatisasi.
Apa yang telah kami lakukan dengan itu:
Jadi ya, PowerShell akan bersama kami untuk beberapa waktu.
EDIT : Menambahkan sampel kode, karena diminta
Ini membutuhkan file CSV yang dibuat dengan skrip perl dan memperbarui serangkaian grup. Jika grup sudah ada, itu menggantikan keanggotaan dengan yang ditentukan dalam file. Jika grup tidak ada, itu yang membuatnya. Ini adalah sinkronisasi satu arah. Juga, belum cukup dalam produksi, tetapi tutup.
sumber
Mengingat bahwa produk server Microsoft akan mengaktifkan PowerShell sejak awal (saya percaya versi Exchange berikutnya memiliki semua konfigurasi yang tersedia melalui PowerShell), dan bahwa buku-buku seperti PowerShell in Practice menjelaskan beberapa cara bagus untuk mengotomatisasi tugas-tugas lain yang monoton, saya pikir masuk akal untuk menyarankan bahwa PowerShell akan menjadi teknologi yang lazim di Windows serverland untuk sementara waktu.
sumber
Saya akan merekomendasikan Scott Hanselman Podcast # 162 . Sepertinya semua tim server Microsoft "dipaksa" untuk menyediakan cmdlet PowerShell, dan juga mengikuti sintaks yang konsisten.
Juga, pihak ketiga seperti VMWare akan mengadopsinya
Singkatnya, saya percaya bahwa PowerShell dimulai dengan 2.0 serius dalam bisnis mengganti file batch untuk semua kecuali tugas yang paling sepele.
sumber
Sepuluh skrip PowerShell yang saya gunakan sebagai administrator database SQL Server (semua dijelaskan / diposting di blog saya ):
sumber
Apa jenis tugas admin yang Anda skrip dengannya?
pemantauan aplikasi / layanan: dapatkan nomor kinerja utama dari EventLog dan Prosedur Tersimpan (jarak jauh) dan tampilkan dari file batch tunggal
Saya seorang SQL Server DBA, tunjukkan beberapa hal keren untuk dilakukan dengannya?
automssqlbackup : cadangan harian untuk MSSQL dengan rotasi (harian = inkremental, mingguan + bulanan = penuh; simpan 5 harian, 5 cadangan mingguan), zip, pemberitahuan email
sumber
Setelah menggunakan skrip unix shell dalam karir sebelumnya, kemudian pindah ke administrasi windows server, saya dapat mengatakan bahwa saya benar-benar menghargai powershell - Saya tidak punya waktu atau kemampuan untuk belajar sintaksis terlalu misterius dan sangat terkejut bahwa banyak script powershell dapat ditulis dengan bahasa yang sangat mudah ... anggap nilainya seperti yang saya gunakan untuk ksh !!
Saya memprediksi itu akan ada untuk waktu yang lama.
sumber
Saya pikir ini keren: dengan SQL Server 2008 Anda mendapatkan ekstensi PowerShell baru yang memungkinkan Anda untuk menavigasi database SQL seperti sistem file lokal Anda atau registri.
Setelah menginstal alat SQL Server Client, Anda dapat membuka database apa pun di PowerShell (melalui menu konteks klik kanan) dan bermain dengannya dengan cara yang berorientasi objek:
Perhatikan baris pertama cukup mengubah prompt sehingga tidak terlalu lama.
Semoga terlepas dari itu jelas apa yang sedang terjadi di sini :)
sumber
SQL Server 2008 sekarang memiliki opsi konteks PowerShell di Management Studio, jadi lebih dari Exchange merangkulnya. Juga, anggap itu sebagai pengganti DOS, karena itulah yang dipikirkan MS karena mereka tidak bisa meningkatkan keamanan DOS untuk masalah kompatibilitas mundur, jadi mereka hanya menciptakan sesuatu yang baru dan wammo, masalah terpecahkan!
sumber
Saya juga seorang DBA, dan penulis naskah lama, kembali ke file batch DOS, V3.3! Pindah ke VB Script tetapi PS sangat kuat. Lihatlah - Maaf, saya tidak dapat memposting tautan, karena saya pengguna baru. Dapatkan ini dari Otto Helweg's Blog. Ini adalah alat inventaris perangkat lunak yang murah dan ceria.
Contoh skrip PowerShell:
Dave J
sumber
Tugas-tugas berikut dilakukan oleh tim saya secara teratur dengan PowerShell
Hari demi hari, saya memiliki PS prompt sepanjang waktu dan menggunakannya untuk tugas apa pun yang biasa saya gunakan untuk CMD.
Berikut adalah beberapa contoh kode untuk membaca Daftar Sharepoint. Saya menggunakan layanan web dari Sharepoint dan cmdlet "New-WebServiceProxy" baru di PowerShell V2.0
Oisin Grehan memiliki posting blog yang hebat tentang penggunaan Sharepoint Web Services yang saya gunakan sebagai basis untuk membuat semua fungsi saya. Ia bahkan memiliki skrip new-webservice.ps1 yang luar biasa yang dapat Anda gunakan jika Anda masih menggunakan PowerShell V1.
Juga, inilah fungsi dasar yang saya gunakan untuk mendapatkan memori yang tersedia pada node di cluster saya
sumber
Saya mencoba PowerShell untuk sebuah proyek kecil di tempat kerja - migrasi harian sejumlah ~ 600 pengguna dan ~ 200 grup dari AD perusahaan ke sistem UNIX lama menggunakan file mirip CSV . Saya ditawari skrip VBScript 500-baris (!) Yang mengeluarkan satu grup dan penggunanya sebagai titik awal.
Ternyata script PowerShell ~ 20-baris bisa melakukan semuanya ...
Sebagai pengguna * NIX (sisi server dan klien), saya sangat terkejut dengan PowerShell. Bahkan jika Anda hanya tahu sebagian kecil dari perintah, Anda dapat melakukan pekerjaan yang sangat kuat dengannya. Saya hanya perlu akses jarak jauh SSH (-seperti) ...
sumber
Bagaimana saya tidak bisa menggunakannya? Semua aplikasi server Microsoft yang keluar / ditingkatkan sekarang dikelola menggunakan Powershell. Beberapa UI / Management Console yang kurang lebih menjengkelkan kemudian disediakan dibangun di atas inti ini yang sering kali anjing lambat dan seperti yang ditunjukkan seseorang, tidak memiliki fitur yang tersedia ... jadi saya tidak bisa mengatakan kita sebenarnya punya banyak pilihan ^ ^
sumber
Powershell tidak sempurna tetapi jika Anda telah menggunakannya Anda tahu itu keren. Memiliki akses ke seluruh pustaka .net ditambah cmdlet bawaan (dan buat cmdlet Anda sendiri menggunakan PS in 2.0), itu cukup keren.
Satu-satunya hal yang saya pikir hilang adalah IDE yang bagus untuk itu yang saya yakin akan datang dari MS suatu hari nanti. Saat ini saya menggunakan PowerShell Idera's plus dan admininscripteditor yang memungkinkan debugging dan cukup keren.
Saya bisa menyapih diri dengan VB dengan cukup baik.
Proyek terbesar saya sampai saat ini dengan posh adalah menggunakan "powershellASP" untuk membuat halaman web dasar yang menjalankan perintah powershell dan menarik host vmware dan informasi VM dari lebih dari selusin host VMWare ESXi (gratis) saya dan menampilkannya dalam tabel HTML. Saya melakukan ini karena dengan VMWare ESXi gratis dan tidak ada pusat virtual, tidak ada cara lain untuk mendapatkan gambaran seketika semua VM saya di perusahaan. PowershellASP adalah parser pihak ke-3 gratis yang ditulis untuk IIS dan tidak didukung oleh MS. Sehingga dapat melakukan beberapa hal terbatas sekarang dan dokumentasinya sangat jarang.
sumber
Saya memiliki sejumlah skrip manajemen / inventaris yang mencari melalui AD untuk hal-hal yang berbeda, dan meminta mereka melalui WMI untuk statistik vital seperti saham di server, ruang disk, ruang disk yang digunakan, dll.
Skrip Umum:
Skrip Pengguna:
Saya punya satu yang menyebutkan semua mesin tamu VMWare di server ESX saya
Saya memiliki skrip yang mengambil file setelah x hari dan menghapusnya dengan aman.
Pada dasarnya saya bisa melakukan apa yang membutuhkan sekitar 200 baris VBScript dan melakukannya di 10 PowerShell. Anda juga dapat melakukan hal-hal yang tidak dapat Anda lakukan atau lakukan dengan baik di VBScript - seperti mengirim email dengan lampiran - yang saya lakukan secara teratur untuk mengirimi saya hasil skrip saya. Anda juga dapat menulis entri yang bermakna dan unik ke dalam log peristiwa dengan nama layanan khusus dan ID Peristiwa.
Itulah yang bisa saya pikirkan dari atas kepala saya. Alat pilihan saya adalah PowerShell sekarang, itu hanya membuat hidup lebih mudah.
Pada dasarnya ini hanya berguna bagi administrator sistem seperti halnya Bash scripting bagi administrator Unix.
sumber
Saya melihat poweshell untuk mengganti skrip batch klien kami - menjalankan program, skrip logon dll.
Tetapi menemukan bahwa itu menambahkan setidaknya 10 detik untuk masuk waktu - itu dengan semua "tweak" di tempat. Jadi akhirnya tinggal dengan apa yang kami gunakan.
sumber
Tidak menjadi pengembang NET., Saya memiliki penggunaan terbatas untuk semua .NET terkait yang memungkinkan Anda menggunakan PS. Namun, sebagai admin Exchange (antara lain), integrasi PowerShell untuk Exchange 2007 adalah AWESOME. Saya akhirnya memiliki mesin scripting yang andal untuk sistem email saya; sejauh ini, saya sudah mendapatkannya mengirim saya statistik bulanan pada kotak surat semua orang, menyesuaikan dengan siapa berbagai alamat email ditugaskan tergantung pada waktu, secara otomatis membuat dan menetapkan izin pada folder publik dan pengguna yang menyeimbangkan beban antara dua DB kotak surat kami . Hal keren lainnya dari sudut pandang Ex07 adalah bahwa setelah Anda melakukan sesuatu di GUI, ia memberi Anda perintah PowerShell yang relevan untuk apa yang baru saja Anda lakukan. Salin itu, dan pada akhirnya Anda akan memiliki satu set skrip PS yang dapat rebuld lingkungan Exchange Anda dari awal.
sumber
Mengotomatiskan hal-hal tertentu dengan pemeriksaan server tempat saya bekerja (mengumpulkan informasi dasar dari WMI dan mengumpulkan kesalahan dan peringatan dari log peristiwa).
Menangani Log Kejadian itu luar biasa.
Baru-baru ini saya menulis sebuah skrip untuk menonaktifkan popup pembaruan otomatis yang diaktifkan oleh Foxit Reader secara default di seluruh domain tempat skrip dijalankan. Ini menarik daftar komputer dari AD kemudian menguji untuk melihat apakah itu naik, kemudian mengubah 1 ke 0.
Satu hal yang saya lupa!
Anda cukup banyak memiliki akses penuh ke perpustakaan .NET. Agak menyebalkan untuk melakukan hal-hal yang sangat rumit dengannya, tetapi jika Anda membutuhkannya, itu ada untuk Anda.
sumber
Kami menggunakannya untuk beberapa tugas admin, sebagian besar merupakan toko Microsoft. Beberapa skrip sederhana, seperti membersihkan file lama atau mendefrag mesin dan merekam hasilnya. Satu skrip mengaudit komputer menggunakan sebagian besar WMI dan mencatat hasilnya dalam database. Ia mendapat hal-hal seperti perangkat keras (CPU, RAM, drive, dll.), Informasi jaringan, pengguna lokal, perangkat lunak yang diinstal, dan informasi profil. Ada satu yang memanggil layanan web untuk mengirim email. Saya pikir di masa depan itu akan menggantikan sisa skrip VBScript yang masih digunakan. Kami belum menggunakannya untuk tugas Exchange atau SQL Server.
Saya menantikan versi berikutnya, yang akan memiliki dukungan untuk pekerjaan latar belakang, transaksi, penanganan pengecualian yang lebih baik, ISE baru (Lingkungan Scripting Terpadu), debugging yang lebih baik, dll.
sumber
Administrator Windows saya belum menggunakan PowerShell. Mereka semua pernah mendengarnya, tetapi mereka belum meluangkan waktu untuk membiasakan diri dengannya.
Saya memutuskan untuk melihatnya sendiri. Berasal dari latar belakang shell Unix, saya berpikir bahwa Windows akhirnya harus memiliki lingkungan pemrograman shell yang nyata. Saya pikir Microsoft melakukan beberapa hal dengan PowerShell dan sesuatu yang tidak begitu baik.
Sisi baiknya adalah penggunaan objek sebagai perantara antara cmdlet di PowerShell. Ini membawa tingkat kekuatan pada PowerShell bahwa scripting berbasis teks harus diretas untuk dapat bekerja.
Di sisi negatif mereka benar-benar tidak memanfaatkan banyak perintah shell Unix. Jadi kurva belajar tidak perlu curam dan tidak membantu orang berpindah dengan mudah dari Unix ke PowerShell atau sebaliknya. Yang paling mereka lakukan adalah menentukan alias untuk beberapa PowerShell cmdlets seperti ls aliasing Get-ChildItem dengan semua baris perintah switch yang berbeda.
Hanya dua sen saya ...
sumber
Ini lebih merupakan jawaban pengembang, tetapi ini adalah dunia nyata dan kami akan mulai menguji ini di beberapa titik dalam beberapa bulan mendatang. Saya mulai mempelajari PowerShell untuk menulis skrip untuk membawa tugas-tugas SQL Server ke lingkungan integrasi berkelanjutan kami . Skrip integrasi berkelanjutan akan dijalankan terutama oleh NAnt dan MSBuild melalui JetBrains TeamCity .
Selain itu, saya melihat beralih ke PowerShell sebagai shell perintah Windows utama saya untuk tujuan umum dan terutama untuk tugas administrasi database SQL Server.
Maaf, saya belum punya sampel kode untuk dibagikan, karena saya masih belajar! Saya akan senang memposting beberapa ketika saya melakukannya :)
Berikut contoh kode baris tunggal yang baru saja saya jawab dengan pertanyaan Anda :) :) hei, untuk wiki ...
Ini akan mendaftar perbaikan terbaru yang diinstal:
sumber
Meskipun tidak yang paling mudah bahasa script untuk mengambil (pengalaman yang solid dengan pipa dianggap) dan memiliki pengaruh sendiri keanehan (memberi saya sederhana sed -seperti thingy !!), saya menemukan PowerShell cukup kuat. Tidak sampai ke level Bash atau shell Unix lainnya, tapi tetap saja.
Saya menggunakannya untuk mengawasi beberapa basis data ekspor dan impor dengan peringatan email jika terjadi hal-hal buruk, dan melakukan beberapa operasi batch rutin.
Sudah pasti itu adalah shell Windows utama saya, meskipun itu tidak benar-benar jenis "menulis lebih sedikit berbuat lebih banyak". PowerShell memiliki verbositasnya (dan .NET inheritance) yang menentangnya.
sumber
PowerShell versi 1.0 sangat terbatas dalam banyak aspek, tetapi versi 2.0 datang dengan baik. Dibandingkan dengan skrip batch, ini jauh lebih kuat. Saya tidak benar-benar menggunakannya sebagai shell, hanya untuk skrip, jadi pengalaman saya diwarnai sesuai. Saya tidak terlalu menyukai sintaks (
-eq
vs==
,-gt
vs>
, dll), tapi saya menghargai bisa masuk ke .NET jika saya perlu melakukan sesuatu yang aneh. Saya berpikir bahwa dengan versi 3.0 akan lebih bagus. Saat ini saya akan menempatkannya dengan kuat dalam kategori "menyelesaikan pekerjaan".Saya menggunakannya terutama untuk mengotomatiskan penyebaran kode. Ini adalah area di mana ia bersinar saat membuat sesuatu di C #. Operasi-operasi yang berhubungan dengan shell seperti copy direktori rekursif dan hal-hal lain yang telah diterima begitu saja oleh para penulis Bash selama bertahun-tahun membuat segalanya menjadi lebih mudah.
sumber