Могу ли я сохранить в CMD / Batch значение, возвращаемое WMIC? - PullRequest
0 голосов
/ 25 октября 2019

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

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

Что я хочу сделать, это получить SID для текущего пользователя, вошедшего в систему, и сохранить его в переменной, которую затем я могу использовать для автоматизации изменений в реестре.

set /p asset="asset number or IP Address: "
pushd \\%asset%\c$

:: Get SID
for /f "delims= " %%a in ('"wmic path win32_useraccount where name='%UserName%' get sid"') do (
   if not "%%a"=="SID" (          
      set myvar=%%a
      goto :loop_end
   )   
)

:loop_end
echo %%myvar%%=%myvar%

:: End tasks that hold cached versions of their profile to prevent any issues
:: /T /F Allows this script to be run via remote CMD
taskkill /S %asset% /IM "Outlook.exe" /T /F
taskkill /S %asset% /IM "Communicator.exe" /T /F
taskkill /S %asset% /IM "Lync.exe" /T /F
taskkill /S %asset% /IM "Skype.exe" /T /F

timeout /t 20

:: 2007/2010
reg query "\\%asset%\HKEY_USERS\%myvar%\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"

timeout /t 30
if not ErrorLevel 1 (
  echo. "\\%asset%\HKEY_USERS\%myvar%\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook" was found
  :: reg export "%asset%\%username%\HKEY_USERS\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook" "Outlook2007.reg"
  reg delete "\\%asset%\HKEY_USERS\%myvar%\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" /f & reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook" & reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" /v DefaultProfile /t REG_SZ /d "Outlook" /F & reg add "HKCU\Software\Microsoft\Exchange\Client\Options" /v PickLogonProfile /t REG_DWORD /d "0" /f
) else (
  echo. "\\%asset%\HKEY_USERS\%myvar%\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook" not found
)

timeout /t 200

Единственная проблема, с которой я сталкиваюсь, это то, что она отображает мой собственный SID, а не зарегистрированных в данный момент пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...