Создание пакета для удаленного воссоздания профиля пользователя win 7
Я делаю пакет ниже в корпоративной среде win 7, которая удаленно воссоздает профиль пользователя. Я знаю, что код может быть более эффективным, но все это работает, кроме случаев, когда необходимо удалить запись реестра на компьютере пользователя для их профиля. Я не уверен, как мне найти их конкретную запись, а затем удалить ее. Ребята, не могли бы вы взглянуть? Также приветствуются любые улучшения кода. У меня все еще есть проблемы со всей графикой "RWM" вверху, но это сейчас не важно. Вы увидите, откроете ли вы партию.
@echo off
MODE 75,30
::Notes
::Remote Workstation Manager BETA unreleased
::
::
:start
cls
TITLE Remote Workstation Manager BETA unreleased
::Declarations
setLocal EnableDelayedExpansion
set date=%date:~4,2%%date:~7,2%%date:~10,4%%
color 0a
echo.&echo.&echo.&echo.&echo.&echo.
SET /P ".= "<nul &Call :Color 0E " ###### # # # # " end&echo.
SET /P ".= "<nul &Call :Color 0E " # # # # # ## ## " end&echo.
SET /P ".= "<nul &Call :Color 0E " # # # # # # # # # " end&echo.
SET /P ".= "<nul &Call :Color 0E " ###### # # # # # # " end&echo.
SET /P ".= "<nul &Call :Color 0E " # # ### # # # ### # # " end&echo.
SET /P ".= "<nul &Call :Color 0E " # # ### # # # ### # # " end&echo.
SET /P ".= "<nul &Call :Color 0E " # # ### ## ## ### # # " end&echo.
echo.
SET /P ".= "<nul &Call :Color 09 "=================================" end&echo.
SET /P ".= "<nul &Call :Color 09 "=" &Call :Color 0C " R" &Call :Color 0f "emote" &Call :Color 0C " W" &Call :Color 0f "orkstation" &Call :Color 0C " M" &Call :Color 0f "anager v1" &Call :Color 09 " =" end&echo.
SET /P ".= "<nul &Call :Color 09 "=================================" end&echo.&echo.&echo.
echo 1. - Recreate Windows User Profile
::Restarts Users Laptop and when at Login Screen
echo.0. - Exits
set /p input=Choose a number and press enter:
if %input%==1 goto :1
if %input%==0 goto :0
:1
cls
@echo off
TITLE Recreating Windows Profile
set /p ip= Enter the computers IP or Workstation Name:
echo The ip is %ip%
set /p username= Enter the users EUID:
echo The username is %USERNAME%
cls
echo Press enter to restart the users machine.
echo.
pause
xcopy "\\utils\h$\Utilities\Restore.bat" "\\%ip%\c$\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup" /i /y
cls
echo Restarting users PC . . .
@echo off
shutdown -r -f -t 1 -m \\%ip%
@echo off
:loop
Timeout /t 15
ping -n 1 %ip% >null
if %ERRORLEVEL% EQU 0 goto :loop
if %ERRORLEVEL% EQU 1 goto :continue2
:continue2
cls
@echo off
echo Waiting for Startup . . .
:retry
Timeout /t 2
IF NOT EXIST "\\%ip%\c$\Users\%USERNAME%\" goto :retry
IF EXIST "\\%ip%\c$\Users\%USERNAME%\" goto :continue3
:continue3
Timeout /t 10
cls
echo Refreshing profile . . .
rmdir "\\%ip%\c$\Users\Temp" /s /q
rmdir "\\%ip%\c$\Users\Temp.COF" /s /q
rename "\\%ip%\c$\Users\%USERNAME%" %USERNAME%.%date%
echo.
echo Complete.
Timeout /t 10
cls
echo Waiting for the User to log in . . .
:retry2
sleep 2
IF NOT EXIST "\\%ip%\c$\Users\%USERNAME%\" goto :retry2
IF EXIST "\\%ip%\c$\Users\%USERNAME%\" goto :continue4
:continue4
cls
echo Completed. Wait for new profile to be created and verify the users data has been restored.
echo.
pause
goto :start
0:
exit
2 ответа
В powershell вы можете использовать:
gci "HKLM:\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList" -rec -ea SilentlyContinue | % { if((get-itemproperty -Path $_.PsPath) -match "techid") { $_.PsPath} } | Remove-Item
Вы можете использовать инструмент, специально предназначенный для этой задачи (чистое удаление профиля пользователя как из представления папок, так и из представления реестра) Delprof http://www.microsoft.com/en-us/download/details.aspx?id=5405&751be11f-ede8-5a0c-058c-2ee190a24fa6=True выполните эту задачу. Вы также можете взглянуть на новый (неофициальный) инструмент под названием Delprof 2 ( http://www.edugeek.net/forums/windows-7/75098-delprof2-unofficial-successor-microsoft-s-delprof-user-profile-deletion-tool.html)
Вы могли бы объяснить больше о том, что вы подразумеваете под "воссозданием" профиля пользователя, вы просто хотите стереть профиль пользователя и позволить Windows воссоздать его и добавить пакет в папку автозагрузки, которая будет выполнять некоторые настройки?