Ну во-первых, чтобы быстро узнать имя компьютера достаточно ввести
Пользователь, под которым залогинен (ох уж эта девичья память).
домен
учитывая, что powershell цветет и пахнет растет и развивается, что от версии оной зависит наличие многих команд, поэтому неплохо было бы узнать версию самого шела
и конечно посмотреть, что за система вообще установлена
| Code | 1
| get-CimInstance -ClassName Win32_OperatingSystem | fl Caption, Version |
|
или вот так ( будет много ненужной информации, все можно выковыривать с помощью обращения через точку)
| Code | 1
2
| $systeminfo = systeminfo /FO csv | ConvertFrom-Csv
$systeminfo |
|
А еще ощущение, что мир цикличен и великая и ужасная от консольных настроек боролась за гуишный, а теперь потихонечку от него уходит обратно к консольному. Ибо я не нашла, где в Windows Server 2016 посмотреть список локальных системных учетных записей. А так как каждая приложенька считает себя обязанной создать оную,это очень некомфортно. Поэтому есть powershell. и он великолепен
выдаст честный список оных.
удалит неугодных
Во-вторых, она по умолчанию не дает выполнять скриптики, а в какой-то момент они становятся на столько жирными, что изменять их непосредственно в powershell'e становится неудобно.
Для этого мы сначала смотрим, какой режим у нас установлен
А потом изменить его на Unrestricted (потому что Б-Безопасность) и согласиться со всеми предупреждениями
| Code | 1
2
3
4
5
6
7
8
| set-executionpolicy Unrestricted
Restricted (Запрещено, по умолчанию) Сценарии не запускаются.
Allsigned (Все подписанные) Запускаются только подписанные сценарии.
RemoteSigned (Удаленные подписанные) Разрешен запуск локальных сценариев, прочие сценарии должны быть подписаны.
Unrestricted (Без ограничений) Запускаются все сценарии. |
|
Ну и собственно мое творение - ищет повторные MAC адреса в arp таблице
| Code | 1
2
3
4
5
6
7
8
9
10
| (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 - просто проходим по всем объектом, аки циклом, в фигурных скобках указывая, какие непотребства делать с каждый элементом
Теперь я готова к критике и модернизации моего маленького Франкенштейна
|