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 फ़ाइल लेता है और समूहों के एक समूह को अद्यतन करता है। यदि समूह पहले से मौजूद है, तो वह फ़ाइल में निर्दिष्ट सदस्यता को बदल देता है। यदि समूह मौजूद नहीं है, तो यह इसे बनाता है। यह वन-वे सिंक है। इसके अलावा, अभी तक उत्पादन में काफी नहीं है, लेकिन करीब है।