2012-01-11 3 views
0

Я пытаюсь включить-PSRemoting с Psexec на своих серверах с помощью следующей команды:Начиная Powershell повышен с Psexec (включить-PSRemoting)

psexec.exe \\server cmd /c "echo . | powershell (-verb runas -argumentlist (enable-psremoting -force))" 

, но он не работает. Я предполагаю, что я испортил свои двойные кавычки. Любая помощь?

Суне :)

+1

«он не работает» не работает. :) Вам нужно предоставить конкретную информацию о том, что означает «она не работает», включая сообщение о точной ошибке *, которое вы получаете, если вы его получите. Пожалуйста, помните, что мы не можем читать ваш экран (или ваш разум) здесь, поэтому единственное, что нам нужно, это то, что вы говорите нам в своем вопросе. Пожалуйста, отредактируйте свой пост и укажите более конкретную информацию, чтобы кто-то здесь мог попробовать и помочь вам. Благодарю. :) –

+0

Вы используете psexec.exe из PowerShell или cmd.exe? –

ответ

0

Спасибо за комментирование всех! Я узнал, как это сделать, и это завершенная код:

$user = "youruser" 
$p = Read-Host "Enter domain password for $adminuser" 
cls 

$expression1 = "enable-psremoting -force" 
$commandBytes1 = [System.Text.Encoding]::Unicode.GetBytes($expression1) 
$encodedCommand1 = [Convert]::ToBase64String($commandBytes1) 

$expression2 = "Set-ExecutionPolicy remotesigned -Force” 
$commandBytes2 = [System.Text.Encoding]::Unicode.GetBytes($expression2) 
$encodedCommand2 = [Convert]::ToBase64String($commandBytes2) 

$expression3 = "Restart-Service winrm” 
$commandBytes3 = [System.Text.Encoding]::Unicode.GetBytes($expression3) 
$encodedCommand3 = [Convert]::ToBase64String($commandBytes3) 

foreach ($server in (get-content c:\temp\enablepsremotinglist.txt)) 
{ 
    echo " " 
    echo "Running on $server" 
    echo "--------------------------------------- " 
    echo " "  
    psexec.exe \\$server -h -u no\$user -p $p cmd /c "echo . | powershell -EncodedCommand $encodedCommand1" 
    psexec.exe \\$server -h -u no\$user -p $p cmd /c "echo . | powershell -EncodedCommand $encodedCommand2" 
    psexec.exe \\$server -h -u no\$user -p $p cmd /c "echo . | powershell -EncodedCommand $encodedCommand3" 
} 

Я надеюсь, что это может помочь кому-то еще один день :) PS: Пожалуйста, имейте в виду, что это отправить AdminPassword ясно текст ..

0

Похоже, что вы пытаетесь вызвать PowerShell, чтобы запустить повышено. Это не может быть возможно сделать удалена ... Я был в состоянии получить эту работу на машину без UAC включен (сервер 2003):

$c = Get-Credential 
$u = $c.UserName 
$p = $c.GetNetworkCredential().Password 

$path = "C:\SysinternalsSuite" 
& "$path\psexec.exe" \\server -u $u -p $p powershell.exe -Command "Enable-PSRemoting -Force" 

По какой-то причине, хотя мне пришлось нажать ввести пару раз на оболочку, чтобы он продолжал выплевывать вывод и, в конце концов, возвращал мне запрос. Не уверен, что с этим ...

1

Для этого вам не нужен PSExec. Проверьте этот скрипт разработчиком PowerShell Ли.

http://poshcode.org/2141

+0

Это работает только с Vista и позже. Я запускаю Server 2003 :( – Sune

Смежные вопросы