to post messages and comments.

@killy:

... вообще павершелл не считается языком программирования, в отличии от перла
Выпал в осадок. Не буду показывать пальцем, думаю исправится.
Но вот такая каша в головах и создаёт проблему неприятия.

Кстати, имхо, вопрос "чем PowerShell лучше cmd" примерно эквивалентен "чем ipython лучше cmd".

@lovesan:

Вообще, в PS, вместо ебли с ipconfig надо делать просто Get-NetAdapter

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

Но говноеды привыкли есть говно, им подавай ipconfig через cmd.exe

@Renha:

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

@Strephil:

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

@nagg:

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

@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:

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

@otakuSiD:

Getting Local Environment Variables

Get-ChildItem Env:

windowsitpro.com

@k1lg0reTr0ut:

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

@otakuSiD:

simple-talk.com

@don-Rumata:

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

@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:

How to retry commands in PowerShell

blogs.endjin.com

@otakuSiD:

Different ways for installing Windows features on the command line


peter.hahndorf.eu

@den-po:

Windows Update PowerShell Module gallery.technet.microsoft.com

@gogaxxx:

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

@otakuSiD:

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

stackoverflow.com

@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:

15 Ways to Bypass the PowerShell Execution Policy

blog.netspi.com

@den-po:

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

@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:

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

@k1lg0reTr0ut:

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

@max630:

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

@den-po:

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

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

@k1lg0reTr0ut:

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

@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:

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

@den-po:

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

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

@den-po:

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

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

@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:

Помните писал про сатанизм?
$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:

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

@k1lg0reTr0ut:

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

@k1lg0reTr0ut:

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

@k1lg0reTr0ut:

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

@k1lg0reTr0ut:

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

@k1lg0reTr0ut:

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

@k1lg0reTr0ut:

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

@max630:

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