2014-12-04 4 views
1

Я очень нуб с powershell и все, что было честно.Powershell - подскажите переменную, которую нужно добавить в команду

Я пытаюсь выполнить простой командный файл для выполнения и упростить учетные записи для разблокировки.

В настоящее время мне удалось создать нижеследующее на основе поиска в Google, это просто откроет учетную запись пользователя под названием «USERNAME».

-command PowerShell «& {импорт-модуля ActiveDirectory, разблокировка adaccount USERNAME}»

То, что я пытаюсь добиться устанавливает, что «USERNAME» часть в качестве переменной и создания подсказку при выполнении командный файл запрашивает имя пользователя, чтобы иметь возможность разблокировать любую введенную учетную запись.

Я пробовал искать связанные сообщения, но не могу найти способ собрать его сам. Я буду благодарен за любую помощь, которая может быть предложена!

спасибо.

ответ

2

Используйте Read-Host команду например .:

PowerShell -Command "& {$username = Read-Host "Enter username"; Import-Module ActiveDirectory; Unlock-ADAccount $username}" 
0

Посмотрите в письменной форме повторно используемых инструментов. Простые функции и скрипты.

Вызов различных команд из PowerShell.exe будет работать только для конкретного сценария, для которого вы их записываете. Функции и скрипты можно использовать везде, где они имеют смысл. Напишите что-нибудь один раз, используйте его во многих местах. Это экономит огромное количество времени и поможет вам изучить и улучшить PowerShell-ing.

Вот краткий пример! Сохраните этот код как C: \ Unlock-ADAccountSimple.ps1

param (
    $Username = (Read-Host "Enter Username") 
) 

Import-Module ActiveDirectory 
Unlock-ADAccount $Username 

Теперь вы можете использовать это в вашем сценарии. Этот запрос будет имя пользователя:

PowerShell.exe -File C:\Unlock-ADAccountSimple.ps1 

Вы также можете запустить его для конкретного пользователя:

PowerShell.exe -File C:\Unlock-ADAccountSimple.ps1 -Username jdoe 

Вы можете использовать его в сценариях вы пишете

#Inside a script, you could run it like this, with various logic before or after: 
& "C:\Unlock-ADAccountSimple.ps1" -Username Someone 

вниз линии, вы можете написать более интересные и полезные функции и объединить их в более крупные решения. Но вам нужно начать где-то, и создание небольших инструментов для повторного использования (функции/скрипты) запустит вас по пути!

Удачи вам!

+0

Я также хочу указать, что использование параметра '[Parameter (Обязательный = $ true)] $ Username' создаст тот же эффект. – kevmar

1

Если у вас есть имя пользователя в качестве параметра для вашей команды, я думаю, что Show-Command может быть тем, что вы ищете здесь.

powershell -Command "& { import-module activedirectory; Show-Command unlock-adaccount }" 

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