2012-12-29 7 views
19
$result = Get-ADUser -Filter $filter 

के बजाय एक सरणी के रूप में एक परिणाम प्राप्त करने के लिए मजबूर करने के लिए कर सकते हैं मैं 2 या अधिक परिणाम है, तो मैं $ सरणी के रूप में एक्स मिलता है, लेकिन अगर मैं केवल एक परिणाम है, एक प्राप्त $ x वस्तु के रूप में। एक तत्व के साथ या कुछ तत्वों के साथ, हमेशा सरणी - खाली प्राप्त करने के लिए इसे और अधिक सही कैसे बनाएं?PowerShell: मैं कैसे वस्तु

+5

उपयोग कर सकते हैं मैं downvote छोड़ देंगे इस समय, लेकिन आपको पूछने से पहले खोजना चाहिए। यह कई बार जवाब दिया गया है और PowerShell मूल बातें = कोई शोध प्रयास नहीं है। –

+0

संभावित डुप्लिकेट [जब मैं कॉल केवल एक ऑब्जेक्ट देता हूं तो पावरहेल को सरणी वापस करने के लिए कैसे मजबूर कर सकता है?] (Http://stackoverflow.com/questions/11107428/how-can-i-force-powershell-to-return- एक-सरणी-कब-कॉल-केवल-रिटर्न-वन-ओब्जेक) –

उत्तर

24

कोशिश $ एक्स = @ (मिल-aduser)

@() वाक्य रचना परिणाम बलों

+0

धन्यवाद !!! #######> $ a1 = Get-WMIObject Win32_OperatingSystem; लिखें-होस्ट ($ a1.GetType())। बेस टाइप; $ a2 = @ (Get-WMIOb जेक्ट Win32_OperatingSystem); लिखें-होस्ट ($ a2.GetType())। बेस टाइप; लिखें-होस्ट ($ ए 2 [0] .GetType()) बेस टाइप; ######### System.Management.ManagementBaseObject सिस्टम.एरे सिस्टम। प्रबंधन। प्रबंधन BaseObject – filimonic

+0

परिणामस्वरूप कोई सरणी नहीं होगी यदि परिणाम एक सरणी है? क्या होगा यदि फ़ंक्शन का परिणाम '$ null' है? (PowerShell कभी-कभी वे सभी जादू के कारण भ्रमित होता है।) – jpmc26

+0

बहुत ज्यादा आकर्षित! –

3

इसके अलावा एक सरणी होने के लिए आपको $x=[array]get-aduser