• Hyper-v удаленное управление VM через powershell?

    @NortheR73
    системный инженер
    Например:
    $vmhost = Get-Content "C:\Users\users1\Desktop\vm.txt" 
    If (Test-WSMan -ComputerName $vmhost -Authentication default -ErrorAction Stop)
    {
        $RS = Enter-PSSession -ComputerName $vmhost
        Invoke-Command -Session $RS -ScriptBlock {Stop-VM -Name * -Force}
        Start-Sleep -Seconds 300
        $RunningVM = Invoke-Command -Session $RS -ScriptBlock {Get-VM | Where{$_.State -eq 'Running'}}
        If (!($RunningVM))
        {
            Invoke-Command -Session $RS -ScriptBlock {stop-computer -force}
        }
        ....
    }


    1. В файле "vm.txt" одно имя или несколько? Если несколько - то после Get-Content добавится конструкция ForEach;
    2. Stop-VM -Force - если на ВМ есть активные сессии, то дается 5 минут на завершение/сохранение работы, после чего ВМ выключается. Если активных сессий нет, то ВМ останавливается сразу
    3.
    При выполнении скрипта появляется зеленная полоска "[Завершение работы]"
    - при запуске скрипта в PowerShell ISE увидите зеленую полоску
    4. А что надо видеть в логах?
    Ответ написан
    3 комментария
  • Реализуемо ли в AD при вводе машины в домен, ее уз автоматически (к примеру по названию) отправить в нужный контейнер?

    ST4NN
    @ST4NN
    Расширю вопрос и сразу дам ответ (не Posh, но тоже про AD):
    как при разворачивании машины из шаблона на ESXi сразу размещать её учётку в нужный OU (т.к. из коробки кастомизация гостевой ОС умеет вводить её в домен только c размещением в Computers)?
    - при Deploy from template нужно выбрать на 6 шаге - Customize the operating system и на 7 шаге выбрать спецификацию. Которая заранее создана в Policies and Profiles - VM Customization Specifications, в свойствах спецификации ключевой момент - Commands to run once - там указать
    cmd /C c:\windows\setup\SetupComplete.cmd
    (важно - каждая строка среди задаваемых команд ждёт выполнения предыдущей - т.е. если на к.л. этапе будет подразумеваться ребут машины - такая команда должна быть в самом конце).
    В штатном Workgroup or domain - домен не указываем, т.к. см. выше - Computers.
    И последнее условие - в шаблон машины надо поместить утилиту netdom (внимание, помимо бинарника в system32 требует и netdom.exe.mui в en-US), а так же упомянутый выше c:\windows\setup\SetupComplete.cmd:
    net start workstation
    start netdom.exe JOIN %computername% /Domain:company.com /OU:OU=Branch,DC=Company,DC=com /UserD:ServiceAccount /PasswordD:notcriticalsecretpassword /REBoot:10
    del /F /Q c:\windows\setup\SetupComplete.cmd

    Здесь ServiceAccount - учётка с правами на создание объектов типа Computer в юните Branch, и последняя команда нужна чтобы после введения машины в домен не светить пароль от ServiceAccount открытым текстом пользователям машины
    Ответ написан
    Комментировать
  • Реализуемо ли в AD при вводе машины в домен, ее уз автоматически (к примеру по названию) отправить в нужный контейнер?

    @NortheR73
    системный инженер
    возможно
    командлет Add-Computer имеет параметр OUPath
    как-то так:
    Add-Computer -DomainName Domain02 -OUPath "OU=testOU,DC=domain,DC=Domain,DC=com"
    Ответ написан
    Комментировать