-
@קומפיונט התשובה כתובה לכם בפנים צריך לאפשר הרצת סקריפטים בps תיכנסו לקישור שכתוב שם ויהיה לכם את כל האפשרויות איך לתת הרשאות ברמת משתמש וברמת מחשב.
תמיד מומלץ לקרוא את השגיאה ובמקרה שיש קישור לדף מידע של מיקרוסופט לקרוא אותו.
אגב זה בעיה מוכרת מאד. -
@קומפיונט
תריץ לדוגמהSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
זה יאפשר לך להריץ במשתמש שלך סקריפטים שכתבת בעצמך או סקריפטים חיצוניים חתומים אם אתה רוצה להריץ גם סקריפטים לא חתומים (אם אתה מודע לסיכונים או שאין לך בעיה אם זה) תריץ
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
אם תוריד את החלק מ scope והלאה זה יוגדר ברמת מחשב
ההגדרות האלו צריכים הרצה ברמת מנהל למיטב זכרוני. -
@משתמש-תמים מה שאני לא מבין זה למה מהcmd זה כן רץ ומהPowerShell לא, כי ממה נפשך אם זה סקריפט של PowerShell זה לא אמור לרוץ מהcmd, ואם זה רץ זה מהcmd זה אמור לרוץ בדיוק אותו הדבר גם מהPowerShell.
בכל מקרה אפשר לשנות את המדיניות של הרצת סקריפטים כמו שכתבת, וככה לפתור את הבעיה.
(אולי ברירת המחדל היא שאם מריצים סקריפט שנמצא באחד הנתיבים של משתני הסביבה מהPowerShell הוא מריץ את הקובץ עם סיומת ps1 ואם מריצים אותו מהcmd הוא מריץ את הקובץ עם סיומת cmd, bat.)
-
@קומפיונט הcmd הוא מוצר מיושן ובהתאם לא מאובטח והוא מריץ כל מה שהוא מצליח להריץ בלי הגדרות אבטחה.
לגבי ההרצה שעובדת אני לא מכיר את הקובץ הזה של החבילות אבל אם היה מדובר בקובץ ps1 זה לא היה אמור לרוץ כנראה יש שם כמה סקריפטים בהתאמה לסביבות שונות. -
@משתמש-תמים תכל'ס לסקריפטים ב powershell יש הרבה יותר פוטנציאל נזק מאשר כאלו ב batch
-
@משתמש-תמים כנאה שה-PowerShell לא 'יודע' להריץ פקודות batch ולכן הוא פונה לקובץ עם סיומת ps1, משא"כ ה-cmd שפונה לקובץ עם הסיומת cmd.
בנתיב נמצאים שני קבצים:
filename.ps1
filename.cmd -
@אף-אחד-3 אמר בחבילות גלובליות של Node.js לא רצות מהPowerShell:
@משתמש-תמים תכל'ס לסקריפטים ב powershell יש הרבה יותר פוטנציאל נזק מאשר כאלו ב batch
זה לא נכון שלסקריפטים ב-Powershell יש יותר יכולות מסקריפטים של Batch,
מה שכן נכון, זה שהסקריפטים של Powershell יותר נוחים לקריאה ובהרבה יותר מודרניים מה-cmd המיושן. ויש עוד הרבה יתרונות, לדוג' ש-Powershell עובד עם אובייקטים, ויש לו התממשקות עם NET., גם יש לו ב-Terminal אינטליגנציה טובה שאין ב-cmd ועוד כהנה וכהנה.
אבל היכולות של cmd בכלל לא מוגבלות, רק לא נוחות, קח לדוג' את הסקריפט הפעלה KMS, כולו מבוסס על Batch.מידע נוסף על שפות סקריפטים של חלונות אפשר לקרוא כאן.
-
@משתמש-תמים אמר בחבילות גלובליות של Node.js לא רצות מהPowerShell:
אפשר להריץ סקריפטים של ps בcmd אם כותבים את זה כך
יותר נכון לומר שאתה פותח את ה-Powershell מה-cmd ושולח לו בארגומנט את השם של הסקריפט. cmd לא יכול לעולם להריץ סקריפטים של Powershell.
-
@קומפיונט אמר בחבילות גלובליות של Node.js לא רצות מהPowerShell:
אבל היכולות של cmd בכלל לא מוגבלות, רק לא נוחות, קח לדוג' את הסקריפט הפעלה KMS, כולו מבוסס על Batch.
בדברים שקשורים לרשת - powershell היא כמה רמות מעל batch
בכל אופן, KMS מכיל בתוכו קובץ exe ככה שזה לא ממש רק batch (וטכנית יש בו גם קטעים גדולים בשפות אחרות) -