ติดตั้ง Windows Management Framework รุ่นใด


16

คุณจะตรวจสอบว่า Windows Management Framework (WMF) ติดตั้งรุ่นใดได้อย่างไร ดูเหมือนว่ามันควรจะเป็นเรื่องง่ายที่จะรู้ แต่ฉันทำไม่ได้ แม้แต่ Googling คำถามในรุ่นต่าง ๆ ก็ยังไม่มีอะไรเกิดขึ้น

มันไม่ได้อยู่ใน appwiz.cpl และ regedit ไม่พบสิ่งใดสำหรับ "Windows Management Framework" และพบสิ่งที่ไม่เกี่ยวข้องกับ "wmf" มากเกินไป

ฉันแค่อยากรู้วิธีตรวจสอบเลยด้วยวิธีใดก็ตาม มีคีย์รีจิสทรีหรือไม่ มีไฟล์ที่ฉันสามารถตรวจสอบได้หรือไม่? อะไร ???

สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือที่นี่บน serverfault: วิธีการตรวจสอบ Windows Management Frameworkรุ่น คำถามนั้นเริ่มต้นเหมือนกัน แต่ดูเหมือนว่าจะขอวิธีการตรวจสอบเฉพาะที่จะใช้ใน GPO บางทีนั่นอาจเป็นเหตุผลว่าทำไมมันไม่มีคำตอบ

มีคอมพิวเตอร์หลายเครื่องที่ฉันต้องการตรวจสอบนี้ สิ่งที่ฉันเริ่มต้นคือ Windows Server 2008 R2 Standard จะมีระบบปฏิบัติการ Windows Server อื่นเช่นกัน

หากคุณรู้ว่ามีแท็กใดที่ทำงานได้ดีกว่าที่ฉันมีโปรดแสดงความคิดเห็นหรือติดแท็กใหม่ ฉันไม่พบสิ่งใดที่อธิบายคำถามนี้ได้ดี


อัปเดต: บางคนดูเหมือนจะคิดว่า " $PSVersionTable" (และ / หรือคุณสมบัติต่างๆของมัน) เป็นคำตอบ ในที่สุดฉันก็รู้ว่านี่เป็นตัวแปร PowerShell (อาจเป็นคำนำหน้า 'PS' ควรให้ฉัน แต่ก็ไม่ได้) และพยายามเจาะลึกลงไป สิ่งนี้ส่งผลให้มีคำถามอื่น: เนื้อหาของ $ PSVersionTable ของ PowerShell เป็นตัวแทนอะไร .

Update2: จากข้อมูลทั้งหมดที่ฉันรวบรวมตอนนี้และความเข้าใจที่ดีขึ้นของฉันฉันค่อนข้างมั่นใจว่าตัวแปรในตัวของ PowerShell $PSVersionTable.PSVersionไม่ได้เป็นคำตอบทางเทคนิค แต่สิ่งนี้มักจะเป็น เช่นเดียวกับในรุ่นที่อาจไปด้วยกัน $PSVersionTable.WSManStackVersionตัวแปรอาจจะมีสิ่งที่ฉันต้องการ แต่คำอธิบายสั้น ๆ อย่างเป็นทางการของที่แสดงให้เห็นถึงคุณสมบัติที่เป็นตัวแทนของกองจัดการ WS WS-Management เป็นสแต็คเหมือนกับ WMF หรือไม่? Googling แนะนำว่าพวกเขามีความสัมพันธ์กันอย่างใกล้ชิด แต่ฉันไม่แน่ใจว่าคำตอบนั้นใช่หรือไม่


1
มีคู่หูที่เป็นไปได้ของ: serverfault.com/questions/555100/…คำตอบอยู่ในความคิดเห็นแม้ว่าจะยังไม่มีคำตอบที่ยอมรับได้
Wesley

@ เวสลีย์ฉันได้เตรียมลิงค์ไปยังคำถามนั้นและพูดถึงมันแล้ว คำตอบไม่ได้อยู่ในความคิดเห็น "คุณกำลังถามวิธีใช้งานบางอย่างเช่น$PSVersionTable.PSVersionใช้ WMI หรือไม่" ไม่ใช่คำตอบ มันหมายความว่ายังไง? หากคุณสามารถแสดงความคิดเห็นนั้นและเปลี่ยนเป็นคำตอบที่ใช้งานได้จริงฉันจะขอบคุณมัน นี่$PSVersionTable.PSVersionเป็นตัวแปรบางอย่างที่มีอยู่ในที่อื่นหรือไม่? ถ้าใช่มันรับประกันว่าจะเป็นรุ่น WMF หรือไม่ ฉันลองecho $PSVersionTable.PSVersionและได้ผลลัพธ์จาก$PSVersionTable.PSVersion
Loduwijk

นอกจากนี้ยังมีความคิดเห็นที่คล้ายกันของคำถามนั้น
Loduwijk

1
คุณอาจถูกลดระดับลงเพราะพูดว่าคุณวิ่งecho $PSVersionTable.PSVersionและได้ผลลัพธ์$PSVersionTable.PSVersion- คุณสับสนในความคิดเห็น / คำตอบของคำถามอื่นหรือไม่
TheCleaner

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

คำตอบ:


9

ดูเอกสารนี้จาก Microsoft:

https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-5.1

ในส่วน "การอัพเกรด Windows Powershell ที่มีอยู่" จะกล่าวโดยเฉพาะ:

แพ็คเกจการติดตั้งสำหรับ PowerShell มาพร้อมกับตัวติดตั้ง WMF เวอร์ชันของตัวติดตั้ง WMF ตรงกับรุ่นของ PowerShell ; ไม่มีตัวติดตั้งแบบสแตนด์อโลนสำหรับ Windows PowerShell

ฉันคิดว่านี่เป็นคำตอบของผู้ชาย เรียกใช้$PSVersionTable.PSVersionเพื่อรับรุ่น


ในที่สุดก็เป็นคำตอบที่ชัดเจนและเชื่อถือได้โดยตรงจาก Microsoft ขอขอบคุณ. ยอมรับแล้วและ +1
Loduwijk

10

ฉันรู้ว่านี่เป็นคำถามเก่า แต่สำหรับคนอื่นที่พบสิ่งนี้จากการค้นหาโดย Google:

ฉันต้องการยืนยันว่า$PSVersionTable.PSVersionเป็นตัวบ่งชี้ที่น่าเชื่อถือที่สุดของรุ่น WMF ดูตัวอย่างด้านล่าง

การติดตั้ง Windows 7 ใหม่:

Name                           Value
----                           -----
PSVersion                      2.0
WSManStackVersion              2.0
CLRVersion                     2.0.50727.5420
BuildVersion                   6.1.7601.17514
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

Windows 7 หลังจากการติดตั้ง. NET 4.5 และ WMF 4:

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.18408
BuildVersion                   6.3.9600.16406
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2

Windows 7 หลังจากการติดตั้ง WMF 5:

Name                           Value
----                           -----
PSVersion                      5.0.10586.117
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.117
CLRVersion                     4.0.30319.18408
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Windows 10 ซึ่งรวมถึง WMF 5 นอกกรอบ:

Name                           Value
----                           -----
PSVersion                      5.0.10586.122
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.122
CLRVersion                     4.0.30319.42000
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

ดังนั้นอย่างที่คุณเห็นรุ่นที่$PSVersionTable.WSManStackVersion.Majorดูเหมือนจะเปลี่ยนแปลงในการติดตั้ง WMF 4 เท่านั้นและจะอยู่ที่ 3 ในขณะที่$PSVersionTable.PSVersion.Majorดูเหมือนว่าจะรายงานเวอร์ชันที่ถูกต้องของ WMF


ฉันจะบอกคุณว่าตัวบ่งชี้ที่น่าเชื่อถือที่สุดคืออะไร ค้นหา WMF เริ่มต้นสำหรับ Windows แต่ละรุ่นและหมายเลข KB ใดที่ใช้สำหรับ Windows Management Framework แต่ละชุดจากนั้นตรวจสอบรุ่น / KB เหล่านั้นแล้วทำใบแจ้งยอดที่ใหญ่ ฉันหมายความว่าบางที PSVersion นั้นดีพอ แต่ตามที่ได้ชี้ให้เห็นเราไม่รู้ หรืออย่างน้อยฉันก็ไม่รู้ แต่ฉันสามารถบอกคุณได้อย่างแน่นอนว่าคุณมี KBs และเวอร์ชั่น OS คุณจะรู้ว่า WMF ติดตั้งอะไร (การกลับขั้นตอน แต่ฉันอยากรู้เกี่ยวกับสาเหตุหนึ่งความต้องการที่จะรู้ว่ารุ่น WMF และ PSVersion จะไม่เพียงพอ.)
ทอดด์วอลตัน

นี่ควรเป็นคำตอบที่ยอมรับได้ ในขณะที่การค้นหา KBs ทั้งหมดจะเปิดใช้งานคำตอบแบบละเอียดคำตอบนี้เป็นวิธีการที่สมเหตุสมผลที่ฉันสามารถยืนยันได้ในรุ่น Windows อย่างน้อยหนึ่งรุ่น (2012 R2)
RichVel

@ToddWalton ฉันจำไม่ได้ว่าทำไมฉันถึงต้องการรุ่น WMF ในเวลานั้น ทั้งหมดที่ฉันจำได้คือสิ่งที่ฉันทำมีข้อกำหนดเบื้องต้นว่ามีการติดตั้ง WMF รุ่นที่ระบุไว้เฉพาะและไม่ใช่ PowerShell ฉันจำไม่ได้ว่าเป็นอะไรดังนั้นอาจเป็นสิ่งที่ใช้ PowerShell แม้ว่าฉันจะไม่ได้อยู่ที่งานนั้นมาประมาณ 2 ปีแล้วดังนั้นความทรงจำของฉันเกี่ยวกับงานนั้นจึงเป็นชีสที่มีกลิ่นหอม
Loduwijk

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

3

ใน PowerShell มีให้ตั้งแต่ $PSVersionTable.WSManStackVersion.Major

ระบบ Windows 7 ในบ้านของฉัน:

PS C:\Users\Brian> $PSVersionTable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5485
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1


PS C:\Users\Brian> $PSVersionTable.WSManStackVersion.Major
2
PS C:\Users\Brian>

จากนั้นหลังจากติดตั้ง Windows Management Framework ที่ใหม่กว่า:

PS C:\Users\Brian> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.34209
BuildVersion                   6.3.9600.16406
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2


PS C:\Users\Brian>

1
ฉันเชื่อว่านี่ไม่ถูกต้อง ฉันเพิ่งติดตั้ง WMF 5.1 บนระบบ Windows Server 2012 R2 ซึ่งWSManStackVersionเดิม 3.0 และมันยังคงอยู่ที่ 3.0 ฉันคิดว่าคำแนะนำที่ดีที่สุดคือสององค์ประกอบแรกPSVersionซึ่งจะเหมือนกับในเวอร์ชัน WMF
RichVel

0

หากติดตั้งแล้วคุณจะพบใน "appwiz.cpl" เพียงจำไว้ว่าให้ดูภายใต้ "ดูการปรับปรุงที่ติดตั้ง" เนื่องจาก WMF นั้นได้รับการเผยแพร่เป็นอัปเดต Windows ที่มีหมายเลข KB เฉพาะสำหรับ Windows รุ่นต่างๆ

WMF 3.0 ติดตั้งภายใต้ Windows 7 SP 1


0

คุณตรวจสอบเพื่อดูว่ามีการติดตั้ง Windows Management Framework (WMF) รุ่นใดโดยระบุหมายเลข KB ของรุ่นที่คุณกำลังตรวจสอบแล้วใช้ในกรณีนี้แบบสอบถามแบบ Wmic เพื่อตรวจสอบว่ามีการติดตั้งหมายเลข KB หรือไม่ ตัวอย่างเหล่านี้ล้วนแล้วแต่ใช้ cmd.exe เพื่อเรียกใช้คำสั่ง

** คำสั่งตรวจสอบ WMF 4.0

wmic qfe get hotfixid | find "KB2819745"
echo %ERRORLEVEL%

** ตัวอย่างการรันคำสั่ง:

C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB2819745"
KB2819745

C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
0

ในตัวอย่างข้างต้นติดตั้ง WMF 4.0: KB จะถูกส่งคืนจากเคียวรี wmic และรหัสส่งคืนเป็นศูนย์

** คำสั่งตรวจสอบ WMF 5.0

wmic qfe get hotfixid | find "KB3134760"
echo %ERRORLEVEL%

** ตัวอย่างการรันคำสั่ง:

C:\Program Files\Tivoli\TSM\baclient> wmic qfe get hotfixid | find "KB3134760"
C:\Program Files\Tivoli\TSM\baclient> echo %ERRORLEVEL%
1

ดังนั้นในตัวอย่างข้างต้นไม่ได้ติดตั้ง WMF 5.0: ไม่มีการส่งคืนใด ๆ จากเคียวรี wmic และโค้ดส่งคืนที่ไม่ใช่ศูนย์

เป็นไปได้ว่าคุณใช้ KB ที่แตกต่างกันเพื่อติดตั้งระดับ WMF ที่กำหนด แต่สิ่งเหล่านี้คือสิ่งที่ฉันกำลังทำงานอยู่ในขณะนี้

และฉันจะตรวจสอบ PowerShell เสมอ (ซึ่งติดตั้งหรืออัปเกรดเป็นส่วนหนึ่งของ WMF):

powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -Command "Write-Host $PSVersionTable.PSVersion"
echo %ERRORLEVEL%

มีปัญหาเมื่ออัพเกรดเป็น WMF 4.0 (และอีกครั้งในภายหลังเป็น 5.0) หากไม่ได้ติดตั้ง. NET 4.5 ดังนั้นหากคำสั่ง PS แสดงข้อผิดพลาดคุณควรติดตั้ง. NET 4.5

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