शक्ति कोशिका? क्या तुम इसका इस्तेमाल करते हो? क्या आप मुझे कुछ शांत प्रणाली प्रशासन चीजें दिखा सकते हैं जो मैं इसके साथ कर सकता हूं? [बन्द है]


45

मैं हर जगह पढ़ता रहता हूं कि पॉवरशेल भविष्य का तरीका है। जब इसे पहली बार रिलीज़ किया गया था तो मैंने वर्चुअल लैब का एक पूरा गुच्छा तैयार किया था, लेकिन तब से मैंने इसे प्रोडक्शन के माहौल में इस्तेमाल नहीं किया है। मुझे पता है कि वह दिन आएगा जब मैं ओएस के साथ काम कर रहा हूं जहां यह पहले से ही स्थापित है, इसलिए मैं तैयार रहना चाहता हूं।

मैं जानना चाहता हूँ:

  1. क्या तुम इसका इस्तेमाल करते हो?
  2. PowerShell का उपयोग करने के लिए आपकी 'बूटस्ट्रैपिंग' प्रक्रिया क्या रही है?
  3. आपने किस तरह के सिस्टम प्रशासन कार्य किए हैं?
  4. मैं एक SQL सर्वर डेटाबेस व्यवस्थापक हूँ। इसके साथ कुछ शांत चीजें क्या हैं?

ऐसा लगता है कि हर कोई सहमत है कि Microsoft इस मुश्किल को आगे बढ़ा रहा है, लेकिन कोई भी वास्तव में अभी तक इसका उपयोग नहीं कर रहा है। मैं सिस्टम एडमिनिस्ट्रेटर से सुनना चाहता हूं जो इसका उपयोग हर दिन के कार्यों को करने के लिए कर रहे हैं और कुछ कोड नमूने साझा करते हैं।


JScript मर चुकी है?
सोफी अल्परट

7
अगली बार अपनी भ्रामक सुर्खियों के साथ ट्रोल न बनने की कोशिश करें।
जयकुल

शायद यह इसलिए है क्योंकि कभी-कभी मैं चाहता हूं कि यह jscript की तरह दूर चला जाए। क्या यह सिर्फ मैं है या यह बहुत बदसूरत और क्रिया है?
निक कवडियास

जवाबों:


34

Microsoft यह कर रहा है कि वह PowerShell को हर जगह बिजली-उपयोगकर्ताओं और स्वचालन लेखकों की पसंद बना सकता है। एक ही काम करने के लिए .NET में कोड संकलित करने के दिन आ गए हैं, अब आपको सिर्फ notepad.exe और google की आवश्यकता है। हम कार्यालय में इसके बड़े प्रशंसक हैं, खासकर एक्सचेंज 2007 के प्रबंधन कंसोल में वह सब कुछ शामिल नहीं है जो आप PowerShell में कर सकते हैं। Microsoft जानबूझकर उन चीजों को लागू करने में विफल रहा जो केवल एक बार एक महान समय में किया जाता है, उस तरीके को विकसित करना आसान होता है, जो एक जटिल वातावरण जैसा कुछ भी होने पर इसके उपयोग को बल देता है।

Microsoft की नई पीढ़ी के उत्पादों का प्रबंधन (Win7, Windows Server 2008, Exchange 2007/2010, SQL Server 2008) सभी में बहुत समृद्ध PowerShell हुक हैं। एक बार रिमोट पॉवरशेल (PowerShell 2.0 IIRC) सर्वर 2008 R2 के साथ तैनात हो जाता है, यह स्वचालन लेखकों के लिए और भी उपयोगी हो जाएगा।

हमने इसके साथ क्या किया है:

  • हेल्पडेस्क उपयोगकर्ताओं के लिए कुछ व्यवस्थापक कार्यों को सौंपने के लिए एक वेब-पेज बनाएं। PowerShell में निष्पादित होने वाले आदेशों को वेब-पेज बंद कर देता है। चीजें यह करती हैं:
    • Exchange 2007 मेलबॉक्स और होम निर्देशिकाओं को प्रावधान करने सहित उपयोगकर्ता खाते बनाएं और हटाएं
    • अनलॉक खातों को बंद कर देता है
    • समूह बनाएं / हटाएं
    • उपयोगकर्ताओं को समूहों से जोड़ें / निकालें
    • मेल-स्टोर के बीच उपयोगकर्ताओं को स्थानांतरित करें
    • पासवर्ड सेट करें
  • ईआरपी सिस्टम से अर्क लें और वैश्विक निर्देशिका-पुस्तक डेटा को रात में सक्रिय निर्देशिका में धकेलें।
  • LegacyExchangeDN समस्या को हल करें जो हमारे Exchange 2003 के साथ Exchange 2007 माइग्रेशन में क्रॉप हो गई है। Exchange 2003 में सभी के लिए एक X500 पता जोड़ना था। एक काफी कम PowerShell स्क्रिप्ट ने इसे ठीक कर दिया।
  • "समूह मेलबॉक्स" की स्क्रिप्टेड रचना (एक्सचेंज में साझा मेलबॉक्स जहां कई उपयोगकर्ताओं को मेलबॉक्स तक पहुंच प्राप्त होती है), अन्यथा इसे बंद करने से पहले हमें डेटा की प्रकृति के कारण एक अन्यथा मैन्युअल प्रक्रिया। इसने इन मेलबॉक्सों के सेटअप को बहुत मानकीकृत किया।
  • एक स्क्रिप्ट तैयार की जो सभी डोमेन मशीनों के माध्यम से चली गई, एक विशिष्ट रजिस्ट्री कुंजी को रीसेट करना और एक सेवा को पुनरारंभ करना। इसे पूरा करने में 18 घंटे लगे, लेकिन इसे काम मिल गया।

तो हाँ, PowerShell काफी समय के लिए हमारे साथ रहने वाला है।

EDIT : एक कोड-नमूना जोड़ना, क्योंकि यह अनुरोध किया गया था

$ सूची = आयात सीएसवी ( "groupusers.csv")
$ Lastseengroup = $ सूची [0] .group
$ ADGroupPrefix = "grp.netware।"
$ ADGroupSuffix = "{redacted - के प्रारूप में, ou = समूहों, डीसी = डोमेन, डीसी = डोमेन, डीसी = डोमेन}"
स्पष्ट-चर सदस्य
स्पष्ट-चर अज्ञातजन
foreach ($ सूची में $ प्रविष्टि) {
    अगर ($ ($ entry.group) -n $ lastseengroup) {
        गूंज "नए समूह $ ($ प्रविष्टि। समूह) में ठोकर खाई, $ lastseengroup में परिवर्तन करने"
        $ Newgroup = $ ADgroupPrefix + $ lastseengroup
        $ Newgroupdn = '' '+' cn = $ newgroup $ ADGroupSuffix "+" '
        गूंज "$ newgroup के लिए DN हो रही है"
        $ मौजूदा समूह = dsquery समूह domainroot -name $ newgroup
        यदि (($ $ मौजूदा $ $)) {
            dsmod group $ newgroupdn -chmbr $ मेम्बरलिस्ट
        } अन्य {
            dsadd समूह $ newgroupdn -scope u -secgrp हाँ -members $ में सदस्य सूची "-Dcc से आयातित समूह"
        }
        स्पष्ट-चर सदस्य
    }
    $ उपयोगकर्ता = get-user $ ($ entry.member) -ErrorAction SilentlyContinue
    अगर ($ User.isvalid) {
        $ UserDN = $ User.distinguishedname
        $ सदस्य = $ सदस्य सूची + '' + '' $ उपयोगकर्ता डेटाबेस "+ '"'
    } अन्य {
        $ Unknownusers = $ unknownusers + $ ($ entry.member)
    }
    $ Lastseengroup = $ ($ entry.group)

}
dsadd समूह "cn = $ ADGroupPrefix $ lastseengroup $ ADGroupSuffix" -scope u -secgrp हाँ-सदस्य $ सदस्य

यह एक पर्ल स्क्रिप्ट के साथ बनाई गई CSV फ़ाइल लेता है और समूहों के एक समूह को अद्यतन करता है। यदि समूह पहले से मौजूद है, तो वह फ़ाइल में निर्दिष्ट सदस्यता को बदल देता है। यदि समूह मौजूद नहीं है, तो यह इसे बनाता है। यह वन-वे सिंक है। इसके अलावा, अभी तक उत्पादन में काफी नहीं है, लेकिन करीब है।


6
दूरस्थ शक्तियां !! आप शश की तरह मतलब !? समय के बारे में!
निक कवडियास

2
आप किसी वेबसाइट से पॉवरशेल स्क्रिप्ट कैसे चलाते हैं, क्या आप पॉवरशेल स्क्रिप्ट का उपयोग वेब प्रोग्रामिंग लैंग्वेज के रूप में करते हैं? क्या आप शक्तियां का उपयोग कर रहे हैं? क्या आप अपनी स्क्रिप्ट्स को IIS उपयोगकर्ता के रूप में चला रहे हैं?
क्वेंटिन

17

यह देखते हुए कि Microsoft के सर्वर उत्पाद शुरू से ही PowerShell- सक्षम होने जा रहे हैं (मेरा मानना ​​है कि Exchange के अगले संस्करण में PowerShell के माध्यम से सभी कॉन्फ़िगरेशन उपलब्ध हैं), और यह कि PowerShell जैसी पुस्तकें अभ्यास में कुछ शानदार तरीकों का वर्णन करती हैं अन्यथा नीरस कार्यों को स्वचालित करने के लिए, मुझे लगता है। यह सुझाव देना उचित है कि PowerShell थोड़ी देर के लिए विंडोज सर्वरलैंड में एक प्रचलित तकनीक होगी।


वह पुस्तक अभी भी बीटा में है / लिखी जा रही है
निक कावडिया

हां, यह है - लेकिन आप अभी भी इसे खरीद सकते हैं और सामग्री तक शीघ्र पहुंच प्राप्त कर सकते हैं। और वहाँ के सर्वर-रखरखाव सामान के टन है :)
moobaa

4
एक्सचेंज 2007 के बाद से सभी पॉवरशेल हो गया है। OCS अपनी अगली रिलीज में पूरी तरह से पॉवरशेल-सक्षम होगा; सिस्टम सेंटर के अधिकांश उत्पाद या तो इसका पूरी तरह से समर्थन करते हैं या अपनी अगली रिलीज़ में करेंगे। PowerShell कहीं भी नहीं जा रहा है।
पौल २ pa

12

मैं स्कॉट हंसेलमैन के पॉडकास्ट # 162 की सिफारिश करूंगा । ऐसा लगता है कि सभी Microsoft सर्वर टीमें PowerShell cmdlets प्रदान करने के लिए "मजबूर" हैं, और एकल, सुसंगत वाक्य रचना का पालन करने के लिए भी।

साथ ही, वीएमवेयर जैसे तीसरे पक्ष इसे अपना रहे हैं

संक्षेप में, मेरा मानना ​​है कि 2.0 के साथ शुरू होने वाला पावरशेल सभी के लिए बैच फ़ाइलों को बदलने के व्यवसाय में गंभीरता से है लेकिन सबसे तुच्छ कार्य हैं।


10

दस PowerShell लिपियाँ जो मैं SQL सर्वर डेटाबेस व्यवस्थापक के रूप में उपयोग करता हूँ (सभी मेरे ब्लॉग पर वर्णित / पोस्ट की गई हैं ):

  1. सभी SQL सर्वर पर डिस्क स्थान की जाँच करें और डेटा को एक SQL तालिका में लोड करें
  2. सभी उत्पादन SQL सर्वर पर अनुमतियाँ चलाएँ और SQL डेटाबेस के लिए डेटा लोड करें
  3. नेटवर्क पर सभी विंडोज सर्वर 2003 क्लस्टर, नोड और वर्चुअल डिस्कवर और एसक्यूएल टेबल पर लोड करें
  4. SCCM में परिभाषित सभी SQL सर्वर पर सभी डेटाबेस की खोज करें और SQL टेबल पर लोड करें
  5. SQL तालिका में सभी SQL सर्वर पर बैकअप जानकारी लोड करके एक SQL सर्वर बैकअप स्कोरकार्ड बनाएँ
  6. सत्यापित करें कि Windows Server 2003 SP2 में TCP ऑफ़लोड इंजन अक्षम है (यह कई SQL सर्वर के लिए एक प्रदर्शन हत्यारा है)
  7. डिस्क विभाजन संरेखण सत्यापित करें (यदि डिस्क अनुचित तरीके से संरेखित की जाती है तो एक प्रदर्शन हत्यारा भी)
  8. SQL टेबल को एक सर्वर से दूसरे सर्वर पर कॉपी करें
  9. Recursivley फ़ोल्डर की संरचना सहित एक सर्वर से दूसरे सर्वर पर MSDB संग्रहण का उपयोग करके सभी SSIS पैकेजों की प्रतिलिपि बनाता है
  10. अपनी स्वयं की चित्रमय वस्तु निर्भरता दर्शक बनाएं

8

आपने इसके साथ किस प्रकार के व्यवस्थापक कार्य किए हैं?

आवेदन / सेवा की निगरानी: (रिमोट) EventLog और संग्रहित प्रक्रियाओं से महत्वपूर्ण प्रदर्शन संख्याएं प्राप्त करें और उन्हें एक ही बैच फ़ाइल से प्रदर्शित करें

मैं एक एसक्यूएल सर्वर डीबीए हूं, मुझे इसके साथ कुछ शांत चीजें दिखाएं?

automssqlbackup : रोटेशन के साथ MSSQL के लिए दैनिक बैकअप (दैनिक = वृद्धिशील, साप्ताहिक + मासिक = पूर्ण), 5 दैनिक, 5 साप्ताहिक बैकअप रखें), ज़िपिंग, ईमेल अधिसूचना


संपूर्ण MSSQL बैकअप प्रक्रिया को स्वचालित करने के लिए +1।
आंद्रेई रोनेया

हां ... पॉवर्सशेल SQL सर्वर में जटिल बैकअप को स्वचालित करने के लिए शुद्ध सोना है। हम इसका उपयोग ज़िप करने और प्रति घंटा बैकअप एन्क्रिप्ट करने के लिए करते हैं और फिर फ़ाइलों को स्टोरेज के लिए Amazon S3 में भेजते हैं: codeblog.theg2.net/2010/02/…
ग्रेग ब्रे

7

पिछले कैरियर में यूनिक्स शेल स्क्रिप्ट का उपयोग करने के बाद, फिर विंडोज़ सर्वर प्रशासन में जा रहा है, मैं कह सकता हूं कि मैं वास्तव में वास्तव में सराहना कर रहा हूं - मेरे पास समय नहीं है और न ही बहुत अधिक रहस्यमय वाक्य सीखने की क्षमता है और सुखद आश्चर्य हुआ कि बहुत शब्‍दावली वाली लिपियों को बहुत ही सीधी भाषा में लिखा जा सकता है ... यह लीजिए कि मैं इसके लायक था जैसा कि मैंने ksh में प्रयोग किया था !!

मुझे लगता है कि यह लंबे समय तक रहेगा।


7

मुझे लगा कि यह अच्छा था: SQL Server 2008 के साथ आपको नए PowerShell एक्सटेंशन मिलते हैं जो आपको अपने स्थानीय फ़ाइल सिस्टम या रजिस्ट्री की तरह SQL डेटाबेस नेविगेट करने की अनुमति देते हैं।

SQL सर्वर क्लाइंट उपकरण स्थापित करने के बाद आप PowerShell (राइट क्लिक संदर्भ मेनू के माध्यम से) में किसी भी डेटाबेस को खोल सकते हैं और ऑब्जेक्ट ओरिएंटेड तरीके से इसके साथ खेल सकते हैं:

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

ध्यान दें कि पहली पंक्ति बस संकेत को बदल देती है ताकि यह इतना लंबा न हो।

उम्मीद है कि इसके अलावा यह स्पष्ट है कि यहाँ क्या हो रहा है :)


+1 वाह, यह बहुत उपयोगी है। धन्यवाद!
jftuga

5

SQL सर्वर 2008 में अब प्रबंधन स्टूडियो में PowerShell संदर्भ विकल्प हैं, इसलिए एक्सचेंज से अधिक इसे गले लगा रहा है। इसके अलावा, इसे डॉस के प्रतिस्थापन के रूप में सोचें, जैसा कि एमएस बहुत सोच रहा था क्योंकि वे सिर्फ बैकवर्ड संगतता मुद्दों के लिए डॉस की सुरक्षा में सुधार नहीं कर सकते हैं, इसलिए उन्होंने बस कुछ नया और मज़ाक बनाया, समस्या हल हो गई!


4

मैं भी एक डीबीए, और लंबे समय के बाद, डीओएस बैच फ़ाइलों के लिए वापस जा रहा हूँ, V3.3! VB स्क्रिप्ट पर ले जाया गया लेकिन PS बहुत शक्तिशाली है। एक नज़र डालें - क्षमा करें, मैं लिंक पोस्ट नहीं कर सकता, क्योंकि मैं एक नया उपयोगकर्ता हूं। इसे ओटो हेलवेग के ब्लॉग से मिला। यह एक सस्ता और हंसमुख सॉफ्टवेयर इन्वेंट्री टूल है।

  • 1- डेटाबेस तालिका से क्वेरी करने के लिए कंप्यूटर की सूची खींचता है
  • 2- वर्तमान डेटा और परिणाम के लिए समय जोड़ता है
  • 3- ऑडिट के परिणामों को डेटाबेस में दर्ज करता है

उदाहरण 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()

डेव जे


3

मेरी टीम द्वारा PowerShell के साथ बहुत नियमित आधार पर निम्नलिखित कार्य किए जाते हैं

  • हमारे हाइपर- V क्लस्टर्स के सभी नोड्स पर उपलब्ध मेमोरी को सूचीबद्ध करें।
  • एक Netapp फ़ाइलर प्रबंधित करें
  • नई हाइपर-वी वर्चुअल मशीन का प्रावधान
  • SharePoint सूचियों से प्रोग्रामेटिकली लिखें और पढ़ें

दिन-प्रतिदिन, मेरे पास हर समय एक पीएस प्रॉम्प्ट है और इसे किसी भी एक बंद कार्य के लिए उपयोग करें जो मैं सीएमडी के लिए उपयोग करता था।

Sharepoint Lists पढ़ने के लिए यहां कुछ कोड नमूने दिए गए हैं। मैं Sharepoint से वेब सेवाओं और PowerShell V2.0 में नए "New-WebServiceProxy" cmdlet का उपयोग करता हूं

$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 के पास Sharepoint Web Services का उपयोग करने पर एक महान ब्लॉग पोस्ट है जिसे मैंने अपने सभी कार्यों को बनाने के लिए एक आधार के रूप में उपयोग किया था। उन्होंने कहा कि यदि आप अभी भी PowerShell V1 का उपयोग कर रहे हैं, तो आप उपयोग कर सकते हैं एक भयानक नई webservice.ps1 स्क्रिप्ट है।

इसके अलावा, यहां आधार फ़ंक्शन है जो मैंने अपने क्लस्टर में नोड्स पर उपलब्ध मेमोरी प्राप्त करने के लिए उपयोग किया था

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 {}    

}

कोई नमूना कोड प्राप्त करें जिसे आप साझा करना चाहते हैं? मुझे SharePoint सूचियों को पढ़ने और लिखने में विशेष रुचि है।
ब्रायन

2

मैंने काम में एक छोटे से प्रोजेक्ट के लिए PowerShell की कोशिश की - ~ 600 उपयोगकर्ताओं के उप-समूह के दैनिक माइग्रेशन और कॉर्पोरेट AD से एक पुराने UNIX सिस्टम में CSV जैसी फ़ाइलों का उपयोग करके 200 समूह । मुझे एक 500-लाइन VBScript स्क्रिप्ट (!) की पेशकश की गई, जिसने एक एकल समूह और उसके उपयोगकर्ताओं को शुरुआती बिंदु के रूप में निकाला।

यह एक ~ 20-लाइन PowerShell स्क्रिप्ट निकला जो पूरी बात कर सकता है ...

एक * NIX उपयोगकर्ता (सर्वर और क्लाइंट साइड) के रूप में, मैं PowerShell के साथ बहुत सुखद आश्चर्यचकित हूं। यहां तक ​​कि अगर आप सिर्फ आदेशों का एक छोटा सा उपसमुच्चय जानते हैं, तो आप इसके साथ वास्तव में शक्तिशाली काम कर सकते हैं। मुझे बस SSH (जैसे) रिमोट एक्सेस की आवश्यकता है ...


लुकिंग सार्मोटोटिंग
सैम

1

मैं इसका उपयोग कैसे नहीं कर सकता हूं? सभी Microsoft सर्वर अनुप्रयोग जो अपग्रेड / अपग्रेड किए जा रहे हैं, उन्हें अब Powershell का उपयोग करके प्रबंधित किया जाता है। कुछ अधिक या कम कष्टप्रद यूआई / प्रबंधन कंसोल को इस कोर के ऊपर बनाया गया है, जो अक्सर कुत्ता धीमा होता है और जैसा कि किसी ने बताया, सुविधाओं की कमी है जो उपलब्ध हैं ... इसलिए मैं यह नहीं कह सकता कि हमारे पास वास्तव में बहुत अधिक विकल्प हैं ^ ^


अपनी असेंबली को एनजेन करने के लिए इस छोटी सी पॉवरशेल स्क्रिप्ट को देखें और अपने सभी
पॉवरशेल

1

पॉवरशेल सही नहीं है, लेकिन अगर आपने इसका इस्तेमाल किया है तो आपको पता है कि यह बहुत अच्छा है। पूरे .net लाइब्रेरी प्लस बिल्ट-इन cmdlets (और 2.0 में PS का उपयोग करके अपने स्वयं के cmdlets बनाते हैं) तक पहुंच, यह बहुत अच्छा है।

केवल एक चीज जो मुझे याद आ रही है, वह इसके लिए एक अच्छी आईडीई है जो मुझे यकीन है कि किसी दिन एमएस से आएगी। अभी मैं इडेरा के पॉवरशेल प्लस और एडिम्न्सस्क्रिप्टेडिटर का उपयोग करता हूं जो डिबगिंग की अनुमति देता है और बहुत अच्छा होता है।

मैं अपने आप को अच्छी तरह से वीबी से दूर करने में सक्षम था।

पॉश के साथ डेट करने की मेरी सबसे बड़ी परियोजना "पावरशेलसएएसपी" का उपयोग एक बेसिक वेब पेज बनाने के लिए है जो पावरशेल कमांड चलाता है और मेरे एक दर्जन से अधिक वीएमवेयर ईएसएक्सआई (फ्री) होस्ट्स से वीएमवेयर होस्ट और वीएम जानकारी खींचता है और उन्हें एचटीएमएल टेबल में प्रदर्शित करता है। मैंने ऐसा इसलिए किया क्योंकि मुफ्त VMWare ESXi और किसी वर्चुअल सेंटर के साथ, कंपनी में मेरे सभी VMs का वास्तविक समय अवलोकन प्राप्त करने का कोई अन्य तरीका नहीं है। PowershellASP IIS के लिए लिखा गया एक निशुल्क 3 पार्टी पार्सर है और एमएस द्वारा समर्थित नहीं है। तो यह अभी कुछ सीमित काम कर सकता है और प्रलेखन बहुत विरल है।


वहाँ PowerGUI है, और Powergui में ScriptEditor.exe का उपयोग करें, मैं कल्पना नहीं कर सकता कि मैं इसके बिना कैसे रह सकता हूं ...
निकोलस डोरियर

Powershell 2 में एक महान Powershell ISE (इंटीग्रेटेड स्क्रिप्ट एडिटर) शामिल है। CTP 3 उपलब्ध है, RTM अब चारों ओर है, अक्टूबर 2009 में अंतिम रिलीज़।
प्रतिष्ठित

1

मेरे पास प्रबंधन / इन्वेंट्री लिपियों का एक पूरा गुच्छा है, जो अलग-अलग चीजों के लिए एडी के माध्यम से खोज करते हैं, और उन्हें महत्वपूर्ण आँकड़ों के लिए WMI पर क्वेरी करते हैं जैसे कि सर्वर, डिस्क स्थान, प्रयुक्त डिस्क स्थान, आदि पर शेयर।

सामान्य लिपियाँ:

  1. फ्री / यूज्ड डिस्क स्पेस, रैम इत्यादि प्राप्त करें।
  2. BIOS जानकारी के लिए क्वेरी WMI, सर्वर मॉडल बनाते हैं, आदि।
  3. AV संस्करण की जाँच करें, और सुनिश्चित करें कि कुछ रजिस्ट्री प्रविष्टियाँ हैं
  4. विंडोज सर्वर पर ऑडिट शेयर

उपयोगकर्ता लिपियों:

  1. सभी उपयोगकर्ताओं को हथियाने के लिए AD की गणना करें, और उसके बाद वे कौन से समूह हैं जो Excel, या CSV को लिखते हैं
  2. वर्तमान में उपयोगकर्ताओं के माध्यम से वाया TS और कंसोल पर लॉग ऑन करें

मेरे पास एक ऐसा है जो अपने ESX सर्वरों पर सभी VMWare अतिथि मशीनों की गणना करता है

मेरे पास एक स्क्रिप्ट है जो एक्स दिनों के बाद फाइलों को पकड़ती है और उन्हें सुरक्षित रूप से हटा देती है।

मूल रूप से मैं कर सकता हूँ जो VBScript की लगभग 200 पंक्तियों को ले गया और इसे PowerShell के 10 में कर दिया। आप वो सामान भी कर सकते हैं जो आप सिर्फ VBScript में नहीं कर सकते हैं या अच्छा नहीं कर सकते हैं - जैसे अटैचमेंट के साथ ईमेल भेजें - जो मैं नियमित रूप से अपनी स्क्रिप्ट के परिणाम भेजने के लिए करता हूं। इसके अलावा, आप कस्टम सेवा के नाम और इवेंट आईडी के साथ ईवेंट लॉग में सार्थक और अनूठी प्रविष्टियाँ लिख सकते हैं।

यही मैं अपने सिर के ऊपर से सोच सकता हूं। मेरी पसंद का उपकरण अब PowerShell है, यह जीवन को आसान बनाता है।

मूल रूप से यह बस सिस्टम एडमिनिस्ट्रेटर के लिए उपयोगी है क्योंकि बैश स्क्रिप्टिंग एक यूनिक्स प्रशासक के लिए है।


0

मैं अपने क्लाइंट बैच स्क्रिप्ट्स - रनिंग प्रोग्राम्स, लॉगऑन स्क्रिप्ट्स आदि को बदलने के लिए poweshell को देख रहा था।

लेकिन यह पाया गया कि लॉगऑन के समय में कम से कम 10 सेकंड का समय लगता है - जो कि सभी "ट्विक्स" के स्थान पर है। इसलिए जो हम उपयोग कर रहे थे, उसके साथ रहना समाप्त कर दिया।


यह दुनिया की सबसे तेज चीज नहीं है, लेकिन यह हर चीज के बारे में कर सकती है। अगर आपको बस कुछ ड्राइव करने की जरूरत है, तो बैच स्क्रिप्ट तेजी से आगे बढ़ती हैं।
sysadmin1138

0

.NET डेवलपर नहीं होने के कारण, मेरे पास उन सभी .NET से संबंधित अच्छाइयों के लिए सीमित उपयोग है जो PS आपको उपयोग करने देता है। हालाँकि, एक Exchange व्यवस्थापक (अन्य चीज़ों के बीच) होने के नाते, Exchange 2007 के लिए PowerShell एकीकरण AWESOME है। अंत में मेरे मेल सिस्टम के लिए एक विश्वसनीय स्क्रिप्टिंग इंजन है; अब तक, मैंने इसे सभी के मेलबॉक्सों पर मासिक आँकड़े भेज रहा है, जो कि दिन के समय के आधार पर विभिन्न ईमेल पते सौंपे गए हैं, को स्वचालित रूप से बनाने और हमारे दो मेल मेलबॉक्स DBs के बीच सार्वजनिक फ़ोल्डर्स और लोड-संतुलन उपयोगकर्ताओं पर अनुमतियाँ असाइन करने के लिए असाइन किया गया है । Ex07 के दृष्टिकोण से दूसरी अच्छी बात यह है कि जब आप GUI में कुछ भी करते हैं, तो यह आपको संबंधित पावरस्लैम कमांड के साथ प्रस्तुत करता है जो आपने अभी किया था। उन लोगों को कॉपी करें, और आपके पास अंततः पीएस स्क्रिप्ट का एक सेट होगा जो आपके एक्सचेंज वातावरण को खरोंच से फटकार सकता है।


0

सर्वर चेकअप के साथ कुछ चीजों को स्वचालित करना जहां मैं काम करता हूं (डब्ल्यूएमआई से बुनियादी जानकारी एकत्र करना और इवेंट लॉग से त्रुटियों और चेतावनियों को इकट्ठा करना)।

यह इवेंट लॉग्स की हैंडलिंग बहुत बढ़िया है।

मैंने हाल ही में ऑटो-अपडेट पॉपअप को अक्षम करने के लिए एक स्क्रिप्ट लिखी थी जिसे फॉक्सिट रीडर ने एक डोमेन पर डिफ़ॉल्ट रूप से सक्षम किया है जो स्क्रिप्ट चालू है। यह AD से कंप्यूटरों की एक सूची खींचता है, फिर परीक्षण करता है कि यदि इसका ऊपर है, तो यह 1 से 0 में बदल जाता है।

एक बात तो मैं भूल ही गया!

आपके पास .NET पुस्तकालयों की पूरी पहुँच है। इसके साथ वास्तव में जटिल चीजें करने के लिए थोड़ा दर्द होता है, लेकिन अगर आपको आवश्यकता है, तो यह आपके लिए है।


0

ज्यादातर Microsoft दुकान होने के कारण हम इसका उपयोग कुछ व्यवस्थापक कार्यों के लिए करते हैं। कुछ स्क्रिप्ट सरल होती हैं, जैसे पुरानी फ़ाइलों को साफ करना या मशीनों को डीफ़्रैग करना और परिणाम रिकॉर्ड करना। एक स्क्रिप्ट ज्यादातर WMI का उपयोग करके कंप्यूटरों का ऑडिट करती है और परिणामों को डेटाबेस में दर्ज करती है। इसमें हार्डवेयर (CPU, RAM, ड्राइव, आदि), नेटवर्क की जानकारी, स्थानीय उपयोगकर्ता, स्थापित सॉफ़्टवेयर और प्रोफ़ाइल जानकारी जैसी चीज़ें मिलती हैं। एक है जो ईमेल भेजने के लिए एक वेब सेवा को कॉल करता है। मुझे लगता है कि भविष्य में यह VBScript की बाकी लिपियों की जगह ले लेगा जो अभी भी इस्तेमाल की जा रही हैं। हम इसे अभी तक एक्सचेंज या SQL सर्वर कार्यों के लिए उपयोग नहीं कर रहे हैं।

मैं अगले संस्करण की प्रतीक्षा कर रहा हूं, जिसमें पृष्ठभूमि की नौकरियों, लेनदेन, बेहतर अपवाद से निपटने, एक नया आईएसई (एकीकृत स्क्रिप्टिंग पर्यावरण), बेहतर डिबगिंग, आदि का समर्थन होगा।


0

मेरे Windows व्यवस्थापक अभी तक PowerShell का उपयोग नहीं करते हैं। वे सब इसके बारे में सुना है, लेकिन वे इसके साथ परिचित होने के लिए समय नहीं लिया है।

मैंने खुद इसे देखने का फैसला किया। यूनिक्स खोल पृष्ठभूमि से आने पर मुझे लगा कि विंडोज के पास आखिरकार एक वास्तविक शेल प्रोग्रामिंग वातावरण होना चाहिए। मुझे लगता है कि Microsoft ने PowerShell और somethings के साथ कुछ चीजें अच्छी तरह से नहीं कीं।

PowerShell में cmdlets के बीच मध्यस्थ के रूप में वस्तुओं का उनका उपयोग अच्छा है। यह PowerShell में एक स्तर की शक्ति लाता है कि पाठ आधारित स्क्रिप्टिंग को काम करने के लिए चारों ओर हैक करना पड़ता है।

नकारात्मक पक्ष पर वे वास्तव में यूनिक्स शेल आदेशों का अधिक लाभ नहीं उठाते हैं। तो सीखने की अवस्था अनावश्यक रूप से खड़ी है और लोगों को आसानी से यूनिक्स से पावरशेल या इसके विपरीत स्थानांतरित करने में मदद नहीं करता है। वे जो करते हैं उनमें से कुछ के लिए उपनामों को परिभाषित किया जाता है जैसे कि PowerShell cmdlets जैसे ls aliasing Get-ChildItem के साथ सभी कमांड-लाइन स्विच अलग-अलग होते हैं।

केवल मेरे दो सेंट्स...


0

यह एक डेवलपर उत्तर के अधिक है, लेकिन यह वास्तविक दुनिया है और हम अगले कुछ महीनों में कुछ बिंदु पर इसका परीक्षण शुरू करेंगे। मैं SQL सर्वर कार्यों को हमारे निरंतर एकीकरण वातावरण में लाने के लिए स्क्रिप्ट लिखने के लिए PowerShell सीखना शुरू कर रहा हूं । निरंतर एकीकरण स्क्रिप्ट मुख्य रूप से NAnt और MSBuild द्वारा JetBrains TeamCity के माध्यम से चलाई जाएगी ।

इसके अलावा, मैं सामान्य प्रयोजन के लिए और विशेष रूप से SQL सर्वर डेटाबेस प्रशासन कार्यों के लिए अपने प्राथमिक विंडोज कमांड शेल के रूप में PowerShell पर स्विच कर रहा हूं।

क्षमा करें, मेरे पास साझा करने के लिए अभी तक कोई कोड नमूने नहीं हैं, क्योंकि मैं अभी भी सीख रहा हूं! मुझे खुशी होगी जब मैं कुछ पोस्ट करूँगा, हालाँकि :)

यहाँ एक लाइन कोड नमूना है कि मैं सिर्फ तुम्हारा साथ का एक और सवाल का जवाब दिया :) लेकिन हे, विकी के लिए ...

यह स्थापित हॉटफ़िक्स को सूचीबद्ध करेगा:

Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix

पावरहेल के लिए हुर्रे, बहुत बुरा यह 2003 के सर्वर पर डिफ़ॉल्ट रूप से स्थापित नहीं है। रजिस्ट्री स्थान हालांकि मदद की!
निक कवाडियास ३०'०

0

हालांकि यह सबसे आसान स्क्रिप्ट लैंग्वेज नहीं है, जिसे (पाइप के साथ ठोस अनुभव) माना जाता है और इसमें विषमताओं का अपना लाभ होता है (मुझे एक साधारण सीड जैसी चीज !!), मुझे लगता है कि पावरशैल काफी शक्तिशाली है। बैश या अन्य यूनिक्स गोले के स्तर तक नहीं , लेकिन फिर भी।

मैं इसका उपयोग कुछ डेटाबेस निर्यात और आयात की निगरानी के लिए करता हूं, अगर कोई चीज खराब होती है तो ईमेल चेतावनियों के साथ आयात और कुछ नियमित बैच संचालन करते हैं।

यह निश्चित रूप से पहले से ही मेरा प्राथमिक विंडोज शेल है, हालांकि यह वास्तव में "कम न लिखें" अधिक सामान है। PowerShell के पास इसकी वर्बोसिटी (और .NET विरासत) इसके खिलाफ खेल रही है।


0

PowerShell संस्करण 1.0 बहुत पहलुओं में सीमित था, लेकिन संस्करण 2.0 अच्छी तरह से आ रहा है। बैच स्क्रिप्ट की तुलना में, यह बहुत अधिक शक्तिशाली है। मैं वास्तव में इसे केवल शेल के रूप में उपयोग नहीं करता हूं, केवल लिपियों के लिए, इसलिए मेरा अनुभव तदनुसार रंगीन है। मैं वास्तव में वाक्यविन्यास ( -eqबनाम ==, -gtबनाम >, आदि) को पसंद नहीं करता, लेकिन मुझे लगता है कि मुझे कुछ अजीब करने की आवश्यकता है, तो मैं .NET में ड्रॉप करने में सक्षम हूं। मुझे लगता है कि 3.0 संस्करण द्वारा यह बहुत अच्छा होगा। अभी मैं इसे "काम हो जाता है" की श्रेणी में मजबूती से रखूंगा।

मैं इसका उपयोग मुख्य रूप से कोड की तैनाती को स्वचालित करने के लिए करता हूं। यह एक ऐसा क्षेत्र है जहां यह C # में कुछ बनाने से अधिक चमकता है। शेल-रिलेटेड ऑपरेशन्स जैसे कि रिर्ससिव डायरेक्टरी कॉपी और अन्य चीजें जो बैश स्क्रिप्टर्स सालों से लेते आ रहे हैं, वे चीजों को इतना आसान बना देते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.