-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathedt_install_script.ps1
98 lines (78 loc) · 3.77 KB
/
edt_install_script.ps1
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
# Проверим, что у пользователя есть право Администратора
If (([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator"))
{
# Проверим что EDT не запущен
If (Get-Process 1cedt* -ErrorAction SilentlyContinue)
{
"---------------------------------------------------"
"Операция не выполнена! Необходимо закрыть EDT перед запуском установки"
"---------------------------------------------------"
} else
{
.\1ce-installer-cli.exe support failures clean
"Определяем установленные версии EDT"
.\1ce-installer-cli.exe query installed >".\uninstall.yml"
"Удаляем установленные версии EDT"
.\1ce-installer-cli.exe uninstall --file ".\uninstall.yml"
"Устанавливаем новую версию из дистрибутива"
.\1ce-installer-cli.exe install all --overwrite --ignore-hardware-checks
#Определяем новую версию
.\1ce-installer-cli.exe query installed >".\install.yml"
(Get-Content ".\install.yml" -Raw) -match "version:\s*(?'ver'\S*)"
$EdtVer = $Matches['ver']
$EdtVer -match "(?'primver'\d*).(?'secver'\d*)."
$PrimaryVer = [convert]::ToInt32($Matches['primver'])
$SecondaryVer = [convert]::ToInt32($Matches['secver'])
$PrimaryVer
$SecondaryVer
if($PrimaryVer -gt 2019)
{$EdtPath = "C:\Program Files\1C\1CE\components\1c-edt-" + $EdtVer + "-x86_64"}
elseif ($SecondaryVer -lt 10)
{ $EdtPath = "C:\Program Files\1C\1CE\components\1c-enterprise-development-tools-" + $EdtVer + "-x86_64"}
else
{$EdtPath = "C:\Program Files\1C\1CE\components\1c-edt-" + $EdtVer + "-x86_64"}
$EdtPathExists = Test-Path $EdtPath
if ($exists -eq $true) {Remove-Item $EdtPath}
$FileName = $EdtPath + "\1cedt"
# Редактируем ini файл согласно рекомендациям для больших конфигураций
$IniFileName = $FileName + ".ini"
$BakFileName = $FileName + ".bak"
$memory = $args[0]
$tmpdir = $args[1]
$javapath = $args[2]
If($memory -eq $null)
{
$memory="8g"
}
If($tmpdir -eq $null)
{
$tmpdir="C:\jtmp"
}
$MemoryString = "-Xmx"+$memory
Rename-Item -Path $IniFileName -NewName $BakFileName
If($javapath -eq $null)
{
$javapath ="C:\Program Files\BellSoft\LibericaJDK-11-Full"
}
$server_java_string = "-vm`n" + $javapath + "\bin\server\jvm.dll`n" + "-vmargs"
$IniFileContent = Get-Content $BakFileName | ForEach-Object {$_ -replace "-Xmx4096m", $MemoryString} | ForEach-Object {$_ -replace "-vmargs", $server_java_string}
Set-Content -Path $IniFileName -Value $IniFileContent
Add-Content -Path $IniFileName -Value ("-Djava.io.tmpdir=" + $tmpdir)
# Проверим существование временной папки для Java.
# Создадим в случае отсутствия
$DirExists= Test-Path $tmpdir
if($DirExists -eq $false)
{
New-Item -Path $tmpdir -ItemType "directory"
}
# Удалим временные файлы
Remove-Item -Path ".\uninstall.yml"
Remove-Item -Path ".\install.yml"
}
}
ELSE{
"---------------------------------------------------"
"Операция не выполнена! Необходимо запустить установку от имени Администратора."
"---------------------------------------------------"
}
Pause("")