עבור לתוכן

זקוק לסיוע ב-powershell

Featured Replies

פורסם

אני מנסה לעשות פעולה שיחסית אמורה להיות פשוטה אבל זה לא מצליח ואשמח לסיוע.

המטרה היא להכניס למשתנה טקסט מסוים ולחש אם קיי משתמש ב-AD שנמצא שם שלו הטסט הזה.

הבעיה שנתקלתי היא ש-powershell מסרב להתייחס למשתנה שלי.

בפקודה שרשמתי לניסיון בלי משנה זה עובד ואני מקבל תוצאה שקיים לי משתמש כזה: (האותיות aaaaa בסוף לא קשורות זה רק שהגרשיים יהיו במקום הנכון)

get-aduser -filter ' name -like "adir miller" ' aaaaa

וכאשר אני מכניס את הטקסט למשתנה אני לא מקבל תוצאה אפילו שאני בטוח שיש משתמש כזה (קי קיבלתי לפי הפקודה שלמעלה)

b = "adir miller" aaaaa$

get-aduser -filter ' name -like "*$b*" ' aaaaa

פורסם
  • מחבר

במקרה הזה אין הבדל בין הדרש הבודד לבין הסוגריים המסולסלים, בדקתי עם שתי האופציות.

מה ששינית כאן זה את הכוכביות, בתוך המשתנה וזה לא טוב כי אני מקבל שמות בקובץ ורוצה לבדוק אותם ולמצוא את היוזר שלהם.

לכן אם השם לא מלא אז אני מוסיף כוכביות כדי שיבדוק את כל המצבים שבהם יש את הטקסט מהקובץ.

והבעיה היא שהוא לא מוכן לקבל את הכוכבית כתוספת למשתנה.

פורסם

צודק לגבי הגרשיים. עושה רושם שה-filter מקבל ביטויים בתוך סוגריים מסולסלות או גרשיים יחידות.

מה לגבי:


$b = "adir miller"
get-aduser -filter "name -like '*$b*'"

בכל מקרה גם אם זה עובד או לא, תוכל פשוט להעביר את השם למשתנה עזר שיוסיף כוכביות משני הצדדים, במקום להתעסק בכל הגועל הזה.

נערך על-ידי m1ke

פורסם
  • מחבר

גם זה לא עבד...

בכל מקרה נתת לי רעיון לגבי משתנה עזר, אמנם השתמשתי באותו משתנה ופשוט הוספתי לו את הכוכביות ככה:

$b = "*" + $b + "*"

ואז המשתנה כולל בתוכו כוכביות, וה-filter מקבל את המשתנה ככה בלי שאצטרך לשרשר לו טקסט.

עכשיו נשאר לי לקסטם את הפלט.

תודה רבה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים