Test-1CModuleDependency.ps1
|
<#
.SYNOPSIS Проверка зависимостей для корректной работы модуля .DESCRIPTION Подробное описание .PARAMETER Name Описание параметра .EXAMPLE Пример использования #> function Test-1CModuleDependency{ [CmdletBinding()] param( [switch]$RequireAdmin ) Write-Host "Проверка версии Powershell" # Проверка версии PowerShell if ($PSVersionTable.PSVersion.Major -lt 5) { throw "Требуется PowerShell 5.1 или выше" } else { Write-Host "Версия Powershell соответствует требованиям" -ForegroundColor Green } # Проверка прав администратора Write-Host "Проверка прав пользователя" if ($RequireAdmin -and (-not ([Security.Principal.WindowsPrincipal]::new( [Security.Principal.WindowsIdentity]::GetCurrent() )).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))) { throw "Требуются права администратора" } else { Write-Host "Запущено с правами администратора" -ForegroundColor Green } # Проверка наличия .NET Framework Write-Host "Проверка версии Net.Framework" if (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name Version -EA SilentlyContinue | Where-Object { $_.Version -match '^4\.' })) { throw "Требуется .NET Framework 4.x" } else { Write-Host "Версия Powershell соответствует требованиям" -ForegroundColor Green } # Проверка линка и дистибутивов Write-Host "Проверка наличия директории с дистрибутивами" $searchDistrFolder = Find-1CDistroFolder if ($searchDistrFolder) { Write-Host "✓ директория с дистрибутивами: $searchDistrFolder" -ForegroundColor Green } else { Write-Host "✗ директория с дистрибутивами не найдена!" -ForegroundColor Red # Если критично, можно вызвать throw или выполнить альтернативные действия } } |