2015-06-29 5 views
0

У меня есть следующий скрипт, который экспортирует все профили widi endusers.powershell netsh importing xml профили

netsh wlan export profile folder="\\server\%username%\Wireless" 
Powershell.exe -executionpolicy unrestricted -File wireless_backup.ps1 

Затем имена профилей помещаются в .CSV, используя «wireless_backup.ps1». Вот wireless_backup.ps1.

Get-ChildItem "\\server\$env:username\Wireless" | Select Name | Export-CSV -path '\\server\$env:username\Wireless' 

Все перечисленные работы прекрасны .... Восстановление этих профилей на другой компьютер - это то место, где я застреваю. Вот сценарий восстановления.

Powershell.exe -executionpolicy unrestricted -File wireless_restore.ps1 

wireless_restore.ps1 содержит этот бит кода.

$ProfileList=IMPORT-CSV \\server\$env:username\Wireless\wireless.csv 

FOREACH ($Profile in $ProfileList) { 
netsh wlan add profile filename= $Profile.name 
} 

Мое предположение заключалось в том, что профили Wifi автоматически добавят себя на ПК. Я не знаю, где я ошибся. Пожалуйста помоги!

обновление Мой босс не хочет использовать MS User State Migration по какой-то причине, но мы делаем массовое Визуальная. Мне нужен был способ легко сделать резервные копии всех следующих: данные профиля пользователя, хромированные закладки, резервные копии itunes, файлы Outlook PST, принтеры, профили беспроводной сети, автоматическое завершение Outlook, обои и несколько других вещей.

вот скрипт резервного копирования я придумал

REM FORCE OUTLOOK CLOSED, PST FILES WILL NOT BACKUP IF IN USE 
cscript "\\server\outlook.vbs" 

REM BACKUP USERS PROFILE 
xcopy "%userprofile%" "\\server\%username%\%username%" /e /y /i 

REM BACKUP SIGNATURES 
xcopy "%appdata%\microsoft\signatures" "\\server\%username%\Signatures" /e /y /i 

REM BACKUP PINNED TASKBAR ITEMS 
xcopy "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" "\\server\%username%\TaskBar" /e /y /i 

REM BACKUP OUTLOOK ARCHIVES PST OUTLOOK MUST BE CLOSED 
xcopy "C:\Users\%username%\AppData\Local\Microsoft\Outlook\*.pst" "\\server\%username%\Outlook" /y /i 

REM BACKUP CHROME BOOKMARKS 
xcopy "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default" "\\server\%username%\Chrome" /e /y /i 

REM BACKUP iTUNES MOBILE BACKUPS 
xcopy "C:\Users\%username%\AppData\Roaming\Apple Computer\MobileSync" "\\server\%username%\MobileSync" /e /y /i 

REM BACKUP ADVANCED COLOR SETTINGS 
REG EXPORT "HKCU\Control Panel\Colors" "\\server\%username%\Wallpaper\Colors1.reg" /y 

REM BACKUP ADVANCED COLOR SETTINGS 
REG EXPORT "HKCU\Control Panel\Desktop\Colors" "\\server\%username%\Wallpaper\Colors2.reg" /y 

REM BACKUP DESKTOP BG SETTINGS 
REG EXPORT "HKCU\Control Panel\Desktop\WindowMetrics" "\\server\%username%\Wallpaper\WindowMetrics_Backup.reg" /y 

REM START WALLPAPER BACKUP SCRIPT 
Powershell.exe -executionpolicy remotesigned -File "wallpaper.ps1" 

    wallpaper.ps1 looks like this 
    $wallpaper = (Get-ItemProperty 'hkcu:\control panel\desktop\' -Name Wallpaper).Wallpaper 
    xcopy $wallpaper "\\itmdtren\z$\backup\$env:username\Wallpaper\" 

REM EXPORTS ALL CURRENTLY INSTALLED PRINTERS TO CSV 
Powershell.exe -executionpolicy unrestricted -File "\\itmdtren\z$\backup scripts\print_backup.ps1" 

    printer_backup.ps1 looks like this 
    Get-WMIObject -class Win32_Printer -computer $env:computername | Select Name | Export-CSV 

REM EXPORT ALL XML WLAN PROFILES TO BACKUP 
netsh wlan export profile folder="\\itmdtren\z$\backup\%username%\Wireless" 

REM EXPORTS NAMES OF ALL WLAN PROFILES TO CSV 
Powershell.exe -executionpolicy unrestricted -File "\\itmdtren\z$\backup scripts\wireless_backup.ps1" 

    wireless_backup.ps1 looks like this 
    Get-ChildItem "\\itmdtren\z$\backup\$env:username\Wireless" | Select Name | Export-CSV -path '\\itmdtren\z$\backup\$env:username\Wireless\wireless.csv' 

После того как я образа компьютера, прологиниться в качестве пользователя и запустите следующий сценарий. Здесь ваши ответы помогли! Как видите, сценарий экспорта профиля wifi представляет собой модифицированную версию сценария резервного копирования принтера, показанного выше.

REM FORCE OUTLOOK CLOSED 
cscript "\\itmdtren\z$\backup scripts\outlook.vbs" 

REM RESTORE USERS PROFILE 
xcopy "\\itmdtren\z$\backup\%username%\%username%" "%userprofile%" /e /y /i 

REM RESTORE SIGNATURES 
xcopy "\\itmdtren\z$\backup\%username%\Signatures" "%appdata%\microsoft\signatures" /e /y /i 

REM THIS LINE NOT USED RESTORE TASKBAR 
REM xcopy "\\itmdtren\z$\backup\%username%\TaskBar" "%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" /e /y /i 

REM RESTORE OUTLOOK DATA FILES PST 
xcopy "\\itmdtren\z$\backup\%username%\Outlook\*.pst" "C:\Users\%username%\Documents\Outlook Files" /y /i 

REM RESTORE USER DEFAULT CHROME BOOKMARKS/SETTINGS 
xcopy "\\itmdtren\z$\backup\%username%\Chrome" "C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default" /e /y /i 

REM RESTORE ITUENS BACKUPS 
xcopy "\\itmdtren\z$\backup\%username%\MobileSync" "C:\Users\%username%\AppData\Roaming\Apple Computer\MobileSync" /e /y /i 

REM RESTORE ADVANCED DISPLAY SETTINGS 
REG import "\\itmdtren\z$\backup\%username%\Wallpaper\Colors1.reg" 
REG import "\\itmdtren\z$\backup\%username%\Wallpaper\Colors2.reg" 
REG import "\\itmdtren\z$\backup\%username%\Wallpaper\WindowMetrics_Backup.reg" 

REM wallpaperchanger.exe IS A COMMANDLINE UTILITY THAT RANDOMLY SELECTS A IMAGE FROM A FOLDER, CONVERTS TO BMP, COPIES TO USER PROFILE AND SETS BACKGROUD 
"\\itmdtren\z$\backup scripts\WallpaperChanger.exe" "\\itmdtren\z$\backup\%username%\Wallpaper" 2 "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Themes" 

REM FORCE UPDATE USER SYSTEM PARAMETERS 
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters 

REM RESTORE PRINTERS FROM CSV 
Powershell.exe -executionpolicy unrestricted -File "\\itmdtren\z$\backup scripts\print_restore.ps1" 

    print_restore.ps1 looks like this 
    $PrinterList=IMPORT-CSV \\itmdtren\z$\backup\$env:username\Printers\printer_export.csv 

    FOREACH ($Printer in $PrinterList) { 
    Start-Sleep -s 10 
    Invoke-Expression 'rundll32 printui.dll PrintUIEntry /in /q /n $($Printer.Name)' 
    } 

REM RESTORE XML WLAN PROFILES FROM CSV 
Powershell.exe -executionpolicy unrestricted -File "\\itmdtren\z$\backup scripts\wireless_restore.ps1" 

    wireless_restore.ps1 looks like this 
    $ProfileList=IMPORT-CSV \\itmdtren\z$\backup\$env:username\Wireless\wireless.csv 

    FOREACH ($Profile in $ProfileList) { 
    $fullname = Join-Path "\\itmdtren\z$\backup\$env:username\Wireless" $profile.name 
    netsh wlan add profile filename= $fullname 
    } 

Это то, что резервная копия пользователя выглядит как после того, как скрипт завершает enter image description here

как вы можете видеть все беспроводные профили XML действительно экспортируются и сценарий PowerShell поместить имена всех этих файлов csv. enter image description here

здесь является то, что CSV выглядит

enter image description here

скрипт PowerShell не будет работать на локальных принтерах, но мы можем использовать printbrm.exe, чтобы поддержать тех, кто с драйверами. он действительно работал для всех сетевых принтеров. enter image description here

Сценарий восстановления полностью переносит все это на новый ПК без каких-либо проблем, и я обязан всем этим членам Stackoverflow!

ответ

0

$ Profile.Name не достаточно, вы должны обеспечить полный путь Unc,

попробовать этот

FOREACH ($Profile in $ProfileList) { 
$fullname = Join-Path "\\server\$env:username\Wireless" $profile.name 
netsh wlan add profile filename= $fullname 
} 
+0

Я скопировал и вставил ваш код точно так, как показано, и это сработало! Пожалуйста, ознакомьтесь с обновлением в моем оригинальном посте !! – Blake

0

я еще проверить, но я думаю, что я с Avshalom на этом с каков источник проблемы. Имя - это просто имя файла и расширение. Это не полный путь к файлу, который вы должны использовать для получения согласованных результатов.Возможно, если текущий каталог в сеансе PowerShell был \\server\%username%\Wireless, то у вас может не возникнет проблема.

Без тестирования, поскольку у меня нет профиля беспроводной связи на этом компьютере. Я предлагаю вам полностью отказаться от CSV, поскольку вы все равно хотите только одно. Я не знаю, была ли это опечатка, но вы экспортируете не тот путь, который вы хотите. В сценарии восстановления вы используете \\server\$env:username\Wireless\wireless.txt, но в вашем сценарии резервного копирования мы видим \\server\$env:username\Wireless. Предполагая, что у вас есть разрешения, вы увидите файл «Wireless» под номером \\server\$env:username.

wireless_backup.ps1

Get-ChildItem "\\server\$env:username\Wireless" | Select-Object -Expand FullName | Set-Content -path '\\server\$env:username\Wireless\wireless.txt' 

wireless_restore.ps1

$ProfileList=Get-Content \\server\$env:username\Wireless\wireless.txt 

FOREACH ($Profile in $ProfileList) { 
    netsh wlan add profile filename=$Profile 
} 

FYI я не знаю (но нахожусь в процессе поиска вверх), если это является подходящим способом для экспорта профилей беспроводных ,

+0

Хотелось бы, чтобы я мог отметить оба ответа как правильно! Пожалуйста, ознакомьтесь с обновлением в моем оригинальном посте !! – Blake