- PVSM.RU - https://www.pvsm.ru -
Если вы используете powershell то вы могли заметить что нельзя отправить строку на удаленную машину через Invoke-Command
Вам нужно предварительно сконевертировать строку в скриптблок
$scriptBlock = [Scriptblock]::Create($string)
пример:
$remoteCommand = @" Import-Module ActiveDirectory
New-ADOrganizationalUnit -name
"@
$scriptBlock = [Scriptblock]::Create($remoteCommand)
Invoke-Command -ComputerName AD01 -ScriptBlock $scriptBlock
можно даже сделать для этого функцию
<#
Function to Convert a String into a Script Block
#>
Param(
[Parameter(
Mandatory = $true,
ParameterSetName = '',
ValueFromPipeline = $true)]
[string]$string
)
$scriptBlock = [scriptblock]::Create($string)
return $scriptBlock
}
дополнение от переводчика:
команды можно перечислить через точку запятой так$sb = 'get-process; dir'
можно использовать так
# здесь мы динамически собираем команду подставляя в строку будущий пароль удаленной машины $sb= '$admin = [ADSI]"WinNT://localhost/admin,User"; $admin.SetPassword( "' + $new_pass + '" )'
Автор: pak-nikolai
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/powershell/114231
Ссылки в тексте:
[1] Источник: https://habrahabr.ru/post/278693/
Нажмите здесь для печати.