Неужели современный Powershell может управлять устаревшими системами?


С удивлением обнаружил, что некоторые администраторы находятся в заблуждении, что новые командлеты из систем Windows 2012 R2 и Windows 10 не работают для систем предыдущих версий, и в результате пользуются старыми проверенными утилитами командной строки. Использование таких утилит нормальное явление, а вот заблуждение по поводу командлетов надо развеять.

Командлеты, как правило, используют либо вызовы WMI, либо API конкретных приложений для выполнения операций. Хорошая новость в том, что значительная часть новых командлетов использует те вызовы WMI и API, которые давно существуют – ещё со времен Windows Server 2003 и Windows XP! Безусловно WMI развивается, и в системах Windows Server 2008 и Windows 7 появились новые WMI классы. В последующих версиях WMI классов ещё больше. Тем не менее множество появившихся в новых версиях командлетов используют то, что уже было ранее в WMI и что мы ранее использовали с помощью командлета Get-WMIObject.

Так что при написании скрипта проверьте его совместимость с предыдущими версиями.

Вот, например, обращения к DHCP серверу 2008 R2

Get-DhcpServerv4Scope -ComputerName W2008R2.domain.ru

выдаст все диапазоны DHCP, а команда

Get-DnsServerZone -ComputerName W2008R2.domain.ru 

все зоны DNS.

Остальные командлеты для DNS и DHCP также работают.

А вот

 Get-SmbShare -CimSession W2008R2.domain.ru 

выдаст ошибку, т.к. пространство имен ROOT/Microsoft/Windows/SMB не существует на старых версиях. Аналогичные проблемы с другими командлетами модуля для работы с SMB.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: