আমি কীভাবে ব্যবহারকারীর প্রোফাইললিস্ট সংরক্ষণ করতে পারি এবং উপস্থিত থাকলে প্রতিটি লগন চেক করতে পারি?


0

আমি প্রতিটি পক্ষের নীচে সংরক্ষণ করার চেষ্টা করছি:

"HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList\"

কিছু ডিরেক্টরিতে এবং আমি প্রতিটি লগনে আমার ব্যাকআপ এসআইডি-র উপস্থিতি থাকা বা প্রোফাইললিস্টের অধীনে নয় নিয়ন্ত্রণ করার চেষ্টা করছি। এটি যদি না হয় তবে আমার অবশ্যই রক্ষিত প্রোফাইলগুলি আমদানি করতে হবে।

আমি যা লিখেছিলাম তা ব্যাচ স্ক্রিপ্ট দিয়ে চেষ্টা করেছি, তবে আমার স্ক্রিপ্টটি এমনটি করছে যখন কোনও ব্যবহারকারী লগইন করে এবং এটি করার পক্ষে এটি ভাল উপায় নয়!

আমি কী করতে চাই তা বুঝতে আপনার জন্য এটি ভাগ করছি।

(স্ক্রিপ্ট 1 অবশ্যই প্রশাসকের অধিকার ছাড়াই ব্যবহারকারীর অ্যাকাউন্টের সাথে চলতে হবে))

@echo on
IF EXIST D:\Users\ (goto dvar) else goto quit 
:dvar
echo dvar
setlocal enabledelayedexpansion
echo %username%>D:\Users\username.txt
for /f "tokens=2 delims= " %%i in ('whoami /user /fo table /nh') do set usersid=%%i
echo %usersid%>>D:\Users\username.txt
echo %userprofile%>>D:\Users\username.txt
IF EXIST D:\Users\%username% (goto GetUserinf) else goto quit 

:GetUserinf
for /f "tokens=1 delims=." %%a in ('echo %userprofile%') do set newpath=%%a
IF %newpath%==%userprofile% (goto quit) else goto run

:run
Dprofile2.bat

:quit
exit

(স্ক্রিপ্ট 2 অবশ্যই অ্যাডমিন সুবিধার সাথে চলতে হবে))

@echo on

(
set /p user=
set /p usersid=
set /p oldpath=
)<C:\Windows\Temp\username.txt

for /f "tokens=1 delims=." %%a in ('echo %oldpath%') do set newpath=%%a
echo OLD path %oldpath%  ---  NEW path=%newpath%

IF EXIST %newpath% (goto oldexist) else goto quit
:oldexist

:choice
set /P c=For continue "Y", For quit "N" [Y/N]?
if /I "%c%" EQU "Y" goto :reboot
if /I "%c%" EQU "N" goto :quit

:reboot
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%usersid%" /v "ProfileImagePath" /t REG_EXPAND_SZ /d "%newpath%" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "deleteprofile" /t REG_SZ /d "C:\Windows\system32\cmd.exe /q /c rmdir /s /q %oldpath%"

echo Windows Rebooting.
::shutdown -r -t 0

:quit
exit

আমি একটি শেল স্ক্রিপ্ট পেয়েছি তবে শেল ভিবিএস জানি না। আমি মনে করি শেল স্ক্রিপ্টিং সহ এটি সত্যিই সহজ কাজ।

অনুগ্রহ করে আপনি কি আমাকে সাহায্য করতে পারেন? আমি খুব শক্ত আটকেছি ...

$objUser = New-Object System.Security.Principal.NTAccount(Read-Host -Prompt "Enter Username")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
#$strSID.Value
Rename-Item -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\$($strSID.Value)" -NewName "$($strSID.Value).old"

উত্তর:


0

আপনার সবার দরকার নেই।
আপনার যা দরকার তা হল নিম্নলিখিতটি করা;

1- কিছু ডিরেক্টরিতে রেগ রফতানি করুন ".বাট"
2- সেখান থেকে নিয়মিত আমদানি করুন ".বাট"
এবং আপনার 2 ব্যাচের সময়সূচী। "প্রতিটি প্রারম্ভকালে আমদানি করুন" এবং "প্রতিটি লগন রফতানি করুন"।
এটা, উল্লাস।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.