Чтобы добавлять сообщения и комментарии, .

@Renha:
Renha

так, powershell поставил, теперь давайте Edge.
и это, как дефолтным шеллом powershell сделать?

@Strephil:
Strephil

А почему говорят об интеграции powershell в Linux? Разве там вообще есть какая-то связь?
Логичнее бы выглядела интеграция powershell'а и systemd.
Надо будет повнимательноее на powershell этот посмотреть.

@nagg:
nagg

Пока тут спорят что виндавс/линукс ненужен, коллеги сделали фотку где-то в Торонто. Торвальдс договаривается о внедрении повершелла прямо в ядро.

@otakuSiD:
otakuSiD

to allow asp.net core write logs run the following script:


$logs = "C:\inetpub\wwwroot\logs"
New-Item -type directory -path $logs
$acl = Get-Acl $logs
$AccessRule = New-Object system.security.accesscontrol.filesystemaccessrule("IIS_IUSRS","Write","Allow")
$acl.SetAccessRule($AccessRule)
Set-Acl $logs $acl

@k1lg0reTr0ut:
k1lg0reTr0ut

вобщем, я тут проигрываю по полной.
есть такая пизда, называется реестр. в нем есть ключ с бинарными данными, это где данные 00 01 с4 а0 и т д.
и он сука длинный.
есть у меня блядский образец этого гавна.
смысл в том, чтобы запросить значение ключа и сравнить с бляцким образцом.
но как эту пизду оформить в коде? если хуяришь просто:
$q = 01, 03, c8
эта пизда ругается, что я вдруг тестовые данные заябываю в массив, поэтому его надо в кавычки.
если я эту пизду перевожу в тип byte, то эта пизда хочет, чтобы я вводил в нее циферки такого рода 0x80 0xc5 и т д.
я не хочу так вводить, потому что долго. а когда тестовую переменную создавал, то оно мне выводит конвертированные в десятичную хуйню.
при этом, когда я запрашию этот ебаный ключ в реестре, то в переменной образуется хуйня правильно выглядящая.
вобщем я заебался. пидары пидары ебаные пидары долбитесь в хвост гандонами изобранными измазайтесь гавном твари

@otakuSiD:
otakuSiD

Getting Local Environment Variables

Get-ChildItem Env:

windowsitpro.com

@k1lg0reTr0ut:
k1lg0reTr0ut

у меня такое ощущение, будто модуль повершела для эксчейнджа писали ебанутые гандоны.
1. сраный модуль, который через жопу добавляется в ISE
2. ебуче-дремучие командлеты, которые хуй знает с какой ебанутой логикой сделаны.
я все понял.
когда я работал в пошиком, то я начинал с эксчейнджа. тогда я думал что пошик гавно.
щас я много работал не с экчейнджем. и я считаю, что пошик норм.
вывод, эксчейндж гавно.

@otakuSiD:
otakuSiD

simple-talk.com

@don-Rumata:
don-Rumata

Вопрос к виндовозам. А в павершелле есть нормальное автодополнение? Или это убожество чуть прокачанное со времён cmd никак не кастомайзится? Мне хотя бы по даблтабу весь список доступных вариантов.

@otakuSiD:
otakuSiD

Import-Module ActiveDirectory timing out

social.technet.microsoft.com

Причем тихо валится, без единой ошибки.

И внезапно:

Beginning in Windows PowerShell 3.0, modules are imported automatically when any cmdlet or function in the module is used in a command. This feature works on any module in a directory that this included in the value of the PSModulePath environment variable.
technet.microsoft.com

Так что сбриваем нахрен импорт.

@otakuSiD:
otakuSiD

How to retry commands in PowerShell

blogs.endjin.com

@otakuSiD:
otakuSiD

Different ways for installing Windows features on the command line


peter.hahndorf.eu

@den-po:
den-po

Windows Update PowerShell Module gallery.technet.microsoft.com

@gogaxxx:
gogaxxx

Что виндовс делает с кодировками? Новая серия. Имеется файл list.txt в кодировке ucs-2. У меня также стоит cygwin со всякими утилитами. Запускаю iconv -f ucs-2 -t utf-8 list.txt >list2.txt в PowerShell. Файл не изменился! Запускаю ту же комманду из-под cmd. Файл нормально превратился в utf-8. Что там повершелл мутит? Задолбали эти фокусы.

@otakuSiD:
otakuSiD

(gwmi win32_computersystem).partofdomain
How to find if the local computer is in a domain?

stackoverflow.com

@otakuSiD:
otakuSiD

location of the current PowerShell script:

stackoverflow.com

#PowerShell 3+
# This is an automatic variable set to the current file's/module's directory

$PSScriptRoot

@otakuSiD:
otakuSiD

15 Ways to Bypass the PowerShell Execution Policy

blog.netspi.com

@den-po:
den-po

что та кои-8 значит?

@reflechant:
reflechant

Как удалить ненужные приложения Metro в Windows 8 и 10

1) Открываем PowerShell
2) Набиваем (Get-AppxPackage -User <user>).Name, где <user> — имя вашей учётной записи
3) Выбираем что хотим удалить и делаем, например:
Get-AppxPackage -Name "Microsoft.BingSports" | Remove-AppxPackage
4) PROFIT

Если нужно получить более подробную информацию о приложении, делаем

Вообще PowerShell замечательная штука. Работают основные команды linux и dos. ls, cat, | и даже справка по man
Все команды возвращают объекты .NET, поэтому это больше похоже на интерпретатор Python, чем на bash

@k1lg0reTr0ut:
k1lg0reTr0ut

сидел блин, думал как таблицу полученную out-gridview экпортировать в ексель. даже почти гуглить начал, пока не выделил ее и не вставил.
совсем забыл основы.

@k1lg0reTr0ut:
k1lg0reTr0ut

вобщем, ситуация такая.
неким образом, я получаю несколько переменных. из различных командлетов, даже из различных модулей, какие-то через обращение к wmi.
и вот теперь, хотя эти переменные занести в файлик в виде:
var1;var2;var3;var4 (типа имя хоста; кол-во виртуалок; кол-во работающих виртуалок;версия и редаксия оси)
ну и таких записей много.
как это сделать?
out-file не хочет работать с этим.
> тоже не работает. даже если в файл заносится — то после каждой переменной — знак переноса строки. жопа жопа жопа

@max630:
max630

как квотить файлы в командах. Например, файл с именем "a [B].txt", его имя в переменной, как его передать в команду. Если просто $f писать — ругается "item at ... does not exist"!

@den-po:
den-po

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

$oc = Get-Command 'Write-Host' -Module 'Microsoft.PowerShell.Utility'
& $oc @PSBoundParameters  #либо & $oc @args

@k1lg0reTr0ut:
k1lg0reTr0ut

это пиздец блять, когда get-mailboxstatistics выдает список свойств ящика, среди которого нет никаких нормальных идентификаторов ящика, типа алиса или имени ящика, а есть только displayname, которое блять всегда на русском и ФИО, и фильтовать которыми блять очень уж не хочется.
ебаные криволапые пидары.

@den-po:
den-po

нашёл изумительную фичу powershell 2.0 (эта версия по умолчанию в семёрке): при выводе данных обычным способом (хз, как называется, когда например просто переменную или имя функции укажешь, а оно в консоль пишет) текст форматируется по ширине консоли. Так что вот такая команда:

powershell -c "\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"" > x.txt

сохранит в файл x.txt вот такое:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxx

В связи с этим объединённый bat+powershell скрипт:

@powershell -command "(Get-Content \"%~0\") -replace '@powershell','#' | Write-Host" | powershell -c - & goto :eof
"put your powershell code here"

@pc:
pc

Журнал ребутов венды
Get-WinEvent -FilterHashtable @{logname='System'; id=6005,6006,6008} -ComputerName "WSGM08" -ErrorAction SilentlyContinue | Sort-Object -Property TimeCreated

@den-po:
den-po

батник запускает powershell скрипт из себя. простая штука, а доходил я до неё несколько дней.

@powershell -command "(Get-Content \"%0\") -replace \"@powershell\",\"#\"" | powershell -c - & goto :eof
Write-Host "put your powershell code here"

@den-po:
den-po

а вот почему такая фигня может виснуть? это как-то связано с msiexec? как бы починить?

Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -match "blablabla" }

@otakuSiD:
otakuSiD

download files

blog.jourdant.me

$webclient = new-object System.Net.WebClient
$webclient.Credentials = new-object System.Net.NetworkCredential("login", "pass")
$webclient.DownloadFile($artifacts_url, $artifacts_archive)

@k1lg0reTr0ut:
k1lg0reTr0ut

Помните писал про сатанизм?
$gpo = Get-GPO -Name testdenied
$adgpo = [ADSI]"LDAP://CN=`{$($gpo.Id.guid)`},CN=Policies,CN=System,DC=Contoso,DC=Com"

$rule = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
[System.Security.Principal.NTAccount]"Contoso\Kazun",
"ExtendedRight",
"Deny",
[Guid]"edacfd8f-ffb3-11d1-b41d-00a0c968f939"
)

$acl = $adgpo.ObjectSecurity
$acl.AddAccessRule($rule)
$adgpo.CommitChanges()
-------------------------
вот вопрос в том, что в строке [System.Security.Principal.NTAccount]"Contoso\Kazun" определен класс объекта для пользователей, а какой тип объекта использовать, если я хочу добавить компьютерный аккаунт?????

@k1lg0reTr0ut:
k1lg0reTr0ut

вобщем, ситуация такая.
хочу взять около 10 мейлбоксов и посмотреть их общий размер.
то есть к переменной прибавлять значение $mailbox.TotalItemSize
вот какой должет быть тип переменной? или есть другие способы получить сумму? типа $allMailbox.sum(TotalItemSize)

@k1lg0reTr0ut:
k1lg0reTr0ut

не могу сообразить, как проверить существование объекта в переменной?
например $var = get-различныеобъекты -filter (тут какой то фильтр)
вот в эту $var попадают разные объекты, проходящие фильт, например, юзеры без заполненного мыла, компы в каком-то сайте.
вот есть эта $var и есть еще объект, например, $obj.
как проверить, этот $obj находится в $var?

@k1lg0reTr0ut:
k1lg0reTr0ut

вобщем, есть sccm. проблема, что есть некоторые клиенты, которые не собирают о себе hardware inventory.
помогает переустановка клиента. полная. с удалением CCM ccmcache и ccmsetup.
вобщем, решил замутить скрипт. которые берет коллекцию с неправильными компами, удаляет агента, ставит агента.
но опять же, не проканывает просто командлет переустановки, нужно чистить каталоги.
но,
1. проблема. это то, что на компах не настроен winrm.
2. psexec не всегда хочет выполняться.
вобщем, геморой(
лень его решать

@k1lg0reTr0ut:
k1lg0reTr0ut

есть такой параметр -ErrorActionPreference который не работает, если указывать ему там стоп, или continue или silentcontinue.
не работает для отдельного командлета, в качестве его параметра.
если установить системный параметр $ErrorActionPreference в нужное значение — то работает. что не так делаю?

@k1lg0reTr0ut:
k1lg0reTr0ut

забуду, но напишу все равно тут:
если надо в переменную засунуть только значение объекта, то можно сделать так:
$var = get-adcomputer COMPUTER -Property * | select -expand LastLogonData

@k1lg0reTr0ut:
k1lg0reTr0ut

решал веть уже когда то проблему, что в переменную уходит не значение поля, а объект поля, когда печатаю эту переменную в эксель например, то там отображается тип объекта, а не его значение.
через write-host чтобы делал. пойду вспоминать,
но если у кого есть ответ, подскажите плиз.

@k1lg0reTr0ut:
k1lg0reTr0ut

охуенные чудеса хуйни, когда запускаешь командлет, а он висит, и ни туда и ни сюда. и непонятно, то ли он висит, то ли он работает. но сука 3 часа висит. можно только контрл-це сделать.

@max630:
max630

почему ctrl-c не работает для команды "(New-Object -type System.IO.FileSystemWatcher -ArgumentList D:\tmp).WaitForChanged(0, 5000)"? что можно использовать вместо?

@k1lg0reTr0ut:
k1lg0reTr0ut

вот есть любой командлет. как узнать, к какому модулю он относится?

@DespicableMe:
DespicableMe

Кстати, кто-нибудь в курсе, как можно сделать так, чтобы уже при установке (или после неё, если запустить послеустановочные скрипты, что для меня предпочтительнее) некоторые exe всегда выполнялись от имени администратора и файлы были доступны для чтения и изменения только администратору.
Я уже искал решение, но мне предложили только батник в котором как раз прописывался запуск от имени админа. Также говорилось, что если его поместить в автозапуск нужного пользователя, то оно спросит пароль один раз и так и будет стартовать потом с нужными параметрами. Но такой батник — это не круто само по себе, ибо доступно пользователю, а во вторых я хотел бы заранее выставить необходимые опции и максимально скрыть их от пользователя. По идее это нужно хранить в реестре, но сейчас это для меня ново. Только вот начал разбирать wix. Есть какие-то решения, или хотя бы что почитать?