คำจำกัดความของฟังก์ชั่น PowerShell ควรอยู่ที่ไหนเพื่อให้ได้มาโดยอัตโนมัติ


1

รับฟังก์ชั่น PowerShell อย่างง่าย ๆ :

function gpg {
    C:\Program files\GNU\GnuPG\gpgcmd.exe $args
}

ฉันควรนิยามฟังก์ชั่นนี้ไว้ที่ไหน gpg พร้อมใช้งานในคำสั่ง PowerShell หรือไม่

คำตอบ:


1

ใส่ไว้ในของคุณ โปรไฟล์ PowerShell

ส่วนกำหนดค่าจะถูกโหลดเสมอเมื่อ PowerShell เริ่มต้นยกเว้นเมื่อคุณเรียกใช้ PowerShell -NoProfile พารามิเตอร์ซึ่งเป็นอย่างน้อยในเครือข่ายของฉัน ดังนั้นเมื่อใดก็ตามที่ PowerShell เริ่มต้นคุณสามารถใช้ฟังก์ชันได้ทันที

หากคุณต้องการสร้างโปรไฟล์ PowerShell สำหรับคอมพิวเตอร์มากกว่าหนึ่งเครื่องฉันจะใช้ GPO เพื่อปรับใช้โปรไฟล์จากเส้นทางต้นทางไปยังคอมพิวเตอร์ปลายทาง

โปรดทราบว่ามีโปรไฟล์แต่ละโปรไฟล์สำหรับ PowerShell และ PowerShell_ISE


1

ดังที่ @SimonS กล่าวถึงตัวเลือกหนึ่งคือคุณสามารถใส่ไว้ในโปรไฟล์ของคุณ และในกรณีของฟังก์ชั่นง่าย ๆ ที่จะช่วยให้การรันคำสั่งเดียวง่ายขึ้นโปรไฟล์อาจเป็นตัวเลือกที่เหมาะสม แต่ฉันต้องการพูดถึงตัวเลือกอื่น

หากคุณใช้งานรุ่น PowerShell มากกว่า 3.0 บนระบบของคุณแล้วอีกทางเลือกหนึ่งคือการทำให้ฟังก์ชั่นของคุณหรือฟังก์ชั่นใน โมดูล PowerShell . โมดูลภายในพา ธ โมดูลของคุณจะเป็น โหลดอัตโนมัติ และฟังก์ชั่นที่ส่งออกใด ๆ จะสามารถใช้ได้ โมดูลที่คุณสร้างจะต้องอยู่ในเส้นทางโมดูล ( $env:psmodulePath ) ตำแหน่งที่ดีสำหรับโมดูลระบบกว้างคือ C:\Program Files\WindowsPowerShell\Modules.

คุณไม่อยากจะใส่อะไรมากเกินไปในโปรไฟล์ของคุณ ก่อนอื่นให้โหลดโปรไฟล์ของคุณเมื่อคุณเริ่ม Powershell และสิ่งอื่น ๆ ที่คุณกำหนดไว้จะมีผลต่อความเร็วในการโหลด Powershell ส่วนกำหนดค่าจะไม่โหลดโดยอัตโนมัติเมื่อใช้ PS remoting แต่ในโมดูลที่อยู่ในเส้นทางบนระบบปลายทางจะถูกโหลดอัตโนมัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.