Форум программистов, компьютерный форум, киберфорум
Наши страницы
KellyDink
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Еще приятности от синей цмдэшечки

Запись от KellyDink размещена 09.08.2018 в 16:47

Ну во-первых, чтобы быстро узнать имя компьютера достаточно ввести
Код:
$env:COMPUTERNAME
Пользователь, под которым залогинен (ох уж эта девичья память).
Код:
$env:Username
домен
Код:
$env:USERDNSDOMAIN
учитывая, что powershell цветет и пахнет растет и развивается, что от версии оной зависит наличие многих команд, поэтому неплохо было бы узнать версию самого шела
Код:
$host.version
и конечно посмотреть, что за система вообще установлена
Код:
get-CimInstance -ClassName Win32_OperatingSystem | fl Caption, Version
А еще ощущение, что мир цикличен и великая и ужасная от консольных настроек боролась за гуишный, а теперь потихонечку от него уходит обратно к консольному. Ибо я не нашла, где в Windows Server 2016 посмотреть список локальных системных учетных записей. А так как каждая приложенька считает себя обязанной создать оную,это очень некомфортно. Поэтому есть powershell. и он великолепен
Код:
Get-LocalUser
выдаст честный список оных.
Код:
Remove-LocalUser
удалит неугодных

Во-вторых, она по умолчанию не дает выполнять скриптики, а в какой-то момент они становятся на столько жирными, что изменять их непосредственно в powershell'e становится неудобно.

Для этого мы сначала смотрим, какой режим у нас установлен
Код:
get-executionpolicy
А потом изменить его на Unrestricted (потому что Б-Безопасность) и согласиться со всеми предупреждениями
Код:
set-executionpolicy Unrestricted
Restricted (Запрещено, по умолчанию) Сценарии не запускаются.

Allsigned (Все подписанные) Запускаются только подписанные сценарии.

RemoteSigned (Удаленные подписанные) Разрешен запуск локальных сценариев, прочие сценарии должны быть подписаны.

Unrestricted (Без ограничений) Запускаются все сценарии.
Ну и собственно мое творение - ищет повторные MAC адреса в arp таблице
Код:
(arp -a) -Match '\s\s\d' |
 ForEach-Object {
   $parts = $_.trim() -Split '\s+'
    New-Object PSObject -Property @{
                                     IPAddress = $parts[0]
                                     MACAddress = $parts[1]
                                     Type = $parts[2]
                                     }
} |
 group-object -property MACAddress | where-object {$_.Count -gt 1}
Немного информации для тех, кто запоминает так же медленно, как я:
where-object - делает выборку по массиву, а в фигурных скобках можно указать условия
ключи -gt - больше чем
_$ - каждый объект, после точки можно указать Property, которое проверяем на условие
group-object - группирует объекты, а ключ -Property позволяет выбрать свойство, по которому это делать
ForEach-Object - просто проходим по всем объектом, аки циклом, в фигурных скобках указывая, какие непотребства делать с каждый элементом

Теперь я готова к критике и модернизации моего маленького Франкенштейна
Просмотров 197 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru