Выполнение Удаленного Сеанса PowerShell С Помощью Команды Invoke-Безрезультатно

#powershell #deployment #scripting #devops #powershell-remoting

Вопрос:

В PowerShell я выполняю удаленный сеанс на сервере. Я хочу добавить файлы на удаленный сервер, чтобы они действительно жили там. При выполнении следующего кода на сервер ничего не добавляется. Почему это происходит и что можно сделать, чтобы на самом деле добавить файлы на сервер?

 Enable-PSRemoting -Force

$SomeComputer= "some-server.com"
$SomeUsername = "some-username"
$SomePassword =  ConvertTo-SecureString "some-password" -AsPlainText -Force

$SomeCredentials = New-Object System.Management.Automation.PSCredential ($SomeUsername, $SomePassword)
$SomeSession = New-PSSession -ComputerName $SomeComputer -Credential $SomeCredentials

Invoke-Command -Session $SomeSession -ScriptBlock {
    New-Item -Path "SomeFile.txt" -ItemType File
}
 

Комментарии:

1. Если вы это сделаете Invoke-Commad , указав имя компьютера и учетные данные, вам не следует сначала вводить сеанс на этом компьютере. При использовании вы Enter-PSSession запускаете интерактивный сеанс с этим удаленным компьютером , поэтому с этого момента вы, так сказать, вошли в систему и можете запускать New-Item командлет, как если бы он находился на вашей локальной машине. Кроме того, убедитесь, что вы используете полный путь к создаваемому somefile.txt вами новому.

2. Я согласен с Тео здесь, я считаю , что вы хотите, чтобы это было New-PSSession , тогда вы ссылаетесь на этот пример.

3. Я заменил Enter-PSSession на New-PSSession и теперь использую его в команде Invoke. Все равно не везет. Также спасибо за напоминание о полном пути.

4. Что, если вы попробуете использовать абсолютный путь? Вы получаете какие-либо ошибки от команды invoke?

5. Даже с таким абсолютным путем, как «C:stuff0stuff1stuff2SomeFile.txt», это не сработает. Никаких ошибок в команде invoke. Я посмотрел вверх и вниз и безрезультатно порылся в Интернете.