วิธีการคืนค่าแฟ้มแคชของ Windows Installer ที่หายไป และแก้ปัญหาที่เกิดขึ้นในระหว่างการปรับปรุงของ SQL Server

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 969052 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ


ขั้นตอนที่อธิบายในบทความนี้ก็เพื่อ ให้ลดภาระฉุกเฉินเท่านั้นและการแก้ไขปัญหาอย่างถาวรไม่ ลูกค้าโดยใช้กระบวนการนี้ได้ในกรณีฉุกเฉินควรตรวจสอบแคโปรแกรมติดตั้ง Windows ของตนเองโดยใช้Windows Installer แคชแพคเกจตัวตรวจสอบความที่ในบทความ 2667628

เมื่อคุณพยายามติดตั้ง Microsoft SQL Server เซอร์วิสแพ็คหรือการปรับปรุง คุณอาจพบการต่อไปนี้ข้อผิดพลาด ซึ่งสามารถบ่งชี้ปัญหาแคชของโปรแกรมติดตั้ง Windows Windows Installer แค อยู่ในโฟลเดอร์c:\windows\installerเก็บสิ่งสำคัญแฟ้มสำหรับโปรแกรมประยุกต์ที่ติดตั้งโดยใช้เทคโนโลยี r Installe ของ Windowsและไม่ควรถูกลบออก ถ้าคุณได้ถูกโจมตีแค installer คุณอาจไม่ทันทีดูปัญหาจนกว่าจะมีกระทำเช่นถอนการติดตั้ง ซ่อมแซม หรือปรับปรุงเซิร์ฟเวอร์ SQL

เมื่อการติดตั้ง SQL Server Windows Installerสำคัญเก็บ แฟ้มถูกเก็บไว้ในแคชของ Windows Installer (ค่าเริ่มต้นคือ C:\Windows\Installer) แฟ้มเหล่านี้จำเป็นต้องใช้สำหรับการถอนการติดตั้ง และการปรับปรุงโปรแกรมประยุกต์ ไม่สามารถคัดลอกแฟ้มที่หายไประหว่างเครื่องจักรเนื่องจากพวกเขาไม่ซ้ำกัน

Microsoft ขอแนะนำให้ สำหรับการติดตั้ง SQL Server คุณต้องใช้กระบวนการซ่อมแซมซึ่งระบุอยู่ในบทความเหล่านี้เพื่อตรวจสอบการติดตั้งปัจจุบันของคุณ:
หมายเหตุ สามารถพบข้อความแสดงข้อผิดพลาดต่อไปนี้เป็นข้อความ ในแฟ้มบันทึกเหตุการณ์ หรือ ในแฟ้มบันทึกการตั้งค่าที่อยู่ในโฟลเดอร์ต่อไปนี้ และระบุว่า คุณควรซ่อมแซมอินสแตนซ์ของคุณได้รับผลกระทบจะดำเนินการต่อเพิ่มเติม:
  • สำหรับ SQL Server 2008 และ สำหรับ SQL Server 2008 R2:
    C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
  • สำหรับ SQL Server 2012:
    C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap

สำหรับ SQL 2005 (สาขาทั้งหมด)
ยุบตารางนี้ขยายตารางนี้
รุ่นผลิตภัณฑ์ข้อความแสดงข้อผิดพลาดเมื่อแพคเกจ Installer (MSI) หายไปข้อผิดพลาดเมื่อติดตั้งแคแพคเกจ (MSP) หายไป
SQL Server 2005
1636 ไม่สามารถติดตั้งแฟ้ม MSI โปรแกรมติดตั้ง Windows
ไม่สามารถติดตั้งแฟ้ม Windows Installer MSP 1636
หมายเหตุคุณต้องตรวจสอบแฟ้มบันทึกการตั้งค่าเพื่อระบุว่าแคชของแฟ้มที่เสียหาย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนี้ ไปส่วน "การแก้ไข"

สำหรับ SQL Server 2008 SP1
ยุบตารางนี้ขยายตารางนี้
รุ่นผลิตภัณฑ์ข้อความแสดงข้อผิดพลาดเมื่อแพคเกจ Installer (MSI) หายไปข้อผิดพลาดเมื่อติดตั้งแคแพคเกจ (MSP) หายไป
SQL Server 2008 SP1ไม่มีข้อความแสดงข้อผิดพลาด
ชื่อเรื่อง: ความล้มเหลวในการตั้งค่าเซิร์ฟเวอร์ SQL
------------------------------
การตั้งค่าเซิร์ฟเวอร์ SQL ได้พบข้อผิดพลาดต่อไปนี้: ไม่สามารถเปิดแฟ้มในโปรแกรมแก้ไขได้ แฟ้ม: c:\WINNT\Installer\1cf506f.msp รหัสข้อผิดพลาด 0x84B20001
------------------------------
สำหรับ SQL Server 2008 SP3 build อย่างเดียว (สาขาตั/ของ gdr จะใช้ไม่ได้)
ยุบตารางนี้ขยายตารางนี้
รุ่นผลิตภัณฑ์ข้อความแสดงข้อผิดพลาดเมื่อแพคเกจ Installer (MSI) หายไปข้อผิดพลาดเมื่อติดตั้งแคแพคเกจ (MSP) หายไป
SQL Server 2008 SP3
ไม่มีแฟ้ม MSI ที่แคชไว้ใน 'C:\Windows\Installer\2775c8.msi' แฟ้มต้นฉบับของเป็น 'sql_engine_core_inst.msi' และมีการติดตั้งสำหรับผลิตภัณฑ์ 'บริการ Microsoft SQL Server 2008 ฐานข้อมูลเอ็นจินการจาก'<network path="">', เวอร์ชั่น '10.3.5500.0' ภาษา 'ENU'</network>
ไม่มีแฟ้มโปรแกรมปรับปรุงแคช "C:\Windows\Installer\19b19196.msp" แฟ้มต้นฉบับสำหรับแฟ้มที่เก็บไว้นี้คือ "sql_engine_core_inst.msp" ซึ่งสามารถติดตั้งจากรุ่น "Service Pack 3 สำหรับ SQL Server 2008 (KB2546951) (64 บิต)" 10.3.5500.0
หมายเหตุ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณทำการปรับรุ่น:
ยุบรูปภาพนี้ขยายรูปภาพนี้
ข้อผิดพลาด SQL Server


สำหรับ SQL Server 2008 R2 SP1 เท่านั้น (สาขาตั/ของ gdr จะใช้ไม่ได้)
ยุบตารางนี้ขยายตารางนี้
รุ่นผลิตภัณฑ์ข้อความแสดงข้อผิดพลาดเมื่อแพคเกจ Installer (MSI) หายไปข้อผิดพลาดเมื่อติดตั้งแคแพคเกจ (MSP) หายไป
SP1 R2 2008 เซิร์ฟเวอร์ SQL
ชื่อเรื่อง: ความล้มเหลวในการตั้งค่าเซิร์ฟเวอร์ SQL
------------------------------
การตั้งค่าเซิร์ฟเวอร์ SQL ได้พบข้อผิดพลาดต่อไปนี้: C:\Windows\Installer\932b909.msi
------------------------------
ไม่มีแฟ้มโปรแกรมปรับปรุงแคช "C:\Windows\Installer\105441.msp" แฟ้มต้นฉบับสำหรับแฟ้มที่เก็บไว้นี้คือ "sql_engine_core_inst_loc.msp" ซึ่งสามารถติดตั้งจาก "Service Pack 1 สำหรับ SQL Server 2008 R2 (KB2528583) (64 บิต)" เวอร์ชั่น 10.51.2500.0
หมายเหตุ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณทำการปรับรุ่น:
ยุบรูปภาพนี้ขยายรูปภาพนี้
ข้อผิดพลาด SQL Server


สำหรับ SQL Server 2008 R2 SP2
ยุบตารางนี้ขยายตารางนี้
รุ่นผลิตภัณฑ์ข้อความแสดงข้อผิดพลาดเมื่อแพคเกจ Installer (MSI) หายไปข้อผิดพลาดเมื่อติดตั้งแคแพคเกจ (MSP) หายไป
SP1 R2 2008 เซิร์ฟเวอร์ SQL
ไม่มีแฟ้ม MSI แคช 'C:\Windows\Installer\932b909.msi' แฟ้มต้นฉบับของเป็น 'sql_engine_core_inst.msi' และมีการติดตั้งสำหรับผลิตภัณฑ์ 'บริการ SQL Server 2008 R2 SP1 ฐานข้อมูลเอ็นจินการจาก'<network path="">', เวอร์ชั่น '10.51.2500.0' ภาษา 'ENU'</network>
ไม่มีแฟ้มโปรแกรมปรับปรุงแคช "C:\Windows\Installer\105441.msp" แฟ้มต้นฉบับสำหรับแฟ้มที่เก็บไว้นี้คือ "sql_engine_core_inst_loc.msp" ซึ่งสามารถติดตั้งจาก "Service Pack 1 สำหรับ SQL Server 2008 R2 (KB2528583) (64 บิต)" เวอร์ชั่น 10.51.2500.0
หมายเหตุ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณทำการปรับรุ่น:
ยุบรูปภาพนี้ขยายรูปภาพนี้
ข้อผิดพลาด SQL Server


สำหรับ 2012 เซิร์ฟเวอร์ SQL ก่อน CU2
ไม่มีข้อความสำหรับแฟ้ม MSP หรือ MSI ที่ขาดหายไปได้ อย่างไรก็ตาม มีบันทึกรหัสข้อผิดพลาด 1714 ในล็อกการตั้งค่า

ในแฟ้ม Summary.txt:
ชื่อคอมโพเนนต์: แฟ้มสนับสนุนการติดตั้งเซิร์ฟเวอร์ SQL
รหัสข้อผิดพลาดของคอมโพเนนต์: 1714

ในแฟ้ม Detail.txt:
<Date><Time>Slp: Sco: ไม่พบแฟ้ม 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi'
<Date><Time>Slp: Sco: ไม่พบแฟ้ม 'd:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\x64\SqlSupport.msi'
<Date><Time>Slp: จุดตรวจสอบ: PREINSTALL_SQLSUPPORT_CPU64_ACTION
<Date><Time>Slp: Sco: พยายามที่จะสร้างคีย์รีจิสทรีฐาน HKEY_LOCAL_MACHINE เครื่องจักร<Server name="">
<Date><Time>Slp: Sco: พยายามที่จะเปิดคีย์ย่อยของรีจิสทรี Software\Microsoft\Windows\CurrentVersion\Installer
<Date><Time>Slp: Sco: พยายามที่จะรับค่ารีจิสทรี InstallerLocation
<Date><Time>Slp: Windows installer รุ่น: 5.0.7601.17514
<Date><Time>Slp: Sco: กำลังรอการบริการ 'msiserver' เพื่อยอมรับการร้องขอการหยุด
<Date><Time>Slp: Sco: พยายามที่จะเปิดตัวจัดการ SC
<Date><Time>Slp: Sco: พยายามที่จะเปิดบริการหมายเลขอ้างอิงสำหรับบริการ msiserver
<Date><Time>Slp: QueryServiceStatus Win32 API ที่เรียกใช้
<Date><Time>Slp: Sco: พยายามที่จะปิดหมายเลขอ้างอิงของบริการสำหรับบริการ msiserver
<Date><Time>Slp: Sco: พยายามที่จะปิดตัวจัดการ SC
<Date><Time>Slp: แพคเกจเป้าหมาย: "d:\2d5feb4dd893c4adee47f15661ac\1033_ENU_LP\x64\setup\sqlsupport_msi\SqlSupport.msi"
<Date><Time>Slp: ข้อผิดพลาดของ MSI: 1714 รุ่นเก่าของ Microsoft SQL Server 2012 อัพ (ภาษาอังกฤษ) ไม่สามารถเอาออก ติดต่อกลุ่มสนับสนุนด้านเทคนิคของคุณ
<Date><Time>Slp: InstallPackage: MsiInstallProduct ส่งกลับรหัส 1603 ผลลัพธ์
<Date><Time>Slp: รหัสข้อผิดพลาดของ MSI ที่ใช้เพื่อตรวจสอบตัวเลือกการลองส่งใหม่: 1714
<Date><Time>Slp: MSI ไม่สามารถลองส่งกลับรหัสที่ตรวจพบ</Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Time></Date></Server></Time></Date></Time></Date></Time></Date></Time></Date>

สำหรับ CU2 2012 เซิร์ฟเวอร์ SQL (และในเวลาต่อมาตั หรือ SP)
ยุบตารางนี้ขยายตารางนี้
รุ่นผลิตภัณฑ์ข้อความแสดงข้อผิดพลาดเมื่อแพคเกจ Installer (MSI) หายไปข้อผิดพลาดเมื่อติดตั้งแคแพคเกจ (MSP) หายไป
SP1 R2 2008 เซิร์ฟเวอร์ SQL
แฟ้ม MSI แคช ' C:\Windows\Installer\<file_encoded_name>.msi' ขาดหายไป แฟ้มต้นฉบับของ '' C:\Windows\Installer\sql_<featurename>.msi' }' และมีการติดตั้งสำหรับผลิตภัณฑ์ ' Microsoft SQL Server <version>' จาก 'C:\originalfolder' เวอร์ชั่น '<versionnumber>', ภาษา '<language>'</language> </versionnumber> </version> </featurename> </file_encoded_name>
ไม่มีแฟ้มโปรแกรมปรับปรุงแคช "c:\Windows\Installer\1fdb1aec.msp" แฟ้มต้นฉบับเป็น "sql_engine_core_inst.msp" ซึ่งสามารถติดตั้งจากแฟ้มการปรับปรุงแคช 11.00.2100.60.The เวอร์ชั่น "Hotfix 2316 สำหรับ SQL Server 2012 (KB2679368) (64 บิต)" " C:\Windows\Installer\<file_encoded_name>.msp' ขาดหายไป แฟ้มต้นฉบับของ '' C:\Windows\Installer\sql_<featurename>.msp' }', ซึ่งสามารถติดตั้งได้จาก ' โปรแกรมแก้ไขด่วน<number>สำหรับ SQL Server 2012 <KB number="">', เวอร์ชั่น '<versionnumber>' ได้</versionnumber></KB> </number> </featurename> </file_encoded_name>

สาเหตุ

ปัญหาเหล่านี้อาจเกิดขึ้นเมื่อแฟ้มฐานข้อมูล Windows Installer (.msi) หรือแฟ้มโปรแกรมแก้ไขของ Windows Installer (.msp) หายไปจาก Windows Installer แคช แค Windows Installer จะอยู่ในโฟลเดอร์ต่อไปนี้:
%windir%\installer
เมื่อมีการติดตั้งผลิตภัณฑ์ โดยใช้ Windows Installer, stripped รุ่นของแฟ้ม.msi ต้นฉบับถูกเก็บในแค Windows Installer การปรับปรุงทุก ๆ ผลิตภัณฑ์เช่นโปรแกรมแก้ไขด่วน การปรับปรุง หรือตั้ง ค่าชุดบริการ ยังเก็บ.msp เกี่ยวข้องหรือแฟ้ม.msi ที่ในแคชของ Windows Installer

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

การแก้ไข

เมื่อต้องการแก้ไขปัญหาเหล่านี้ ใช้วิธีการใดวิธีการหนึ่งดังต่อไปนี้

ขั้นตอนที่ 1: ใช้สคริปต์

เมื่อต้องการดำเนินการขั้นตอนในกระบวนการนี้ คุณจำเป็นต้องคัดลอกแบบ สคริปต์ FindSQLInstalls.vbs จากส่วน "ข้อมูลเพิ่มเติม" เพื่อโฟลเดอร์เฉพาะที่บนคอมพิวเตอร์ที่คุณกำลังพยายามปรับปรุงการติดตั้ง SQL Server ของคุณ

หมายเหตุ สคริปต์ FindSQLInstalls.vbs รวบรวมข้อมูลเมื่อต้องการแก้ไขเส้นทางแพคเกจไม่ถูกต้อง และ สคริปต์นี้จะใช้กับสถานที่เก็บต้นฉบับเพื่อให้แน่ใจว่า แพคเกจ MSP ทั้งหมดอยู่ในไดเรกทอรีการแคชของ Windows Installer แพคเกจใด ๆ ขาดหายไปจะถูกเพิ่มเข้าไปใหม่อีกครั้งถ้าสื่อต้นฉบับเดิมจะพร้อมใช้งาน

เมื่อต้องการแก้ไขปัญหาเหล่านี้ โดยใช้สคริปต์ ให้ทำตามขั้นตอนเหล่านี้:
  1. ค้นหาไดเรกทอรีที่คุณบันทึกเนื้อหาสคริปต์
  2. เปิดพร้อมท์คำสั่งในไดเรกทอรีที่คุณบันทึกสคริปต์ และเรียกใช้คำสั่งต่อไปนี้:
    Cscript จะ FindSQLInstalls.vbs %computername%_sql_install_details.txt
  3. เปิดแฟ้มจากขั้นตอนที่ 2 ในตัวแก้ไขข้อความเช่น Notepad และระบุปัญหาที่ทำให้เกิดความล้มเหลว เมื่อต้องการทำเช่นนี้ การค้นหาแฟ้มข้อความสำหรับรูปแบบสายอักขระต่อไปนี้:
    • ไม่
    • !!!
  4. ขึ้นอยู่กับผลลัพธ์ในขั้นตอนที่ 3 ดำเนินการขั้นตอนต่าง ๆ ที่จำเป็น

    หมายเหตุ ดูข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนเหล่านี้ในส่วน "ตัวอย่าง"

  5. ทำซ้ำขั้นตอนที่ 2 ถึง 4 จนกว่าแฟ้มข้อความที่ถูกสร้างขึ้นในขั้นตอนที่ 2 ไม่ประกอบด้วยข้อความที่อ้างอิงไม่ถูกต้องของเส้นทางหรือแฟ้มที่หายไปสำหรับคอมโพเนนต์กำลังถูกปรับปรุง

ตัวอย่าง

ตัวอย่างต่อไปนี้คือ รายการและคำอธิบายของการดำเนินการที่กล่าวถึงไว้ในแฟ้มผลลัพธ์ที่ถูกสร้างขึ้นเมื่อคุณเรียกใช้สคริปต์ FindSQLInstalls.vbs

ตัวอย่างที่ 1: ติดตั้งแฟ้มที่ขาดหายไป
ต่อไปนี้คือ ตัวอย่างของผลผลิตที่ถูกสร้างขึ้นเมื่อคุณไม่มีแพคเกจเป็น.msi ในโฟลเดอร์แคช Windows Installer
================================================================================
PRODUCT NAME   : Microsoft SQL Server 2008 Database Engine Services
================================================================================
  Product Code: {9FFAE13C-6160-4DD0-A67A-DAC5994F81BD}
  Version     : 10.2.4000.0
  Most Current Install Date: 20110211
  Target Install Location: 
  Registry Path: 
   HKEY_CLASSES_ROOT\Installer\Products\C31EAFF906160DD46AA7AD5C99F418DB\SourceList
     Package    : sql_engine_core_inst.msi
  Install Source: \x64\setup\sql_engine_core_inst_msi\
  LastUsedSource: m;1;G:\x64\setup\sql_engine_core_inst_msi\

บรรทัด "LastUsedSource" ชี้ไปยังตำแหน่งที่ใช้ในการเรียกใช้โปรแกรมติดตั้ง

ในบรรทัด "LastUsedSource", mรายการสื่อเป็นสัญลักษณ์ และบ่งชี้ว่า แหล่งต้นฉบับ สื่อซีดี/ดีวีดี

ในตัวอย่างต่อไปนี้ แหล่งที่มาเป็นซีดีหรือดีวีดีในไดรฟ์ G. ถ้าการติดตั้งที่เกิดขึ้น จากโฟลเดอร์แฟ้ม หรือ จากการ แชร์เครือข่าย "LastUsedSource" รายการเริ่มต้น ด้วยรายการnตาม ด้วยรายการNumeric_Data_Nameแล้วเส้นทางจริง:
!!!! sql_engine_core_inst.msi DOES NOT exist on the path in the path G:\x64\setup\sql_engine_core_inst_msi\ !!!!
 
Action needed, re-establish the path to G:\x64\setup\sql_engine_core_inst_msi\ 

การดำเนินการ "การจำเป็นต้องใช้" บรรทัดแสดงเส้นทางแบบเต็มที่ต้องมีอยู่เพื่อที่จะปรับปรุงแฟ้มที่ขาดหายไปสำหรับสื่อการติดตั้งต้นฉบับ:
Installer Cache File: C:\WINDOWS\Installer\19b4d2.msi 

บรรทัด "โปรแกรมติดตั้งแฟ้มแคช" ยืนยันชื่อของโปรแกรมติดตั้งแฟ้มแคช:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! C:\WINDOWS\Installer\19b4d2.msi DOES NOT exist in the Installer cache. !!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ส่วนต่อไปนี้ของผลลัพธ์แนะนำให้คุณใช้การดำเนินการที่จำเป็นในการแก้ไขแฟ้มหายไป:
 Action needed, recreate or re-establish path to the directory:
     G:\x64\setup\sql_engine_core_inst_msi\then rerun this script to update installer cache and results
     The path on the line above must exist at the root location to resolve
     this problem with your msi/msp file not being found or corrupted,
     In some cases you may need to manually copy the missing file or manually
     replace the problem file overwriting it is exist: 
 
     Copy "G:\x64\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msi" C:\WINDOWS\Installer\19b4d2.msi
 
     Replace the existing file if prompted to do so.
ตัวอย่างที่ 2: ซอฟต์แวร์ที่ขาดหายไป
โปรแกรมแก้ไขที่หายไปอาจส่งผลให้รายการที่คล้ายกับในตัวอย่างที่ 1 โดยส่วนใหญ่ คุณจะสังเกตเห็นรายการในรายการ "โปรแกรมปรับปรุง LastUsedSource" ซึ่งเป็นโปรแกรมปรับปรุงการอ้างอิง และบรรทัดนี้มีลักษณะต่อไปนี้:
Patch LastUsedSource:   n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\

ผลลัพธ์นี้บ่งชี้ว่า เกี่ยวกับการติดตั้งโปรแกรมปรับปรุงต่อไปนี้:
  • โปรแกรมแก้ไขต้นฉบับถูกติดตั้ง โดยคลิกสองครั้งที่แฟ้มที่ปฏิบัติการได้ของโปรแกรมปรับปรุง
  • โปรแกรมติดตั้งสำหรับโปรแกรมปรับปรุงใช้โฟลเดอร์ temp, c:\0ca91e857a4f12dd390f0821a3 ระหว่างการติดตั้งโปรแกรมปรับปรุง
  • เมื่อต้องการสร้างเส้นทางใหม่ คุณต้องเรียกใช้แฟ้มโปรแกรมเดียวกัน และเพิ่มพารามิเตอร์ต่อไปนี้:
    /x:c:\0ca91e857a4f12dd390f0821a3
    หมายเหตุ คำสั่งนี้บังคับให้สามารถดำเนินการได้เพื่อแยกแฟ้มไปยังตำแหน่งขาดหายไปก่อนหน้านี้ และซึ่งสร้างโครงสร้างที่จำเป็นในการปรับปรุง Windows installer แคกับแฟ้มใด ๆ ขาดหายไป ใหม่อีกครั้ง ตำแหน่งที่ตั้งที่เกิดขึ้นจริงจะแตกต่างกัน และโปรแกรมแก้ไขเดียวเช่นเซอร์วิสแพ็คอาจจำเป็นต้องถูกแยกไปยังหลายตำแหน่ง แต่ละผลิตภัณฑ์ที่ติดตั้งมีส่วนที่ประกอบด้วยข้อมูลต่อไปนี้สำหรับ "โปรแกรมปรับปรุงที่ติดตั้ง":
    Display name:
    KB Article URL:  http://support.microsoft.com/?kbid=<value>
    Patch LastUsedSource: 

    "URL ของบทความ KB" บรรทัดสามารถช่วยคุณดาวน์โหลดโปรแกรมปรับปรุงสื่อใด ๆ ถ้าจำเป็น

ขั้นตอนที่ 2: แฟ้มที่คืนค่าด้วยตนเอง

เมื่อต้องการคืนค่าแฟ้มที่ขาดหายไปจาก Windows Installer แค ด้วยตนเองให้ทำตามขั้นตอนเหล่านี้:
  1. รวบรวมรายละเอียดทั้งหมดเกี่ยวกับแฟ้มหายไป จากข้อความข้อผิดพลาด จากแฟ้มบันทึกการติดตั้ง หรือ จากรายการรีจิสทรีที่ถูกเก็บรักษา โดยโปรแกรมติดตั้ง Windows ตัวอย่างเช่น ใน 1 ข้อความแสดงข้อผิดพลาดในส่วน "อาการ" ข้อมูลทั้งหมดที่จำเป็นในการแก้ไขปัญหามีอยู่ในข้อความข้อผิดพลาด:
    • PatchName: "โปรแกรมแก้ไขด่วน 1702 สำหรับ SQL Server 2008 R2 (KB981355) (64 บิต) "
    • แฟ้ม MSP ดั้งเดิมที่ถูกใช้ โดยโปรแกรมแก้ไข: sql_engine_core_inst.msp
    • แฟ้ม MSP แคช: c:\Windows\Installer\1fdb1aec.msp
  2. ถ้าคุณไม่มีรายละเอียดทั้งหมด ดู "ข้อมูลเพิ่มเติมสำหรับขั้นตอน 2 " ส่วนสำหรับขั้นตอนการรวบรวมรายละเอียดเหล่านี้
  3. เยี่ยมชม http://support.microsoft.comและค้นหาบทความ KB ที่เกี่ยวข้องกับโปรแกรมปรับปรุงนี้ ในตัวอย่างนี้ คุณต้องค้นหา KB981355
  4. ดาวน์โหลดแพคเกจโปรแกรมปรับปรุงนี้กับคอมพิวเตอร์ของคุณ ตรวจสอบให้แน่ใจว่า คุณดาวน์โหลดแพคเกจโปรแกรมปรับปรุงที่สอดคล้องกับแพลตฟอร์มที่จำเป็น ในตัวอย่างนี้ แพคเกจคือ SQLServer2008R2-KB981355-x64.exe
  5. ขยายเนื้อหาของแพคเกจโปรแกรมปรับปรุง โดยใช้ไวยากรณ์ต่อไปนี้:
    C:\Temp>SQLServer2008R2-KB981355-x64.exe /x C:\Temp\SQLServer2008R2-KB981355-x64\
  6. ค้นหาแฟ้ม sql_engine_core_inst.msp แฟ้ม msp เดิม แฟ้มควรจะอยู่ในโฟลเดอร์ต่อไปนี้:
    C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
  7. คัดลอกแฟ้ม msp นี้ต้นฉบับไปยังแคชตัวติดตั้ง Windows ต่อไปนี้:
    %windir%\installer\
  8. เปลี่ยนชื่อแฟ้มการ msp เดิม sql_engine_core_inst.msp ชื่อต่อไปนี้:
    1fdb1aec.msp แฟ้ม msp แคช

คุณสามารถเริ่มโปรแกรมติดตั้งสำหรับการปรับปรุงที่ทำให้เกิดข้อผิดพลาด และดำเนินกระบวนการปรับปรุง คุณอาจพบข้อความนี้สำหรับแฟ้มการแคชของ Windows Installer หายไป สำหรับคอมโพเนนต์อื่น หรือ สำหรับการปรับปรุงอื่นของผลิตภัณฑ์เดียวกัน

เมื่อต้องการดูรายการที่ขาดหายไป Windows Installer แคชของแฟ้มทั้งหมดที่เกี่ยวข้องกับส่วนประกอบของผลิตภัณฑ์ SQL Server คุณสามารถดาวน์โหลดเครื่องมือ BPA R2 2008 ของเซิร์ฟเวอร์ SQL ที่กล่าวถึงในส่วน "ข้อมูลเพิ่มเติม"

ถ้าข้อความแสดงข้อผิดพลาดอ้างอิงถึงแฟ้มฐานข้อมูล Windows Installer (.msi) หายไป คุณไม่ได้ทำขั้นตอนที่ 2 ถึง 4 แทน คุณสามารถไปโดยตรงไปที่ขั้นตอนที่ 5 คุณต้องการค้นหาแบบ.msi จากสื่อต้นฉบับที่คุณใช้ในการติดตั้งผลิตภัณฑ์ ถ้าข้อความแสดงข้อผิดพลาดนี้ถูกสร้างขึ้นสำหรับ sql_engine_core_inst.msi แล้วคุณจำเป็นต้องค้นหาแฟ้มนี้จากสื่อการติดตั้งภายใต้โครงสร้างของโฟลเดอร์ต่อไปนี้:
\x64\setup\sql_engine_core_inst_msi\
ขั้นตอนอื่น ๆ จะเหมือนกัน

ข้อมูลเพิ่มเติมสำหรับกระบวนงาน 2

วิธีการค้นหารายละเอียดผลิตภัณฑ์และการแพคเกจโปรแกรมปรับปรุงสำหรับแฟ้ม.msp ขาดหายไป
รุ่นผลิตภัณฑ์แตกต่างกันสร้างข้อความแสดงข้อผิดพลาดที่แตกต่างกันสำหรับปัญหานี้ ข้อความแสดงข้อผิดพลาดที่กล่าวถึงในส่วน "อาการ" ปรากฏขึ้นสำหรับโปรแกรมติดตั้งโปรแกรมปรับปรุงโดยเริ่มต้น ด้วย Microsoft SQL Server 2008 SP1 การปรับปรุงอื่น คุณได้รับข้อความแสดงข้อผิดพลาดที่อาจไม่ระบุอย่างชัดเจนว่าไฟล์โปรแกรมแก้ไขที่หายไปจากแค Windows Installer และรายละเอียดการปรับปรุงเฉพาะ แฟ้มบันทึกการตั้งค่าสำหรับข้อความแสดงข้อผิดพลาดเหล่านี้ จะประกอบด้วยข้อมูลเกี่ยวกับแฟ้มแคชของ Windows Installer หายไป บันทึกการตั้งค่าตัวอย่างมีลักษณะต่อไปนี้:
MSI (s) (FC:F8) [13:48:58:649]: Opening existing patch 'C:\WINDOWS\Installer\145258.msp'.
MSI (s) (FC:F8) [13:48:58:649]: Couldn't find local patch 'C:\WINDOWS\Installer\145258.msp'. Looking for it at its source.
MSI (s) (FC:F8) [13:48:58:649]: Resolving Patch source.
MSI (s) (FC:F8) [13:48:58:649]: Note: 1: 2203 2: D:\cda162709d239766830bae5ce12b\HotFixSQL\Files\sqlrun_sql.msp 3: -2147287037 
MSI (s) (FC:F8) [13:48:58:649]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (FC:F8) [13:49:29:961]: Product: Microsoft SQL Server 2005 -- Installation failed.
MSI (s) (FC:F8) [13:49:29:992]: MainEngineThread is returning 1635
This patch package could not be opened.  Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.
D:\SQL2K5\Servers\Setup\SqlRun_SQL.msi

ถ้าคุณตรวจสอบแฟ้มบันทึกการตั้งค่านี้อย่างระมัดระวัง เรียบร้อยแล้วให้คุณข้อมูลเกี่ยวกับแฟ้ม MSP ดั้งเดิมที่ถูกใช้ โดยโปรแกรมปรับปรุงต่อไปนี้:
sqlrun_sql.msp


เมื่อต้องการค้นหารายละเอียดเพิ่มเติมเกี่ยวกับแฟ้ม.msp หายไปในแคชของ Windows Installer ให้ทำตามขั้นตอนเหล่านี้:
  1. ค้นหาแฟ้ม.msp หายไปในคีย์ย่อยของรีจิสทรี Windows Installer ซอฟต์แวร์ต่อไปนี้:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
  2. ค้นหาโปรแกรมปรับปรุง GUID
  3. ค้นหาโปรแกรมปรับปรุง GUID ในคีย์ย่อยของรีจิสทรี Windows Installer ผลิตภัณฑ์ต่อไปนี้:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
สำหรับตัวอย่างการตั้งค่าล็อก รายละเอียดเกี่ยวกับแฟ้ม.msp หายไปและรายละเอียดของโปรแกรมปรับปรุงที่สอดคล้องกันจะปรากฏอยู่ในรายการรีจิสทรีต่อไปนี้:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\A3B085EA74A9A7640A496636F7EF9A44

ค่า: 0
ชื่อ: LocalPackage
ข้อมูล: C:\WINDOWS\Installer\145258.msp

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\1EB3A031CC585314E87AA527E46EECC2\Patches\A3B085EA74A9A7640A496636F7EF9A44
ค่า: 6
ชื่อ: DisplayName
ข้อมูล: GDR 2050 สำหรับ SQL เซิร์ฟเวอร์ฐานข้อมูลบริการ 2005 ENU (KB932555)

ขณะนี้ คุณมีจุดข้อมูลทั้งหมดเพื่อเริ่มต้นขั้นตอนการแก้ไขแฟ้มหายไปในแคชของ Windows Installer

หมายเหตุ ถ้าคุณใช้ Microsoft SQL Server 2008 Service Pack 3 (SP3) หรือรุ่นที่ใหม่กว่า คุณสามารถได้รับข้อผิดพลาดคล้ายกันสำหรับแฟ้ม.msi หายไป โดยใช้ข้อความแสดงข้อผิดพลาดนี้ คุณสามารถกำหนดได้อย่างรวดเร็วว่าแฟ้มใดขาด เซอร์วิสแพ็คใดดาวน์โหลด และคุณสามารถค้นหาการดาวน์โหลด

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับ service pack ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2546951 รายการของบักที่ได้รับการแก้ไขใน SQL Server 2008 Service Pack 3

ข้อมูลเพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแฟ้มฐานข้อมูล (.msi) Windows Installer แวะไปเว็บไซต์ Microsoft Developer Network (MSDN) ต่อไปนี้:
ฐานข้อมูลการติดตั้ง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแฟ้ม (แฟ้ม.msp) ของโปรแกรมปรับปรุง Windows Installer แวะไปที่เว็บไซต์ MSDN ต่อไปนี้:
แพคเกจโปรแกรมปรับปรุง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรายละเอียดภายในของ Windows Installer แค ดูบล็อก MSDN ต่อไปนี้:
แคชของโปรแกรมติดตั้ง Windows
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนการปรับปรุง ดูบล็อก MSDN ต่อไปนี้:
วิธีการทำงานของการปรับปรุง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบให้แน่ใจว่า คุณแคแฟ้มโปรแกรมปรับปรุงสำหรับแพลตฟอร์มถูกต้อง ดูบล็อก MSDN ต่อไปนี้:สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่ผลิตภัณฑ์ใด ๆ ที่ใช้ Windows Installer สามารถพบปัญหานี้ ดูบล็อก MSDN ต่อไปนี้:
สร้างแคโปรแกรมติดตั้ง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรายละเอียดเกี่ยวกับข้อผิดพลาดที่ปรากฏในแฟ้มบันทึกการตั้งค่าชุดหลาย ๆ ชุด ดูบล็อก MSDN ต่อไปนี้:
ส่วน - 1: SQL Server 2005 โปรแกรมปรับปรุงไม่สามารถติดตั้งกับข้อผิดพลาด "ไม่สามารถติดตั้ง Windows Installer MSP แฟ้ม"


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์หรือเครื่องมือที่ตรวจสอบโดยอัตโนมัติสำหรับเงื่อนไขนี้ บนอินสแตนซ์ SQL Server ของคุณ และ ในรุ่นของผลิตภัณฑ์ SQL Server ดูตารางต่อไปนี้:
ยุบตารางนี้ขยายตารางนี้
ซอฟต์แวร์ของกฎชื่อเรื่องของกฎคำอธิบายกฎรุ่นผลิตภัณฑ์ที่จะถูกประเมินกฎ
SQL Server 2008 R2 ดีที่สุดวิธีปฏิบัติ Analyzer (SQL BPA R2 2008 เซิร์ฟเวอร์)ตั้งค่า - แคชของโปรแกรมติดตั้งไม่มีการติดตั้ง SQLตัว SQL Server 2008 R2 ดีฝึกหัดวิเคราะห์ (SQL Server 2008 R2 BPA) มีกฎการตรวจหาแฟ้มแคชของโปรแกรมติดตั้งที่ขาดหายไปสำหรับคอมโพเนนต์ของ SQL Server การ BPA SQL Server 2008 R2 สนับสนุนทั้ง SQL Server 2008 และ SQL Server 2008 R2 ถ้าคุณเรียกใช้เครื่องมือ BPA และพบข้อผิดพลาดที่ มีชื่อเรื่องของการตั้งค่า - แคชของโปรแกรมติดตั้งสำหรับการติดตั้ง SQL ขาดหายไป และจากนั้น แคชของแฟ้มหายไปจากโฟลเดอร์แคชSQL Server 2008
SQL Server 2008 R2
SQL เซิร์ฟเวอร์ 2012 ดีที่สุดวิธีปฏิบัติ Analyzer (BPA การ 2012 เซิร์ฟเวอร์ SQL)ตั้งค่า - แคชของโปรแกรมติดตั้งไม่มีการติดตั้ง SQLตัว SQL Server 2012 สุดแบบฝึกหัดวิเคราะห์ (BPA การ 2012 เซิร์ฟเวอร์ SQL) มีกฎการตรวจหาแฟ้มแคชของโปรแกรมติดตั้งที่ขาดหายไปสำหรับคอมโพเนนต์ของ SQL Serverถ้าคุณเรียกใช้เครื่องมือ BPA และพบข้อผิดพลาดที่ มีชื่อเรื่องของการตั้งค่า - แคชของโปรแกรมติดตั้งสำหรับการติดตั้ง SQL ขาดหายไป และจากนั้น แคชของแฟ้มหายไปจากโฟลเดอร์แคชSQL Server 2012



สคริปต์ FindSQLInstalls.vbs

' Copyright ? Microsoft Corporation.  All Rights Reserved.
' This code released under the terms of the 
' Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)
 
 
On Error Resume Next
 
Dim arrSubKeys, arrSubKeys2
Dim objFSO, objShell, objFile, objReg, objConn, objExec
Dim strComputer, strKeyPath, strNewSource
Dim strWorkstationName, strDBPath, strSubKey, strSubKey2(), strKeyPath02,  strRetValue00
Dim strRetValue01, strRetValue02, strRetValNew02, strRetValNew03, strRetValNew04, strRetValNew05, strRetValNew06, strRetValNew07, strRetValNew08, strRetValNew09, strRetValue10, strRetValNew10, strRetValNew11, strRetValNew12, strRetValNew13, strRetValNew14, strRetValNew14a, strRetValNew14b, strRetValNew15, strRetValNew15a, strRetValNew15b, strRetValNew16, strRetValNew17, strRetValNew18
 
Const HKCR = &H80000000 'HKEY_CLASSES_ROOT
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Const ForReading = 1, ForWriting = 2, ForAppEnding = 8
 
' Checking for Elevated permissions
Dim oShell, oExec
szStdOutszStdOut = ""
Set oShell = CreateObject("WScript.Shell")
Set oExec = oShell.Exec("whoami /groups")
 
Do While (oExec.Status = cnWshRunning)
    WScript.Sleep 100
       if not oExec.StdOut.AtEndOfStream Then
                szStdOut = szStdOut & oExec.StdOut.ReadAll
       end If
Loop
 select case oExec.ExitCode
   case 0
       if not oExec.StdOut.AtEndOfStream Then
           szStdOut = szStdOut & oExec.StdOut.ReadAll
       End If
       If instr(szStdOut,"Mandatory Label\High Mandatory Level") Then
                wscript.echo "Elevated, executing script and gathering requested data"
       Else
           if instr(szStdOut,"Mandatory Label\Medium Mandatory Level")  Then
          Wscript.echo "Not Elevated must run from Administrative commmand line."
       Else
          Wscript.echo "Gathering requested data..."
           end If
      End If
   case Else
       if not oExec.StdErr.AtEndOfStream Then
          wscript.echo oExec.StdErr.ReadAll
       end If
       end select
 
'
' Leaving strNewSource will result in no search path updating.
' Currently DO NOT EDIT these.
strNewSource = ""
strNewRTMSource = ""
 
' Define string values
strComputer = "."
strSQLName = "SQL"
strDotNetName = ".NET"
strVStudioName = "Visual Studio"
strXML = "XML"
strOWC = "Microsoft Office 2003 Web Components"
strKeyPath = "Installer\Products"
strKeyPath2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products"
strNValue00 = "ProductName"
strNValue01 = "PackageName"
strNValue02 = "LastUsedSource"
strNValue03 = "InstallSource"
strNValue04 = "LocalPackage"
strNValue05 = "DisplayVersion"
strNValue06 = "InstallDate"
strNValue07 = "UninstallString"
strNValue08 = "PackageCode"
strNValue09 = "MediaPackage"
strNValue10 = "InstallSource"
strNValue11 = "AllPatches"
strNValue12 = "NoRepair"
strNValue13 = "MoreInfoURL"
strNValue14 = "PackageName"
strNValue15 = "LastUsedSource"
strNValue16 = "Uninstallable"
strNValue17 = "DisplayName"
strNValue18 = "Installed"
 
If WScript.arguments.count <> 1 Then
   WScript.echo "Usage: cscript " & WScript.scriptname & " outputfilename.txt"
   WScript.quit
End If
 
'--Setup the output file
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtFile = fso.OpenTextFile(WScript.arguments(0), ForWriting, True)
If err.number <> 0 Then
    WScript.echo "Error 0x" & myHex(err.number,8) & ": " & err.source & " - " & err.description
    WScript.quit
End If
 
txtFile.writeline "Products installed on the local system"
txtFile.writeline " "
txtFile.writeline " "
 
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
 
'--Set up the registry provider.
Set objReg = GetObject("winmgmts:\\" & strComputer & _
"\root\default:StdRegProv")
 
Set wiInstaller = CreateObject("WindowsInstaller.Installer")
 
'--Enumerate the "installer\products" key on HKCR
objReg.EnumKey HKCR, strKeyPath, arrSubKeys
 
For Each strSubKey In arrSubKeys
 
' Define the various registry paths
strProduct01 = "Installer\Products\" & strSubKey
strKeyPath02 = "Installer\Products\" & strSubKey & "\SourceList"
strKeyPath03 = "Installer\Products\" & strSubKey & "\SourceList\Media"
strInstallSource = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & strSubKey & "\InstallProperties\"
strInstallSource2 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\" & strSubKey & "\patches\"
strInstallSource3 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches"
strInstallSource5 = "SOFTWARE\Classes\Installer\Patches\"
strInstallSource6 = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strInstallSource7 = "SOFTWARE\Microsoft\Microsoft SQL Server\"
strInstallSource8 = "SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\"
 
' Pull the intial values
objReg.GetStringValue HKCR, strProduct01, strNValue00, strRetValue00
objReg.GetStringValue HKCR, strKeyPath02, strNValue01, strRetValue01
objReg.GetStringValue HKCR, strKeyPath02, strNValue02, strRetValue02
strRetValNew02 = Mid(strRetValue02, 5)
objReg.GetStringValue HKCR, strKeyPath03, strNValue09, strRetValue09
strRetValue10 = strNewRTMSource & strRetValue09
objReg.GetStringValue HKLM, strInstallSource, strNValue03, strRetValNew03
objReg.GetStringValue HKLM, strInstallSource, strNValue04, strRetValNew04
objReg.GetStringValue HKLM, strInstallSource, strNValue05, strRetValNew05
objReg.GetStringValue HKLM, strInstallSource, strNValue06, strRetValNew06
objReg.GetStringValue HKLM, strInstallSource, strNValue07, strRetValNew07
objReg.GetStringValue HKLM, strInstallSource, strNValue10, strRetValNew10
objReg.GetStringValue HKLM, strInstallSource, strNValue12, strRetValNew12
objReg.GetStringValue HKLM, strInstallSource, strNValue13, strRetValNew13
objReg.GetStringValue HKLM, strInstallSource2, strNValue11, strRetValNew11
 
' Pull the Product Code from the Uninstall String
strProdCode = strRetValNew07
  ProdCodeLen = Len(strProdCode)
  ProdCodeLen = ProdCodeLen - 14
strRetValNew08 = Right(strProdCode, ProdCodeLen)
 
' Pull out path from LastUsedSource
strGetRealPath = strRetValue02
  GetRealPath = Len(strRetValue02)
strRealPath = Mid(strRetValue02, 5, GetRealPath)
 
' Identifie the string in the ProductName
If instr(1, strRetValue00, strSQLName, 1) Then
' Start the log output
    txtFile.writeline "================================================================================"
    txtFile.writeline "PRODUCT NAME   : " & strRetValue00
    txtFile.writeline "================================================================================"
    txtFile.writeline "  Product Code: " & strRetValNew08
    txtFile.writeline "  Version     : " & strRetValNew05
    txtFile.writeline "  Most Current Install Date: " & strRetValNew06
    txtFile.writeline "  Target Install Location: "  & strRetValNew13
    txtFile.writeline "  Registry Path: "
    txtFile.writeline "   HKEY_CLASSES_ROOT\" & strKeyPath02
    txtFile.writeline "     Package    : " & strRetValue01
    txtFile.writeline "  Install Source: " & strRetValue10
    txtFile.writeline "  LastUsedSource: " & strRetValue02
'   txtFile.writeline "Does this file on this path exist? " & strRetValNew02 & "\" & strRetValue01
    If fso.fileexists(strRetValNew02 & "\" & strRetValue01) Then
    txtFile.writeline  " "
        txtFile.writeline "    " & strRetValue01 & " exists on the LastUsedSource path, no actions needed."
    Else
        txtFile.writeline " "
        txtFile.writeline " !!!! " & strRetValue01 & " DOES NOT exist on the path in the path " & strRealPath & " !!!!"
        txtFile.writeline " "
        txtFile.writeline " Action needed, re-establish the path to " & strRealPath
' Placeholder for altering the LastUsedSource by adding source location and Forcing search of list
'        If strNewSource <> "" Then
'        txtFile.writeline "      New Install Source Path Added: " & strNewSource
'        wiInstaller.AddSource strRetValNew08, "", strNewSource
'        Else
'        If strNewRTMSource <> "" Then
'        wiInstaller.AddSource strRetValNew08, "", strNewRTMSource
'        txtFile.writeline "      Forcing SourceList Resolution For: " & strRetValNew08
'        wiInstaller.ForceSourceListResolution strRetValNew08, ""
'        End If
'        End If
    End If
        txtFile.writeline " "
        txtFile.writeline "Installer Cache File: " & strRetValNew04
    If fso.fileexists(strRetValNew04) Then
        txtFile.writeline " "
        txtFile.writeline "    Package exists in the Installer cache, no actions needed."
        txtFile.writeline "    Any missing packages will update automatically if needed assuming that"
        txtFile.writeline "    the LastUsedSource exists."
        txtFile.writeline " "
        txtFile.writeline "    Should you get errors about " & strRetValNew04 & " or " & strRealPath & strRetValue01 & " then you"
        txtFile.writeline "    may need to manually copy the file, if file exists replace the problem file, " 
        txtFile.writeline "    Copy and paste the following command line into an administrative command prompt:"
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRealPath  & strRetValue01 & chr(34) & " " &strRetValNew04
        txtFile.writeline " "
    ElseIf fso.fileexists(strRetValNew02 & "\" & strRetValue01) Then
              fso.CopyFile strRetValNew02 & "\" & strRetValue01, strRetValNew04
        If fso.fileexists(strRetValNew04) Then
          txtFile.writeline " "
          txtFile.writeline "     Missing cache file replaced by copying " & strRealPath  & strRetValue01 & " to " & strRetValNew04
          txtFile.writeline "     Previously missing package " & strRetValNew04 &  " now exists in the Installer cache."
          txtFile.writeline " "
        End If
    Else
        txtFile.writeline " "
        txtFile.writeline " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        txtFile.writeline " !!!! " & strRetValNew04 & " DOES NOT exist in the Installer cache. !!!!"
        txtFile.writeline " !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        txtFile.writeline " "
        txtFile.writeline "     Action needed, recreate or re-establish path to the directory:"
        txtFile.writeline "       " & strRealPath & "then rerun this script to update installer cache and results"
        txtFile.writeline "     The path on the line above must exist at the root location to resolve"
        txtFile.writeline "     this problem with your msi/msp file not being found or corrupted,"
        txtFile.writeline "     In some cases you may need to manually copy the missing file or manually"
        txtFile.writeline "     replace the problem file overwriting it is exist: " 
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRealPath  & strRetValue01 & chr(34) & " " &strRetValNew04
        txtFile.writeline " "
        txtFile.writeline "     Replace the existing file if prompted to do so."
        txtFile.writeline " "
    End If
    txtFile.writeline " "
    txtFile.writeline strRetValue00 & " Patches Installed "
    txtFile.writeline "--------------------------------------------------------------------------------"
 
    err.clear
    objReg.EnumKey HKLM, strInstallSource2, arrSubKeys2
    uUpperBounds = UBound(arrSubKeys2,1)
     If err.number = 0  Then
        For Each strSubKey2 in arrSubKeys2
    '    WScript.echo "value = " & strSubKey2
 
strKeyPath04 = "Installer\Patches\" & strSubKey2 & "\SourceList"
 
     objReg.GetDWORDValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue16, strRetValue16
     objReg.GetStringValue HKCR, strKeyPath04, strNValue15, strRetValue15a
     objReg.GetStringValue HKCR, strKeyPath04, strNValue14, strRetValue14a
     objReg.GetStringValue HKCR, strKeyPath02, strNValue15, strRetValue15b
     objReg.GetStringValue HKCR, strKeyPath02, strNValue14, strRetValue14b
     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue17, strRetValue17
     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue18, strRetValue18
     objReg.GetStringValue HKLM, strInstallSource2 & "\" & strSubKey2 & "\", strNValue13, strRetValue13a
     objReg.GetStringValue HKLM, strInstallSource3 & "\" & strSubKey2 & "\", strNValue04, strRetValue04a
 
' Pull the URL from the MoreInfoURL String
strMoreInfoURL = strRetValue13a
  MoreInfoURLLen = Len(strMoreInfoURL)
strRetValue13b = Right(strMoreInfoURL, 42)
 
' Pull the URL from the LastUsedPath String
strLastUsedPath = strRetValue15a
  LastUsedPathLen = Len(strLastUsedPath)
  'LastUsedPathLen = LastUsedPathLen - 15
strRetValue15c = Mid(strLastUsedPath, 5)
 
      txtFile.writeline " Display Name:    " & strRetValue17 
      txtFile.writeline " KB Article URL:  " & strRetValue13b
      txtFile.writeline " Install Date:    " & strRetValue18 
              txtFile.writeline "   Uninstallable:   " & strRetValue16 
      txtfile.writeline " Patch Details: "
      txtFile.writeline "   HKEY_CLASSES_ROOT\Installer\Patches\" & strSubKey2
              txtFile.writeline "   PackageName:   " & strRetValue14a
' Determine if someone has modified the Uninstallable state from 0 to 1 allowing possible unexpected uninstalls
              txtFile.writeline "    Patch LastUsedSource: " & strRetValue15a 
              txtFile.writeline "   Installer Cache File Path:     " & strRetValue04a 
        txtFile.writeline "     Per " & strInstallSource3 & "\" & strSubKey2 & "\" & strNValue04
              mspFileName = (strRetValue15c  & strRetValue14a)
      If strRetValue14a <> "" Then
      If fso.fileexists(strRetValue04a) Then
        txtFile.writeline " "
        txtFile.writeline "    Package exists in the Installer cache, no actions needed."
        txtFile.writeline "    Package will update automatically if needed assuming that"
        txtFile.writeline "    the LastUsedSource exists."
        txtFile.writeline " "
        txtFile.writeline "    Should you get errors about " & strRetValue04a & " or " & strRetValue15c  & strRetValue14a & " then you"
        txtFile.writeline "    may need to manually copy missing files, if file exists replace the problem file, " 
        txtFile.writeline "    Copy and paste the following command line into an administrative command prompt."
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRetValue15c  & strRetValue14a & chr(34) & " " & strRetValue04a
        txtFile.writeline " "
      ElseIf fso.fileexists(mspFileName) Then
              fso.CopyFile mspFileName, strRetValue04a
          If fso.fileexists(strRetValue04a) Then
          txtFile.writeline " "
          txtFile.writeline " Missing cache file replaced by copying " & strRetValue15c  & strRetValue14a & " to " & strRetValue04a
          txtFile.writeline " Previously missing package " & strRetValNew04 &  " now exists in the Installer cache."
          txtFile.writeline " "
          End If
'        End If
      Else
        txtFile.writeline " "
        txtFile.writeline "!!!! " & strRetValue04a & " package DOES NOT exist in the Installer cache. !!!!"
        txtFile.writeline " "
        txtFile.writeline "     Action needed, recreate or re-establish path to the directory:"
        txtFile.writeline "       " & strRetValue15c & " then rerun this script to update installer cache and results"
        txtFile.writeline "     The path on the line above must exist at the root location to resolve"
        txtFile.writeline "     this problem with your msi/msp file not being found or corrupted,"
        txtFile.writeline "     In some cases you may need to manually copy missing files or manually"
        txtFile.writeline "     replace the problem file, " 
        txtFile.writeline " "
        txtFile.writeline "     Copy " & chr(34) & strRetValue15c  & strRetValue14a & chr(34) & " " & strRetValue04a
        txtFile.writeline " "
        txtFile.writeline "     Replace the existing file if prompted to do so."
        txtFile.writeline " "
        txtFile.writeline "     Use the following URL to assist with downloading the patch:"
        txtFile.writeline "      " & strRetValue13b
        txtFile.writeline " "
        txtFile.writeline " "
      End If
       Else
        txtFile.writeline " "
     End If
        next
     Else
        txtfile.writeline " "
        txtfile.Writeline "  No Patches Found"
        txtfile.writeline " "
    End If
 
    End If
 
 
Next
txtFile.Close
Set txtFile = Nothing
Set fso = Nothing

คุณสมบัติ

หมายเลขบทความ (Article ID): 969052 - รีวิวครั้งสุดท้าย: 22 ตุลาคม 2556 - Revision: 15.0
ใช้กับ
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Evaluation Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
Keywords: 
kbtshoot kbexpertiseinter kbprb kbsurveynew kbmt KB969052 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:969052

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com