Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

โมดูล PowerShell ยอดนิยมส่วนใหญ่ได้รับการติดตั้งทางออนไลน์จากแกลเลอรี PowerShell อย่างเป็นทางการ (PSGallery ) ที่เก็บโดยใช้ Install-Module สั่งการ. อย่างไรก็ตาม คุณจะไม่สามารถติดตั้งโมดูล PowerShell ได้หากคอมพิวเตอร์ของคุณอยู่ในเครือข่ายแยก หรือการเข้าถึง PSRepository โดยตรงถูกจำกัด เช่นเดียวกับเมื่อคุณพยายามติดตั้งโมดูล PowerShell บนโฮสต์ Windows Server ซึ่งมักจะถูกบล็อกการเข้าถึงอินเทอร์เน็ตโดยตรง ในบทความนี้ เราจะแสดงวิธีการติดตั้งโมดูล PowerShell แบบออฟไลน์และนำเข้าโมดูลจากคอมพิวเตอร์ระยะไกล (เช่น เมื่อใช้โมดูล PoSh การจัดการ SQLServer)

โปรดทราบว่าไม่มีลิงก์โดยตรงสำหรับดาวน์โหลดโมดูลจาก PowershellGallery.com สิ่งเดียวที่คุณสามารถดาวน์โหลดได้จากเว็บไซต์คือแพ็คเกจ NuGet (a .nupkg ไฟล์). คุณสามารถติดตั้งโมดูล PowerShell จากไฟล์ NUPKG ได้ แต่จะไม่ใช่การติดตั้งโมดูลที่สมบูรณ์ (ปัญหาหลักคือการที่การขึ้นต่อกันไม่ได้รับการแก้ไข)

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

จะติดตั้งโมดูล PowerShell บนคอมพิวเตอร์ออฟไลน์ได้อย่างไร

ก่อนอื่น ติดตั้งโมดูล PowerShell ที่คุณต้องการบนคอมพิวเตอร์ที่เชื่อมต่ออินเทอร์เน็ตได้

ต้องติดตั้ง PowerShell เวอร์ชัน 5.1 หรือใหม่กว่าบนคอมพิวเตอร์:

$PSVersionTable.PSVersion

ตรวจสอบให้แน่ใจว่ามีโมดูลอยู่ใน PSGallery:

Find-Module –Name *SqlServer*| Select Name, Version, Repository

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

ดาวน์โหลดโมดูลไปยังโฟลเดอร์ภายในเครื่องที่ระบุบนคอมพิวเตอร์ของคุณ:

Save-Module –Name SqlServer –Path C:\PS\

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

คัดลอกโฟลเดอร์ไปยังคอมพิวเตอร์เครื่องอื่นที่คุณต้องการติดตั้งโมดูล

มาดูกันว่าโมดูล PowerShell จัดเก็บอยู่ในโฟลเดอร์ใด:

$env:PSModulePath -split ";"

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

อย่างที่คุณเห็น โมดูล PowerShell จะอยู่บนเส้นทางใดเส้นทางหนึ่งต่อไปนี้:

  • C:\Users\username\Documents\WindowsPowerShell\Modules ($Home\Documents\PowerShell\Modules ) – โมดูล PowerShell ในโฟลเดอร์นี้มีให้สำหรับผู้ใช้นี้เท่านั้น (CurrentUser);
  • C:\Program Files\WindowsPowerShell\Modules ($Env:ProgramFiles\WindowsPowerShell\Modules ) — พาธใช้สำหรับติดตั้งโมดูลสำหรับผู้ใช้คอมพิวเตอร์ทุกคน (-Scope AllUsers );
  • C:\Windows\system32\WindowsPowerShell\v1.0\Modules – โฟลเดอร์เริ่มต้นสำหรับโมดูลในตัว

คัดลอกโมดูลไปที่ C:\Program Files\WindowsPowerShell\Modules .

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

ตรวจสอบให้แน่ใจว่าโมดูล SQLServer พร้อมใช้งานแล้ว:

Get-Module -Name SQLServer -ListAvailable

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

คุณสามารถรับไดเร็กทอรีโมดูลดังแสดงด้านล่าง:

(Get-Module -ListAvailable SQLServer).path

การติดตั้งโมดูล PowerShell ในโหมดออฟไลน์ (โดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต)

แสดงรายการคำสั่งที่มีอยู่ในโมดูล:

Get-Command -Module SQLServer

ในทำนองเดียวกัน คุณสามารถติดตั้งโมดูลใดก็ได้ ฉันมักจะใช้วิธีนี้ในการติดตั้ง SQLServer, PSWindowsUpdate หรือ PowerCLI สำหรับโมดูล VMWare

ด้วยเหตุผลที่ชัดเจน ไม่ควรติดตั้งโมดูล AzureAD และ Exchange Online PowerShell บนอุปกรณ์ออฟไลน์

นำเข้าโมดูล PowerShell จากคอมพิวเตอร์ระยะไกล

หากคุณไม่ต้องการติดตั้งโมดูล PowerShell บนคอมพิวเตอร์ทุกเครื่อง คุณสามารถนำเข้าโมดูลใดก็ได้จากคอมพิวเตอร์ระยะไกลโดยใช้ PSRemoting:

$session = New-PSSession -ComputerName dub-sql1

หากต้องการแสดงรายการโมดูลที่ติดตั้งบนคอมพิวเตอร์ระยะไกล:

Get-Module -PSSession $session –ListAvailable

ในการนำเข้าโมดูล PowerShell ที่ระบุไปยังคอมพิวเตอร์ของคุณ:

Import-Module -PSsession $session -Name SqlServer

อย่าลืมปิดเซสชั่นเมื่อเสร็จสิ้น:

Remove-PSSession $session

อีกวิธีหนึ่งที่น่าสนใจในการใช้โมดูล PowerShell ที่ติดตั้งบนคอมพิวเตอร์ระยะไกลผ่านการถอดออกโดยนัย .

เชื่อมต่อกับคอมพิวเตอร์ระยะไกลโดยใช้ Invoke-Command และนำเข้าโมดูล PowerShell ที่คุณต้องการ:
$session = New-PSSession -ComputerName dub-sql1
Invoke-Command {Import-Module SqlServer} -Session $session

ส่งออก cmdlet ของโมดูลจากเซสชันระยะไกลไปยังโมดูลท้องถิ่น:

Export-PSSession -Session $s -CommandName *-Sql* -OutputModule RemoteSQLServer -AllowClobber

คำสั่งสร้างโมดูล RemoteSQLServer PowerShell ใหม่บนคอมพิวเตอร์ของคุณ (ใน C:\Program Files\WindowsPowerShell\Modules) ไฟล์ cmdlet เองจะไม่ถูกคัดลอก

ปิดเซสชั่น:

Remove-PSSession $session

จากนั้นเพื่อใช้ PowerShell cmdlets จากโมดูลนี้ คุณเพียงแค่นำเข้าไปยังเซสชัน:

Import-Module RemoteSQLServer

cmdlet ของโมดูล SQL ทั้งหมดจะพร้อมใช้งานโดยไม่ต้องสร้างการเชื่อมต่อที่ชัดเจนกับคอมพิวเตอร์ระยะไกล ลองสอบถามฐานข้อมูล MS SQL โดยใช้ Invoke-Sqlcmd คำสั่ง MSSQL ทั้งหมดจะพร้อมใช้งานจนกว่าคุณจะปิดคอนโซล PowerShell หรือนำโมดูลออก