قم بتشغيل البرامج النصية PowerShell على جهاز الكمبيوتر البعيد

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

  •  21-09-2019
  •  | 
  •  

سؤال

لقد قمت بتثبيت PS 1.0 على جهاز كمبيوتر بعيد (RPC001). إستعملت أداة Windows Sysinternals Psexec.exe لتنفيذ العملية التالية على جهاز التحكم عن بُعد:

 PSExec \\RPC001 -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2

أستطيع أن أرى عملية PowerShell.exe تعمل على الكمبيوتر البعيد بعد ذلك ، لكنها في الواقع لا تفعل شيئًا ، فقط معلقة هناك. حاولت وضع رمز بسيط من "كتابة Odutput/Host" سلسلة في البرنامج النصي. أقوم بتشغيل نفس البرنامج النصي على جهاز التحكم عن بُعد بواسطة RTS ، وهو يعمل هناك.

لست متأكدًا مما إذا كنت أفتقد أي شيء آخر لتشغيل البرنامج النصي باستخدام PSEXEC ، أو هو قيود psexec.exe. أرغب في بدء برنامج نصي PS على جهاز التحكم عن بُعد للقيام بشيء ما هناك محليًا (اضغط على بعض الملفات محليًا وإزالة الملفات القديمة) من صندوقي.

سألت سؤالًا مشابهًا في Stackoverflow: قم بتشغيل العملية البعيدة بواسطة PowerShell. اِتَّشَح اقترحني لاستخدام psexec. يبدو وكأنه طريقة بديلة لحل المشكلة. ومع ذلك ، لا يمكنني تشغيله مع PowerShell. أي طريقة للحصول على PS يعمل على جهاز الكمبيوتر عن بعد؟

بالمناسبة ، لا يمكنني استخدام PS 2.0 لأن شبكتي لا تسمح لي بتثبيت Windows XP SP3 ، وهو أمر مطلوب لـ PS 2.0.

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

المحلول

بعد مزيد من التحقيق في أداة Psexec ، أعتقد أنني حصلت على الإجابة. أحتاج إلى إضافة خيار -i لإخبار Psexec بإطلاق عملية على بعد في الوضع التفاعلي:

PSExec \\RPC001 -i -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2

بدون -i ، يعمل PowerShell.exe على جهاز التحكم عن بُعد في وضع الانتظار. النقطة المثيرة للاهتمام هي أنه إذا قمت بتشغيل مضرب بسيط (بدون PS في الخفافيش) ، فهو يعمل بشكل جيد. ربما هذا شيء مميز لحالة PS؟ مرحبًا بالتعليقات والتفسيرات.

نصائح أخرى

لم تنجح الإجابة المقبولة بالنسبة لي ولكن ما يلي فعل:

>PsExec.exe \\<SERVER FQDN> -u <DOMAIN\USER> -p <PASSWORD> /accepteula cmd 
    /c "powershell -noninteractive -command gci c:\"

مثال من هنا

هل يمكنك تجربة ما يلي؟

psexec \\server cmd /c "echo . | powershell script.ps1"

الإجابة المقبولة لا تعمل بالنسبة لي ، لكن هذا يفعل. تأكد من البرنامج النصي في الموقع (c: temp_ أدناه على كل خادم بعيد. يحتوي servers.txt على قائمة بعناوين IP (واحد لكل سطر).

psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top