Конвертация powershell в cmd (на самом деле нет)

Встала задача — запустить скрипт powershell из обычного *.cmd. Задача традиционно возникает вследствие отсутствия ассоциаций для файлов *.ps1, и не менее традиционно решается путем создания двух файлов — скрипта на повершелле, который делает то что нужно, и обычной цмдэшки, которая его стартует. Это жесть как неудобно. Однако нагуглилось еще одно решение — повершелльный скрипт можно закодировать в одну строку и подсунуть интерпретатору, что избавляет от необходимости создавать дополнительный файл. В результате со своей несложной по сути задачей я справился, и решил привести пример скрипта, который берет тело скрипта нужной нам функциональности и генерит cmd-файл готовый к запуску.

Внутри переменной $script — тело нужного скрипта,
переменная $out задает вид генерируемого cmd-файла,
в последней строке указываем путь и имя cmd-файла (да я ленивый быдлокодер, не вынес в переменную ))

powershell to cmd generator.ps1
 
  1. $script = {
  2. import-module activedirectory
  3. $domain = Get-ADDomain
  4. Write-Host "Последнее появление компьютера в домене"
  5. Write-Host "======================================="
  6. Write-Host "Поиск в домене: $($domain.Name).$($domain.ParentDomain)"
  7. while($true)
  8.       {
  9.       $CompName = Read-Host -Prompt \'Введите короткое имя компьютера\'
  10.       $CompName = $CompName -replace \'(^\s |\s $)\',\'\' -replace \'\s \',\' \'
  11.       Get-ADComputer -Identity $CompName -Properties * | ft Name,LastLogonDate
  12.       }
  13. }
  14. $command = $script.ToString()
  15. $bytes = [System.Text.Encoding]::Unicode.GetBytes( $command )
  16. $encodedCommand = [Convert]::ToBase64String( $bytes )
  17. $out ="@echo off
  18. powershell.exe -EncodedCommand $encodedCommand"
  19. $out | Out-File -Encoding ASCII -filepath c:\111.cmd

На выходе получаем:

111.cmd
 
  1. @echo off
  2. powershell.exe -EncodedCommand DQAKAA0ACgBpAG0AcABvAHIAdAAtAG0AbwBkAHUAbABlACAAYQBjAHQAaQB2AGUAZABpAHIAZQBjAHQAbwByAHkADQAKACQAZABvAG0AYQBpAG4AIAA9ACAARwBlAHQALQBBAEQARABvAG0AYQBpAG4ADQAKAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAB8EPgRBBDsENQQ0BD0ENQQ1BCAAPwQ BE8EMgQ7BDUEPQQ4BDUEIAA6BD4EPAQ/BEwETgRCBDUEQAQwBCAAMgQgADQEPgQ8BDUEPQQ1BCIADQAKAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9ACIADQAKAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAB8EPgQ4BEEEOgQgADIEIAA0BD4EPAQ1BD0ENQQ6ACAAJAAoACQAZABvAG0AYQBpAG4ALgBOAGEAbQBlACkALgAkACgAJABkAG8AbQBhAGkAbgAuAFAAYQByAGUAbgB0AEQAbwBtAGEAaQBuACkAIgANAAoADQAKAA0ACgB3AGgAaQBsAGUAKAAkAHQAcgB1AGUAKQANAAoACQB7AA0ACgAJACQAQwBvAG0AcABOAGEAbQBlACAAPQAgAFIAZQBhAGQALQBIAG8AcwB0ACAALQBQAHIAbwBtAHAAdAAgACcAEgQyBDUENAQ4BEIENQQgADoEPgRABD4EQgQ6BD4ENQQgADgEPARPBCAAOgQ BDwEPwRMBE4EQgQ1BEAEMAQnAA0ACgAJACQAQwBvAG0AcABOAGEAbQBlACAAPQAgACQAQwBvAG0AcABOAGEAbQBlACAALQByAGUAcABsAGEAYwBlACAAJwAoAF4AXABzACsAfABcAHMAKwAkACkAJwAsACcAJwAgAC0AcgBlAHAAbABhAGMAZQAgACcAXABzACsAJwAsACcAIAAnAA0ACgAJAEcAZQB0AC0AQQBEAEMAbwBtAHAAdQB0AGUAcgAgAC0ASQBkAGUAbgB0AGkAdAB5ACAAJABDAG8AbQBwAE4AYQBtAGUAIAAtAFAAcgBvAHAAZQByAHQAaQBlAHMAIAAqACAAfAAgAGYAdAAgAE4AYQBtAGUALABMAGEAcwB0AEwAbwBnAG8AbgBEAGEAdABlAA0ACgAJAH0ADQAKAA0ACgA=

Этот файлик можно уже смело давать неподготовленному юзеру, или пихать в политики.

Как очистить стену во вконтакте (версия 2017-го года)

Чтобы удалить со стены все записи, можно воспользоваться нижеприведенным джава-скриптом. Для этого нужно:

  1. открыть свою стену,
  2. пролистать ее до самого конца,
  3. открыть консоль (в хроме: CTRL+SHIFT+I),
  4. вставить код в поле ввода и нажать Enter

 
 
  1. (function () {
  2.   'use strict';
  3.   if (!confirm('Удалить все записи со стены?')) return;
  4.   var deletePostLink = document.body.querySelectorAll('a.ui_actions_menu_item[onclick^="wall.deletePost"]');
  5.   for (var i = 0; i < deletePostLink.length; i++) {
  6.     deletePostLink[i].click();
  7.     }
  8.   alert(deletePostLink.length + ' posts deleted');
  9. }());

Syncthing+EncFS = Синхронизация файлов для параноика

ВНИМАНИЕ!!! ОЧЕНЬ МНОГО БУКОВ!!!!!

Шучу,  очень много картинок и вспомогательных видео, а все описанное в сухом остатке делается минут за 10-15. Погнали!

Предисловие

В нашу эпоху больших корпораций, которые предоставляют тысячу и один удобный сервис, возникает вопрос — нужно ли заморачиваться и использовать «что-то свое»? У нас есть почта, есть соцсети, мессенджеры и, конечно, сервисы для хранения и синхронизации данных — бери не хочу. Но в тот момент, когда мы размещаем свои данные на публичных сервисах, мы автоматически лишаемся определенных прав на этот контент, и я даже не буду говорить про случаи, когда компании прямо пишут в соглашениях что все права на размещенный контент присваиваются компании. В первую очередь я говорю о непосредственной безопасности данных, которые могут утекать в результате взломов таких сервисов как dropbox или iCloud. Это могут быть как данные учетных записей, как в первом случае, так и сами данные в открытом виде — как нашумевшем случае (точнее «случаях») с iCloud. Нужно понимать, что может быть лично вас никто взламывать и не хочет, но ваши важные данные, такие как сканы документов, или рабочие файлы, могут «угнать» просто в общей куче.

Если вы согласны, что это непорядок — сейчас я расскажу как обезопасить свои файлы и организовать их синхронизацию между компьютерами и мобильными устройствами — бесплатно и с объемом файлов, ограниченным лишь вашими жесткими дисками. Читать далее…

[из техноблога] Тормозит Lightroom 5, неожиданное решение

Долгое время страдал от диких тормозов в лайтруме. Тормоза были при скроллинге фоток во вьювере, при их обработке — решительно во всех местах лайтрума, причем независимо от размера каталога

Читать далее

[из техноблога] Как избавиться от вируса EIMG001.exe и NsCpuCNMiner32.exe в большой сети

Если в вашей большой корпоративной сети обнаружилась движуха с сабжевым вирусом, который расползся по компам, проще всего заблокировать его запуск через GPO — это позволит прекратить или как минимум ограничить его распространение.

Читать далее

[из техноблога] Как перенести Linux с одного mdamd-raid на другой

 

Сегодня я бы хотел поговорить о такой серьезной с точки зрения надежности вещи, как линуксовый софтварный рейд. А, вернее, показать, как можно спасти систему, которая требует замены дисков, на которых она и была установлена. Я рассмотрю 2 дистрибутива линукса — CentOS 7 и Debian 8 — которые будут поставлены в идентичные исходные условия. Также, так как тема мне кажется достойной лишней наглядности, помимо традиционных скриншотов и текста, в конце я оставлю ссылки на видео, в которых полностью показана вся процедура: от момента установки исходной системы, до восстановления ее работоспособности на новых дисках.

Далее: http://obrivki.blogspot.ru/2017/02/linux-mdamd-raid.html

[из техноблога] Abaqus: Unable to validate FLEXnet server

На днях с коллегой  столкнулись с проблемой при установке abaqus, на которую потратили бессовестно много времени. Ошибка возникала при указании сервера лицензий (FlexLM) и в сокращенном виде звучала как «Unable to validate FLEXnet server»

Далее: http://obrivki.blogspot.ru/2017/01/abaqus-unable-to-validate-flexnet-server.html

[из техноблога] Как сменить заголовок (dash) стрима на сервисе restream.io с помощью скрипта.

Сервис restream.io позволяет не только разливать стримы на несколько стрим-сервисов, но и централизованно управлять заголовками (дашами, по терминологии твича) на таких сервисах как Twitch или Youtube…

Далее: http://obrivki.blogspot.ru/2016/10/dash-restreamio.html