none
Plz HELP:Бэкап в сетевую папку при помощи PowerShell RRS feed

  • Вопрос

  • Добрый день.

    Помогите пожалуйста разобраться. В PS я совсем новичок. Пытаюсь сделать скрипт для бэкапа определенных папок в сетевую шару. Машинку с шарой я не контролирую, только имеется адрес и локальный пользователь на удаленной машинке с правами на удаленную шару. Шары бэкап которых предстоит делать находятся на машинке в домене. Загвоздка в авторизации.

    Мой скрипт:
    Add-PSSnapin Windows.serverbackup
    #$username = 'hostname\backupuser'
    #$password = 'bupassword'
    $cred = Get-Credential
    $policy = New-WBPolicy
    $NormalFolders = New-WBFileSpec -FileSpec "E:\testback\"
    $Exfolders = New-WBFileSpec -FileSpec "E:\testback\Ex\" -Exclude
    $Endfolders = ($NormalFolders, $Exfolders)
    $volumeBackupLocation = "\\192.168.1.111\sharefolder$\"
    Add-WBFileSpec -Policy $policy $Endfolders
    Add-WBBackupTarget -Policy $policy -Target (New-WBBackupTarget -NetworkPath $volumeBackupLocation -Credential $cred)
    Set-WBSchedule -Policy $policy -Schedule 04:00
    Set-WBPolicy -Policy $policy
    

    Но при таком варианте получаю ошибку :

    Set-WBPolicy : The path to the remote shared folder \\192.168.1.111\sharefolder$\ was not found.
    At C:\Scripts\testback.ps1:11 char:13
    + Set-WBPolicy <<<<  –Policy $policy
        + CategoryInfo          : NotSpecified: (:) [Set-WBPolicy], InvalidOperationException
        + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Windows.ServerBacku
       p.Commands.SetWBPolicy

    Пробовал так:

    Add-PSSnapin Windows.serverbackup
    $username = 'hostname\backupuser'
    $password = 'bupassword'
    $Credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username,(ConvertTo-SecureString -String $password -AsPlainText -Force)
    $policy = New-WBPolicy
    $NormalFolders = New-WBFileSpec -FileSpec "E:\testback\"
    $Exfolders = New-WBFileSpec -FileSpec "E:\testback\Ex\" -Exclude
    $Endfolders = ($NormalFolders, $Exfolders)
    $volumeBackupLocation = "\\192.168.1.111\backupfolder$"
    Add-WBFileSpec -Policy $policy $Endfolders
    Add-WBBackupTarget -Policy $policy -Target (New-WBBackupTarget -NetworkPath $volumeBackupLocation -Credential $Credential)
    Set-WBSchedule -Policy $policy -Schedule 04:00
    Set-WBPolicy -Policy $policy

    Получаю туже ошибку.

    Сетевой диск стандартными средствами подключается. Как можно подключить сетевой диск в PS с альтернативными credentials

    Если можно то, пожалуйста, поподробней, в PS совсем новичек.

    21 апреля 2014 г. 15:35

Ответы

Все ответы

  • 1) Для PowerShell v3 и выше: http://blogs.msdn.com/b/powershell/archive/2012/06/21/improving-the-filesystem-provider-through-community-feedback.aspx

    2) Для PowerShell v2:

    $net = new-object -ComObject WScript.Network
    $net.MapNetworkDrive("z:", "\\server\share", $false, "domain\user", "password")

    • Помечено в качестве ответа linder008 23 апреля 2014 г. 7:50
    21 апреля 2014 г. 15:56
    Отвечающий
  • Диски примонтировал, но появилось 2 проблемы:

    1:

    Add-WBBackupTarget -Policy $policy -Target (New-WBBackupTarget -NetworkPath Y:)
    
    или
    
    Add-WBBackupTarget -Policy $policy -Target (New-WBBackupTarget -VolumePath Y:)


    Ошибка:

    Set-WBPolicy : The credentials entered are either incorrect or do not have write permissions 
    to the remote shared folder. Please specify valid credentials.
    At C:\Scripts\testback.ps1:15 char:13
    + Set-WBPolicy <<<<  -Policy $policy
        + CategoryInfo          : NotSpecified: (:) [Set-WBPolicy], InvalidOperationException
        + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Windows.ServerBacku 
       p.Commands.SetWBPolicy

    Также при попытке отмонтировать(

    $net.RemoveNetworkDrive("Y:")

    ) и повторно примонтировать дмск, используя ту-же букву (в примере Y) 

    Получаю ошибку -

    При попытке посмотреть диск Get-PSDrive -Name Y

    Get-PSDrive : Cannot find drive. A drive with the name 'Y' does not exist.
    At line:1 char:12
    + Get-PSDrive <<<<  -Name Y
        + CategoryInfo          : ObjectNotFound: (Y:String) [Get-PSDrive], DriveNotFoundExcepti
       on
        + FullyQualifiedErrorId : GetLo

    А при попытке повторно его примонтировать -

    Exception calling "MapNetworkDrive" with "5" argument(s): "The local device name is already i
    n use.

    21 апреля 2014 г. 17:01
  • Команды подключения диска выполняются в конктексте скрипта?
    21 апреля 2014 г. 17:23
    Отвечающий
  • Пробовал и отдельно монтировать диск, потом пытаться туда отправить бэкап.

    Пробовал в скрипте бэкапа до создания политики монтировать диск.

    Ни так ни так не получается - ошибки одинаковые. Ошибки указаны выше.

    21 апреля 2014 г. 17:42
  • Вы запускаете скрипт Run As Administrator? Или если в task scheduler с highest priv?

    Еще,как вариант - http://technet.microsoft.com/en-us/library/ee844140(v=ws.10).aspx

    • Помечено в качестве ответа linder008 23 апреля 2014 г. 7:50
    21 апреля 2014 г. 17:51
    Отвечающий
  • Windows powershell ISE запущена под учеткой доменного админа с повышенными правами. ОС - Windows Server 2008R2 UAC отключать там не очень бы хотелось
    21 апреля 2014 г. 17:58
  • Windows powershell ISE запущена под учеткой доменного админа с повышенными правами. ОС - Windows Server 2008R2 UAC отключать там не очень бы хотелось

    Не совсем правильно прочитали.

    Applies To: Windows Server 2008 R2

    Symptom

    After you turn on User Account Control (UAC) in Windows Vista or Windows 7, programs may not be able to access some network locations. This problem may also occur when you use the command prompt to access a network location.

    Но для начала,я бы попробовал в консоли powershell,а не в ISE.

    21 апреля 2014 г. 18:13
    Отвечающий
  • Но для начала,я бы попробовал в консоли powershell,а не в ISE.

    Ввиду моей непросвещенности в нюансах PS спрошу, - а есть разница? Там же в одном из оккон можно выполнять все как в консоли PS или всетаки есть разница?
    21 апреля 2014 г. 19:35