#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. Я посмотрел вверх и вниз и безрезультатно порылся в Интернете.