قائمة عمليات الأوامر على الجهاز البعيد مع الاحتجاج

StackOverflow https://stackoverflow.com/questions/3490907

سؤال

أحاول كتابة نص PowerShell الذي سيأخذ قائمة بالأوامر ثم تشغيلها على جهاز بعيد ، لدي الرمز التالي:

foreach($command in $commands)
{
  Invoke-Command -computer "BNEBAK" -scriptblock{"$command"}
}

الذي لا يرمي أي خطأ ولكنه أيضًا لا يعمل في الواقع على الأمر (مثل خدمة التوقف عن الخدمة). تتم قراءة أوامر $ من ملف نصي تم تمريره كوسيطة عندما يتم استدعاء البرنامج النصي ، وأنا أعلم أن بقية هذا البرنامج النصي يعمل لأنني كنت أستخدمه للقيام بأوامر محلية مع التعبير عن الاستدعاء لبعض الوقت.

أي مساعدة سيكون رائعا.

هل كانت مفيدة؟

المحلول

سيكون الرمز الصحيح

$commands = @(get-content com.txt)
for($command in $commands) { 
  $scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock($command) 
  Invoke-Command -computer $computer -scriptblock $scriptblock 
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top