эээ
система сборки MSSQL базы и приложения на C# .NET?
и без системы контроля версии? (номер версии тоже должен быть в базе)
и без обратного преобразования из базы в проект?
Пример бы поменьше… из 2-3 табличек + вьюх + процедур
Компы вывезли?
Исходники nGinx Plus там были?
Скоро ждать появления nGinx Plus в Едином реестре российских программ?
А Сбер/Rambler выложит исходники nGinx Plus на GitHub?
А как скоро Сбер/Rambler допилит (ну что бы прям из «коробки») в nGinx Plus поддержку российских крипто алгоритмов?
почти таким же способом можно подгрузить и другие ресурсы
Смена цвета элемента в заместо подгрузки картинки
Фрагмент вырезан из другого скрипта и не адаптирован под текущий…
В данном примере элемент $Ping кнопка и она меняет цвет и текст в зависимости от результата…
можно сделать что бы пинговать только отдельный ресурс…
Хранение настроек в XML
Пример хранения настроек в XML. Взято из другого скрипта
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<Windows>
<WindowsTitle>Выберите компьютер</WindowsTitle>
<WindowsToolTip>Программа передает имя компьютера как параметр на запуск</WindowsToolTip>
<Lable>Выберите компьютер из списк или внесите свой:</Lable>
<ToolTip>Выберите компьютер из списк или внесите свой, для запуска остнастки</ToolTip>
<Button>Запустить остнаску</Button>
</Windows>
<Programm>
<RunnungString>c:\windows\system32\compmgmt.msc</RunnungString>
<ParametrString>/s /computer:$parametr</ParametrString>
</Programm>
<list>
<name>Server.Domain.name</name>
<name>OtherServer.Domain.name</name>
</list>
</Settings>
$myDir = [System.AppDomain]::CurrentDomain.BaseDirectory.TrimEnd('\')
if ($myDir -eq $PSHOME.TrimEnd('\')) { $myDir = $PSScriptRoot}
If (!(Test-Path $MyDir\Settings.xml)) {write-host 'Setting file ' $MyDir\Settings.xml ' not found..' -ForegroundColor Red ; exit}
[xml]$ConfigFile = Get-Content $ConfigXML
$form.Title = $ConfigFile.Settings.Windows.WindowsTitle
$form.ToolTip = $ConfigFile.Settings.Windows.WindowsToolTip
$ComboBox.ToolTip = $ConfigFile.Settings.windows.ToolTip
$button1.Content = $ConfigFile.Settings.windows.Button
$RunnungProgrammString = $ConfigFile.Settings.Programm.RunnungString
$RunnungParametrString = $ConfigFile.Settings.Programm.ParametrString
#Добвление в цикле множества элементов
[array]$ComboBoxItems = $ConfigFile.Settings.list.name
$ComboBoxItems| % {
$ComboBox.Items.Add($_)| out-null
}
Сохранение настроек в XML. Добавление новых записей в секцию Settings\list
Таки не понял, причем тут «народовластие, киберпанк, democracy, cyberpunk»
Таки не понял, в чем преимущество?
Таки не понял, а что проект tiddlywiki уже умер?
tiddlywiki:
CSS, JavaScript, ресурсы, картинки в одном «флаконе» HTML файле
Плагины
Встроеный редактор
WiKi, markdown разметка
Перекрестные ссылки
Возможность сборки структуры и наполнения «Сайта» из исходников
Как прокси работает…
Решение пока никак не дружит с nGinx Plus…
Если область действия сертификата содержит пробелы — надо экранировать строку параметр в конфиге nGinx правильно (ssl_certificate_key 'engine:gostengy: Петя Петров';)…
github.com/deemru/nginx — сборки обновляются, но только под Windows :-(
New-MailboxExportRequest
На расшаренную папку необходимо предоставить права группе «Exchange Trusted Subsystem»
You need to grant the following permission to the group Exchange Trusted Subsystem to the network share where you want to export or import PST files:
* To import PST files from the share: Read permission
* To save exported PST files to the share: Read/Write permission.
Ожидание окончания очереди, с выводом процента выполненного объема:
Фрагмент выдран, и немного причесан…
Рисует два прогресс бара для ящика и архивного ящика, если он есть.
Очереди называются по маске с именем пользователя, поэтому всегда можно увидеть кто выгружается и кто завершился с ошибкой…
Дальше обязательная проверка на валидность окончания выгрузки, что бы случайно не удалить ящик пользователя у которого выгрузка завершилась с ошибкой и очистка выполненных очередей.
Запуск из/через CMD
<# :
@echo off
if '%1' == '' echo Please run %0 scrip with param - Username or email&&echo.&&echo %0 DisableUser&&exit
set curentpath=%~dp0
cd /d %curentpath:~0,-1%
powershell /nologo /noprofile /command ^
"&{[ScriptBlock]::Create((cat """%~f0""") -join [Char[]]10).Invoke(@(&{$args}%*))}"
exit /b
#>
#Ниже вставляем PowerShell Script
#$myDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$myDir = "$pwd\"
....
У нас «почти» так и реализовано…
Есть «база», а-ля «телефонный справочник, c блэкджеком, учетом рабочего времени» — только кофе не готовит. В ней информация о сотрудниках. Обычные сотрудники могут только просматривать. Ответственные редактировать.
Есть скрипты для новых сотрудников, который добавляет записи и в AD, и в базу, и в Exchange.
Скриптами, так же, происходит обновление информации в AD из базы, по полям Employee или samaccountname.
система сборки MSSQL базы и приложения на C# .NET?
и без системы контроля версии? (номер версии тоже должен быть в базе)
и без обратного преобразования из базы в проект?
Пример бы поменьше… из 2-3 табличек + вьюх + процедур
После этих заявлений хотелось бы увидеть цены…
За основу взят скрипт Export MSSQL schema with PowerShell. This script will export your schema definitions for tables, stored procs, triggers, functions and views to .sql files (вроде похож).
Но допилен для выгрузки ролей, прав и расширенных свойств (sp_addextendedproperty) баз, таблиц, полей.
Конфиг храню в XML.
Ну или хотя бы Docker + forge
Исходники nGinx Plus там были?
Скоро ждать появления nGinx Plus в Едином реестре российских программ?
А Сбер/Rambler выложит исходники nGinx Plus на GitHub?
А как скоро Сбер/Rambler допилит (ну что бы прям из «коробки») в nGinx Plus поддержку российских крипто алгоритмов?
почти таким же способом можно подгрузить и другие ресурсы
В данном примере элемент $Ping кнопка и она меняет цвет и текст в зависимости от результата…
можно сделать что бы пинговать только отдельный ресурс…
Формы проще рисовать через XAML (есть графические редкаторы).
Для уведомления можно сделать не только звук но и Baloon Popup в трее.
Таки не понял, в чем преимущество?
Таки не понял, а что проект tiddlywiki уже умер?
tiddlywiki:
«флаконе»HTML файлеThe Single Board Computer Database
В базе пока 270 железок…
Описание VoCore2
Docker контейнер с CryptoPro 4 и nginx.
КриптоПро для linux надо
достатьскачать самому…Настройка nginx для работы с сертификатами ГОСТ 2012 года
Библиотека OpenSSL качается с update.cryptopro.ru/support/nginx-gost
Есть скрипт авто установки, но КриптоПро для linux надо
достатьскачать самому…Как прокси работает…
Решение пока никак не дружит с nGinx Plus…
Если область действия сертификата содержит пробелы — надо экранировать строку параметр в конфиге nGinx правильно (ssl_certificate_key 'engine:gostengy: Петя Петров';)…
github.com/deemru/nginx — сборки обновляются, но только под Windows :-(
Get-SCPFile
Get-SFTPFile
if((Test-Path -Path C:\Windows\perfc) -eq $true)
{
try
{
Remove-Item -Path C:\Windows\perfc -Force -ea Stop
Write-Verbose -Message "File perfc was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc already fixed" -Verbose}
}
if((Test-Path -Path C:\Windows\perfc.dll) -eq $true)
{
try
{
Remove-Item -Path C:\Windows\perfc.dll -Force -ea Stop
Write-Verbose -Message "File perfc.dll was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc.dll already fixed" -Verbose}
}
if((Test-Path -Path C:\Windows\perfc.dat) -eq $true)
{
try
{
Remove-Item -Path C:\Windows\perfc.dat -Force -ea stop
Write-Verbose -Message "File perfc.dat was already exist" -Verbose
}
catch {Write-Verbose -Message "File perfc.dat already fixed" -Verbose}
}
на:
$windows = $env:SystemRoot
$files = @("perfc","perfc.dll","perfc.dat")
$files | % {
if((Test-Path -Path "$windows\$_") -eq $true) {
try {
Remove-Item -Path "$windows\$_" -Force -ea Stop
Write-Verbose -Message "File [$windows\$_] was already exist" -Verbose
} catch {
Write-Verbose -Message "File [$windows\$_] already fixed" -Verbose
}
}
}
и
$acl1 = Get-acl C:\Windows\Perfc
$acl2 = Get-acl C:\Windows\Perfc.dll
$acl3 = Get-acl C:\Windows\Perfc.dat
$acl1.SetAccessRuleProtection($true,$true)
$acl2.SetAccessRuleProtection($true,$true)
$acl3.SetAccessRuleProtection($true,$true)
$accrule1 = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM","FullControl","Deny")
$accrule2 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","FullControl","Deny")
$accrule3 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$accrule4 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$acl1.SetAccessRule($accrule1)
$acl1.SetAccessRule($accrule2)
$acl1.SetAccessRule($accrule3)
$acl1.SetAccessRule($accrule4)
$acl2.SetAccessRule($accrule1)
$acl2.SetAccessRule($accrule2)
$acl2.SetAccessRule($accrule3)
$acl2.SetAccessRule($accrule4)
$acl3.SetAccessRule($accrule1)
$acl3.SetAccessRule($accrule2)
$acl3.SetAccessRule($accrule3)
$acl3.SetAccessRule($accrule4)
Set-Acl -AclObject $acl1 -Path C:\Windows\Perfc -ea SilentlyContinue
Set-Acl -AclObject $acl2 -Path C:\Windows\Perfc.dll -ea SilentlyContinue
Set-Acl -AclObject $acl2 -Path C:\Windows\Perfc.dat -ea SilentlyContinue
на:
$files | % {
try{
New-item -Path $windows -ItemType File -Name $_ -Force -ea Stop
}catch{Write-Verbose -Message "Dont need to create new files"}
}
Write-Verbose -Message "Successfully created" -Verbose
$files | % {
$acl = Get-acl "$windows\$_"
$acl.SetAccessRuleProtection($true,$true)
$accrule1 = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\SYSTEM","FullControl","Deny")
$accrule2 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","FullControl","Deny")
$accrule3 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$accrule4 = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Администраторы","ReadAndExecute","Allow")
$acl.SetAccessRule($accrule1)
$acl.SetAccessRule($accrule2)
$acl.SetAccessRule($accrule3)
$acl.SetAccessRule($accrule4)
Set-Acl -AclObject $acl -Path "$windows\$_" -ea SilentlyContinue
}
Преимущества:
P.S. фрагменты не тестировал!
немного устарел):$newProcess.Arguments = $myInvocation.MyCommand.Definition;
на
$newProcess.Arguments = '"'+$script:myInvocation.MyCommand.Definition +'"';
или (тут можно добавить параметры по вкусу):
$newProcess.Arguments = '-ExecutionPolicy RemoteSigned -File "' + $script:MyInvocation.MyCommand.Path + '"';
можно подписать файл скрипта (сертификат «можно купить»/«уже есть», или сделать самоподписанный):
function sign ($filename) {
$cert = gci cert:\currentuser\my -codesigning|Out-gridview -PassThru
$cert|fl
Set-AuthenticodeSignature $filename $cert
}
Пример XML
На расшаренную папку необходимо предоставить права группе «Exchange Trusted Subsystem»
Рисует два прогресс бара для ящика и архивного ящика, если он есть.
Очереди называются по маске с именем пользователя, поэтому всегда можно увидеть кто выгружается и кто завершился с ошибкой…
Дальше обязательная проверка на валидность окончания выгрузки, что бы случайно не удалить ящик пользователя у которого выгрузка завершилась с ошибкой и очистка выполненных очередей.
Есть «база», а-ля «телефонный справочник, c блэкджеком, учетом рабочего времени» — только кофе не готовит. В ней информация о сотрудниках. Обычные сотрудники могут только просматривать. Ответственные редактировать.
Есть скрипты для новых сотрудников, который добавляет записи и в AD, и в базу, и в Exchange.
Скриптами, так же, происходит обновление информации в AD из базы, по полям Employee или samaccountname.
А также заблокировать изменение другой информации, для Exchange 2010…
Disabling editing account information in OWA
Позволяет заблокировать смену телефона, метоположения…