вторник, 3 декабря 2019 г.

Как выкинуть всех пользователей с терминала

Для cmd:
for /f "tokens=2 skip=2" %i in ('quser ^| find ^/v ^/i ^"^>^%username^%^"') do logoff %i

Для powershell:

Изменения размера swap (файла подкачки)

Для Windows:
меняем значение в реестре
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v PagingFiles /t REG_MULTI_SZ /d "c:\pagefile.sys 4096 4096" /f

После изменений нужно перезагрузиться

Для Linux:
sudo swapoff -a
sudo rm -f /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
sudo chown root:root /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Если используется swap раздел, то через fdisk сделать переразметку

воскресенье, 24 ноября 2019 г.

Скрипт для блокировки перебора паролей RDP | RDP bruteforce block script

Создать задание с интервалом выполнения каждые 5 минут.

Ниже переделанный скрипт для блокировки всех протоколов для указанного адреса (используется порт равный 0), если по случился перебор паролей с этого ip.
В скрипте используется несколько раз (Get-NetFirewallRule | ? DisplayName -eq $firewall_rule_name) для того, чтобы избежать конфликтной ситуации, если вдруг запустится копия скрипта или пока выполняется скрипт, руками кто-то создаст данное правило.

воскресенье, 10 ноября 2019 г.

Скрипт для вычисления размера профилей локальных пользователей Windows | How to calculate Windows local user profile's size

#Requires -Version 5
if ($PSVersionTable.PSVersion.Major -ge 6) {Import-Module Microsoft.Powershell.LocalAccounts -SkipEditionCheck}
$OutTable=@()
get-localuser | sort LastLogon,Name | select Name,Enabled,LastLogon,PasswordLastSet,SID | % {
    $RegPath='"'+'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\'+$_.SID+'"'
    $ProfilePath='C:\Users\'+$_.Name
    if (Test-Path $RegPath) {$ProfileImagePath=(Get-ItemProperty -Path $RegPath).ProfileImagePath
    } elseif (Test-Path ($ProfilePath)) {$ProfileImagePath=$ProfilePath
    } else {$ProfileImagePath=$null}
    $Size='0 GB'
    if (!($ProfileImagePath -eq $null)) {
         $Size='{0:N2} GB' -f ((ls $ProfileImagePath -Recurse -force -ErrorAction SilentlyContinue | `
          Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue).Sum/1gb)    
    }
    $TableRow=New-Object psobject -Property @{
        "Login"=$_.Name
        "Enabled"=$_.Enabled
        "LastLogon"=$_.LastLogon
        "PasswordLastSet"=$_.PasswordLastSet
        "SID"=$_.SID
        "Size"=$Size
    }
    $OutTable+=$TableRow
}
$OutTable | Sort Login | ft Login,Size,Enabled,LastLogon,SID,PasswordLastSet

среда, 25 сентября 2019 г.

Скрипт для получения сертификата Let's Encrypt для Exchange Server

Скачать и установить .Net FrameWork 4.7.2 и выше
Скачать WinAcme и распаковать в C:\LetsEncrypt.
Сохранить скрипт в папку C:\LetsEncrypt с расширением ps1 и запустить его от имени администратора. Пример: powershell.exe -File C:\LetsEncrypt\MyScript.ps1

#Requires -RunAsAdministrator
#Requires -Version 5

$WinACMEFile="C:\LetsEncrypt\wacs.exe"

$DefaulServerName='mail.example.com'
$DomainList="$DefaulServerName,autodiscover.example.com,"
$DomainList+=($env:COMPUTERNAME).ToLower()+'.'+($env:USERDNSDOMAIN).ToLower()

$param='--target manual '
$param+="--host $DomainList "
$param+="--certificatestore My "
$param+='--installation iis,script '
$param+='--installationsiteid 1 '
$param+='--script "./Scripts/ImportExchange.ps1" '
$param+="--scriptparameters `"'{CertThumbprint}' 'IIS,SMTP,IMAP' 1 '{CacheFile}' '{CachePassword}' '{CertFriendlyName}'`""

cd $LetsEncryptFolder
Start-Process -FilePath $WinACMEFile -ArgumentList $param -NoNewWindow -Wait

среда, 21 августа 2019 г.

Полезные скрипты для Hyper-v

Добавить место на SCSI диск на Hyper-V 2012
Import-Module Hyper-V
$AdditionalSize=10gb
$vm=get-vm rdh-01
$sql_vhd=$vm | stop-vm -Passthru | Get-VMHardDiskDrive | ? Path -like "*SQL*"
$sql_vhd_size=(Get-VHD $sql_vhd.Path).Size
Start-Sleep -Seconds 60
Resize-VHD -Path $sql_vhd.Path -SizeBytes ($sql_vhd_size+$AdditionalSize)
Start-Sleep -Seconds 60
$vm | Start-VM

воскресенье, 4 августа 2019 г.

Скрипты по поиску компьютеров в AD

Найти компьютеры по шаблону и вывести имя, активность, путь в AD и последний вход
Import-Module ActiveDirectory
$list="20","24","27","33","44","-vip3"
$AdComputerList=Get-ADComputer -Filter {Name -like "HP*"} -Properties LastLogon
$ResultTable=@()
foreach ($l in $list) {
 $FindPcName="HP"+$l
 foreach ($pc in $AdComputerList) {
  if ($pc.Name -eq $FindPcName) {
   $ResultTable+=$pc | select Name,Enabled,DistinguishedName,@{name='lastLogon'; expression={[datetime]::fromFileTime($_.lastLogon)}}}
 }
}
$ResultTable | ft

понедельник, 29 июля 2019 г.

Переименовать хост ESXi

1. Зайти в vSphere
2. Нажать ПКМ на хост и зайти в Maintance Mode.
3. Нажать ПКМ на хост и сделать Disconnect
4. Зайти на хост через vSphere (Web)
5. Нажать Action -> Enable SSH
6. Зайти через ssh
esxcli system hostname set --host=hostname
esxcli system hostname set --fqdn= fqdn

host и fqdn могут быть равны

вторник, 9 июля 2019 г.

Включить https на Mikrotik

1. С использованием самоподписанного сертификата:

:global CertName "Mikrotik SSC";
:global ipAddr "192.168.55.1";
:global TemplateName "ca-template"
/certificate
add name=$TemplateName common-name=$CertName key-usage=key-cert-sign,crl-sign country=RU state=Mocsow organization="MyCompany";
sign $TemplateName ca-crl-host=$ipAddr name=$CertName;
set $CertName trusted=yes;
/ip service 
set www-ssl certificate=$CertName disabled=no
set www disabled=yes

воскресенье, 12 мая 2019 г.

Обновление сертификата http на Windows

На powershell:

Import-Module pkiclient
Import-PfxCertificate <my_cert.pfx> -CertStoreLocation "Cert:\LocalMachine\My" -Password (ConvertTo-SecureString <PasswordToPfx> -AsPlainText -Force)
netsh http show ssl #этой командой смотрим все доступные службы
#и выбираем адрес и id для следующей команды
netsh http update sslcert ipport=<ip_addr>:<port> certhash=<cert_hash> appid=<app_id>

вторник, 16 апреля 2019 г.

Определить скорость сетевого интерфейса

Для Windows: Get-NetAdapter Ethernet | fl Name, InterfaceDescription, ifIndex, Status, MacAddress, LinkSpeed
Для старых версий Windows: wmic NIC where "NetEnabled='true'" get "Name,Speed,MACAddress"

Для linux: cat /sys/class/net/eth0/speed

Ошибка обновления видеорегистратора Trassir

При попытки обновления видеорегистратора Trassir MiniVNR с помощью файла обновления появляется ошибка Incorrect File name

Это означает, что версия ПО на регистраторе старая и нужно его обновлять по этапно.
Пути обновления:
1. Обновляемся до версии 7001.
2. Затем обновляемся до 8811.
3. Затем до версии 10494.

Начиная с версии 8811 можно обновляться через браузер Firefox, для остальных обновление через клиента Trassir.

четверг, 11 апреля 2019 г.

Вернуть язык в терминале

После отключения от терминальной сессии на серверах win 2012 и новее у пользователя отваливается язык. Чтобы его восстановить нужно запустить скрипт powershell
$a=Get-WinUserLanguageList;
$a.Add('ru-RU');
$a.Add('en-US');
Set-WinUserLanguageList $a -Force

среда, 27 марта 2019 г.

Настройка сервера администрирования от Kaspersky

Справка находится тут

Скачиваем дистрибутив full, в нём уже есть веб консоль, для управления с любых устройств. Самое смешное, что сервер администрирования у Касперыча работает только с Windows! Установка простая, нужно проставить галочки и нажимать, далее, далее.
Для безопасности создаём базу KAV на сервере sql и логин для доступа к этой базе.
Единственный нюанс, не подключился к MS SQL 2017 Express через локального пользователя sql, с чем связано - не знаю, поэтому сделал учётку в AD, добавил её как логин в sql.

Нюанс №2, Каспер при установке прописывает в firewall множестно правил, но правила для подключения к https://<server_address>:8080 отсутствует, его нужно создать руками.

воскресенье, 17 марта 2019 г.

adb и fastboot

В данном разделе будут сохранены основные команды
А) Проверка разблокированности загрузчика:  fastboot oem device-info
Б) Прошивка recovery:
adb reboot-bootloader (или через кнопки зайти в fastboot)
fastboot flash recovery <img file>
fastboot oem reboot-recovery (или выдернуть батарею, вставить обратно и через кнопки зайти в recovery)

В)

вторник, 12 марта 2019 г.

создание программного raid

Для Windows:
1) Заходим в командную строку от имени администратора и запускаем diskpart
2) Конвертируем диск в diskpart в динамический:
select disk 1
convert disk dinamyc
select disk 0
convert disk dinamyc
Смотрим список разделов и первого (тот который находится в начале диска, а не имеет меньшую цифру. Потому что diskpart как попало нумерует разделы):
select volume 0
add disk=1
select volume 1
add disk=1


Создание сетевой папки (шары)

Для Windows:
а) через powershell
$folder='c:\share'
mkdir $folder
New-SmbShare -Name share -Path $folder -ChangeAccess user

б) через cmd
set folder=c:\share
mkdir %folder%
net share sharename=%folder% /GRANT:user,CHANGE

Для linux:
а) сетевая папка samba
mkdir /share
nano /etc/samba/smb.conf

Добавляем секцию
[share]
   browseable = yes
   read only = no
   guest ok = no
   path = /share/


Ввод в домен рабочей станции

Для Windows: запустить powershell и ввести команду
Add-computer -domainName "domain.lan" -Restart

Как убрать в файле все комментарии и пустые строки

grep -v '^\s*\(#\|$\|;\)' file

Включение доступа к беспарольной шаре на WIndows 10

По умолчанию запрещено подключатся к сетевым папкам без парольного доступа. Чтобы разрешить доступ нужно поправить ветку реестра
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
"AllowInsecureGuestAuth"=dword:0 заменив на 1

В групповой политике меняется тут Computer Configuration -> Administrative Templates -> Network -> Lanman Workstation and selected the Enable insecure guest logons

воскресенье, 10 марта 2019 г.

How to configure an authoritative time server in Windows Server

To configure an internal time server to synchronize with an external time source,
use one of the following methods:

Automatically configure the Windows Time service

To fix this problem automatically, click the Download button. In the File Download dialog box, select Runor Open, and then follow the steps in the easy fix wizard.

Prerequisite updates for Internet Explorer 11


When you install Internet Explorer 11 for Windows 7, the installer program tries to automatically install some prerequisite components. If this part of the installation fails, Internet Explorer stops the installation process.

In this situation, you must install the prerequisite software manually before you can install Internet Explorer 11 for Windows 7.

To do this, use the links in the "List of prerequisite updates for Internet Explorer 11" section to obtain the individual update components.

Windows 10, WindowsUpdate.log and how to view it with PowerShell or Tracefmt.exe




Author: Charles Allen
With the release of Windows 10, there is going to be a change to the way the Operating System logs created and how we can view them.
For those of us who are supporting services like Configuration Manager and Windows Update Services to deploy Software Updates, this means a change to how we will look at the WindowsUpdate.log in Windows 10.
The WindowsUpdate.log is still located in C:\Windows, however when you open the file C:\Windows\WindowsUpdate.log, you will only see the following information:

Circle Back to Loopback

Hello again!  Kim Nichols here again.  For this post, I’m taking a break from the AD LDS discussions (hold your applause until the end) and going back to a topic near and dear to my heart – Group Policy loopback processing.
Loopback processing is not a new concept to Group Policy, but it still causes confusion for even the most experienced Group Policy administrators.

пятница, 8 марта 2019 г.

The AD Recycle Bin: Understanding, Implementing, Best Practices, and Troubleshooting

Ned here again. Starting in Windows Server 2008 R2, Active Directory now implements a true recycle bin. No longer will you need an authoritative restore to recover deleted users, groups, OU’s, or other objects. Instead, it is now possible to use PowerShell commands to bring back objects with all their attributes, backlinks, group memberships, and metadata. AD Recycle Bin (ADRB) was a long time coming and it definitely has its idiosyncrasies, but I think you are going to love it.
Today I am going to talk about a few aspects of this new system:
  • Understanding how ADRB works under the covers.
  • What the requirements are and how to turn ADRB on.
  • Using ADRB, along with some best practices.
  • Troubleshooting common issues people run into with ADRB.
Armed with this information, you should be able to speak with authority on the AD Recycle Bin and perhaps, save your company from a disaster someday.
Let’s get cranking, IT super hero.

How to Enable Active Directory Recycle Bin (Server 2016)



 |  | 


In this tutorial, you will learn how to enable the Active Directory Recycle bin on Windows Server 2016.
I’ll show you how to enable it through the GUI as well as with Powershell.
The AD recycle bin comes in handy when you accidentally delete an AD object and need to restore it.

Considering updating your Domain functional level from Windows 2003? Read this!




Now that Windows Server 2003 end of life (July 14th, 2015) is on the horizon, many customers are updating their Active Directory (AD) Domain Controllers (DC) from 2003. The first item to consider is which Windows Server Operating System (OS) you will be moving to for your DC’s. There are several options to consider today: 2008, 2008R2, 2012, or 2012R2 operating systems. However, no matter which newer OS you move your DC’s to, coming from 2003, the krbtgt account will reset its’ password when you update the Domain Functional Level (DFL), which is the concern that could break Exchange.

пятница, 22 февраля 2019 г.

Шпаргалка по назначению прав на файлы

cmd:
icacls "\\path\file" /grant user:(OI)(CI)(M) - Добавить права на изменения с наследованием

powershell:
start-process "$env:windir\system32\icacls.exe" -arg '"\\path\file" /grant user:(OI)(CI)(M)' -nonew - Добавить права на изменения с наследованием

bash:

понедельник, 18 февраля 2019 г.

Проблемы со связью через Asterisk

Если проблема заключается в "электронном голосе", либо не все слова прилетают в трубку, то проверить что канал (между звонящими, между телефонами и АТС asterisk) имеет постоянную задержку.

Отключение автозапуска (autorun) на съёмных носителях

Автозапуск (autorun) отключается простым скриптом.

@echo off
echo Disable Autorun on all removable devices
set RegistryFolder="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer"
reg add %RegistryFolder% /v NoDriveTypeAutoRun /t REG_DWORD /d 0x000000ff /f
reg add %RegistryFolder% /v NoDriveAutoRun /t REG_DWORD /d 0x000000ff /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf" /ve /t REG_SZ /d "SYS:AutorunDisabledBy_AnikinSV" /f

пятница, 15 февраля 2019 г.

Особенности работы asterisk на двух интернет каналах

1. Для правильной работы настроить маршрутизацию через 1 интерфейс.
2. При смене провайдера (например, когда один отвалился), заменить внешний адрес в строке externip= на нужный
3. Проверить что пакеты прилетают с правильного адреса, если это не так, то потушить интерфейс на маршрутизаторе, того провайдера который в дауне.
4. Зайти в личный кабинет провайдера и попробовать отключить пользователя и включить заново

четверг, 14 февраля 2019 г.

Замена внешнего ip в конфиге Asterisk

Повесить скрипт в cron

#!/bin/bash
#
#This script change IP address in line 'externip=' in 
#/etc/asterisk/sip.conf file to current WAN IP address
#
wan_ip=$(dig +short myip.opendns.com @resolver1.opendns.com)
cfg="/etc/asterisk/sip.conf"
current_ip=$(grep '^externip=' $cfg | sed 's/externip=//g')
if
    [ "$wan_ip" != "$current_ip" ];
then
    tmp_cfg=$cfg".tmp"
    echo '[general]' > $tmp_cfg
    echo "externip=$wan_ip" >> $tmp_cfg
    cat $cfg | sed 1d | sed '/externip=/d' >>$tmp_cfg
    mv -f $tmp_cfg $cfg
    asterisk -rx "core reload"
else
    echo "WAN IP is equal IP in config file"
fi


среда, 13 февраля 2019 г.

Очистка истории синхронизации WSUS

Подключиться к БД SUSDB в ms sql и выполнить запрос

USE SUSDB 
GO 
DELETE FROM tbEventInstance WHERE EventNamespaceID = '2' AND EVENTID IN ('381', '382', '384', '386', '387', '389')

Если используется внутренняя БД (WID), то подключатся нужно по пути \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query

Документация


З.Ы. Дополнительный скрипт который оставляет недавнии синхронизации:

USE SUSDB
GO
DELETE FROM tbEventInstance WHERE EventNamespaceID = '2' AND EVENTID IN ('381', '382', '384', '386', '387', '389') AND DATEDIFF(month, TimeAtServer, CURRENT_TIMESTAMP) >= 3;
GO

Перезапуск WSUS при падении службы

Иногда WSUS съедает много обновлений и падает служба с ошибкой. Лечим скриптом и патчами венды.

@echo off
iisreset
net stop WsusService && net start WsusService
cd /d "C:\Program Files\Update Services\Tools\"
WsusUtil.exe checkhealth
timeout /t 10

Просмотр отчётов во WSUS

1. Установить SQL Clear Types 2012 (файл SQLSysClrTypes.msi)
2. Установить Report Viewer 2012
3. Перезапустить консоль WSUS

воскресенье, 3 февраля 2019 г.

Скрипт на отключение пользователя от Windows Vpn Server и на удаления его из группы AD

Import-Module ActiveDirectory
Import-Module RemoteAccess
$user='user'
$group='vpn-users'
$server='vpn.domain.local'
#[string]$filter='"*'+$user+'*"'
Remove-ADGroupMember -Members $user -Identity $group -Confirm:$false
Get-RemoteAccessConnectionStatistics -ComputerName $server | ? UserName -like "*$user*" | Disconnect-VpnUser -ComputerName $server

вторник, 29 января 2019 г.

Как удалить контроллер домена

Вариант номер 0. Передать FSMO роли.Удалить AD с сервера, удалить комп из домена.
Если вариант 0 не может быть использован, тогда удаляем его принудительно используя варианты 1 или 2.

Вариант номер 1. Открыть dsa.msc и удалить котроллер домена. Открыть dssite.msc и удалить сервер.

Вариант номер 2. Запустить cmd с правами администратора домена.
ntdsutil
metadata cleanup
remove selected server <servername>
quit
quit

Процедура удаления

Если удаляется контроллер домена с fsmo ролями, то сначала нужно захватить эти роли. А потом делать

Захват ролей FSMO

Настройка звука в linux

Проверить какие аудиоустройства есть в системе sudo lspci -k | grep Audio
Добавиться в группу audio sudo usermod -G audio $USER; exit #logoff
Переинициализоровать звук alsactl init
Перевоткнуть колонки.

понедельник, 28 января 2019 г.

Настройка или миграция WSUS на новый сервер

1. Устанавливаем компоненты: Install-WindowsFeature UpdateServices-Services,UpdateServices-DB -IncludeManagementTools
2. Для миграции потребуется открыть порт 7000: New-NetFirewallRule -Name SMIG -DisplayName 'ServerMigration' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 7000 и установить компонент миграции Install-WindowsFeature Migration -IncludeManagementTools
3. Запусть экспорт данных c:\Program Files\Update Services\Tools\WsusUtil.exe export d:\tmp\wsus_exp.xml.gz d:\tmp\wsus_exp.log
4. Выключить службы WsusService и W3SVC
5. Отключить базу данных SQL и перенести её на другой сервер, затем на нём подключить базу
6. Отключить диск с данными WSUS и перенести его на другой сервер, затем подключить. В консоли "Управления дисками" сделать диск "Онлайн"
7. Запустить настройку нового wsus cd /d "C:\Program Files\Update Services\Tools\" && WsusUtil.exe postinstall SQL_INSTANCE_NAME=SQL-EXPR CONTENT_DIR=d:\wsus
8. Запустить импорт данных c:\Program Files\Update Services\Tools\WsusUtil.exe import d:\tmp\wsus_exp.xml.gz d:\tmp\wsus_exp.log




Документация по установке
Документация по миграции

Миграция сервера лицензирования терминалов Windows

Миграция не сработала, поэтому проще настроить новый сервер, а на старом удалить роли и удалить сервер.
1. Ставим роль сервера лицензирования: Install-WindowsFeature RDS-Licensing
2. Заходим через gui RD Licence Manger, подключаемся к серверу и активируем сервер.
3. Добавляем также через GUI нужные лицензии (лучше per user). При получении ключа указать тип лицензии Enterprise Agreement и указать любую из лицензий 6565792, 5296992, 3325596
4. После добавления всех лицензий нажать на All Servers в RD Licence Manger и тыкнуть на ссылку в столбце Configuration, чтобы задать область видимость в домене.
5. Удалить старый сервер из домена.
6. Удалить старый сервер из группы AD Terminal Server License Servers

Если забыл как делать активацию

Не найдено ни одного сервера с размещенным сервисом serviceName=SessionDataService

Для решения данной проблемы:
1. Остановить службу 1с: net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
2. Очистить папки %tmp%, %Appdata%\1c %localappdata%\1c под тем пользователем, под которым запущена служба 1с
3. Запустить службу 1с: net start "1C:Enterprise 8.3 Server Agent (x86-64)"

Возможные варианты решения проблемы.

четверг, 24 января 2019 г.

Установка контроллера Unifi и подключение точек доступа

Скачиваем софт по ссылке https://www.ui.com/download/unifi и устанавливаем его.
Затем переходим по ссылке https://<address>:8443 и задаём пароль.

Создаём сайты, чтобы добавить можно было разные подсети.
Добавляем настройки WiFi.

Добавляем точки доступа

Обновляем прошивку на точках доступа. Если нет веб морды, то подключаемся через SSH и запускаем установку:
curl https://dl.ubnt.com/unifi/firmware/U7PG2/4.0.15.9872/BZ.qca956x.v4.0.15.9872.181229.0258.bin -o /tmp/fwupdate.bin
syswrapper.sh upgrade2 &

Переименовать файл обязательно, иначе процесс установки станет колом, и точка перезагрузится и не выйдет из режима перезагрузки.

Примечание: обновить такой командой не удалось, точка зависает наглухо, приходится перезагружать по питанию.

Прошивка обновилась с контроллера. Возможно зависание точки точки доступа поэтому приходится сбрасывать через кнопку на корпусе точки доступа (для сброса понадобится отвёртка или карандаш; держать кнопку сброса более 5 секунд при включённом питании).

Для подключение точки к контроллеру нужно зайти по ssh ubnt@<address> пароль ubnt
и указать адрес контроллера через set-inform https://<address>:8080/inform

Затем в контроллер добавить точку нажав кнопку Adopt



Документация

среда, 23 января 2019 г.

Как скопировать закрытый ключ в Крипто-про

1. Вставляем ключ-донор, устанавливаем необходимые драйвера.
2. Вставляем USB флешку, либо дискету
3. Заходим в Крипто-ПРО, затем вкладка Сервис->Скопировать контейнер
4. Выбираем сертификат, затем выбираем нужный съёмный диск.
5. После этого со съёмного диска можно скопировать куда-нибудь

Установка RSAT в Windows 10

Если сборка Windows 10 ниже 1809, то гуглим по запросу rsat windows и качаем установочный файл. Если 1809 и выше, то через powershell запускаем установку
Get-WindowsCapability -Online | ? {($_.State -notmatch 'Installed') -and ($_.Name -match 'rsat')} | %{Add-WindowsCapability -Name $_.Name -Online}
Скрипт лежит тут

Если интернета нет, то последняя команда не выполнится, нужно качать исошник с этими фичами. Затем подключаем диск и запускаем команду:
Get-WindowsCapability -Online | ? {($_.State -notmatch 'Installed') -and ($_.Name -match 'rsat')} | %{Add-WindowsCapability -Name $_.Name -Online -LimitAccess -Source 'd:\'}


Подробности в статье

Как посмотреть информацию о фото в linux

Устанавливаем пакет apt install imagemagick
После установки смотрим данные identify -verbose /usr/share/backgrounds/WildWheat_by_Brian_Burt.jpg

вторник, 22 января 2019 г.