Так что у меня есть компьютер с полным доступом к внутренней сети (для того, что мне нужно сделать), и я не уверен, что это проблема кода или я не понимаю вещи.

Но я пытаюсь активировать Windows 7 HP удаленно на 300+ единиц. нет домена, все удаленные ПК являются рабочей группой. Сервер лицензий отсутствует, ключи находятся в текстовом файле, брандмауэры на обоих компьютерах. Одно имя для всех, разные Ips, и целевой компьютер имеет защищенную паролем учетную запись.

Я пытался активировать его напрямую, но продолжал блокироваться, я подумал, что это была противопожарная стена, но изо всех сил пытался отключить его напрямую, поэтому теперь я не включил File and Pritner Sharing & WMI, потому что это позволило мне активировать его без проблем. (Нет доступа в интернет)

ForEach ($IP in Get-Content "input.txt")
Invoke-Command { netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes }
psexec \\E:\FINAL\Enable FP\test.txt]][-u David [-p ] netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes

1 ответ1

0

Домен или рабочая группа, вы не можете использовать это ...

Invoke-Command

… Если не включен PowerShell Remoting, и вы используете учетную запись пользователя, которая находится в локальной группе администраторов на удаленном компьютере, и брандмауэр должен быть настроен для разрешения этого.

Настройка PSRemoting в рабочей группе требует больше шагов для его настройки.

Неделя удаленного доступа: удаленное удаленное взаимодействие

PowerShell удаленное взаимодействие между двумя компьютерами рабочей группы

Нет необходимости использовать psexec, если вы используете PSRemoting. Нет причин использовать PSRemoting, если вы используете psexec.

Единственная причина объединить psexec и PSremoting в том, что PSRemoting не позволяет вам работать на компьютере под учетной записью локального пользователя, тогда как psexec будет.

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

Ваш синтаксис Invoke-Command также неверен. Ваш синтаксис ForLoop неверен.

ForEach ($IP in (Get-Content 'input.txt'))
{
    Invoke-Command -ComputerName $IP -Credential 'domain01\user01' -ScriptBlock {
        netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes 
    }
}

какую версию PowerShell вы используете? Что вы не используете командлет брандмауэра, против Netsh?

Чтобы сделать то, что вам нужно, используйте PSRemoting или psexec.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .