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.

  1. Lista wszystkich skryptów

  2. Dodanie komputera do domeny

  3. Odświeżenie zasad zabezpieczeń lokalnych/AD

  4. Odświeżenie adresu IP (DHCP)

  5. Odświeżenie buforu rozpoznawania nazw DNS

  6. Wykonanie zmiany adresu IP komputera

  7. Zmiana adresu serwera aktualizacji dla Agenta LOG Plus

  8. Sprawdzenie konfiguracji wybranej usługi systemu Windows

  9. Wykonanie restartu wybranej usługi w systemie Windows

  10. Zarządzanie usługą PowerShell

  11. Archiwizacja profilu użytkownika Windows

  12. Usunięcie konta użytkownika w systemie Windows

  13. Czyszczenie katalogów tymczasowych wszystkich użytkowników systemu Windows

  14. Defragmentacja dysku

  15. Usunięcie wybranego katalogu wraz z jego zawartością

  16. Wykonanie wyłączenia, restartu lub hibernacji komputera

  17. Wykonanie zmiany opisu komputera

  18. Wyświetlenie informacji o systemie Windows

  19. Odinstalowanie wybranego oprogramowania

  20. Wyświetlenie listy oprogramowania w systemie Windows

  21. Wyświetlenie danej poprawki Windows

  22. Wyświetlenie listy zainstalowanych poprawek Windows

  23. Wyświetlenie listy procesów systemu Windows

  24. Zakończenie wybranego procesu Windows

 

 

 

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

 

 

logplus.io