पॉवर्सशेल, एक कमांड के तर्कों की पाइप सूची


2

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

मैं उस के लिए नए-ADUser धूमकेतु का उपयोग कर रहा हूं। मैं उपयोगकर्ता बनाने और एक सेट में सभी विकल्पों को सेट करने के लिए एक कमांड निष्पादित करना चाहता हूं, लेकिन यह देखते हुए कि मेरे पास सेट करने के लिए बहुत सारी सेटिंग्स हैं, मैं वास्तव में एक लंबी कमांड के साथ समाप्त करना चाहता हूं जो पढ़ना मुश्किल है। Instaed मैं कुछ बनाना चाहता हूं, जो नए-नए को जोड़ता हूं और उसी को प्राप्त करता हूं।

मैंने निम्नलिखित कोशिश की:

$param = @()
$param.Name = "Test Name"
$param.GivenName = "Test"
$param.Surname = "Test"
$param.Enabled = 1

$param | new-aduser

हालाँकि, अगर मैं निम्नलिखित कार्य करता हूँ:

new-aduser -name "Test Name" -GivenName "Test" -Surname "Test" -Enabled 1

यदि मैं इसे निष्पादित करता हूं, तो यह कहता है कि मैं केवल ऐसा कर सकता हूं यदि नामकरण सही है। यह है ... तो मैं क्या गलत कर रहा हूं, या क्या कोई और तरीका है कि मैं कैसे प्रत्येक उपयोक्ता के नीचे सूचीबद्ध पैरामीटर रख सकता हूं और नए-एड्यूसर को भेज सकता हूं? क्या मैं किसी वस्तु को किसी भी तरह से बदल सकता हूं और इसे काम कर सकता हूं, और यदि हां, तो कैसे?

अगर मैं किसी तरह सिर्फ नए एड्यूसर का उपयोग कर सकता हूं और उन्हें प्रत्येक अभिभावक के नीचे सूचीबद्ध कर सकता हूं, तो यह भी काम करेगा, लेकिन मुझे नहीं लगता कि पॉवर्सहेल उतना ही ढीला है जितना कि php है।

अग्रिम में धन्यवाद। :)


ब्याह के बारे में कैसे?
पेट्सएरल

LPChip - मुझे लगता है कि इस तरह के रूप में एक समाधान के $param = @("Test Name","Test","Test",1)बाद new-aduser -name $param[0] -GivenName $param[1] -Surname $param[2] -Enabled $param[3], पर्याप्त नहीं होगा, सही है? यहाँ एक स्क्रीन एक वाक्य रचना उदाहरण के साथ वास्तविक स्पष्ट होना गोली मार दी है: i.imgur.com/WfxiQYE.png इस तरह आप सरणी में मूल्यों में पारित करता है फिर अनुक्रमणिका मूल्य यानी के साथ उन लोगों को संदर्भित ~[0], ~[1]इतने पर है, और। शायद वह नहीं जो आप ढूंढ रहे हैं, लेकिन मैं सिर्फ इस मामले में उल्लेख करना चाहता था कि आप जैसा चाह रहे हैं, उसका एक सरल समाधान है।
दलाल जूस आईटी

@PimpJuiceIT धन्यवाद, लेकिन वास्तव में वह नहीं है जो मैं बाद में हूं। मेरे पास पहले से ही ऐसा कुछ है, लेकिन मैंने जिन कुछ पैरामेट्स को सूचीबद्ध किया था, वह एक उदाहरण था। परम की मेरी वास्तविक सूची 20 से अधिक लंबी है, जो कि वास्तव में ट्रैक करना कठिन है क्योंकि पंक्ति बहुत लंबी और अपठनीय है।
LPChip

जवाबों:


2

से अरे, पटकथा लड़का! ब्लॉग इस उदाहरण में आता है:

Import-Module activedirectory

$users = @{
 "name" = "fred"
 "givenName" = "manfred"
 "l" = "lexington"
}

New-ADUser @users

एक स्टैक ओवरफ्लो उत्तर यह भी बताता है कि OtherAttributesपैरामीटर का उपयोग कैसे करें , यदि आपको आवश्यकता है:

$users = @{ 
    "name" = “fred 
    "givenName" = “Manfred" 
    "l" = "lexington"
    "OtherAttributes" = @{ 
        'extensionAttrbute1' = "Test"
     }
}

बहुत बढ़िया, यह काम करता है। :) तो $ सरणी करने के बजाय | new-aduser, इसका नया- aduser @array। ठंडा। :)
LPChip
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.