Cum folosiți PowerShell?

Windows PowerShell came out last year and got great reviews from many .net bloggers (Hanselman comes to mind). It seemed to be touted as a great new utility that somehow made everything that you would ever do on the command line easier, and integrated with .Net. However, the more I read about it, the more it seems to be a tool that is great for IT professionals, and not much use for developers.

Folosesti PowerShell in munca ta de lucru? Dacă da, cum? Merită să înveți?

Notă: După ce am văzut răspunsurile până acum, cred că este valabil să concluzionăm că PowerShell poate fi foarte util pentru un dezvoltator .Net. Cu toate acestea, nu există un răspuns de mai jos, pe care să îl pot eticheta ca răspuns (deci vă rog să mă iertați că nu ați făcut acest lucru). Votez fiecare răspuns pe care l-am găsit de ajutor.

0
fr hi bn

13 răspunsuri

Folosesc foarte puțin pentru munca dev devreme. Am folosit-o pentru a configura directoarele virtuale în mod automat și pentru a executa un script care instalează IIS cu aceleași setări pe toate mașinile noastre dev

0
adăugat

Deși nu am învățat cum să o folosesc pe deplin, sunt fan deoarece susțin cele mai multe (dacă nu toate) comenzi Unix pe care le cunosc pentru a naviga utilizând o linie de comandă. Dacă aveți experiență * nix și sunteți în curs de dezvoltare pe Windows, aș recomanda să-l utilizați pentru asta doar pentru că va trebui să vă amintiți doar un set de comenzi.

Luați tot ce spun cu un bob de sare. Când vine vorba de construirea și compilarea, folosesc funcționalitatea liniei de comandă.

0
adăugat

În mod sigur merită învățat. Convertiți vreodată text? Manipulați vreodată XML? Automați vreodată ceva? Simplu exemplu. Cineva vă oferă un fișier delimitat cu virgulă și trebuie să scoateți câmpuri din acesta pentru a importa în alt instrument/bază de date sau pentru a crea o listă pentru programul dvs.

Dacă csv are numele câmpului în prima linie a fișierului, puteți face următoarele în Powershell:

$Data = import-csv "something.csv" 

Puteți apoi să vă referiți la datele dvs. utilizând numele câmpurilor. Dacă ați avea un câmp numit SSN, atunci ați putea spune $ Data [n] .SSN. De asemenea, ați putea să conduceți comanda import-csv la ceva care a procesat datele, inclusiv să le exportați ca XML/html sau orice doriți cu doar câteva comenzi. Powershell este plin de chestii ca asta.

Este un instrument care vă oferă acces extraordinar la o mulțime de lucruri de pe stația dvs. de lucru și servere, inclusiv biblioteca completă .NET. Este un instrument care nu vizează un tip de persoană. Poate că tocmai acele tipuri de administratori au fost rapid să-și dea seama cât de util este. Eu o folosesc în fiecare zi.

Pentru a răspunde la întrebarea, o folosesc pentru a automatiza lucrurile pe care le fac în fiecare zi. Încerc să-mi fac singurul limbaj de scripting, înlocuind lucrurile pe care le-am făcut în perl, python, vbscript, .bat/.cmd și pe un program mic de utilitate/conversie pe care l-aș crea.

0
adăugat

Mi se pare că WPS este o modalitate de a vă face viața mai ușoară să faceți lucrurile de care aveți nevoie. Nu cred că veți găsi WPS integrat în FireFox sau Quicken, dar acele echipe le-ar putea folosi pentru a face acele lucruri ... pe scurt "WPS nu vă face programul, WPS face programul dvs. mai ușor". ; O)

0
adăugat

Personal, folosesc Python pentru automatizarea sarcinilor, folosind WMI dacă este necesar. Cred că această combinație acoperă majoritatea necesităților mele .

Am testat PowerShell, mi se pare bine, dar nu merită învățat un instrument cu totul nou. În plus, există resurse online excelente pentru a stăpâni PowerShell dacă aveți nevoie sau doriți să (PowerShell Live) sau chiar rețete pentru a-ți îndeplini sarcinile fără a trebui să treci toată curba de învățare pentru tine.

0
adăugat

Poți urăsi Powershell, dar totuși poate fi incredibil de util pentru tine. Îl folosesc pentru tipuri mici de lucruri mici, dar importante, sau pentru scripturi foarte minore. Chiar nu se poate compara cu C# așa că, de îndată ce există o complexitate sau o potențială reutilizare potențială la toate trec la C #. De asemenea, important, Powershell este atât de funky că vreau să recreeze soluții de la zero de fiecare dată, altfel am uitat quirks, care sunt multe. Am auzit și alți oameni spunând asta!

Exemple de ceea ce este foarte bun pentru:

  1. Prelucrarea textului ad-hoc. Ocazional, oamenii îmi transmit o fișă mare de date sau un fișier SQL și doresc ca aceasta să fie manipulată într-o altă formă, uneori într-un mod foarte complicat. Numai asta ma salvat incredibil de mult timp. Este de multe ori implică o mulțime de adhoc o linie și fișiere intermediare. Acum, că oamenii știu că pot face acest lucru, ei tind să transmită astfel de proiecte pentru mine. Sau, în unele cazuri, sunt atât de uimit că află Powershell pentru ei înșiși.

  2. Când sunt la un site de clienți și cu disperare trebuie să automatizez ceva și este singurul instrument pe care îl pot și/sau am permis să-mi pun mâna pe.

  3. Scripturi mici pentru a vă conecta la site-uri web și pentru a naviga la orice pagină interesată sau pentru care lucrez. Nu mă loghez niciodată manual la un site web pe care îl dezvolt. Trivial, dar asta e o sarcină mai puțin deranjantă, repetând creierul mort, de care trebuie să-mi fac griji.

  4. Unelte pentru a copia fișierele și proiectele în jurul lor și căutarea și înlocuirea acestora.

  5. Scripturile mici care se construiesc, dacă există complicații neobișnuite.

  6. Etc. Sunteți obligat să aveți niște ciudățenii în sistemul dvs., unde trebuie să opriți/să începeți un serviciu pentru a remedia altceva sau orice altceva.

0
adăugat

Eu folosesc acest lucru pentru un tip de IT IT un pic echitabil (pentru care este genial), dar nu cred că i-am folosit mult pentru dezvoltare - ocazional pentru a încerca rapid ceva de genul String.Format. Ceea ce o să fac este să dezvolte comenzi pentru mai multe aplicații - pentru a permite administratorilor să îndeplinească sarcini cum ar fi gestionarea utilizatorilor prin intermediul powershell-ului, dar nu cred că asta înseamnă cu adevărat.

0
adăugat

Tocmai am terminat versiunea 1 a unui proiect care a găzduit o execuție PowerShell pentru a executa sarcini pe sisteme la distanță. Nu sunt de acord cu toată inima că PowerShell nu este instrumentul lui dev.

Ca produs bazat pe .NET, este un analog direct cu programarea .NET. Întregul .NET programe pot fi prototipate în PS, precum și mici oneliners pentru a testa funcționalitatea metodelor ... etc. Că arhitecții de limbă pentru PS, în mod special, proiectați sintaxa PS pentru a fi aproape de C#, înseamnă că există foarte puține comutări de context atunci când scriu scripturi PS și cod C# (ceva ce trebuia să fac foarte mult recent). Construiești cunoștințele deja câștigate cu limbaje .NET folosind PS.

Ca instrument de automatizare, este superb. Accesează WMI, ADO, ADSI, .NET, COM nativ, plus poate fi sudat la fața locului pentru a lucra cu orice altceva. Acest lucru face ca orice automatizare Windows să fie mai ușoară și mai puternică. Cantitatea de acces la sistem este paralizată de alte langaje (VBscript, Python), dar ușurința utilizării limbajului și beneficiul cadrului .NET înseamnă că unele scripting PS leagă împreună codul existent (reutilizarea codului) în loc de irosind timpul de scriere încă un alt fișier zipping rutină (de exemplu ...)

Există deja proiecte care fac instrumente de construire (psame vine în minte) pentru a face viața lui dev mai ușoară. Proiectele precum Extensiile comunitare Powershell arată puternicele capacități de extindere pe care le poate realiza obișnuitul distribuitor de zi cu zi. Sunt de acord cu unele dintre afișele de mai sus, consider că orice a fost făcut pentru a configura configurația envrionments sau a lucra cu date pentru sarcini dev, se poate face cu PS, dacă nu mai rapid/mai ușor/mai bine, dar la fel de bine.

James

0
adăugat

Folosesc PoSH pentru orice lucrare "repetita" pe care trebuie sa o fac pentru administrarea retelelor, domeniilor, calculatoarelor, utilizatorilor de AD, editarea textului, cautari de fisiere, migrari de fisiere-servere, monitorizare si distractie!

0
adăugat

Îl folosesc pentru a automatiza cât de mult pot. Un exemplu este Web UI Automation , pentru a ușura dezvoltarea/testarea aplicațiilor.

De asemenea, îl folosesc pentru a genera fișiere de intrare aleatoare pentru diverse programe. De exemplu, o aplicație așteaptă un fișier xml și am un script pentru a construi acel fișier cu valori aleatorii și un id unic bazat pe ora curentă.

Eu nu o folosesc foarte mult, dar o folosesc în fiecare zi.

0
adăugat

Sunt un administrator de comerț și abia începem în lumea "Dev", dar văd că PowerShell poate fi foarte util dezvoltatorilor în mai multe moduri.

  1. Task automation -> Lee Holmes (a developer on the PowerShell team) posted a proof-of-concept called BgShell, which was basically the PowerShell runtime hosted in a windows forms app that listened for keystrokes and kicked off actions written in PowerShell based on them. It also included some clipboard automation.
  2. Quick access to the .NET framework. You don't have to compile and run something or use another program like Snippet Compiler to test some functionality. Load the assembly into your PowerShell session and interact with it. You get all the discoverability of PowerShell (like Get-Member) to explore your object.
  3. Easy to build domain specific languages. James Kovacs wrote a simple build script language with PowerShell called Psake.
  4. It can provide a scripting language for your application. Since PowerShell is part of the 09 Common Engineering Criteria, a lot of Microsoft applications will have interfaces for PowerShell, and familiarity with the language syntax will grow. You can leverage that knowledge by embedding the PowerShell runtime in your application and providing a scripting interface to your users, choosing what objects they will have access to.
  5. Along the same line, if you need to create a command-line interface for your application, PowerShell provides a large part of the underlying plumbing needed for parsing arguments, and other basic tasks, leaving only the business logic for you to write, and providing a consistent interface with other applications (for example, if you have user accounts that need to be managed (that don't already integrate with Active Directory, an admin could (using the Quest AD Cmdlets and your applications interface) Get-QADUser | New-MyApplicationUser and be done. The Exchange 2007 team did this very well. All the functionality is based on PowerShell cmdlets, the GUI calls the cmdlets and shows the user what is being run, so they can build scripts based off of that.
  6. It's just cool! In about 250 lines (including comments), Rob Foust and Jeff Hicks wrote a network sniffer in PowerShell. Easier to use than WinDump for lightweight troubleshooting.
  7. Community - There is a great community focused around PowerShell, including developers. Find out more at PowerShellCommunity.org.
0
adăugat

@EdSwangren - Dacă trebuie să lucrați în primul rând pe o platformă Windows și să lucrați în spațiul .NET, aș recomanda cu toată inima să punem timpul pentru a învăța PowerShell. Acesta poate influența experiența și codul dvs. existent .NET, funcționează cu COM, WMI și ADSI. Acesta vă permite accesul la aproape orice pe platforma Windows (și asta e doar V1). V2 este în curs de dezvoltare activă (CTP2 este disponibil acum) și va include mai multe remoting, thread-uri STA, și multe alte îmbunătățiri.

Mulți furnizori susțin, de asemenea, PowerShell - de la/n Software care furnizează cmdleturi de rețea, la Citrix și VMWare, oferind managementul api prin PowerShell.

0
adăugat

Nu este niciodată folosită ca parte a rolului meu de dezvoltare, dar din când în când primesc o sarcină pe care o scriu un mic program de automatizare, pe care acum mă forțez să-l fac în powerhell și durează mai puțin.

De exemplu, am mutat recent sute de mii de fișiere de la un server la altul folosind xcopy și am uitat să setați atributul pentru a păstra datele de creare a fișierelor. Găsește-te la salvare. În decurs de zece minute am avut un scenariu scris și testat care copia datele de creare fără a fi nevoie să copiați din nou fișierele.

0
adăugat
Wow! ne puteți arăta scenariul?
adăugat autor l--'''''&#, sursa