Ответы пользователя по тегу PowerShell
  • Как отдебажить Get-ADUser?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    добавьте -erroraction silentlycontinue
    А вообще не стоит искать пользователей сразу по всему AD
    ограничивайте область применения searchbase-ом
    Или у вас в AD кавардак и пользователи создавались где угодно?
    Ответ написан
  • Как с помощью Powershell найти в директории файлы по маске и изменить в них определённый текст?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    1. получим список файлов.
    есть два способа :
    Get-ChildItem d:\test -Recurse -Filter *img_*.svg

    [IO.Directory]::EnumerateFiles('d:\test\','*img_*.svg','AllDirectories')


    второй, в вашем случае, вроде должен работать быстрее, поскольку возвращает не объекты FileInfo а только путь файла.

    Дальше сразу подаем на конвейер и обрабатываем так как вам надо.
    [IO.Directory]::EnumerateFiles('d:\test\','*img_*.svg','AllDirectories') | foreach {(Get-Content $_ -raw) -replace '.png','.jpg' | Set-Content $_) }

    вроде так.
    вообще не имел дела с таким объемом файлов, и, скорее всего, все таки будет заниматься достаточно много памяти.
    Но проверять - вам )
    Ответ написан
    2 комментария
  • Не отрабатывает скрипт powershell?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    The cmdlets for Windows Server Backup are contained in a Windows PowerShell snap-in. Before you begin, you must install the cmdlet snap-in. (For instructions, see Install Windows Server Backup Tools (go.microsoft.com/fwlink/?LinkID=101794)). Then, each time you use the cmdlets, you must add the Windows Server Backup cmdlet snap-in to the instance of Windows PowerShell that you have opened by using the following command at the command prompt: C:\PS>add-pssnapin windows.serverbackup.
    Ответ написан
    4 комментария
  • Какие компоненты Windows XP/7/8/8.1/10 включены по умолчанию?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    ох уж эти комментаторы... тотее - не тотее.
    Вообще-то не тотее

    get-command *feature* | sort source
    Обращаем внимание на источники DISM и ServerManager (если не установлен rsat в системе - его скорее всего не будет, у меня всегда ставится, потому есть).
    далее ServerManager, упомянутый в ответах выше.
    get-windowsfeature
    На клиентской ОС всегда отвечает
    Get-WindowsFeature : Целевым объектом указанного командлета не может быть клиентская операционная система Windows.
    .
    Поэтому данная команда только для серверных ОС или для удалённого подключения к серверной ОС (гуглим winrm)
    В принципе, все коммандлеты servermanager-а по включению-отключению фич будут работать только на сервере (удалённо или локально).
    Для локальных компонентов смотрим на источник DISM:
    Get-WindowsOptionalFeature -online
    Get-WindowsOptionalFeature -online | Where {$_.State -eq "enabled"}
    Get-WindowsOptionalFeature -online | Where {$_.FeatureName -like "*telnet*"}

    По остальным коммандлетам DISM, я думаю, объяснений не потребуется.
    Ответ написан
    Комментировать
  • Как чистить диск натерминальном сервере?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    1. очистка системных временных файлов :
    включаете в features(компоненты) Desktop Experience (возможности рабочего стола) . Перезагружаетесь. После перезагрузки получаете стандартный cleanmgr.
    1.a настраиваете cleanmgr. ключи коммандной строки
    /sageset:n - настраиваете профиль очистки под номером n
    /sagerun:n - запускаете настроенный профиль очистки под номером n.
    и вообще читаете, например, это или другую документацию, на сайте MS например, и настраиваете под себя.
    Запускаете cleanmgr с нужными ключами по расписанию в планировщике задач.

    2. Очистка пользовательских профилей
    Включаете настройку групповой политики на этом сервере:
    Computer Configuration -> Administrative Templates -> System -> User Profiles
    Delete cached copies of roaming profiles

    Теперь при логоффе пользователя его профиль будет выноситься.
    Бывают проблемы что он не удаляется - но их надо решать отдельно.
    Так же приучаете пользователей не хранить ничего на рабочем столе-документах терминального сервера, под хранение рабочих документов выделяете отдельный диск\сетевой диск, если хранить документы на компьютере пользователя неприемлемо.
    Ну и используете remoteapp, конечно
    Ответ написан
    Комментировать
  • Как установить powershell на windows 8.1?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    powershell в windows 7 и выше поставляется по умолчанию
    так что "какую нибудь другую" версию вам ставить нет необходимости, если и ставить то только 5-ю
    5-я, верно, ставится с windows management framework (вы указали правильный KB)

    1. Проверяем версию PowerShell ( код powershell ):
    $PSVersionTable.PSVersion

    2. Проверяем версию .net (копипаст отсюда), код powershell:
    Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
    Get-ItemProperty -name Version,Release -EA 0 |
    Where { $_.PSChildName -match '^(?!S)\p{L}'} |
    Select PSChildName, Version, Release, @{
      name="Product"
      expression={
          switch($_.Release) {
            378389 { [Version]"4.5" }
            378675 { [Version]"4.5.1" }
            378758 { [Version]"4.5.1" }
            379893 { [Version]"4.5.2" }
            393295 { [Version]"4.6" }
            393297 { [Version]"4.6" }
            394254 { [Version]"4.6.1" }
            394271 { [Version]"4.6.1" }
          }
        }
    }


    Проверьте
    Ответ написан
    Комментировать
  • Как создать пользователей exchange через excel?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    для начала освойте ключ -Encoding и в коммандлете import-csv
    в частности, в сохраняемом вами формате можно использовать -Encoding OEM
    И, на всякий случай, -Delimiter для указания конкретного использующегося разделителя списков.

    Во вторых, как вам уже написали, проблема может быть буквально в каждом шаге который вы выполняете коммандлетами создания нового почтового ящика : от невозможности подключиться к сервисам exchange или отсутствия доступа на создание пользователей в соответствующей OU AD, до банальных опечаток в тексте коммандлета.

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

    $_.”fullname” зачем здесь кавычки?
    Ответ написан
    Комментировать
  • Что не так с правами?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    э, внимательно читаем вывод команды
    get-help new-item -examples

    особенно примеры с value
    кмк, вы перепутали параметры. вместо name использовали value. Первое используется для имени айтема, второе - для его содержимого.
    Ответ написан
    2 комментария
  • Как вывести на консоль наименования пулов и приложений?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    это задание? ) вообще, если вы сделаете get-command -module webadministration на сервере в powershell то узнаете много нового.
    Ответ написан
  • Где ошибка в коде PowerShell?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    по скрипту сейчас не скажу, завтра посмотрим, если еще актуально будет вам )
    Вообще, имхо, правильнее на всех компьютерах создать задачу, привязанную к событию интерактивного входа в систему.
    Для этого не нужно пользователям давать права : запись описания будет вестись от пользователя, чьи учетные данные указаны в скрипте.
    Ну и, наверное, стоит мониторить не только входы но и выходы из системы, чтобы знать, какой пользователь последним пользовался компьютером и сломал его
    Ответ написан
    1 комментарий
  • Как сделать скрипт в PowerShell?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    если по простому :
    1. сохраняете ваш файл в текстовый вид с расширением ps1
    2. кладёте в известное место
    3. дальше смотрите пункт 2 ответа MrDywar Pichugin и создаете задачу выполняющую ваш скрипт

    Возможно, дополнительно придется прописать powershell execution policy:
    Set-ExecutionPolicy RemoteSigned
    (так же политику выполнения скриптов можно прописать при создании задачи в планировщике задач через ключ -ExecutionPolicy )
    Ответ написан
    Комментировать
  • Как выгрузить список заблокированных учетных записей из AD?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    подавайте результат на конвейер и коммандлетом get-aduser проверяйте выключенность учетной записи.

    upd: -properties * не нужно, я тут погорячился :D
    Ответ написан
    3 комментария
  • Как выгрузить права пользователей в группах AD в виде таблицы?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    import-module activedirectory
    get-command -module activedirectory

    ну и как более жирная подсказка :
    get-help get-adgroup -examples
    get-help get-adgroupmember -examples

    Powershell, конечно. =)
    Ответ написан
    Комментировать
  • Как отключить компьютер при бездействии определенное время?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Для начала ответьте себе на вопрос : как вы будете определять бездействие компьютера?
    Если ваши компьютеры не уходят в сон по стандартной схеме, то есть подозрение что или бездействия, фактически, нет, или какая-то программа, сервис или устройство, не дают компьютеру уйти в сон.
    Решите эти проблемы - и не придется колхозить.
    Хотя, конечно, можете и придумать "хитрую" схему вроде : нажми раз в 15 минут всплывающую кнопку иначе компьютер взорвется уйдет в сон.
    Тогда скрипт поможет, да.
    Ответ написан
  • Какой командлет использовать для удаленной смены статических IP win 2008r2?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    $NetAdapter = Get-NetAdapter -Name $InetrfaceName
    $NetAdapter | New-NetIPAddress -IPAddress $IP1 -PrefixLength $NewNetMask
    $NetAdapter | Remove-NetIPAddress -IPAddress $IP2 -PrefixLength $NewNetMask -Confirm:$false
    $NetAdapter | Set-NetRoute -NextHop $NewGateway
    $NetAdapter | Set-DnsClientServerAddress -ServerAddresses $NewDNS1,$NewDNS2

    https://technet.microsoft.com/en-us/library/jj1308...
    Обратите внимание, что командлеты работы с сетью зачастую доступны только, начиная с windows 8\server 2012
    По приведенной ссылке на technet, например, видно, что get-netadapter доступен начиная с 8.1\2012 R2

    Для реализации вашего функционала в windows 7\server 2008 нужно или использовать netsh (пусть и в powershell скрипте) или через wmi
    Ответ написан
    Комментировать
  • Как правильно автоматизировать удаление объектов в AD?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    У вас компьютер пользователя называется полностью аналогично имени пользователя?
    Странное решение.
    Вообще, в AD компьютеры и пользователи это два разных, независимых друг от друга объекта.
    На компьютер уволенного пользователя можно посадить нового пользователя, а пересоздавать для каждого нового сотрудника компьютер с нуля, включая его ввод в домен это... странно.
    Правильнее отключать неактивные записи компьтеров, не входившие в домен в течение долгого времени.
    Но вообще вам в помощь :
    community.spiceworks.com/scripts/show/1861-find-an...
    Ответ написан
    3 комментария