Author Archives: dominik

Powershell – Wyświetlenie plików oraz folderów których ścieżka dostępu przekracza x znaków

Get-ChildItem -path e:\ -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.FullName.Length -gt 250}

Wyświetlenie liczby plików / folderów których ścieżka dostępu przekracza 250 znaków:

write-host(Get-ChildItem -path e:\ -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.FullName.Length -gt 250}).count

Po przełączniku -Recourse można użyć przełącznika -File lub -Directory.

Powershell – monitorowanie temperatury CPU

function Get-Temperature {
    $t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
    $returntemp = @()

    foreach ($temp in $t.CurrentTemperature)
    {
    $currentTempCelsius = ($temp / 10) - 273.15    
    $returntemp += $currentTempCelsius.ToString()
    }
    return $returntemp
}
Get-Temperature

GPO – wymuszenie ładowania polis przy każdym starcie komputera lub logowaniu użytkownika

Domyślnie polisy ładują się tylko raz, a następnie silnik GPO sprawdza, czy polisa się nie zmieniła lub nie została odpięta. Istnieje jednak polityka – ustawienie GPO, która wymusza każdorazowe ładowanie polis:

Computer configuration \ System \ Group Policy \  Configure security policy processing

Wystarczy że w/w ustawienie pojawi się tylko w jednej polisie podpiętej do wyznaczonego OU aby wszystkie inne podpięte polisy do tego OU wykonywały się za każdym razem.

GPO – Synchroniczne i asynchroniczne ładowanie polisy

Synchroniczne ładowanie –  zanim użytkownikowi pojawi się pole do logowania, najpierw ładują się polisy komputera. Zanim użytkownik zobaczy pulpit, muszą załadować się polisy użytkownika. Ładowanie synchroniczne Jest wolniejsze i bardziej uciążliwe z punktu widzenia użytkownika.

Asynchroniczne ładowanie polisy – ładują się podczas logowania i pracy na komputerze.

Polityki związane z:
– folderami wspólnymi (przekierowaniem folderów);
– instalacją oprogramowania;
– mapowaniem napędów i folderów;
ustawiają flagę mówiącą, że następny cykl ładowania polityk musi się odbywać synchronicznie, poprzez restart komputera lub przelogowanie użytkownika.

Wymuszenie synchronicznego ładowania polisy:

Computer Configuration\Policies\Administrative Templates\System\Logon\Always wait for network at computer startup and user logon

Aktualizacja GP odbywa się tylko w połączeniu z DC. Jeżeli komputer straci kontakt z DC nie zachodzi żadna aktualizacja GP – silnik GP nie pracuje. GP nie jest cachowane do aplikowania off-line.

Active Directory – odblokowanie konta i reset hasła administratora domeny

Aby odblokować i zresetować hasło Administratora należy uruchomić serwer z płyty instalacyjnej Windows Serwer (testowane na 2022) a następnie wejść do linii komend i wykonać poniższe kroki:
1) narzędziem DiskPart należy nadać literę partycji systemowej;

diskpart 
select disk 0
list partition
select partition 3
assign letter c

2) odpowiednio skonfigurować ponowne uruchomienie serwera oraz podmienić plik utilman.exe;

bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 15
c:
cd windows/system32
ren utilman.exe utilman.123
copy cmd.exe utilman.exe

3) Restart serwera. Po restarcie naciśnięcie klawisza F8 i wybranie opcji „Disable Early Launch Anti-Malware Driver”, przy logowaniu należy kliknąć na ikonkę kółeczka znajdującą się w dolnym prawym rogu. Zamiast narzędzia utilman.exe otworzy się cmd.exe – linia komend.

4) W linii komend należy wydać polecenia odblokowujące i zmieniające hasło użytkownikowi Administrator (również administratorowi domenowemu):

net user administrator /active:yes
net user administrator password
net user administrator password /domain

 

Active Directory i PowerShell – operacje na grupach

Wyświetlenie obiektów należących do grupy o nazwie GroupName

Get-ADGroupMember GroupName | Format-Table name

Wyświetlenie wszystkich grup, do których należy użytkownik o nazwie UserName

Get-ADPrincipalGroupMembership UserName | Format-Table name

Wyświetlenie użytkowników należących do grupy zabezpieczeń o nazwie SecureGroup.

Get-ADUser -filter 'memberOf -recursivematch "CN=SecureGroup, OU=IT, DC=domena, DC=local"' | Format-Table name

Dodanie użytkowników OU do grupy zabezpieczeń.

Get-ADUser -SearchBase ‘OU=nazwaOU,DC=test,DC=local’ -Filter * | ForEach-Object {Add-ADGroupMember -Identity ‘NazwaGrupyZabezpieczen’ -Members $_ }

Active Directory i PowerShell – tworzenie kopii zapasowej

#zdefiniowanie źródła
Get-WBVolume -AllVolumes
$vol = Get-WBVolume -VolumePath c:

#zdefiniowanie miejsca docelowego
$networkBackupLocation = New-WBBackupTarget -NetworkPath \\DC2\backups

#Włączenie polisy - ustawienie atrybutu SystemState na True
Add-WBSystemState -Policy backupPolicy 

#zdefiniowanie i konfiguracja polisy
$backupPolicy = New-WBPolicy
Add-WBVolume -Policy -$backupPolicy -Volume $vol
Add-WBBackupTarget -Policy $backupPolicy -Target $networkBackupLocation

#uruchomienie polisy
Start-WBBackup -Policy $backupPolicy

OCS Inventory NG – usefull SQL scripts

Most important tables:
accountinfo – main table witch contain ID of device
[HARDWARE_ID] [TAG] [fields_4] [fields_5] [fields_6]…

hardware – OS info.
[ID] [DEVICEID] [NAME] [WORKGROUP] [USERDOMAIN] [OSNAME] [OSVERSION] [OSCOMMENTS] [PROCESSORT] [] ……

bios – hardware info.
[HARDWARE_ID] [] [] [] [] [] [] [] …….

itmgmt_comments – commants, very usefull

Notes: It is possible to create Your own fields, for example Inventory number assigned inside company for every device. In this case fields_4. Those fields are created in accountinfo table.
Continue reading