मैं यहाँ बाहर मेरे बाल खींच रहा हूँ, क्योंकि मैं सिर्फ यह काम करने के लिए नहीं कर पा रहे हैं, और मैं समझ नहीं इस मुद्दे को गूगल के लिए कैसे। मैं पावरहेल 2.0 चला रहा हूँ। यहाँ मेरी स्क्रिप्ट है:पावरहेल का Invoke-Command -ComputerName पैरामीटर के लिए एक चर में नहीं ले जाएगा?
$computer_names = "server1,server2"
Write-Output "Invoke-Command -ComputerName $computer_names -ScriptBlock {
Get-WmiObject -Class Win32_LogicalDisk |
sort deviceid |
Format-Table -AutoSize deviceid, freespace
}"
Invoke-Command -ComputerName $computer_names -ScriptBlock {
Get-WmiObject -Class Win32_LogicalDisk |
sort deviceid |
Format-Table -AutoSize deviceid, freespace
}
पिछले आदेश त्रुटि देता है:
Invoke-Command : One or more computer names is not valid. If you are trying to
pass a Uri, use the -ConnectionUri parameter or pass Uri objects instead of
strings.
लेकिन जब मैं खोल करने के लिए राइट-आउटपुट आदेश के उत्पादन में कॉपी और है कि चलाने के लिए, यह सिर्फ ठीक काम करता है। मैं स्ट्रिंग वैरिएबल को उस चीज़ पर कैसे डाल सकता हूं जो आमंत्रण-कमान स्वीकार करेगा? अग्रिम में धन्यवाद!
ऐसा हुआ, धन्यवाद! मैंने बस इसके लिए एक के लिए चलाने के लिए नहीं सोचा था। वह शॉर्टेंड है मैंने देखा नहीं है। लेकिन, मैं एक सरणी घोषित करने से परहेज कर रहा था क्योंकि मुझे नहीं लगता था कि Invoke-Command -ComputerName एक लेता है - इसके बजाय, यह एक अल्पविराम, कोई रिक्त स्थान से अलग कंप्यूटर नामों की एक सूची लेता है। क्या मै गलत हु? – erictheavg
खुद का जवाब: ऐसा लगता है। मैंने बस उस कमांड पर मदद पढ़ी और कहा कि यह एक स्ट्रिंग [] की अपेक्षा करता है। मैं अकेले उदाहरणों से बाहर जा रहा था और एक बुरा धारणा बना दिया। – erictheavg