Excel VBA जिसे Powershell ActiveDirectory cmdlet कहता है, लेकिन मॉड्यूल लोड नहीं करेगा?


2

मेरे पास एक पॉवरशेल स्क्रिप्ट है जिसका उपयोग मैं उपयोगकर्ता और कंप्यूटर सूचियों को सीएसवी फ़ाइलों को डंप करने के लिए करता हूं; यह बहुत अच्छा काम करता है और मैं इसे ज्यादा नहीं छूना चाहता। यह ActiveDirectory cmdlet और Get-ADComputer और Get-ADUser cmdlets का उपयोग करता है।

मैंने vb एक्सेल (2007) मैक्रोज़ का उपयोग किया है जो पहले पॉवरशेल स्क्रिप्ट को कॉल करता है। उदाहरण:

Sub test()
'
' test Macro
'
    Set objShell = CreateObject("Wscript.Shell")
    PSCommand1 = "Import-Module ActiveDirectory; "
    objShell.Run "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command """ & PSCommand1 & """", 1, True
'
End Sub

अब, मैं विशेष रूप से आयात-मॉड्यूल कमांड का संदर्भ देता हूं, क्योंकि VBA के बाहर शक्तियां VBA और पॉवरशेल के बीच एक अंतर है ... ActiveDirectory मॉड्यूल नहीं मिल सकता है। यदि मैं कमांड को विफल होने के बाद शेल को छोड़ने के लिए शक्तिकृत कमांड को जोड़ने के लिए -exexit जोड़ता हूं, तो मैं टाइप कर सकता हूं:

get-module -ListAvailable

और ActiveDirectory मॉड्यूल सूची में नहीं है। पर्यावरण चर यह दिखाता है कि यह एक नियमित पॉवरशेल्ड विंडो के रूप में मॉड्यूल के लिए समान स्थानों में दिख रहा है (मेरे उपयोगकर्ता फ़ोल्डर के तहत, इसलिए यह मेरे संदर्भ में चल रहा है)। AD मॉड्यूल एक नियमित पॉवरशेल विंडो में -ListAvailable के तहत दिखाता है।

मैंने वास्तविक AD मॉड्यूल को सीधे रूप से संबोधित करने के लिए आयात-मॉड्यूल कमांड को संशोधित करने का प्रयास किया है, और मुझे इसे लोड करने के लिए नहीं मिल सकता है।

क्या कोई ऐसा तरीका सोच सकता है कि Excel 2007 में VB मैक्रो से लॉन्च किए गए एक पॉवरशेल सत्र को दिखाने के लिए AD मॉड्यूल प्राप्त किया जाए?


यह एक स्टैकओवरफ्लो में अधिक तेज़ी से संबोधित किया जा सकता है।
Raystafarian

जवाबों:


0

यदि आप जाते हैं तो यह आसान है ।bat -> .ps1 पावरबेल को कॉल करने के लिए एक बैट फ़ाइल बनाना किसी के लिए vba और पावरशेल के साथ काम करने के लिए इस्तेमाल किया जाना आसान होना चाहिए।

.Bat को पॉवरशेल के साथ काम करें। यह पता लगाने के लिए कि काम करने के लिए क्या होता है। यह काम करने के लिए पर्याप्त हो सकता है यह दिखाने के लिए कि vba कोड में क्या बदलाव करने की आवश्यकता है, अन्यथा बस vb में .bat का उपयोग करें और सभी अच्छे होने चाहिए।

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