PowerShell — AD GPO — PcDescription

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

Все реализовывают ее по-своему. Я видел даже вариант с логон-скриптом, который пишет информацию о логоне в текстовый файл, что, на мой взгляд, является самым отвратительным и ненадежным вариантом.
Я несколько раз выполнял эту задачу в разных организациях и с каждым разом реализация становилась все интереснее, но самая последняя реализация сегодня раскрыта не будет, т.к. она включает в себя и powershell, БД, веб-интерфейс, т.е. содержит слишком много компонентов для описания в статье. Может когда-нибудь напишу.

Сегодня я расскажу о двух более простых вариантах:

Читать далее

Реклама

PowershellGallery — гдеж ты был все эти годы?

Сегодня не будет картинок, инструкций или разбора скриптов.

Сегодня я еще раз хочу напомнить всем о том, что не так давно windows начал свое путешествие назад в будущее и произошло непоправимое: разрыв простра́нственно-временно́го конти́нуума! Теперь всем Windows-администраторам придется возвращаться к консоли, а те, кто не сделают этого, вероятно, должны будут сменить проф. ориентацию.

Мы возьмем с собой в поход…
Нет, не так.
Мы возьмем с собой назад в будущее PowerShell!
Спасибо 🙂

Итак, сегодня я расскажу, какие же консольные инструменты у нас есть теперь.

Я уже писал про самое существенное, на мой взгляд,  нововведение в PowerShell 5, но тогда я только начал использовать PowershellGallery и, при этом, я ни разу не использовал technet scriptcenter gallery для того, чтоб с кем-то чем-то поделиться, а пользовался им только для поиска скриптов.

ScriptCenter — хорошая штука… была бы… лет 15-20 назад…

А сейчас это морально устаревшее УГ!

Читать далее

PowerShell, PowerShell, сколько мне лет?

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

Я часто забываю сколько мне лет и не я один, и пусть скрипт шуточный, но шутка настолько забавная, что этот скрипт я выложил на powershellgallery, посмотрим, сколько еще ITшников забывают, сколько им лет 🙂

Кстати, для тех, кто не знает про powershellgallery, установить скрипт можно так:

Install-Script Get-MyAge -Force

Читать далее

PowerShell — Дата и Время

DateTime, интересный и непознанный…

Так, у меня есть 30 дней для оплаты штрафа. А какое сегодня число? Ой, а месяц-то какой? Кажется февраль… А год не високосный ли?

Да, наплевать! Есть же (Get-Date).AddDays(30) 🙂

Итак, история…

Когда я только начинал изучать PowerShell, я увидел много интересных и непонятных вещей, но именно класс [DateTime] поразил меня больше всего.

Читать далее

Subnet contains IP? Вот в чем вопрос!

Доброго!

Сегодня маленький скриптик, который поможет вычислять входит ли IP в подсеть.

Код скрипта

Function Compare-IPinSubnet {
param (
	[string]$CIDR,
	[string]$IP
)

	[int]$PrefixLength = $CIDR -replace '^[\d\.]+(\\|\/)',''
	[string]$Subnet = $CIDR -replace '(\\|\/)\d+$',''
	$SplitSubnetBin = $Subnet -split '\.' -match '\d' | % {[convert]::ToString($_,2).PadLeft(8,'0')}
	$SubnetBin = $SplitSubnetBin -join ''
	$SplitIPBin = $IP -split '\.' -match '\d' | % {[convert]::ToString($_,2).PadLeft(8,'0')}
	$IPBin = $SplitIPBin -join ''
	[bool]$Result = $true
	for ($i = 0; $i -lt $PrefixLength; $i += 1) {
		[bool]$diff = [convert]::ToInt32(($SubnetBin[$i]),2) -eq [convert]::ToInt32(($IPBin[$i]),2)
		if ($diff -eq $false) {
			$Result = $diff
		}
	}

	$Result
}

Читать далее

PowerShell — Mac Address Vendor Database IEEE

Долгое время у меня не получалось написать этот скрипт так, чтоб самому было приятно пользоваться, предыдущая попытка называлась Resolve-MacAddress и была вполне рабочая, но там были неприятные моменты:

Перед первым использованием с сайта стандартов скачивалась база, что могло напугать неподготовленного пользователя, и скрипт не поддерживал конвейер, т.к. в нем было много много разного функционала, который вызывался через разные параметры. Нужно было как-то разнести обновление/импорт базы и саму функцию поиска мака в базе. Так появился модуль MacAddressVendorDatabaseIEEE, который включает в себя функции (Update-MacAddressDatabase, Import-MacAddressDatabase, Get-MacAddressVendor) и саму базу.

Читать далее

PowerShell — Zabbix Agent Deployment Script GPO

Предлагаю вашему вниманию скрипт для автоматизированного разворачивания zabbix-agent на доменные компьютеры с помощью gpo.

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

Все комментарии внесены в сам скрипт, который находится в самом конце инструкции.

Статья в стиле «краткая инструкция».

Читать далее