mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-11-27 23:19:13 +08:00
46f5316858
* Introduce Command Not Found module * rewrite module to depend on WinGet PowerShell module * address Dongbo's feedback * try and implement settings UI * fix SUI build; try and store PowerShell object * add and use object pool * apply Dongbo's feedback * add warm up; implement IPooledObjectPolicy * Add module interface * WIP trying to import module from settings * Add EnableModule.ps1 * spellcheck * spellcheck again * Installer. Add DisableModule.ps1 * Fix styling * Give the user some output from installing * Prettify the Settings controls * Add button to check PowerShell 7's version * Fix Settings Assets paths * Fix PowerShell 7 output * Make module enable and disable scripts give better information * Fix spellcheck * Fix image files and placeholders * Don't remove CmdNotFound on upgrade and don't fail on uninstall of CmdNotFound * Consistent install module scripts location on debug and installed * installer: Avoid messageboxes and hide powershell on uninstalling CmdNotFound * Fix psd1 file resolution when installed * Fix spellcheck * Add telemetry events * Fix gpo files * If GPO is set, enable/disable module on PT start depending on gpo value * Cleanup module interface * Cleanup settings code * If GPO is set, disable Settings page logic * Adding icons * Update settings UI and strings * Add telemetry for suggestions and feedbacks * Fix sln file * Fix build * minor fixes * Updating icon * Remove global.json * Remove unused PowerShell dependency * Don't use preview version of Automation and fix NOTICE * Fix signing * Fix NOTICE.md * Fix version checking for getfilesiginforedist.dll * Fix spellchecker * Fix README.md * Fix false positives section in expect.txt * Add logs to module interface --------- Co-authored-by: Stefan Markovic <stefan@janeasystems.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Niels Laute <niels.laute@live.nl>
89 lines
3.2 KiB
PowerShell
89 lines
3.2 KiB
PowerShell
[CmdletBinding()]
|
|
# todo: send in arch / conf, could send in actual path
|
|
Param(
|
|
[Parameter(Mandatory = $True, Position = 1)]
|
|
[AllowEmptyString()]
|
|
[string]$targetDir = $PSScriptRoot + '/../extractedMsi/File'
|
|
)
|
|
|
|
$DirPath = $targetDir; #this file is in pipeline, we need root.
|
|
$items = Get-ChildItem -Path $DirPath -File -Include *.exe, *.dll, *.ttf, PTCustomActions -Recurse -Force -ErrorAction SilentlyContinue
|
|
$versionExceptions = @(
|
|
"Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll",
|
|
"Microsoft.Windows.ApplicationModel.Resources.Projection.dll",
|
|
"Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll",
|
|
"Microsoft.Windows.AppLifecycle.Projection.dll",
|
|
"Microsoft.Windows.System.Power.Projection.dll",
|
|
"Microsoft.Windows.Widgets.Providers.Projection.dll",
|
|
"Microsoft.WindowsAppRuntime.Bootstrap.Net.dll",
|
|
"Microsoft.Xaml.Interactions.dll",
|
|
"Microsoft.Xaml.Interactivity.dll",
|
|
"hyjiacan.py4n.dll",
|
|
"Microsoft.WindowsAppRuntime.Release.Net.dll",
|
|
"Microsoft.Windows.Widgets.Projection.dll") -join '|';
|
|
$nullVersionExceptions = @(
|
|
"codicon.ttf",
|
|
"e_sqlite3.dll",
|
|
"getfilesiginforedist.dll",
|
|
"vcamp140_app.dll",
|
|
"vcruntime140_app.dll",
|
|
"vcruntime140_1_app.dll",
|
|
"msvcp140_app.dll",
|
|
"marshal.dll",
|
|
"Microsoft.Toolkit.Win32.UI.XamlHost.dll",
|
|
"Microsoft.UI.Composition.OSSupport.dll",
|
|
"Microsoft.UI.Windowing.dll",
|
|
"Microsoft.UI.Xaml.Internal.dll",
|
|
"Microsoft.Windows.ApplicationModel.Resources.dll",
|
|
"Microsoft.WindowsAppRuntime.dll",
|
|
"Microsoft.WindowsAppRuntime.Bootstrap.dll",
|
|
"MRM.dll",
|
|
"PushNotificationsLongRunningTask.ProxyStub.dll",
|
|
"WindowsAppSdk.AppxDeploymentExtensions.Desktop.dll",
|
|
"System.Diagnostics.EventLog.Messages.dll",
|
|
"Microsoft.Windows.Widgets.dll") -join '|';
|
|
$totalFailure = 0;
|
|
|
|
Write-Host $DirPath;
|
|
|
|
if (-not (Test-Path $DirPath)) {
|
|
Write-Host "Folder does not exist!"
|
|
}
|
|
|
|
Write-Host "Total items: " $items.Count
|
|
|
|
if ($items.Count -eq 0) {
|
|
# no items means something bad happened. We should fail ASAP
|
|
exit 1;
|
|
}
|
|
|
|
$items | ForEach-Object {
|
|
if ($_.VersionInfo.FileVersion -eq "1.0.0.0" -and $_.Name -notmatch $versionExceptions) {
|
|
# These items are exceptions that actually have the 1.0.0.0 version.
|
|
Write-Host "Version set to 1.0.0.0: " + $_.FullName
|
|
$totalFailure++;
|
|
}
|
|
elseif ($_.VersionInfo.FileVersion -eq $null -and $_.Name -notmatch $nullVersionExceptions) {
|
|
# These items are exceptions that actually a version not set.
|
|
Write-Host "Version not set: " + $_.FullName
|
|
$totalFailure++;
|
|
}
|
|
elseif ($_.VersionInfo.ProductName -contains "PowerToys" -and $_.VersionInfo.LegalCopyright -notmatch "Copyright \(C\) $((Get-Date).Year)") {
|
|
# PowerToys assemblies that aren't updated to the current year in the copyright
|
|
Write-Host "Copyright year out of date: " + $_.FullName
|
|
$totalFailure++;
|
|
}
|
|
else {
|
|
$auth = Get-AuthenticodeSignature $_.FullName
|
|
if ($auth.SignerCertificate -eq $null) {
|
|
Write-Host "Not Signed: " + $_.FullName
|
|
$totalFailure++;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($totalFailure -gt 0) {
|
|
exit 1
|
|
}
|
|
|
|
exit 0 |