Hvis man har ødelagt NTFS rettighederne på Folderredirection sharet, er man i en ulykkelig situation, hvis man har mere end 10 brugere. Men har fundet dette powershell-script jeg godt vil dele.

For hver undermappe (%username%) udføre dette Powershell script følgende:
– Sætter Administrators som Ejer af folder (undermapper og filer)
– Sætter mappe til at nedarve rettigheder, og sletter tidligere settings
– Sætter bruger (baseret på foldernavn) og giver fuld adgang til folder, filer og undermapper
– Retter ejer af folder til bruger (baseret på foldernavn)



<#
Script to reset user folder permissions.
Uses: icacls.exe and takeown.exe

For all folders in base folder:
1. Recursively resets owner to Administrators
2. Reset folder to inherit permissions and apply to subfolders/files, clearing any existing perms
3. Add user (based on folder name) with full control and apply to subfolders/files
4. Recursivley reset owener to user (based on folder name)
#>

$mainDir = "D:\FolderRedirection"
write-output $mainDir
$dirs = gci "$mainDir" |? {$_.psiscontainer}
foreach ($dir in $dirs){
write-output $dir.fullname
takeown.exe /F $($dir.fullname) /R /D Y |out-null
icacls.exe $($dir.fullname) /reset /T /C /L /Q
icacls.exe $($dir.fullname) /grant ($($dir.basename) + ':(OI)(CI)F') /C /L /Q
icacls.exe $($dir.fullname) /setowner $($dir.basename) /T /C /L /Q
}


Tilføj domainbruger til lokal sikkerhedsgruppe via CMD
net localgroup "Lokal sikkerhedsgruppe" DomainUserNAme /add

Opret dummyfil fra kommandolinjen i den størrelse du har behov for
fsutil file createnew tes1t.txt 5242880000

Eksport DHCP lease til testfil
Netsh DHCP server export C:\dhcpdb.txt ALL

Admin RDP til konsol
mstsc /v:127.0.0.1 /admin

Manuelt sæt NTP servers
w32tm /config /update /manualpeerlist:"0.pool.ntp.org,0x8 1.pool.ntp.org,0x8 2.pool.ntp.org,0x8 3.pool.ntp.org,0x8" /syncfromflags:MANUAL

Script til at restarte AppPool
c:
cd %windir%\system32\inetsrv
appcmd stop apppool AppPoolName
appcmd start apppool AppPoolName

En kunde kunne pludseligt ikke åbne .PDF filer, efter de havde gemt filer i en bestemt netværks-mappe. Fejlen i Acrobat Reader var “access violation”, hvilket ikke gjorde fejlsøgning nemmere. Et hurtigt kig viste den relative sti til filen, var meget over de 260 der er Microsofts grænse. Næste trin var at få et overblik over situationen på hele serveren, så jeg startede med at se på hvad Powershell kunne via. Get-ChildItem -Recurse. Helt nøjagtigt ville jeg sprøjte den ud som HTML, så jeg ikke skulle tænke på formatering.

Get-ChildItem -Recurse | ?{ $_.PSIsContainer } | Select-Object FullName | ConvertTo-Html | Out-File LongPath001.html

Problem: catch-22
Men hvordan får du Powershell til at browse en folder, hvor stien er længer end Windows maksimale sti-længde? Det gør man ikke umiddelbar, for du får en PathTooLongException fejl.

Løsning: Robocopy
Det elskede værktøj har ikke samme begrænsninger. Så tanken var; Simuleret kopi + logfile + unicode for at få ÆØÅ med i logfilen.

robocopy c:\windows NULL /L /E /NJH /FP /NC /NDL /XJ /R:0 /W:0 /UNILOG:LongPath001.txt

longpathnameoutput

Kundeservice:
Vil man være sød ved sin kunde, kan lægge data i Excel og fortæller hvor lang tekst-strengen er. Jeg brugte =LEN(B2) eller =LÆNGDE(B2) i den dansk Excel.
longpathnameoutput2

Fik behov for at logge og overvåge en server jeg ikke måtte installere nogen applikation på, så jeg lavede dette lille PowerShell Script jeg gerne vil dele med verden.

Simple Ps Ping

Ide bag kode:
– Overvåg forbindelsen til en host
– Log resultatet i en tekstfil
– Gem logfil navngivet som den server man overvåger (eks. Mailserver01.log)
der senere kan vaskes i et spreadsheet eller importeres i Splunk

For at gøre den nemmere at andvende i dagligdagen, fortæller scriptet hvad den gør og hvor den lægger filen bagefter.

OBS: Husk at enten oprette folderen eller rette stien til logfilen!

Kode:
SimplePsPing.ps1 (txt format)

En klassiker inden for capacity management og daglig drift, er at servere løber tør for plads. Derfor kommer den gamle sætning “rettidig omhu” til sin ret i forbindelse med opsætning af bla. webservere. Med mindre kunden har et specifikt behov for at IIS logfiler skal gemmes, sletter jeg dem hvis de kommer over 180 dage. Det gøres nemmest med et gammeldags .BAT script formateret på følgende måde:

forfiles -p C:\inetpub\logs\LogFiles /s /m *.log -d -180 -c "Cmd /C DEL @File"

Selve kommandoen er ret intuitiv, så den behøver vist ikke mere forklaring.
Ofte er der også temp-foldere og andre filer der med fordel kan vedligeholdes på samme måde. Oftest gemmer jeg .BAT filer i en folder tæt på roden (eks. “c:\batchadmin”) og eksekvere det dagligt via. en scheduled task uden for backup eller anden peak hour.