Repository navigation
Expand file tree
/
Copy pathmap.json
More file actions
197 lines (197 loc) · 15.1 KB
/
Copy pathmap.json
File metadata and controls
197 lines (197 loc) · 15.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
[
{
"id" : "win-dhcp-fix",
"path" : "src/windows/win-dhcp-fix.ps1",
"description" : "DHCP Service fixer offline from rescue VM"
},
{
"id" : "win-sac-on",
"path" : "src/windows/sac-enabler.ps1",
"description" : "Enables serial access console offline from a rescue VM on GEN1 and GEN2 windows VMs"
},
{
"id" : "win-LKGC",
"path" : "src/windows/win-LKGC.ps1",
"description" : "Last Known Good Configuration enabler offline from rescue VM"
},
{
"id" : "win-GA-fix",
"path" : "src/windows/GA_offlinefixer.ps1",
"description" : "Fixes integrity of files and registry from windows guest agent offline"
},
{
"id" : "win-hello-world",
"path" : "src/windows/win-hello-world.ps1",
"description" : "Hello world test script"
},
{
"id" : "linux-hello-world",
"path" : "src/linux/linux-hello-world.sh",
"description" : "Hello world test script"
},
{
"id" : "win-error-test",
"path" : "src/windows/win-error-test.ps1",
"description" : "Error test script"
},
{
"id" : "linux-error-test",
"path" : "src/linux/linux-error-test.sh",
"description" : "Error test script"
},
{
"id" : "win-chkdsk-fs-corruption",
"path" : "src/windows/win-chkdsk-fs-corruption.ps1",
"description" : "Runs chkdsk to fix file system corruption"
},
{
"id" : "win-sfc-sf-corruption",
"path" : "src/windows/win-sfc-sf-corruption.ps1",
"description" : "Runs sfc to fix system file corruption"
},
{
"id" : "win-bcdedit-ignoreAllFailure",
"path" : "src/windows/win-ignoreAllFailures.ps1",
"description" : "Ignore errors if there is a failed boot, failed shutdown, or failed checkpoint. The computer will attempt to boot normally after an error occurs."
},
{
"id" : "linux-alar-fki",
"path" : "src/linux/linux-alar2.sh",
"description" : "This ID is deprectated. Please use 'linux-alar2' instead. For backward compatibility it will use the linux-alar2 ID automatically."
},
{
"id" : "linux-alar2",
"path" : "src/linux/linux-alar2.sh",
"description" : "alar2 allows to recover a failed VM. Various ations are available like: fstab, initrd and kernel. NOTE: use option --run-on-repair. See the docu for more details: https://github.com/Azure/repair-script-library/blob/master/src/linux/common/helpers/alar2/README.md. The script takes around 2min to run."
},
{
"id" : "win-enable-nested-hyperv",
"path" : "src/windows/win-enable-nested-hyperv.ps1",
"description" : "Enables nested hyperV using attached data disk as OS disk."
},
{
"id" : "win-fix-firewall-service",
"path" : "src/windows/win-fix-firewall-service.ps1",
"description" : "Restores the Windows Defender Firewall service on a VM that boots, reports Ready and listens on 3389, yet answers nothing from the virtual network - ICMP included - because mpssvc is not running and the boot-time filters Windows installs before it starts are still blocking everything. Repairs two causes read from the offline SYSTEM hive: a DebugedLoopbackApps value under Services\\mpssvc\\Parameters\\AppCs whose registry type is not the REG_SZ that CheckNetIsolation writes, and MpsSvc or the Base Filtering Engine under it left Disabled. Measured on a live build 20348 VM one reboot at a time, a value of any other type stopped the service on every boot, an empty REG_MULTI_SZ as reliably as one holding 700 SIDs. A correctly typed REG_SZ value is always preserved: these offline checks do not validate its content, so a suspected content fault is reported for manual investigation rather than repaired, and a clean result does not prove the firewall service starts. A healthy VM produces no findings and nothing is written. Only Start=4 is treated as evidence, so a deliberately demand-started service is never corrected. Pass detectOnly=true to report only. NOTE: use option --run-on-repair."
},
{
"id" : "win-fix-code-integrity",
"path" : "src/windows/win-fix-code-integrity.ps1",
"description" : "Finds the driver that Code Integrity is blocking and disables that one driver, instead of turning off Memory Integrity or Credential Guard. Uses the offline Code Integrity event log to name the culprit and a portable executable scan for writable and executable sections as corroboration. Only a refusal from the last 30 days, naming a third-party driver whose image can actually be checked on the disk, authorises a change; stale, undated or unreadable evidence is reported for a decision instead. The offline Secure Boot state, read from the Measured Boot log, and any testsigning or nointegritychecks override are reported as context only: measurement shows the boot manager drops those overrides and the guest still boots, so they are not treated as a fault. A protection being enabled is never treated as a fault: nothing is changed without evidence that it broke this VM. Boot-critical and Azure platform drivers are reported, never disabled. Pass disableProtection=true only as a last resort. NOTE: use option --run-on-repair."
},
{
"id" : "win-fix-secure-boot",
"path" : "src/windows/win-fix-secure-boot.ps1",
"description" : "Repairs the signed EFI boot chain a Generation 2 VM starts through, for a loader failure such as 0xc0430001 that leaves no event log because nothing got far enough to write one. Integrity is decided by each file's digital signature, the same evidence the firmware and the boot manager themselves use, and never by comparing it against the component store. Repairs a boot manager that is missing from the EFI System Partition or whose signature no longer verifies, and a corrupt boot chain file with a targeted sfc against that one file. A newer boot manager installed by Secure Boot servicing is not treated as stale. A file the rescue VM merely does not trust is reported and left alone. Pass detectOnly=true to report only, revert=true to put back every file a previous run replaced, or windowsDrive to skip discovery. Never runs a full scan and never takes a file from another build. Gen2 only. NOTE: use option --run-on-repair."
},
{
"id" : "win-toggle-safe-mode",
"path" : "src/windows/win-toggle-safe-mode.ps1",
"description" : "Disable Safe Mode if your Windows VM is booting in Safe Mode. Also activates Safe Mode if you require it (e.g. to uninstall certain software)."
},
{
"id" : "win-dumpconfigurator",
"path" : "src/windows/win-dumpconfigurator.ps1",
"description" : "Changes the dump configuration of a VM while its running without the need to reboot it. Which is to say, you can change the dump configuration from Kernel to Full without a reboot."
},
{
"id" : "win-collect-attached-disk-logs",
"path" : "src/windows/win-collect-attached-disk-logs.ps1",
"description" : "Collect OS logs from an OS disk attached to a Rescue VM as an Azure Data Disk."
},
{
"id" : "win-create-troubleshooting-user",
"path" : "src/windows/win-create-troubleshooting-user.ps1",
"description" : "Create a new user account with administrator privileges. This can be used to troubleshoot a VM without an accessible administrative account."
},
{
"id" : "win-add-temp-user",
"path" : "src/windows/win-add-temp-user.ps1",
"description" : "Creates a local administrator on an attached OS disk through the SYSTEM\\Setup CmdLine hook and a nested Windows boot, without editing SAM structures or relying on Group Policy startup scripts. Requires a complete guest result confirming creation, administrator membership and enablement for the requested name; SAM presence alone is not proof of creation. A failed creation never promotes or enables an existing account. Verifies payload cleanup and restoration of both recorded Setup values, retaining recovery metadata and returning an error when completion cannot be verified. Pass detectOnly=true to inspect without creating an account or applying a hook; disk discovery can stop an unmanaged repair guest and prepare attached disks, and hive reads may perform recovery. Use revert=true separately to restore a recorded hook and remove leftover payload files; it does not delete the account. Supplied passwords must use printable ASCII without double quotes. Requires a rescue VM created with \"az vm repair create --enable-nested\". NOTE: use option --run-on-repair."
},
{
"id" : "win-get-patches",
"path" : "src/windows/win-get-patches.ps1",
"description" : "Get installed Windows patches for the nested Hyper-V server on a Rescue VM using DISM."
},
{
"id" : "win-remove-patch",
"path" : "src/windows/win-remove-patch.ps1",
"description" : "Remove an installed Windows patch for the nested Hyper-V server on a Rescue VM using DISM. This will be helpful if the attached OS disk is from a VM that is in a nonboot state due to corrupted/failing updates."
},
{
"id" : "win-get-apps",
"path" : "src/windows/win-get-apps.ps1",
"description" : "Get Windows applications for the nested Hyper-V machine that can be uninstalled from the Rescue VM."
},
{
"id" : "win-remove-app",
"path" : "src/windows/win-remove-app.ps1",
"description" : "Remove an installed Windows application from the nested Hyper-V machine."
},
{
"id": "win-update-registry",
"path": "src/windows/win-update-registry.ps1",
"description": "Modify the registry on an OS disk attached to a Rescue VM as an Azure Data Disk."
},
{
"id": "win-crowdstrike-fix-bootloop",
"path": "src/windows/win-crowdstrike-fix-bootloop.ps1",
"description": "Workaround for machines stuck in boot loop due to corrupt crowdstrike falcon sensor 2024-07-19 by removing corrupt crowdstrike files, loading/unloading the registry hives, and removing regtrans-ms and txr.blf files under config\\TxR folder"
},
{
"id": "win-crowdstrike-fix-bootloop-v2",
"path": "src/windows/win-crowdstrike-fix-bootloop-v2.ps1",
"description": "Workaround for machines stuck in boot loop due to corrupt crowdstrike falcon sensor 2024-07-19 by removing corrupt crowdstrike files, loading/unloading the registry hives, and removing regtrans-ms and txr.blf files under config\\TxR folder"
},
{
"id": "win-crowdstrike-fix-bootloop-cvm",
"path": "src/windows/win-crowdstrike-fix-bootloop-cvm.ps1",
"description": "Workaround for cvm machines stuck in boot loop due to corrupt crowdstrike falcon sensor 2024-07-19 by removing corrupt crowdstrike files"
},
{
"id": "win-fix-pending-servicing",
"path": "src/windows/win-fix-pending-servicing.ps1",
"description": "Clears an unfinished Windows Update transaction that leaves a VM looping on Undoing changes made to your computer. Pass detectOnly=true to report only, or revert=true to restore pending.xml, the TxR files and the service start types from a previous run. disableWindowsUpdate=true additionally leaves the Windows Update services disabled, which is never done by default. NOTE: use option --run-on-repair."
},
{
"id": "win-fix-transaction-logs",
"path": "src/windows/win-fix-transaction-logs.ps1",
"description": "Clears exhausted transactional registry logs so servicing that fails with ERROR_LOG_FULL 0x800719e4 can run again. Clears the transactional registry logs only by default; pass scope=Config, scope=SMI or scope=All to widen that, force=true to clear without local ERROR_LOG_FULL evidence, detectOnly=true to report only, or revert=true to restore the files. NOTE: use option --run-on-repair."
},
{
"id": "win-fix-bcd",
"path": "src/windows/win-fix-bcd.ps1",
"description": "Repairs a boot configuration that stops Windows starting (0xC000000E, 0xC000000F, 0xC0000225, 0xC0000034) - a BCD entry pointing at a partition that no longer exists after a disk swap, a wrong loader path or systemroot, a default entry that starts Windows Setup, an imcdevice value that bugchecks 0x67, or a missing store that has to be rebuilt with bcdboot. Pass detectOnly=true to report only, revert=true to restore the previous store, or rebuild=true to force a full bcdboot rebuild instead of a targeted repair. NOTE: use option --run-on-repair."
},
{
"id": "win-fix-boot-partition",
"path": "src/windows/win-fix-boot-partition.ps1",
"description": "Repairs the system partition itself, the layer below the BCD store - a deleted EFI System Partition or System Reserved partition, an unformatted ESP, a missing 0x55AA boot signature, zeroed or NTLDR era bootstrap code, no Active partition or more than one, and a stale BPB HiddenSectors field that gives 'A disk read error occurred' after a partition move or restore while chkdsk and sfc report nothing. On Generation 2 and Trusted Launch VMs it also gives the EFI System Partition back the GPT GUID and slot that the firmware's saved boot entry expects ('The boot loader did not load an operating system'). Pass detectOnly=true to report only, or revert=true to restore the sectors a previous run backed up; an EFI System Partition created for a Generation 2 VM is not removed by a revert. NOTE: use option --run-on-repair."
},
{
"id": "win-detect-nvme-readiness",
"path": "src/windows/win-detect-nvme-readiness.ps1",
"description": "Read-only check of whether a Windows OS disk can boot from an NVMe disk controller. Reports the Hyper-V generation, stornvme boot-start value, driver presence and CriticalDeviceDatabase entries, and writes an evidence bundle. Generation 1 installations return GEN1_TO_GEN2_CONVERSION_REQUIRED. Makes no changes. NOTE: use option --run-on-repair."
},
{
"id": "linux-detect-nvme-readiness",
"path": "src/linux/linux-detect-nvme-readiness.sh",
"description": "Read-only check of whether a Linux OS disk can boot from an NVMe disk controller. Reports unstable /dev/sd* references in /etc/fstab, whether the initramfs contains an NVMe driver, and the dracut hostonly setting. Makes no changes. NOTE: use option --run-on-repair."
},
{
"id": "win-enable-nvme-boot-driver",
"path": "src/windows/win-enable-nvme-boot-driver.ps1",
"description": "Enables the Windows inbox stornvme boot-start driver on the offline OS disk of a VM that no longer boots after switching to an NVMe disk controller. Mode=Report (default) is read-only; Mode=Repair backs up, writes and verifies; Mode=Rollback restores the backup emitted by Repair. NOTE: use option --run-on-repair."
},
{
"id": "win-convert-gen1-to-gen2",
"path": "src/windows/win-convert-gen1-to-gen2.ps1",
"description": "Validates or converts the running source Windows VM OS disk from MBR/BIOS to GPT/UEFI before a Trusted Launch update. Mode=Report (default) is read-only. Mode=Convert requires explicit backup, prerequisite, and irreversible-operation acknowledgements. Run directly on the source VM; do not use --run-on-repair. After successful conversion, do not reboot while the VM is still Generation 1; deallocate it and update it to Trusted Launch."
},
{
"id" : "win-fix-inaccessible-boot-device",
"path" : "src/windows/win-fix-inaccessible-boot-device.ps1",
"description" : "Repairs the offline registry causes of stop error 0x7B INACCESSIBLE_BOOT_DEVICE: boot storage driver Start and StartOverride values, missing boot storage service keys, dangling or third-party storage class filters, boot-critical PCI/VMBus device instance filters, missing Hyper-V ACPI enumeration keys, and a SAN policy that keeps the disk offline. Detects all causes and changes only what is actually wrong. Pass detectOnly=true to report only, or strictFilters=true to also remove Microsoft-signed class filters that are not part of the default set; by default only dangling and third-party entries are removed. NOTE: use option --run-on-repair."
}
]