Added from Evernote export
This commit is contained in:
4
Powershell/From Evernote/Connect_To_365.ps1
Normal file
4
Powershell/From Evernote/Connect_To_365.ps1
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
Set-ExecutionPolicy RemoteSigned
|
||||||
|
$UserCredential = Get-Credential
|
||||||
|
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
|
||||||
|
Import-PSSession $Session
|
||||||
1
Powershell/From Evernote/Disconnect_From_365.ps1
Normal file
1
Powershell/From Evernote/Disconnect_From_365.ps1
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Remove-PSSession $Session
|
||||||
@@ -0,0 +1,487 @@
|
|||||||
|
@echo off
|
||||||
|
cls
|
||||||
|
echo.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
echo Paste or write the complete path to install.esd or install.wim file
|
||||||
|
echo ^(without quotes marks "" even if the path contains spaces^)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
echo.
|
||||||
|
set /p WIMFILE=
|
||||||
|
if "%WIMFILE%"=="" echo Incorrect file name or path&echo.&PAUSE&GOTO :QUIT
|
||||||
|
|
||||||
|
title ESD ^<^> WIM
|
||||||
|
color 1f
|
||||||
|
%windir%\system32\reg.exe query "HKU\S-1-5-19" >nul 2>&1 || (
|
||||||
|
echo -------
|
||||||
|
echo *** WARNING ***
|
||||||
|
echo -------
|
||||||
|
echo.
|
||||||
|
echo.
|
||||||
|
echo ADMINISTRATOR PRIVILEGES NOT DETECTED
|
||||||
|
echo ____________________________________________________________________________
|
||||||
|
echo.
|
||||||
|
echo This script require administrator privileges.
|
||||||
|
echo.
|
||||||
|
echo To do so, right click on this script and select 'Run as administrator'
|
||||||
|
echo.
|
||||||
|
echo.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit...
|
||||||
|
pause >nul
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
cd /d "%~dp0"
|
||||||
|
if exist "%CD%\dism\dism.exe" set Path=%CD%\dism;%Path%
|
||||||
|
SET ERRORTEMP=
|
||||||
|
set /A count=0
|
||||||
|
|
||||||
|
dism /get-wiminfo /wimfile:"%WIMFILE%" >nul 2>&1 || (
|
||||||
|
echo.
|
||||||
|
echo Incorrect file name or path
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
setlocal EnableDelayedExpansion
|
||||||
|
FOR /F "tokens=2 delims=: " %%i IN ('dism /english /Get-WimInfo /WimFile:"%WIMFILE%" ^| findstr "Index"') DO SET images=%%i
|
||||||
|
for /L %%i in (1, 1, %images%) do call :setcount %%i
|
||||||
|
|
||||||
|
if "%WIMFILE:~-3%"=="esd" GOTO :ESDMENU
|
||||||
|
if "%WIMFILE:~-3%"=="wim" GOTO :WIMMENU
|
||||||
|
exit
|
||||||
|
|
||||||
|
:setcount
|
||||||
|
set /A count+=1
|
||||||
|
for /f "tokens=1* delims=: " %%i in ('dism /english /get-wiminfo /wimfile:"%WIMFILE%" /index:%1 ^| find /i "Name"') do set name%count%="%%j"
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:ESDMENU
|
||||||
|
cls
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Detected ESD file contains %images% indexes:
|
||||||
|
ECHO.
|
||||||
|
for /L %%i in (1, 1, %images%) do (
|
||||||
|
ECHO. %%i. !name%%i!
|
||||||
|
)
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Options:
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. 1 - Export 1st index
|
||||||
|
ECHO. 2 - Export all indexes
|
||||||
|
ECHO. 3 - Export selected single index
|
||||||
|
ECHO. 4 - Export selected range of indexes
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Press 'Q' to Quit
|
||||||
|
ECHO ===============================================================================
|
||||||
|
|
||||||
|
choice /c 1234q /n /m "Choose a menu option, or Q to quit: "
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP%==1 GOTO :ESD1
|
||||||
|
IF %ERRORTEMP%==2 GOTO :ESD2
|
||||||
|
IF %ERRORTEMP%==3 GOTO :ESD3
|
||||||
|
IF %ERRORTEMP%==4 GOTO :ESD4
|
||||||
|
IF %ERRORTEMP%==5 GOTO :QUIT
|
||||||
|
GOTO :MAINMENU
|
||||||
|
|
||||||
|
:ESD1
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.wim" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.wim file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting ESD Index 1 to a new install.wim file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
mkdir temp
|
||||||
|
dism /Quiet /Capture-Image /ImageFile:install.wim /CaptureDir:.\temp /Name:container /Compress:max /CheckIntegrity
|
||||||
|
rmdir /s /q temp
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:1 /DestinationImageFile:install.wim /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
dism /Quiet /Delete-Image /ImageFile:install.wim /Index:1 /CheckIntegrity
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:ESD2
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.wim" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.wim file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting ESD Index 1 to a new install.wim file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
mkdir temp
|
||||||
|
dism /Quiet /Capture-Image /ImageFile:install.wim /CaptureDir:.\temp /Name:container /Compress:max /CheckIntegrity
|
||||||
|
rmdir /s /q temp
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:1 /DestinationImageFile:install.wim /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
dism /Quiet /Delete-Image /ImageFile:install.wim /Index:1 /CheckIntegrity
|
||||||
|
|
||||||
|
if "%images%"=="1" (
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
|
||||||
|
for /L %%i in (2, 1, %images%) do (
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting ESD Index %%i to install.wim file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%%i /DestinationImageFile:install.wim /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
)
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:ESD3
|
||||||
|
cls
|
||||||
|
set _index=
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Detected ESD file contains %images% indexes:
|
||||||
|
ECHO.
|
||||||
|
for /L %%i in (1, 1, %images%) do (
|
||||||
|
ECHO. %%i. !name%%i!
|
||||||
|
)
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter desired index number to export
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter zero '0' to go back to Main Menu
|
||||||
|
ECHO ===============================================================================
|
||||||
|
set /p _index= ^>
|
||||||
|
if /i "%_index%"=="0" goto :ESDMENU
|
||||||
|
if [%_index%]==[] goto :ESD3
|
||||||
|
if /i %_index% GTR %images% echo.&echo Selected number is higher than available indexes&echo.&PAUSE&goto :ESD3
|
||||||
|
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.wim" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.wim file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting ESD Index %_index% to a new install.wim file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
mkdir temp
|
||||||
|
dism /Quiet /Capture-Image /ImageFile:install.wim /CaptureDir:.\temp /Name:container /Compress:max /CheckIntegrity
|
||||||
|
rmdir /s /q temp
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%_index% /DestinationImageFile:install.wim /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
dism /Quiet /Delete-Image /ImageFile:install.wim /Index:1 /CheckIntegrity
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:ESD4
|
||||||
|
cls
|
||||||
|
set _range=
|
||||||
|
set _start=
|
||||||
|
set _end=
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Detected ESD file contains %images% indexes:
|
||||||
|
ECHO.
|
||||||
|
for /L %%i in (1, 1, %images%) do (
|
||||||
|
ECHO. %%i. !name%%i!
|
||||||
|
)
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter desired Range of indexes to export: Start-End
|
||||||
|
ECHO. Example: 2-4 or 1-3 or 3-4
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter zero '0' to go back to Main Menu
|
||||||
|
ECHO ===============================================================================
|
||||||
|
set /p _range= ^>
|
||||||
|
if /i "%_range%"=="0" goto :ESDMENU
|
||||||
|
if [%_range%]==[] goto :ESD4
|
||||||
|
for /f "tokens=1 delims=-" %%i in ('echo %_range%') do set _start=%%i
|
||||||
|
for /f "tokens=2 delims=-" %%i in ('echo %_range%') do set _end=%%i
|
||||||
|
if /i %_start% GTR %images% echo.&echo Range Start is higher than available indexes&echo.&PAUSE&goto :ESD4
|
||||||
|
if /i %_end% GTR %images% echo.&echo Range End is higher than available indexes&echo.&PAUSE&goto :ESD4
|
||||||
|
if /i %_start% EQU %_end% echo.&echo Range Start and End are equal. Use option 3 of main menu to export single index&echo.&PAUSE&goto :ESDMENU
|
||||||
|
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.wim" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.wim file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting ESD Index %_start% to a new install.wim file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
mkdir temp
|
||||||
|
dism /Quiet /Capture-Image /ImageFile:install.wim /CaptureDir:.\temp /Name:container /Compress:max /CheckIntegrity
|
||||||
|
rmdir /s /q temp
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%_start% /DestinationImageFile:install.wim /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
dism /Quiet /Delete-Image /ImageFile:install.wim /Index:1 /CheckIntegrity
|
||||||
|
|
||||||
|
set /a _start+=1
|
||||||
|
for /L %%i in (%_start%, 1, %_end%) do (
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting ESD Index %%i to install.wim file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%%i /DestinationImageFile:install.wim /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
)
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:WIMMENU
|
||||||
|
cls
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Detected WIM file contains %images% indexes:
|
||||||
|
ECHO.
|
||||||
|
for /L %%i in (1, 1, %images%) do (
|
||||||
|
ECHO. %%i. !name%%i!
|
||||||
|
)
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Options:
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. 1 - Export 1st index
|
||||||
|
ECHO. 2 - Export all indexes
|
||||||
|
ECHO. 3 - Export selected single index
|
||||||
|
ECHO. 4 - Export selected range of indexes
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Press 'Q' to Quit
|
||||||
|
ECHO ===============================================================================
|
||||||
|
|
||||||
|
choice /c 1234q /n /m "Choose a menu option, or Q to quit: "
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP%==1 GOTO :WIM1
|
||||||
|
IF %ERRORTEMP%==2 GOTO :WIM2
|
||||||
|
IF %ERRORTEMP%==3 GOTO :WIM3
|
||||||
|
IF %ERRORTEMP%==4 GOTO :WIM4
|
||||||
|
IF %ERRORTEMP%==5 GOTO :QUIT
|
||||||
|
GOTO :MAINMENU
|
||||||
|
|
||||||
|
:WIM1
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.esd" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.esd file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting WIM Index 1 to a new install.esd file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
echo.
|
||||||
|
echo *** This will require some time, high CPU and Disk usage, please be patient ***
|
||||||
|
echo.
|
||||||
|
dism /export-image /sourceimagefile:"%WIMFILE%" /Sourceindex:1 /destinationimagefile:install.esd /compress:recovery /checkintegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:WIM2
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.esd" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.esd file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting WIM Index 1 to a new install.esd file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
echo.
|
||||||
|
echo *** This will require some time, high CPU and Disk usage, please be patient ***
|
||||||
|
echo.
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /Sourceindex:1 /DestinationImageFile:install.esd /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
|
||||||
|
if "%images%"=="1" (
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
|
||||||
|
for /L %%i in (2, 1, %images%) do (
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting WIM Index %%i to install.esd file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%%i /DestinationImageFile:install.esd /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
)
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:WIM3
|
||||||
|
cls
|
||||||
|
set _index=
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Detected WIM file contains %images% indexes:
|
||||||
|
ECHO.
|
||||||
|
for /L %%i in (1, 1, %images%) do (
|
||||||
|
ECHO. %%i. !name%%i!
|
||||||
|
)
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter desired index number to export
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter zero '0' to go back to Main Menu
|
||||||
|
ECHO ===============================================================================
|
||||||
|
set /p _index= ^>
|
||||||
|
if /i "%_index%"=="0" goto :WIMMENU
|
||||||
|
if [%_index%]==[] goto :WIM3
|
||||||
|
if /i %_index% GTR %images% echo.&echo Selected number is higher than available indexes&echo.&PAUSE&goto :WIM3
|
||||||
|
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.esd" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.esd file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting WIM Index %_index% to a new install.esd file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
echo.
|
||||||
|
echo *** This will require some time, high CPU and Disk usage, please be patient ***
|
||||||
|
echo.
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%_index% /DestinationImageFile:install.esd /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:WIM4
|
||||||
|
cls
|
||||||
|
set _range=
|
||||||
|
set _start=
|
||||||
|
set _end=
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Detected WIM file contains %images% indexes:
|
||||||
|
ECHO.
|
||||||
|
for /L %%i in (1, 1, %images%) do (
|
||||||
|
ECHO. %%i. !name%%i!
|
||||||
|
)
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter desired Range of indexes to export: Start-End
|
||||||
|
ECHO. Example: 2-4 or 1-3 or 3-4
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. Enter zero '0' to go back to Main Menu
|
||||||
|
ECHO ===============================================================================
|
||||||
|
set /p _range= ^>
|
||||||
|
if /i "%_range%"=="0" goto :WIMMENU
|
||||||
|
if [%_range%]==[] goto :WIM4
|
||||||
|
for /f "tokens=1 delims=-" %%i in ('echo %_range%') do set _start=%%i
|
||||||
|
for /f "tokens=2 delims=-" %%i in ('echo %_range%') do set _end=%%i
|
||||||
|
if /i %_start% GTR %images% echo.&echo Range Start is higher than available indexes&echo.&PAUSE&goto :WIM4
|
||||||
|
if /i %_end% GTR %images% echo.&echo Range End is higher than available indexes&echo.&PAUSE&goto :WIM4
|
||||||
|
if /i %_start% EQU %_end% echo.&echo Range Start and End are equal. Use option 3 of main menu to export single index&echo.&PAUSE&goto :WIMMENU
|
||||||
|
|
||||||
|
cls
|
||||||
|
IF EXIST "%CD%\install.esd" (
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO. An install.esd file is already present in the current folder.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
ECHO.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
)
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting WIM Index %_start% to a new install.esd file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
echo.
|
||||||
|
echo *** This will require some time, high CPU and Disk usage, please be patient ***
|
||||||
|
echo.
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%_start% /DestinationImageFile:install.esd /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
|
||||||
|
set /a _start+=1
|
||||||
|
for /L %%i in (%_start%, 1, %_end%) do (
|
||||||
|
ECHO.
|
||||||
|
ECHO ===============================================================================
|
||||||
|
Echo Exporting WIM Index %%i to install.esd file...
|
||||||
|
ECHO ===============================================================================
|
||||||
|
dism /Export-Image /SourceImageFile:"%WIMFILE%" /SourceIndex:%%i /DestinationImageFile:install.esd /compress:recovery /CheckIntegrity
|
||||||
|
SET ERRORTEMP=%ERRORLEVEL%
|
||||||
|
IF %ERRORTEMP% NEQ 0 (ECHO.&Echo Errors were reported during dism export.&PAUSE&GOTO :QUIT)
|
||||||
|
)
|
||||||
|
echo.
|
||||||
|
echo Done.
|
||||||
|
echo.
|
||||||
|
echo Press any key to exit.
|
||||||
|
pause >nul
|
||||||
|
GOTO :QUIT
|
||||||
|
|
||||||
|
:QUIT
|
||||||
267
Powershell/From Evernote/Intune.ps1
Normal file
267
Powershell/From Evernote/Intune.ps1
Normal file
@@ -0,0 +1,267 @@
|
|||||||
|
param([switch]$Elevated)
|
||||||
|
function Check-Admin {
|
||||||
|
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
|
||||||
|
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
|
||||||
|
}
|
||||||
|
if ((Check-Admin) -eq $false) {
|
||||||
|
if ($elevated)
|
||||||
|
{
|
||||||
|
# could not elevate, quit
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
|
||||||
|
}
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
function Write-ProgressHelper {
|
||||||
|
param (
|
||||||
|
[int]$StepNumber,
|
||||||
|
[string]$Message
|
||||||
|
)
|
||||||
|
|
||||||
|
Write-Progress -Activity 'PSC Update Readiness 2019' -Status $Message -PercentComplete (($StepNumber / $steps) * 100)
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:steps = ([System.Management.Automation.PsParser]::Tokenize((gc "$PSScriptRoot\$($MyInvocation.MyCommand.Name)"), [ref]$null) | where { $_.Type -eq 'Command' -and $_.Content -eq 'Write-ProgressHelper' }).Count
|
||||||
|
|
||||||
|
$stepCounter = 0
|
||||||
|
|
||||||
|
Write-ProgressHelper -Message 'Checking For Previous Run' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 2.5
|
||||||
|
$ErrorActionPreference="SilentlyContinue"
|
||||||
|
$maxRepeat = 10
|
||||||
|
$Organisation = "PSC"
|
||||||
|
$ThisPC = ($env:COMPUTERNAME + $env:username)
|
||||||
|
$freespaceError = ("$env:COMPUTERNAME only has $spacegb GB Free and cannot continue 1903 install")
|
||||||
|
$TeamViewerFileName = "c:\teamviewer_install\TeamviewerHost.msi"
|
||||||
|
$InTuneLog = "c:\InTune_Log\$env:COMPUTERNAME.log"
|
||||||
|
$InTuneFolder = "c:\InTune_Log\*.*"
|
||||||
|
$InTune_Folder = "c:\InTune_Log\"
|
||||||
|
$ts = New-TimeSpan -Hours 2
|
||||||
|
function not-exist { -not (Test-Path -Path $TeamViewerFileName) }
|
||||||
|
#Set-Alias !exist not-exist -Option "Constant, AllScope"
|
||||||
|
#Set-Alias exist Test-Path -Option "Constant, AllScope"
|
||||||
|
Add-Type -AssemblyName System.Windows.Forms | Out-Null
|
||||||
|
Stop-Transcript | out-null
|
||||||
|
$ErrorActionPreference = "Continue"
|
||||||
|
If (-not(Test-Path -Path $InTune_Folder)) {
|
||||||
|
mkdir $InTune_Folder }
|
||||||
|
filter timestamp {"$(Get-Date -Format G): $_"}
|
||||||
|
|
||||||
|
if (Test-Path -Path $InTuneLog) {
|
||||||
|
Remove-Item $InTuneLog -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item $InTune_Folder\$env:COMPUTERNAME.zip -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item c:\InTune_Log\"$env:COMPUTERNAME"_Transcript.log -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item c:\InTune_Log\"$env:COMPUTERNAME".csv -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item c:\InTune_Log\$env:Computername-Bitlocker-Recovery-key.txt -ErrorAction SilentlyContinue
|
||||||
|
Start-Sleep -Seconds 1.5}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
# Move On
|
||||||
|
}
|
||||||
|
Start-Transcript -path c:\InTune_Log\"$env:COMPUTERNAME"_Transcript.log
|
||||||
|
Write-ProgressHelper -Message 'Checking For Teamviewer' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 2.5
|
||||||
|
############################################################################
|
||||||
|
# Teamviewer Start
|
||||||
|
############################################################################
|
||||||
|
#Get Teamviewer
|
||||||
|
if (-not (Test-Path -Path $TeamViewerFileName)) {
|
||||||
|
mkdir c:\teamviewer_install
|
||||||
|
$url = "https://onedrive.live.com/download?cid=77FB0E4F642F10B7&resid=77FB0E4F642F10B7%21273176&authkey=AOouFE3GDGRSHIc"
|
||||||
|
$output = "c:\teamviewer_install\TeamviewerHost.msi"
|
||||||
|
$start_time = Get-Date
|
||||||
|
|
||||||
|
$wc = New-Object System.Net.WebClient
|
||||||
|
$wc.DownloadFile($url, $output)
|
||||||
|
Write-Host "Temaviewer Downloaded"
|
||||||
|
msiexec.exe /i "c:\teamviewer_install\TeamviewerHost.msi" /qn CUSTOMCONFIGID=6988pev APITOKEN=6581446-B1aEz7nIk9k92p4G7C1R ASSIGNMENTOPTIONS="--grant-easy-access"
|
||||||
|
Write-Host "Teamviewer Installed"
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
Write-Host "TeamViewer Already Installed"
|
||||||
|
}
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Teamviewer End
|
||||||
|
#############################################################################
|
||||||
|
Write-ProgressHelper -Message 'Checking Your PC Integrity - Integrity Is Important You Know' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
##############################################################################
|
||||||
|
# Computer Sanity Check End
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Power Connect Check
|
||||||
|
|
||||||
|
#Function Check-BatteryState {
|
||||||
|
#param($Laptop=$env:computername)
|
||||||
|
#$Bstatus = ((Get-WmiObject -Class Win32_Battery).BatteryStatus)
|
||||||
|
#}
|
||||||
|
$Bstatus = ((Get-WmiObject -Class Win32_Battery).BatteryStatus)
|
||||||
|
if($Bstatus) {
|
||||||
|
switch ($Bstatus)
|
||||||
|
{
|
||||||
|
1 { "Battery is discharging" }
|
||||||
|
2 { "The system has access to AC so no battery is being discharged. However, the battery is not necessarily charging." }
|
||||||
|
3 { "Fully Charged" }
|
||||||
|
4 { "Low" }
|
||||||
|
5 { "Critical" }
|
||||||
|
6 { "Charging" }
|
||||||
|
7 { "Charging and High" }
|
||||||
|
8 { "Charging and Low" }
|
||||||
|
9 { "Charging and Critical " }
|
||||||
|
10 { "Unknown State" }
|
||||||
|
11 { "Partially Charged" }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
If ($BStatus -eq 2) {
|
||||||
|
# Move On
|
||||||
|
}
|
||||||
|
|
||||||
|
Else {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show("You Need To Be Connected To The Power Adapter! Please re run from Software Center when power is avalable. Exiting...", $Organisation,
|
||||||
|
[System.Windows.Forms.MessageBoxButtons]::OK,
|
||||||
|
[System.Windows.Forms.MessageBoxIcon]::ERROR)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Power Connect Check End
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
Write-ProgressHelper -Message 'Checking Your Free Drive Space - You Should Be Saving Everything To The Cloud Anyway' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Free Space Check Start
|
||||||
|
|
||||||
|
$disk = Get-WMIObject Win32_Logicaldisk -filter "deviceid='$((Get-WMIObject Win32_OperatingSystem -computername $env:COMPUTERNAME).systemdrive)'" -ComputerName $env:COMPUTERNAME
|
||||||
|
$freespace = ($disk.FreeSpace)
|
||||||
|
$spacegb = [math]::Round($disk.Freespace/1GB,2)
|
||||||
|
|
||||||
|
# Free Space Check End
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
Write-ProgressHelper -Message 'Checking Your PC Is Secure - Safety First!' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Bitlocker Status
|
||||||
|
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
|
||||||
|
$blockerstatus = (Get-BitlockerVolume -MountPoint "C:")
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
Write-ProgressHelper -Message 'Checking For PSC Admin' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# PSC Admin User Check Start
|
||||||
|
|
||||||
|
|
||||||
|
$UserPassword = ConvertTo-SecureString "Restore99!" -AsPlainText -Force
|
||||||
|
$psclocaladmin = $null
|
||||||
|
If ($psclocaladmin = Get-LocalUser pscadmin)
|
||||||
|
{
|
||||||
|
Add-LocalGroupMember -Group "Administrators" -Member "pscadmin"
|
||||||
|
Enable-LocalUser -Name "pscadmin"
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
# If (!$psclocaladmin)
|
||||||
|
New-LocalUser "pscadmin" -Password $UserPassword -FullName "PSC Admin" -Description "PSC Admin Account" -AccountNeverExpires -PasswordNeverExpires
|
||||||
|
Add-LocalGroupMember -Group "Administrators" -Member "pscadmin"
|
||||||
|
Enable-LocalUser -Name "pscadmin"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# PSC Admin User Check End
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
Write-ProgressHelper -Message 'Creating Restore Point - We Like To Play It Safe!' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 10
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# System Restore Check Start
|
||||||
|
|
||||||
|
Enable-ComputerRestore -Drive "C:\"
|
||||||
|
Checkpoint-Computer -Description "New Intune Setup 2019" -RestorePointType MODIFY_SETTINGS
|
||||||
|
|
||||||
|
# System Restore Check End
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Computer Sanity Check End
|
||||||
|
##############################################################################
|
||||||
|
Write-ProgressHelper -Message 'Checking For Errors - Its Windows 10, As If There Would Be Errors!?' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
|
||||||
|
# Errors
|
||||||
|
|
||||||
|
If($freespace -lt 32212254720 ) {
|
||||||
|
$freespaceError | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# No Error To See Here, Keep Moving!
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
If ($blockerstatus.protectionstatus -ne "On") {
|
||||||
|
Enable-BitLocker -MountPoint C: -UsedSpaceOnly -SkipHardwareTest -RecoveryKeyPath "c:\InTune_Log\" -RecoveryKeyProtector
|
||||||
|
manage-bde -protectors -get c: >> c:\InTune_Log\$env:Computername-Bitlocker-Recovery-key.txt
|
||||||
|
("BitLocker Was Off") | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
manage-bde -protectors -get c: >> c:\InTune_Log\$env:Computername-Bitlocker-Recovery-key.txt
|
||||||
|
}
|
||||||
|
Start-Sleep -Seconds 1.5
|
||||||
|
if ($BStatus -ne 2)
|
||||||
|
{
|
||||||
|
("$env:username Did Not Plug In To Mains") | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
}
|
||||||
|
|
||||||
|
# AutoPilot Hardware Hash
|
||||||
|
Install-Script -Name Get-WindowsAutoPilotInfo -Force
|
||||||
|
Start-Sleep -Seconds 3
|
||||||
|
Get-WindowsAutoPilotInfo.ps1 -append -OutputFile "c:\InTune_Log\$env:COMPUTERNAME.csv"
|
||||||
|
Start-Sleep -Seconds 2.5
|
||||||
|
|
||||||
|
Stop-Transcript
|
||||||
|
|
||||||
|
# Fail
|
||||||
|
$LogsExist = (Test-Path $InTuneLog)
|
||||||
|
Write-ProgressHelper -Message 'Sending Data To PSC IT' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 4
|
||||||
|
if (Test-Path $InTuneLog)
|
||||||
|
{
|
||||||
|
$psclocaladmin | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
("BitLocker Was Off, It has now been switched on by InTune Script. Please try again in an hour") | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
Compress-Archive -Path $InTuneFolder -DestinationPath $InTune_Folder\$env:COMPUTERNAME.zip
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
Send-MailMessage -from "$env:username<kurt.frohloff@pscconsulting.com>" -to "IT<it@pscconsulting.com>" -Subject "AAD Intune Upgrade Report Fail $env:computername" -Body "$env:COMPUTERNAME InTune Logs" -Attachments "$InTune_Folder\$env:COMPUTERNAME.zip" -SmtpServer "pscconsulting-com.mail.protection.outlook.com"
|
||||||
|
curl "https://onedrive.live.com/download?cid=77FB0E4F642F10B7&resid=77FB0E4F642F10B7%21273301&authkey=AEReiJb0-g1gGqc" -o "$InTune_Folder\sendfile.ps1"
|
||||||
|
Invoke-Expression (($InTune_Folder)+"\sendfile.ps1")
|
||||||
|
Remove-Item $InTune_Folder\sendfile.ps1 -Force -ErrorAction SilentlyContinue
|
||||||
|
[System.Windows.Forms.MessageBox]::Show("The PSC IT Update Readiness Tool Has Completed Its Task. All Details Have Been Sent To PSC IT.", $Organisation,
|
||||||
|
[System.Windows.Forms.MessageBoxButtons]::OK,
|
||||||
|
[System.Windows.Forms.MessageBoxIcon]::INFORMATION)
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
("BitLocker Was Already On") | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
$psclocaladmin | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
("$env:COMPUTERNAME has $spacegb GB Free") | Format-Table | Out-File -append "c:\InTune_Log\$env:COMPUTERNAME.log" | Write-Output
|
||||||
|
Compress-Archive -Path $InTuneFolder -DestinationPath $InTune_Folder\$env:COMPUTERNAME.zip
|
||||||
|
Start-Sleep -Seconds 5
|
||||||
|
Send-MailMessage -from "$env:username<kurt.frohloff@pscconsulting.com>" -to "IT<it@pscconsulting.com>" -Subject "AAD Intune Upgrade Report Success $env:computername" -Body "$env:COMPUTERNAME InTune Logs" -Attachments "$InTune_Folder\$env:COMPUTERNAME.zip" -SmtpServer "pscconsulting-com.mail.protection.outlook.com"
|
||||||
|
curl "https://onedrive.live.com/download?cid=77FB0E4F642F10B7&resid=77FB0E4F642F10B7%21273301&authkey=AEReiJb0-g1gGqc" -o "$InTune_Folder\sendfile.ps1"
|
||||||
|
Invoke-Expression (($InTune_Folder)+"\sendfile.ps1")
|
||||||
|
Remove-Item $InTune_Folder\sendfile.ps1 -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
[System.Windows.Forms.MessageBox]::Show("The PSC IT Update Readiness Tool Has Completed Its Task. All Details Have Been Sent To PSC IT.", $Organisation,
|
||||||
|
[System.Windows.Forms.MessageBoxButtons]::OK,
|
||||||
|
[System.Windows.Forms.MessageBoxIcon]::INFORMATION)
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-ProgressHelper -Message 'Checkup Complete - Thanks For Playing' -StepNumber ($stepCounter++)
|
||||||
|
Start-Sleep -Seconds 3
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
@echo off
|
||||||
|
:: BatchGotAdmin
|
||||||
|
::-------------------------------------
|
||||||
|
REM --> Check for permissions
|
||||||
|
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
||||||
|
|
||||||
|
REM --> If error flag set, we do not have admin.
|
||||||
|
if '%errorlevel%' NEQ '0' (
|
||||||
|
echo Requesting administrative privileges...
|
||||||
|
goto UACPrompt
|
||||||
|
) else ( goto gotAdmin )
|
||||||
|
|
||||||
|
:UACPrompt
|
||||||
|
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
|
||||||
|
set params = %*:"="
|
||||||
|
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
|
||||||
|
|
||||||
|
"%temp%\getadmin.vbs"
|
||||||
|
del "%temp%\getadmin.vbs"
|
||||||
|
exit /B
|
||||||
|
|
||||||
|
:gotAdmin
|
||||||
|
pushd "%CD%"
|
||||||
|
CD /D "%~dp0"
|
||||||
|
::--------------------------------------
|
||||||
|
|
||||||
|
powershell -command "& {Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force}"
|
||||||
|
powershell ./Intune.ps1
|
||||||
Binary file not shown.
588
Powershell/From Evernote/Robocopy with file exclude.html
Normal file
588
Powershell/From Evernote/Robocopy with file exclude.html
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
|||||||
|
#Setting registry key to block AAD Registration to 3rd party tenants.
|
||||||
|
$RegistryLocation = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin\"
|
||||||
|
$keyname = "BlockAADWorkplaceJoin"
|
||||||
|
#Test if path exists and create if missing
|
||||||
|
if (!(Test-Path -Path $RegistryLocation)){
|
||||||
|
Write-Output "Registry location missing. Creating"
|
||||||
|
New-Item $RegistryLocation | Out-Null
|
||||||
|
}
|
||||||
|
#Force create key with value 1
|
||||||
|
New-ItemProperty -Path $RegistryLocation -Name $keyname -PropertyType DWord -Value 1 -Force | Out-Null
|
||||||
|
Write-Output "Registry key set"
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<#
|
||||||
|
.Synopsis Detects, downloads, installs and configures the latest version of TeamViewer.
|
||||||
|
.Notes
|
||||||
|
Requires TeamViewer 14.
|
||||||
|
|
||||||
|
TeamViewer Installation Documentation
|
||||||
|
https://community.teamviewer.com/t5/Knowledge-Base/Mass-deployment-improvements/ta-p/39639
|
||||||
|
#>
|
||||||
|
$ConfigurationID = "64uyck9"
|
||||||
|
$ApiToken = "6615740-y9LI6bdNq5QtaDtiGVTN"
|
||||||
|
$ComputerName = $ENV:COMPUTERNAME
|
||||||
|
|
||||||
|
if (Test-Path 'C:\Program Files (x86)\TeamViewer\TeamViewer.exe') {
|
||||||
|
Write-Host 'Team Viewer already installed.'
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host 'Installing TeamViewer.'
|
||||||
|
|
||||||
|
Write-Host 'Downloading TeamViewer Host Setup.'
|
||||||
|
$SetupFilePath = Join-Path $ENV:TEMP "TeamViewer_Host_Setup-idc$($ConfigurationID).exe"
|
||||||
|
|
||||||
|
$response = Invoke-RestMethod "https://get.teamviewer.com/$ConfigurationID"
|
||||||
|
$json = '{}'
|
||||||
|
if ($response -match 'configId = "(?<ConfigId>[^"]+).*\n.*version = "(?<Version>[^"]+).*\n.*isCustomModule = (?<IsCustomModule>[^"]+);.*\n.*subdomain = "(?<Subdomain>[^"]+)(?<ConnectionId>)' ) {
|
||||||
|
$Matches.Remove(0)
|
||||||
|
$Matches['IsCustomModule'] = if ($Matches['IsCustomModule'] -eq 'true') { $true } else { $false }
|
||||||
|
$json = [PsCustomObject]$Matches | ConvertTo-Json
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw 'Expected JSON values not found in initial HTML page'
|
||||||
|
}
|
||||||
|
|
||||||
|
$DownloadUri = Invoke-RestMethod -Uri 'https://get.teamviewer.com/api/CustomDesign' -Method Post -Body $json -ContentType 'application/json'
|
||||||
|
Invoke-WebRequest -Uri $DownloadUri -OutFile $SetupFilePath
|
||||||
|
|
||||||
|
|
||||||
|
if (-not (Test-Path $SetupFilePath)) {
|
||||||
|
throw 'TeamViewer_Setup.exe failed to download.'
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host 'Installing.'
|
||||||
|
& $SetupFilePath /S | Write-Output
|
||||||
|
Write-Debug "$SetupFilePath LastExitCode = $LASTEXITCODE"
|
||||||
|
|
||||||
|
Write-Host 'Configuring'
|
||||||
|
& "C:\Program Files (x86)\TeamViewer\TeamViewer.exe" assign --api-token $ApiToken --grant-easy-access --reassign --alias $ComputerName | Write-Output
|
||||||
|
Write-Debug "TeamViewer.exe assign LastExitCode = $LASTEXITCODE"
|
||||||
|
|
||||||
|
Write-Host 'Cleaning up.'
|
||||||
|
$SetupTempFolder = Join-Path $ENV:TEMP 'TeamViewer'
|
||||||
|
$SetupFilePath, $SetupTempFolder | Remove-Item -Recurse
|
||||||
|
|
||||||
|
Write-Host 'Complete.'
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
param([switch]$Elevated)
|
||||||
|
function Check-Admin {
|
||||||
|
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
|
||||||
|
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
|
||||||
|
}
|
||||||
|
if ((Check-Admin) -eq $false) {
|
||||||
|
if ($elevated)
|
||||||
|
{
|
||||||
|
# could not elevate, quit
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
|
||||||
|
}
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
$TempInstallDir = "c:\teamviewer_install\"
|
||||||
|
if (Test-Path $TempInstallDir) {
|
||||||
|
Remove-Item $TempInstallDir -Recurse -Force
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Host "Install Start"
|
||||||
|
}
|
||||||
|
$TeamViewerFileName = "C:\Program Files (x86)\TeamViewer\TeamViewer.exe"
|
||||||
|
$TeamViewer64FileName = "C:\Program Files\TeamViewer\TeamViewer.exe"
|
||||||
|
|
||||||
|
|
||||||
|
function not-exist { -not (Test-Path -Path $TeamViewer64FileName) }
|
||||||
|
function not-exist { -not (Test-Path -Path $TeamViewerFileName) }
|
||||||
|
if (-not (Test-Path -Path $TeamViewerFileName)) {}
|
||||||
|
if (-not (Test-Path -Path $TeamViewer64FileName)) {
|
||||||
|
mkdir c:\teamviewer_install
|
||||||
|
$url = "https://download.teamviewer.com/download/version_15x/TeamViewer_MSI32.zip"
|
||||||
|
$output = "c:\teamviewer_install\TeamviewerHost.zip"
|
||||||
|
$tvdir = "c:\teamviewer_install"
|
||||||
|
$start_time = Get-Date
|
||||||
|
|
||||||
|
$wc = New-Object System.Net.WebClient
|
||||||
|
$wc.DownloadFile($url, $output)
|
||||||
|
Write-Host "Teamviewer Downloaded"
|
||||||
|
sleep 3
|
||||||
|
Expand-Archive -LiteralPath $output -DestinationPath $tvdir -Force
|
||||||
|
msiexec.exe /i "c:\teamviewer_install\Host\Teamviewer_Host.msi" /qn CUSTOMCONFIGID=6988pev APITOKEN=6581446-B1aEz7nIk9k92p4G7C1R ASSIGNMENTOPTIONS="--grant-easy-access"
|
||||||
|
Write-Host "Teamviewer Installed"
|
||||||
|
}
|
||||||
|
Else
|
||||||
|
{
|
||||||
|
Write-Host "TeamViewer Already Installed"
|
||||||
|
}
|
||||||
40
Powershell/From Evernote/Uninstall-IntuneClient.ps1
Normal file
40
Powershell/From Evernote/Uninstall-IntuneClient.ps1
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
function Get-ServiceId {
|
||||||
|
#Set the registry path containing the service ID
|
||||||
|
$RegistryPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OnlineManagement"
|
||||||
|
try {
|
||||||
|
#Get all the names of the items in the registry location
|
||||||
|
$RegistryItems = (Get-ChildItem -Path Registry::$RegistryPath -ErrorAction Stop).Name
|
||||||
|
#Loop through all the results
|
||||||
|
foreach ($RegistryItem in $RegistryItems) {
|
||||||
|
#Find the result that starts with the registry location followed by the first sign of a GUID
|
||||||
|
if ($RegistryItem.StartsWith("$RegistryPath\{")) {
|
||||||
|
#Replace the registry location with nothing to get the GUID
|
||||||
|
$ServiceId = $RegistryItem.Replace("$RegistryPath\","")
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $ServiceId
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Output "The Microsoft Intune client is not installed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Start-Uninstall {
|
||||||
|
param (
|
||||||
|
[parameter(Mandatory=$true)]$ServiceId
|
||||||
|
)
|
||||||
|
try {
|
||||||
|
#Set the ProvisioningUtil location and parameters
|
||||||
|
$ProvisioningUtilPath = "C:\Program Files\Microsoft\OnlineManagement\Common"
|
||||||
|
$ProvisioningUtilExecutable = "ProvisioningUtil.exe"
|
||||||
|
$ProvisioningUtilArguments = "/UninstallClient /ServiceId $ServiceId /TaskName 'tempTask' /SubEventId 16"
|
||||||
|
#Trigger the uninstall of the Microsoft Intune client
|
||||||
|
Start-Process -FilePath "$($ProvisioningUtilPath)\$($ProvisioningUtilExecutable)" -ArgumentList $ProvisioningUtilArguments -Wait -PassThru
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Output "Failed to trigger the uninstall of the Microsoft Intune client"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Start-Uninstall (Get-ServiceId)
|
||||||
Reference in New Issue
Block a user