Omia valmiita skriptejä (PS, batch...)

  • Keskustelun aloittaja Keskustelun aloittaja sbasil
  • Aloitettu Aloitettu
Liittynyt
17.10.2016
Viestejä
3 358
Löytyykö ahaa-elämyksiä/puutteita Windowsista, joita olette skripteillä korjanneet? Tänne voisi laittaa linkkejä/koodia (ja selostusta käyttötarkoituksesta), niin ehkä joku toinenkin niistä saattaisi hyötyä ja oppia? Itse olen täysi amatööri näiden kanssa, mutta sopivasti googlaamalla jotain pientä on oppinut ja saanut aikaiseksi.

SCRIPTI # 1

Itsellä meni vasta wlan-reititin rikki, niin tuli väkerrettyä hullun kiilto silmissä pieni hotspot-batchi, jolla voi jakaa esim. pöytäkoneen Wifi-yhteyden, jos nurkissa sattuu pyörimään ylimääräinen Wifi-tikku.

Sopiva sekamelska perinteistä batchiä ja asennukseen vähän powershelliä (+ taskbar pikakuvakkeiden nitomiseen varten tehty kolmannen osapuolen syspin.exe). Saattaa olla malliesimerkki siitä, kuinka asioita ei pidä tehdä, mutta ainakin tuo toimii. Ohessa "koodi" ja liitteenä "asennuspaketti."

Koodi:
::by sbasil
@echo off
:begin
mode con: cols=96 lines=55
IF EXIST "network.txt" (
set /p network_name=<"%userprofile%\HotSpot\network.txt"
set /p password=<"%userprofile%\HotSpot\password.txt"
set /p status=<"%userprofile%\HotSpot\network.txt"
    ) ELSE set status=No previous settings&& GOTO MENU
 
:MENU
CLS
echo   ____________________________________________________________________________________________
echo.
echo   L - LUO UUSI WIFI-TUKIASEMA
echo.
echo   1 - AVAA VERKKOASETUKSET
echo.
echo   2 - LUO WIFI-TUKIASEMA JA KAYTA VANHOJA ASETUKSIA [%status%]
echo.
echo   3 - LOPETA LANGATTOMAN YHTEYDEN JAKAMINEN
echo.
echo   4 - NOLLAA ASETUKSET JA LOPETA LANGATTOMAN YHTEYDEN JAKAMINEN
echo.
echo   U - NAYTA VERKON NYKYINEN TILA
echo.
echo   P - POISTU
echo.
echo   X - POISTU JA LOPETA YHTEYDEN JAKAMINEN
echo.
echo   ____________________________________________________________________________________________
echo.
echo  STATUS UPDATED @ %time%
netsh wlan show hostednetwork
echo -------------------------------------------------------------------------
netsh interface show interface
echo   ___________________________________________________________________________________________
echo.
Choice /c:1234PXUL /M ""

IF %ERRORLEVEL% == 8 goto ON
IF %ERRORLEVEL% == 7 goto MENU
IF %ERRORLEVEL% == 6 goto TERMINATE
IF %ERRORLEVEL% == 5 GOTO EXIT
IF %ERRORLEVEL% == 4 goto RESET_OFF
IF %ERRORLEVEL% == 3 GOTO OFF
IF %ERRORLEVEL% == 2 GOTO PREVIOUS
IF %ERRORLEVEL% == 1 GOTO NETWORKSETTINGS
echo.

:ON
cls
set /p network_name=Anna verkolle nimi (8-63 merkkia):
echo.
set /p password=Aseta verkon salasana(8-63 merkkia):
netsh wlan set hostednetwork mode=allow ssid=%network_name% key=%password%
netsh wlan start hostednetwork
ECHO %network_name%>"%userprofile%\HotSpot\network.txt"
ECHO %password%>"%userprofile%\HotSpot\password.txt"
set /p status=<"%userprofile%\HotSpot\network.txt"
GOTO MENU

:OFF
netsh wlan stop hostednetwork
netsh wlan set hostednetwork mode= disallow ssid=Disconnected
set /p status=<"%userprofile%\HotSpot\network.txt"
GOTO MENU

:RESET_OFF
del "%userprofile%\HotSpot\*.txt"
netsh wlan stop hostednetwork
netsh wlan set hostednetwork mode= disallow ssid=Disconnected
set /p status=<"%userprofile%\HotSpot\network.txt"
goto begin

:PREVIOUS
CLS
IF  NOT EXIST "network.txt" (
echo Sinulla ei ole aiempia HotSpot-asetuksia.
netsh wlan stop hostednetwork 1>nul
netsh wlan set hostednetwork mode= disallow ssid=Disconnected 1>nul
timeout /t 5
GOTO MENU ) ELSE (
netsh wlan set hostednetwork mode=allow
netsh wlan set hostednetwork ssid=%network_name%
netsh wlan set hostednetwork key=%password%
netsh wlan start hostednetwork
)
set /p status=<"%userprofile%\HotSpot\network.txt"
GOTO MENU

:TERMINATE
color c
cls
netsh wlan stop hostednetwork
netsh wlan set hostednetwork mode= disallow ssid=Disconnected
timeout /t 3
set /p status=<"%userprofile%\HotSpot\network.txt"
exit

:NETWORKSETTINGS
START control.exe /name Microsoft.NetworkAndSharingCenter
cls
goto MENU

:EXIT
color c
cls
echo YHYHYHYY!
timeout /t 2
EXIT

TUW1qAx.jpg

f7SfseV.jpg

SCRIPTI # 2

Muutaman vuoden takaa Driver Signing "tool" batchi. Tarkastaa, onko Driver Signing päällä ja kysyy haluatko ottaa sen pois ja toisinperin. Saahan tuon jonkun napin takaa Windowsissakin, mutta itse tykkäsin tehdä sen näin. Ladata voi TÄSTÄ (mukana tulee chgcolor.exe, jolla saa batcheistä vähän värikkäämpiä).

Koodi:
@echo off
@echo off
NET SESSION >nul 2>&1
        IF %ERRORLEVEL% EQU 0 (
    GOTO START
        ) ELSE powershell -c start -verb runas DSSCT.bat && exit
        )
:START
mode con: cols=70 lines=40

        set Green="%~dp0\tools\chgcolor.exe" A
        set Yellow="%~dp0\tools\chgcolor.exe" E
        set BWhite="%~dp0\tools\chgcolor.exe" F
        set Gray="%~dp0\tools\chgcolor.exe" 7
        set Red="%~dp0\tools\chgcolor.exe" C
%Yellow%
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.
echo   _______________________________________________________________
echo.
echo         A SMALL SCRIPT TO ENABLE OR DISABLE DRIVER INTEGRITY
echo           CHECKS FOR x64 WINDOWS.
%Green%
echo.
echo           PLEASE WAIT WHILE READING THE CURRENT STATUS...
%Yellow%
echo   _______________________________________________________________
%Green%

bcdedit > "%~dp0\status.txt"
cls 
        FINDSTR /C:"ENABLE_INTEGRITY_CHECKS" "%~dp0\status.txt" >nul 2>&1
  
        IF %ERRORLEVEL% EQU 1 (
    SET STATUS_DS_=DRIVER SIGNING IS DISABLED && goto ENABLE_DS
        ) ELSE ( SET STATUS_DS_=DRIVER SIGNING IS ENABLED && goto DISABLE_DS
        )
echo.

:ENABLE_DS
echo.
%Yellow%
echo  %STATUS_DS_%
echo.
echo  ------------------------------------------------------------------
%Green%
echo.
echo  DO YOU WANT TO ENABLE IT?
echo.
%Gray%
echo  When it's enabled, you cannot install unsigned drivers.
%Yellow%
echo.
echo  ------------------------------------------------------------------
echo.
%BWhite%
choice /c:YN /M ""

    IF %ERRORLEVEL% == 2 GOTO EXIT
    IF %ERRORLEVEL% == 1 GOTO NEXT_E
  
:NEXT_E
cls
Bcdedit.exe -set loadoptions ENABLE_INTEGRITY_CHECKS && Bcdedit.exe -set TESTSIGNING OFF
        ::powershell -c start -verb runas "Bcdedit.exe '-set loadoptions ENABLE_INTEGRITY_CHECKS'"
        ::powershell -c start -verb runas "Bcdedit.exe '-set TESTSIGNING OFF'"
cls
echo.
echo DRIVER SIGNING IS NOW ENABLED [WINDOWS DEFAULT]
echo.
%Red%
echo You need to restart your computer for the changes to take effect.
echo.
pause
GOTO EXIT

:DISABLE_DS
echo.
%Yellow%
echo  %STATUS_DS_%
echo.
echo  ------------------------------------------------------------------
%Green%
echo.
echo  DO YOU WANT TO DISABLE IT?
%Gray%
echo.
echo  When it's disabled, you will be able to install unsigned drivers.
%Yellow%
echo.
echo  ------------------------------------------------------------------
echo.
%BWhite%
choice /c:YN /M ""

    IF %ERRORLEVEL% == 2 GOTO EXIT
    IF %ERRORLEVEL% == 1 GOTO NEXT_E_D

:NEXT_E_D
cls
Bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS && Bcdedit.exe -set TESTSIGNING ON
        ::powershell -c start -verb runas "Bcdedit.exe '-set loadoptions DDISABLE_INTEGRITY_CHECKS'"
        ::powershell -c start -verb runas "Bcdedit.exe '-set TESTSIGNING ON'"
cls
echo.
echo DRIVER SIGNING IS NOW OFF
echo.
%Red%
echo You need to restart your computer for the changes to take effect.
echo.
pause

:EXIT
del /Q "%~dp0\status.txt"
cls
echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo. && echo.

echo                                 BYE!!!
timeout /t 4 > null
del /Q "%~dp0\null"
EXIT


SCRIPTI # 3 (TÄSTÄ)
Vaihtaa audio output:ia kahden laitteen välillä (esim. kaiuttimien ja kuulokkeiden välillä). Tämä on nircmd:tä varten tehty batchi. "Asennusohjelmassa" (setup.bat) voi määritellä mitä äänilaitteita käytetään ja nitoa kaiutinkuvakkeen taskbariin, mistä laitteiden välillä on helppo hyppiä. Tekee myös käynnistä-valikkoon nircmd kansion, josta voi vaihtaa äänilähteitä tai poistaa koko roskan.

Koodi:
@echo off
:MENU
CLS
echo   __________________________________________
echo.
echo   1 - Valitse ja aseta aanilahteet
echo.
echo   2 - Asenna nircmd
echo.
echo   3 - Lisaa pikakuvake taskbariin
echo.
echo   4 - Poistu
echo.
echo   __________________________________________
echo.
Choice /c:1234 /M ""

    IF %ERRORLEVEL% == 4 GOTO EXIT
    IF %ERRORLEVEL% == 3 GOTO ADD2_TASKBAR
    IF %ERRORLEVEL% == 2 GOTO ASENNA
    IF %ERRORLEVEL% == 1 GOTO VALITSE_AUDIO


:ASENNA
XCOPY "..\nircmd-x64\*.*" "%userprofile%\nircmd-x64" /s /i /e
mkdir "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Nircmd"
mkdir "%userprofile%\nircmd-x64"
Powershell.exe -executionpolicy remotesigned -File shortcuts.ps1
goto MENU


:ADD2_TASKBAR
del "%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\SW.lnk" /q
syspin "%userprofile%\nircmd-x64\SW.exe" c:5386
Powershell.exe -executionpolicy remotesigned -File sw.ps1
taskkill /f /im explorer.exe
start explorer.exe
GOTO MENU


:VALITSE_AUDIO
start control mmsys.cpl sounds
cls
set /p laite1=Kirjoita 1. laitteen nimi:
set /p laite2=Kirjoita 2. laitteen nimi:
echo.
echo @echo off > nirc.bat
echo if exist toggle.txt goto second else ^(>> nirc.bat
echo. >> nirc.bat
echo nircmdc.exe setdefaultsounddevice %laite1% >> nirc.bat
echo toggle^>^>toggle.txt>>nirc.bat
echo exit >>nirc.bat
echo :second >> nirc.bat
echo nircmdc.exe setdefaultsounddevice %laite2% >> nirc.bat
echo del toggle.txt /q>>nirc.bat
echo exit >>nirc.bat
GOTO MENU

:EXIT
EXIT

ohTLuvF.jpg
 
Viimeksi muokattu:
Ite tehnyt työkäyttöön erinäisiä Dos-scriptejä ja PowerShell-kikkareita. Meillä kun käyttäjätunnukset tulevat HR-järjestelmistä automaagisesti niin siitä sitten jatkoja automatisoitu (Ryhmien päivitys, Skype 4 business enablointi/disablointi ym.) Lisäksi kun hallinnoidaan parin yrityksen hommia niin on PowerShell-scriptejä joilla luodaan käyttäjätunnuksia (käy läpi AD:sta OU:t paikasta x yritysvalinnan mukaan, täyttää perustiedot, hakee juoksevalla numeroinnilla etuliitteineen ekan vapaan käyttäjätunnuksen), luodaan ryhmäkansioita (luo kansion DFS:ään, tekee Ad-ryhmät ja määrittelee kansioon oikeudet).

Dos-scriptil oon rakentanut tommosen ohjelmistopakettien asennuksen uusille koneille, vetää peruskamat suoraan sisään puhtaan imagen päälle. Valinnaisia softiakin sillä on valittavissa. SCCM vallannut alaa niin tuon jatkojalostus on jäänyt...

Sen verran sisältää kuitenkin nyt sisäistä infoo etten lähe suoraan noita mun scriptejä copypasteen tänne, mut jotai tarvetta noihin on jollain niin voin tarvittaessa vähän siivota ja pistää. Kaikki uusi mitä tulee pyritään rakentamaan powershellillä niin ei tule erilaisia tuotoksia eri tekijöiltä. Ideoita on, kun olis vain aikaa toteuttaa :). Ehkä seuraavaks käyn SCVMM:n kimppuun...

edit: niin ja jos on ideoita / ongelmia niin haasteita voidaan ottaa vastaan jos ei oo liian hankalia! Ei täs kuitenkaa mitää Pro-tason väsääjiä vieläkään olla :D
 

Statistiikka

Viestiketjuista
261 347
Viestejä
4 535 699
Jäsenet
74 790
Uusin jäsen
anykanen

Hinta.fi

Back
Ylös Bottom