Power shell для копирования папки с одного сервера на список серверов [duplicate]

Это должно предоставить список устройств, доступных для Tensorflow (под Py-3.6):

tf = tf.Session(config=tf.ConfigProto(log_device_placement=True))
tf.list_devices()
# _DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456)
2
задан Abhishek 23 December 2015 в 22:37
поделиться

3 ответа

Я удалил команду invoke и после изменения работы логического скрипта, как и ожидалось.

$date = (Get-Date).ToString("_MMddyyyy")

#Storing servers

$Servers = Get-Content C:\server.txt

#Scanning Servers and executing 

$Servers | ForEach-Object {

#Defining Source and Destination path

$DestPath =  "d:\Temp\IIS_Logs_"+"$_"
$SourcePath = "\\$_\d$\u_ex15122717.log"

#Creating new folder for storing backup

New-Item -Path $DestPath -ItemType directory

#Copying folder

Copy-Item -Recurse -Path $SourcePath -destination $DestPath 

}
1
ответ дан Abhishek 18 August 2018 в 18:02
поделиться

Нижеприведенный код скопирует папку <local-folder-path> в удаленное местоположение, указанное в <remote-folder-path> ниже. Нижеследующие функции предполагают, что у вас уже установлены объекты $session, $MySecureCreds и $session.

$remoteFolderPath = "<remote-folder-path>"
createNewRemoteFolder $remoteFolderPath
cpItem "<local-folder-path>\*" $remoteFolderPath

function createNewRemoteFolder($newFolderPath) {

    $scriptStr = "New-Item -Path $newFolderPath -type directory -Force"
    $scriptBlock = [scriptblock]::Create($scriptStr)

    runScriptBlock $scriptBlock
}

function runScriptBlock($scriptBlock) {

    Invoke-Command -ComputerName $server -Credential $MySecureCreds -ScriptBlock $scriptBlock
}

function cpItem($from, $to) {

    Copy-Item -Path $from -Destination $to -ToSession $session -Verbose -Recurse
}
0
ответ дан Jared 18 August 2018 в 18:02
поделиться

Используете ли вы учетную запись, которая имеет права на долю администратора D $? Если вы вызываете эту команду на удаленном компьютере для локального копирования, вам не нужно ссылаться на нее как на сетевую машину, а просто: D: \ Temp \ IIS_Logs _ "+" $ CompName "

0
ответ дан Parrish 18 August 2018 в 18:02
поделиться
  • 1
    Я разрушаю скрипт через учетную запись администратора. Кроме того, когда я только что предоставил локальное расположение, подобное приведенному выше, сценарий работает нормально, а в окне отладки ISE в PowerShell отображается папка, созданная, но когда я вижу, что локальные папки локализации отсутствуют. – Abhishek 24 December 2015 в 00:21
  • 2
    на данный момент папки создаются на каждом сервере. То, что я хочу, чтобы все папки копировались на один сервер, который был встроен в каждый сервер. – Abhishek 24 December 2015 в 00:32
  • 3
    Итак, вы хотите, чтобы каждый сервер копировал свое содержимое в один UNC, который не находится на сервере, с которого вы работаете? Возможно, вы столкнулись с проблемой делегирования, когда вы разговариваете с машиной, отличной от машины, в которую вы переходите. Попробуйте с одним из серверов, сопоставляющих диск с другим сервером, который вы пытаетесь создать файлы в контексте учетной записи пользователя, которую вы используете для запуска скрипта, и делаете его постоянным, а затем пытаетесь выполнить этот диск. – Parrish 24 December 2015 в 20:43
Другие вопросы по тегам:

Похожие вопросы: