/
Skrypty systemowe

Skrypty systemowe

W LOG Plus udostępniamy listę gotowych skryptów, które można wykorzystać lub użyć jako podstawę i dostosować do swoich potrzeb.

Założenia

Skrypt pozwala na archiwizację wybranego profilu użytkownika. Archiwizacja polega na skompresowaniu profilu użytkownika zgodnie z zadanym filtrem, oraz umieszczenie go w określonej lokalizacji (również sieciowej)

Parametry domyślne: 

-userLogin -destinationDir

 

Treść skryptu

param([Parameter(Mandatory=$true)][string]$userLogin, [Parameter(Mandatory=$true)][string]$destinationDir ,[string]$filter = "(name = *.*)", [switch]$skipOnError) # Skrypt archiwizujący profil użytkownika # umożliwia skompresowanie profilu użytkownika zgodnie z zadanym filtrem, # oraz umieszczenie go w określonej lokalizacji (również sieciowej) # Parametry: # -userLogin - nazwa użytkownika w postaci: login , lub DOMENA\login # -destinationDir - katalog docelowy np. c:\ , lub \\192.168.1.1\backups # -filter - filtr określający jakie pliki mają być achiwizowane (domyślnie wszystkie) # szczegóły http://dotnetzip.herobo.com/DNZHelp/html/4469abe7-8fa4-101e-975d-305d2fd0affb.htm # np. "(name != *.mp3) and (name != *.avi)" - wyklucza pliki mp3 i avi # -skipOnError - pomiń pliki, których nie można dodać $a = [System.Reflection.Assembly]::LoadFrom([System.AppDomain]::CurrentDomain.BaseDirectory + "ext\Ionic.Zip.dll"); try { $ob = New-Object System.Security.Principal.NTAccount($userLogin) $sid = $ob.Translate([System.Security.Principal.SecurityIdentifier]) } catch { Write-Error "Unable to find user $userLogin" exit -2 } $regPath = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\' + $sid $path = (Get-ItemProperty -path $regPath).profileImagePath $zipFile = $destinationDir + "\" +$userLogin.Replace('\','.') + (Get-Date).ToShortDateString() + ".zip" "Writing $path to $zipFile" try { $strWriter = new-object System.IO.StringWriter $zip = new-object Ionic.Zip.ZipFile $zip.UseZip64WhenSaving = [Ionic.Zip.Zip64Option]::AsNecessary if ($skipOnError) { $zip.StatusMessageTextWriter = $strWriter $zip.ZipErrorAction = [Ionic.Zip.ZipErrorAction]::Skip } $zip.AddSelectedFiles($filter, $path,"",$true) $zip.Save($zipFile) } finally { [System.Text.RegularExpressions.Regex]::Replace($strWriter.ToString(), "^adding.*$[\r\n]*", [String]::Empty, [System.Text.RegularExpressions.RegexOptions]::Multiline) $zip.Dispose() }

Parametry:

  • Wymagane:

    • userLogin - nazwa użytkownika w postaci: login, lub DOMENA\login,

    • destinationDir - katalog docelowy np. c:\ , lub \\192.168.1.1\backups,

  • Opcjonalne:

    • filter - filtr określający jakie pliki mają być achiwizowane (domyślnie wszystkie) np. "(name != *.mp3) and (name != *.avi)" - wyklucza pliki z rozszerzeniem mp3 i avi,

    • skipOnError - pomiń pliki, których nie można dodać.

 

Założenia

Skrypt pozwala na wyczyszczenie zawartości katalogów tymczasowych dla wszystkich użytkowników

Parametry domyślne: 

delete

 

Treść skryptu 

@echo off rem ***************************** Informacje wstępne rem Skrypt domyślnie tylko wyświetla pliki i foldery do usunięcia, rem aby je rzeczywiście usunąć, wywołaj go z parametrem "delete" rem rem Parametry: rem delete - usuwa pliki i katalogi tymczasowe dla wszystkich użytkowników set _TD=%SystemDrive% set _DELETE=0 if "%1" == "delete" set _DELETE=1 if %_DELETE%==0 ( echo Skrypt domyślnie tylko wyświetla pliki i foldery do usunięcia echo Aby je rzeczywiście usunąć, wywołaj z parametrem "delete" ) set _UD=Users if exist "%_TD%\%_UD%" goto filelist set _UD=Documents and Settings if exist "%_TD%\%_UD%" goto filelist goto directoryNotFound :filelist for /f "tokens=*" %%g in ('dir/b /a:D "%_TD%\%_UD%"') do ( CALL :userDir %_TD%\%_UD%\%%g ) goto end :userDir SETLOCAL set _UDIRTEMP1=Ustawienia lokalne\Temp set _UDIRTEMP2=Local Settings\Temp set _UDIRTEMP3=AppData\Local\Temp for /f "usebackq tokens=2* delims==" %%h in (`set _UDIRTEMP`) do ( call :tempDir %*\%%h ) ENDLOCAL exit/b :tempDir if exist "%*" ( for /f "tokens=*" %%z in ('dir/b /a:-D "%*"') do ( call :deleteFile %*\%%z ) for /f "tokens=*" %%x in ('dir/b /a:D "%*"') do ( call :deleteDir %*\%%x ) ) exit/b :deleteDir if %_DELETE%==1 ( rmdir /q /s "%*" ) else ( echo D %* ) exit/b :deleteFile if %_DELETE%==1 ( del /q "%*" ) else ( echo F %* ) exit/b :directoryNotFound echo "Nie znaleziono katalogu użytkowników!" >&2 :end

Parametry:

  • delete - skasuj zawartość katalogów tymczasowych

Uwagi

  1. Uruchomienie skryptu bez podania parametrów spowoduje wyświetlenie listy plików i folderów do usunięcia.

 

Założenia

Skrypt umożliwia zdalne wywołanie polecenia defragmentacji partycji dysku twardego podanej w polu Parametry

Parametry domyślne: 

C:

 

Treść skryptu 

rem Parametry: rem - litera partycji do defragmentacji @echo off defrag %1

Parametry:

  • C: - litera partycji do defragmentacji (domyślnie partycja C:)

Założenia

Skrypt dodaje wybrany przez nas komputer do domeny

Parametry domyślne: 

Treść skryptu

REM PC musi być wpięty do sieci lokalnej !!! $password = $args[0] | ConvertTo-SecureString -asPlainText -Force $username = $args[1] $credential = New-Object System.Management.Automation.PSCredential($username,$password) Add-Computer -DomainName $args[2] -Credential $credential

Parametry:

  • Hasło

  • Domena\Nazwa_użytkownika 

  • Pełna nazwa domeny

Uwagi

  • Żeby skrypt zadziałał dany komputer musi być wpięty do sieci lokalnej!

  • Skrypt należy uruchomić na komputerze który ma zostać dodany do domeny.

Założenia

Założeniem skryptu jest uproszczenie procesu deinstalacji oprogramowania.

Proces deinstalacji z wykorzystaniem skryptu możliwy jest dla oprogramowania, którego deinstalacja wykorzystuje polecenie "msiexec".

Parametry domyślne:

REM 1. W polu parametr można podać nazwę oprogramowania jakie ma być odinstalowane. REM 2. Informację o oprogramowaniu można zebrać wykonując skrypt "Lista oprogramowania" - lista przedstawi całość oprogramowania możliwego do odinstalowania niniejszym skryptem. REM 3. Nazwę oprogramowania nalezy przekleić do pola "Parametry" w momencie wywołania niniejszego skryptu" wmic product where "name like '%*%%'" call uninstall /nointeractive

Parametry:

Nazwę oprogramowania należy przekleić do pola "Parametry" w momencie wywołania niniejszego skryptu.

Założenia

Skrypt umożliwia na wskazanym komputerze odnowienie adresu IP który został przypisany przez serwer DHCP

Treść skryptu

rem Dla IPv4 ipconfig /renew rem Dla IPv6 rem ipconfig /renew6

Założenia

Skrypt umożliwia odświeżenie bufora programu rozpoznawania nazw DNS. Opcja przydatna w przypadku problemów z rozwiązywaniem nazw DNS:

Treść skryptu

ipconfig /flushdns

Założenia

Skrypt umożliwia wymuszenie odświeżenia zasad lokalnych/AD na komputerze zdalnym: 

Treść skryptu

gpupdate /force

Założenia

Skrypt umożliwia wyświetlenie szczegółowych danych dotyczących usługi podanej w polu Parametry.

Parametry:

Treść skryptu

@echo off echo Konfiguracja usługi: sc qc %1 echo Stan usługi: sc queryex %1

Założenia

Skrypt umożliwia usunięcie użytkownika z wybranego przez nas komputera

Treść skryptu

REM /del - usuwa konto net user %1 /del

Uwagi

Skrypt usuwa tylko użytkowników lokalnych na danym komputerze

Założenia

Skrypt umożliwia usunięcie katalogu wskazanego w polu Parametry wraz z całą jego zawartością lub tylko plików we wskazanym katalogu i jego podkatalogach (struktura katalogów pozostaje nienaruszona).

Treść skryptu

@echo off rem Parametry: rem rem C:\Katalog - Należy wskazać bezwzględną ścieżkę do katalogu przeznaczonego do usunięcia rem all - Usuwanie wskazanego jako parametr katalogu wraz z zawartością rem files - Usuwanie samych plików w katalogu i jego podkatalogach (struktura katalogów pozostaje nienaruszona) IF %2 == all ( RD /S /Q %1 ) IF %2 == files ( DEL /S /F /Q %1 )

Parametry:

Parametry są przykładowe, przed wywołaniem polecenia należy podać właściwe dane:

  • C:\Katalog files - należy podać w tym miejscu bezwzględna ścieżka do katalogu przeznaczonego do usunięcia wraz z podaniem parametrów:

    • all - usuwa wskazany jako parametr katalog wraz z zawartością

    • files - usuwa same pliki w katalogu i jego podkatalogach (struktura katalogów pozostaje nienaruszona)

Założenia

Skrypt umożliwia zatrzymanie, a następnie uruchomienie usługi podanej jako parametr (domyślnie nie jest wskazana żadna usługa)

Treść skryptu

net stop %1 net start %1

Założenia

Skrypt posiada 3 podstawowe akcje jakie może wykonać na wskazanym komputerze lub grupie komputerów:

  • przejście w stan hibernacji

  • restart komputera

  • wyłączenie komputera

Parametry domyślne: 

-s

 

Treść skryptu

rem Parametry: rem rem -s wyłącz (domyślnie) rem -h hibernuj rem -r restartuj shutdown -f %1 -t 0

Skrypt domyślnie wymusza wyłączenie komputera natychmiast. Można usunąć parametr -f odpowiedzialny za wymuszenie i zwiększyć opóźnienie czasowe ustawione domyślnie na 0 sekund.

Parametry:

  • -s - zamyka komputer

  • -h - hibernuje komputer

  • -r - restartuje komputer

Założenia

Skrypt umożliwia podanie nowej konfiguracji konkretnie wskazanego połączenia sieciowego na wskazanym komputerze.

 

Treść skryptu

rem Skrypt zmieniający adres IP na komputerze zdalnym rem rem Parametry: rem rem - dokładna nazwa interfejsu sieciowego rem - docelowy adres IP rem - docelowa maska rem - docelowa brama domyślna rem netsh int ip set address %1 static %2 %3 %4

Powyższy skrypt można rozbudować o polecenie ustawiające adresy serwerów DNS.

Parametry:

Parametry są przykładowe, przed wywołaniem polecenia należy podać właściwe dane:

  • "Połączenie lokalne" - dokładna nazwa interfejsu sieciowego

  • 192.168.1.101 - docelowy adres IP

  • 255.255.255.0 - docelowa maska

  • 192.168.1.1 - docelowa brama domyślna

W przypadku błędnej konfiguracji można utracić połączenie z serwerem.

Założenia

Skrypt umożliwia zmianę istniejącego lub wprowadzenie nowego opisu komputera we wszystkich gałęziach rejestru.

 

Treść skryptu

rem Parametry: rem rem Opis komputera, jaki ma być ustawiony na komputerze zdalnym REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f

Założenia

Skrypt wyświetla czy została zainstalowana poprawka o danym numerze na wybranym przez nas komputerze.

Treść skryptu:

REM Podaj numer poprawki, którą chcesz sprawdzić. wmic qfe | find "%1"

Założenia

Skrypt umożliwia zwrócenie pełnej informacji o systemie z polecenia systeminfo.

Treść skryptu:

systeminfo

Założenia

Skrypt pozwala na odczytanie listy oprogramowania zapisanego w rejestrze Windows.

Treść skryptu:

wmic product get name, version

Założenia

Skrypt umożliwia wyświetlenie listy uruchomionych procesów na wskazanym komputerze.

Treść skryptu

@echo off tasklist /FO table

Założenia

Skrypt wyświetla listę zainstalowanych na komputerze poprawek i aktualizacji.

Treść skryptu

wmic qfe

Założenia

Skrypt umożliwia wymuszenie zakończenia procesu podanego jako parametr.

Treść skryptu

taskkill /IM %1 /F

Polecenie taskkill posiada funkcję przyjmowania jako parametr wyrażeń regularnych, np. taskkill Flash* /F (zakończone zostają wszystkie procesy rozpoczynające się od Flash*). W przypadku konieczność zastosowania takich wyrażeń regularnych należy utworzyć skrypt własny na wzór systemowego, który w w swojej strukturze będzie miał już zapisany taki parametr. Nie można skorzystać z funkcji Parametry.

Założenia

Skrypt przełącza możliwość wykonywania skryptów PowerShell'a (funkcja domyślnie zablokowana na standardowej instalacji Windowsa).

Parametry domyślne:

Treść skryptu

@echo off rem ***************************** Informacje wstępne rem Skrypt przełącza możliwość wykonywania skryptów PowerShell'a rem (funkcja domyślnie zablokowana na standardowej instalacji Windowsa). rem rem Parametry: rem enable - aktywuje obsługę skryptów PowerShell rem disable - deaktywuje obsługę skryptów PowerShell rem status - sprawdza aktualny stan obsługi skryptów PowerShell if "%1" == "status" ( echo Wykonywanie skryptów Powershell: powershell Get-ExecutionPolicy ) else if "%1" == "enable" ( powershell Set-ExecutionPolicy RemoteSigned echo Wykonywanie skryptów Powershell: powershell Get-ExecutionPolicy ) else if "%1" == "disable" ( powershell Set-ExecutionPolicy Restricted echo Wykonywanie skryptów Powershell: powershell Get-ExecutionPolicy ) else ( echo Nieprawidłowy parametr: '%1' exit -2 ) exit

Parametry:

  • enable - aktywuje obsługę skryptów PowerShell

  • disable - deaktywuje obsługę skryptów PowerShell

  • status - sprawdza aktualny stan obsługi skryptów PowerShell

 

Related content

logplus.io