PowerShell? Apakah Anda menggunakannya? Dapatkah Anda menunjukkan kepada saya beberapa hal administrasi sistem yang keren yang dapat saya lakukan dengannya? [Tutup]

45

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:

  1. Apakah Anda menggunakannya?
  2. Apa proses 'bootstrap' Anda untuk menggunakan PowerShell?
  3. Apa jenis tugas administrasi sistem yang Anda skrip dengannya?
  4. 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.

Nick Kavadias
sumber
JScript sudah mati?
Sophie Alpert
7
Cobalah untuk tidak menjadi troll dengan tajuk berita menyesatkan Anda lain kali.
Jaykul
Mungkin karena kadang-kadang saya berharap itu akan hilang seperti jscript. Apakah hanya saya atau sangat jelek & bertele-tele?
Nick Kavadias

Jawaban:

34

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:

  • Buat halaman web untuk mendelegasikan tugas admin tertentu ke helpdesk pengguna. Halaman web menjalankan perintah yang dijalankan di PowerShell. Hal-hal yang dilakukannya:
    • Membuat dan menghapus akun pengguna, termasuk menyediakan kotak surat Exchange 2007 dan direktori home
    • Buka kunci akun yang terkunci
    • Buat / hapus grup
    • Tambahkan / hapus pengguna dari grup
    • Pindahkan pengguna di antara toko surat
    • Setel kata sandi
  • Ambil ekstrak dari sistem ERP dan dorong data buku alamat global ke Direktori Aktif setiap malam.
  • Memecahkan masalah LegacyExchangeDN yang muncul dengan migrasi Exchange 2003 ke Exchange 2007 kami. Harus menambahkan alamat X500 ke semua orang yang dulu ada di Exchange 2003. Skrip PowerShell yang cukup pendek memperbaikinya.
  • Pembuatan "kotak surat grup" yang dibuat secara skrip (kotak surat bersama di Exchange tempat banyak pengguna memiliki akses ke kotak surat), suatu proses manual karena sifat data yang kita butuhkan sebelum memulai. Ini sangat menstandarkan pengaturan kotak surat ini.
  • Membuat skrip yang berjalan melalui semua mesin domained mengatur ulang kunci registri tertentu dan memulai kembali layanan. Butuh 18 jam untuk menyelesaikannya, tetapi itu menyelesaikan pekerjaan.

Jadi ya, PowerShell akan bersama kami untuk beberapa waktu.

EDIT : Menambahkan sampel kode, karena diminta

$ list = import-csv ("groupusers.csv")
$ lastseengroup = $ list [0] .group
$ ADGroupPrefix = "grp.netware."
$ ADGroupSuffix = "{redacted - dalam format, ou = grup, dc = domain, dc = domain, dc = domain}"
Hapus daftar anggota Variabel
Pengguna yang tidak diketahui variabel-jelas
foreach ($ entri dalam $ daftar) {
    if ($ ($ entry.group) -ne $ lastseengroup) {
        echo "tersandung di grup baru $ ($ entry.group), melakukan perubahan pada $ lastseengroup"
        $ newgroup = $ ADgroupPrefix + $ lastseengroup
        $ newgroupdn = '"' +" cn = $ newgroup $ ADGroupSuffix "+ '"'
        gema "mendapatkan DN untuk $ newgroup"
        $ existinggroup = dsquery group domainroot -name $ newgroup
        if (($ existinggroup -ne $ null)) {
            grup dsmod $ newgroupdn -chmbr $ daftar anggota
        } lain {
            dsadd grup $ newgroupdn -cakupan u -secgrp yes -members $ memberlist -desc "Grup yang diimpor dari eDirectory"
        }
        Hapus daftar anggota Variabel
    }
    $ User = get-user $ ($ entry.member) -ErrorAction SilentlyContinue
    if ($ User.isvalid) {
        $ UserDN = $ User.distinguishedname
        $ memberlist = $ memberlist + '"' +" $ UserDN "+ '"'
    } lain {
        $ unknownusers = $ unknownusers + $ ($ entry.member)
    }
    $ lastseengroup = $ ($ entry.group)

}
dsadd group "cn = $ ADGroupPrefix $ lastseengroup $ ADGroupSuffix" -scope u -secgrp yes -members $ memberlist

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.

sysadmin1138
sumber
6
PowerShell jarak jauh !! maksudmu ssh!?! tentang waktu!
Nick Kavadias
2
Bagaimana Anda menjalankan skrip PowerShell dari sebuah situs web, apakah Anda menggunakan skrip PowerShell sebagai bahasa pemrograman web? apakah Anda menggunakan powershellASP? apakah Anda menjalankan skrip sebagai pengguna IIS?
quentin
17

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.

moobaa
sumber
buku itu masih dalam versi beta / sedang ditulis
Nick Kavadias
Ya, itu - tetapi Anda masih dapat membelinya sekarang & mendapatkan akses awal ke konten. Dan ada banyak hal pemeliharaan server di sana :)
moobaa
4
Exchange telah menjadi semua PowerShell sejak Exchange 2007. OCS akan sepenuhnya memiliki kemampuan PowerShell dalam rilis berikutnya; sebagian besar produk System Center mendukung sepenuhnya atau dalam rilis berikutnya. PowerShell tidak ke mana-mana.
paulr
12

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.

Michael Stum
sumber
10

Sepuluh skrip PowerShell yang saya gunakan sebagai administrator database SQL Server (semua dijelaskan / diposting di blog saya ):

  1. Periksa ruang disk di semua Server SQL dan muat data ke tabel SQL
  2. Jalankan laporan izin pada semua Server SQL produksi dan muat data ke database SQL
  3. Temukan semua cluster Windows Server 2003 , node, dan virtual pada jaringan dan memuat ke tabel SQL
  4. Temukan semua database di semua Server SQL sebagaimana didefinisikan dalam SCCM dan muat ke tabel SQL
  5. Buat kartu skor cadangan SQL Server dengan memuat informasi cadangan di semua Server SQL ke tabel SQL
  6. Verifikasi bahwa TCP Offload Engine dinonaktifkan di Windows Server 2003 SP2 (ini adalah pembunuh kinerja untuk banyak Server SQL)
  7. Verifikasi keselarasan Partisi Disk (juga pembunuh kinerja jika disk tidak selaras)
  8. Salin tabel SQL dari satu server ke yang lain
  9. Recursivley menyalin semua paket SSIS menggunakan Penyimpanan MSDB dari satu server ke yang lain, termasuk struktur folder
  10. Buat penampil ketergantungan objek grafis saya sendiri
Chad Miller
sumber
8

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

devio
sumber
+1 untuk mengotomatiskan seluruh proses pencadangan MSSQL.
Andrei Rînea
Yap ... Powershell adalah emas murni untuk mengotomatisasi cadangan kompleks di SQL Server. Kami menggunakannya untuk zip dan mengenkripsi backup setiap jam dan kemudian mengirim file ke Amazon S3 untuk penyimpanan di luar kantor: codeblog.theg2.net/2010/02/...
Greg Bray
7

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.

WiredNut
sumber
7

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:

PS SQLSERVER:\SQL\MyServer\MyInstance\Databases\ExampleDB\>function prompt {"PS >"}
PS >cd tables
PS >dir

SCHEMA          NAME         CREATED
------          ----         -------
dbo             MyTable      25/06/2009 17:02

PS > dir | format-table name, columns, rowcount, parent

NAME            COLUMNS      ROWCOUNT      PARENT
----            -------      --------      ------
MyTable         {Id, Name}   0             {ExampleDB}

PS >$myTable = dir | where {$_.Name -eq "MyTable"}
PS >$myTable.Script()

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE [dbo].[MyTable](
[Id] [int] IDENTITY(1,1) NOT NULL
[Name] [nText] NOT NULL
) ON [PRIMARY]

PS >set-location \SQL\AnotherServer\Default
PS >cd databases\Northwind\tables
PS >$myTables = dir | where {$_.Rowcount -gt 100 -and $_.HasIndex -eq 1}
PS >$myTables.Count

8

PS >foreach ($table in $tables) {$table.RebuildIndexes(90)}

Perhatikan baris pertama cukup mengubah prompt sehingga tidak terlalu lama.

Semoga terlepas dari itu jelas apa yang sedang terjadi di sini :)

Lex
sumber
+1 Wow, ini sangat berguna. Terima kasih!
jftuga
5

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!

SQLGuyChuck
sumber
4

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.

  • 1- Tarik daftar komputer yang diminta dari tabel database
  • 2- Menambahkan data saat ini dan waktu ke hasilnya
  • 3- Merekam hasil audit ke dalam basis data

Contoh skrip PowerShell:

# Open the database connection
$dbConn = new-object System.Data.SqlClient.SqlConnection "server=kcdb;database=Inventory;Integrated Security=sspi"
$dbConn.Open()
$sqlQuery = $dbConn.CreateCommand()

# Get all known computers
$sqlQuery.CommandText = "select * from Inventory..Computers"
$reader = $sqlQuery.ExecuteReader()
$computersToQuery = @()
while ($reader.Read()) {
   $computersToQuery += $reader["Computer"]
}

# Close the database connection
$dbConn.Close()

$softwareInventory = @{}
foreach ($computer in $computersToQuery) {
   $psinfoOutput = ./psinfo.exe -s Applications \\$computer

   $foundSoftwareInventory = 0
   $computerName = ""
   foreach ($item in $psinfoOutput) {
      if ($foundSoftwareInventory -eq 1) {
         # Force the results to a string
         # Remove any single quotes which interfere with T-SQL statements
         # Load the result into a hash whereby removing any duplicates
         [string]$softwareInventory[$computerName][$item.Replace("'","")] = ""
      }

      if ($item -like "System information for *") {
         $computerName = $item.Split("\")[2].TrimEnd(":")
      } elseif ($item -eq "Applications:") {
         $foundSoftwareInventory = 1
         $softwareInventory[$computerName] = @{}
      }
   }
}

$dbConn = new-object System.Data.SqlClient.SqlConnection "server=kcdb;database=Inventory;Integrated Security=sspi"
$dbConn.Open()
$sqlQuery = $dbConn.CreateCommand()

foreach ($computer in $softwareInventory.Keys) {
   foreach ($softwareItem in $softwareInventory[$computer].Keys) {
      "Loading-" + $computer + ":" + $softwareItem

      # Try an Update then an Insert 
      trap {
         $sqlQuery.CommandText = "update Inventory..SoftwareInventory set AuditDate = getdate() where  Computer = '" + $computer + "' and Software = '" + $softwareItem + "'"
         $result = $sqlQuery.ExecuteNonQuery()
         continue
      }

      $sqlQuery.CommandText = "insert into Inventory..SoftwareInventory (Computer,Software,AuditDate) values ('" + $computer + "','" + $softwareItem + "',getdate())"
      $result = $sqlQuery.ExecuteNonQuery()
   }
}

$dbConn.Close()

Dave J

Dave Jackson
sumber
3

Tugas-tugas berikut dilakukan oleh tim saya secara teratur dengan PowerShell

  • daftar memori yang tersedia di semua node cluster Hyper-V kami.
  • Kelola filer Netapp
  • Menyediakan Mesin Virtual Hyper-V baru
  • Menulis ke dan Baca dari daftar SharePoint secara terprogram

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

$url = "http://server/sites/site/_vti_bin/lists.asmx"
$listWebService = new-webServiceProxy -uri $url -UseDefaultCredential
$listName = "MyList"
$viewGuid = $null
$query= $null
$viewFields = $null
$numRowsReturned = 20000
$queryOptions = $null
$result = $listWebService.GetListItems($listName,$ViewGuid,$query,$viewFields,$numRowsReturned,$queryOptions,$null)

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

Function Get-AvailableMemory {
param
(
[string[]]
$servers
)
BEGIN {
$query = "select AvailableBytes,__SERVER from Win32_PerfRawData_PerfOS_Memory"

$availableMemory = @{
                    Name="AvailableMemory";
                    Expression = {[math]::round($_.AvailableBytes/1gb,2)}
                    }
$serverName = @{  
                Name ="Server";
                Expression = {$_."__SERVER"}                                      
               }
}
PROCESS {
foreach ($server in $servers){
    get-wmiobject -query $query -computer $server |
    select-object $availableMemory, $serverName
    }
}

END {}    

}
Andy Schneider
sumber
Punya kode sampel yang ingin Anda bagikan? Saya khususnya tertarik membaca dan menulis daftar SharePoint.
Brian
2

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) ...

Peter Mortensen
sumber
lookup psremoting
Sam
1

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 ^ ^

Oskar Duveborn
sumber
Lihat skrip powershell kecil ini untuk ngen majelis Anda dan mempercepat semua konsol berbasis powershell Anda: msexchangeteam.com/archive/2008/08/01/449426.aspx
Jesse Weigert
1

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
Ada PowerGUI, dan digunakan powergui ScriptEditor.exe, saya tidak bisa membayangkan bagaimana aku bisa hidup tanpa itu ...
Nicolas Dorier
Powershell 2 termasuk Powershell ISE (Editor Skrip Terpadu) yang hebat. CTP 3 tersedia, RTM ada sekarang, rilis final pada Oktober 2009.
Presipitous
1

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:

  1. Dapatkan ruang disk / RAM Gratis / bekas, dll.
  2. Permintaan WMI untuk informasi BIOS, model pembuatan server, dll.
  3. Periksa versi AV, dan pastikan entri registri tertentu ada di sana
  4. Audit Saham pada Server Windows

Skrip Pengguna:

  1. Hitung AD yang meraih semua pengguna, dan grup apa yang menjadi milik mereka kemudian menulis ke Excel, atau CSV
  2. Temukan pengguna yang saat ini masuk melalui Via TS dan di konsol

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.

Zypher
sumber
0

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.

Tubs
sumber
Ini bukan hal tercepat di dunia, tetapi bisa melakukan apa saja. Jika yang perlu Anda lakukan adalah memetakan beberapa drive, maka skrip batch jauh lebih cepat.
sysadmin1138
0

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.

RainyRat
sumber
0

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.

nonades
sumber
0

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.

Bratch
sumber
0

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 ...

pengguna7286
sumber
0

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:

Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix
squillman
sumber
hore for PowerShell, sayang sekali tidak diinstal secara default pada server 2003. Lokasi registri membantu!
Nick Kavadias
0

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.

Berzemus
sumber
0

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 ( -eqvs ==, -gtvs >, 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.

Peter Mortensen
sumber