Deaktivieren:
reg add "HKLM\System\CurrentControlSet\Services\Dnscache" /v "Start" /t REG_DWORD /d "4" /f
Aktivieren:
reg add "HKLM\System\CurrentControlSet\Services\Dnscache" /v "Start" /t REG_DWORD /d "2" /f
Deaktivieren:
reg add "HKLM\System\CurrentControlSet\Services\Dnscache" /v "Start" /t REG_DWORD /d "4" /f
Aktivieren:
reg add "HKLM\System\CurrentControlSet\Services\Dnscache" /v "Start" /t REG_DWORD /d "2" /f
PowerShell bietet seinen Benutzern keine Funktion, eine Privilegienerweiterung durchzuführen.
Als Workaround dient eine Routine, welche als Kopfzeile eingebunden, das gesamte darauf folgende Script in einer neuen PowerShell Instanz mit administrativen Rechten ausführt:
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Write-Host "Running elevated..." $arguments = "& '" + $myinvocation.mycommand.definition + "'" Start-Process powershell -Verb runAs -ArgumentList $arguments Break }
Sind die gewünschten Rechte bereits gegeben, öffnet sich keine neue Instanz.
Das Script beginnt mit einer Funktion, die – falls nicht gegeben – administrative Rechte einfordert, um die Software korrekt installieren zu können und ebenso die Dateizuordnungen einzurichten.
Abzuspeichern etwa als „7zip.ps1“ an beliebigem Ort.
Zur Ausführung genügt ein Rechtsklick auf die Datei mit anschließender Auswahl „Mit PowerShell ausühren“ bzw. „Run with PowerShell“:
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Write-Host "Running elevated..." $arguments = "& '" + $myinvocation.mycommand.definition + "'" Start-Process powershell -Verb runAs -ArgumentList $arguments Break } function register_filetypes() { cmd /c "ftype 7-Zip.001=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.7z=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.arj=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.bz2=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.bzip2=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.cab=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.cpio=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.deb=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.dmg=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.fat=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.gz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.gzip=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.hfs=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.iso=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.lha=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.lzh=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.lzma=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.ntfs=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.rar=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.rpm=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.squashfs=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.swm=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.tar=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.taz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.tbz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.tbz2=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.tgz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.tpz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.txz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.vhd=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.wim=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.xar=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.xz=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.z=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "ftype 7-Zip.zip=""C:\Program Files\7-Zip\7zFM.exe"" ""%1""" cmd /c "assoc .001=7-Zip.001" cmd /c "assoc .7z=7-Zip.7z" cmd /c "assoc .arj=7-Zip.arj" cmd /c "assoc .bz2=7-Zip.bz2" cmd /c "assoc .bzip2=7-Zip.bzip2" cmd /c "assoc .cab=7-Zip.cab" cmd /c "assoc .cpio=7-Zip.cpio" cmd /c "assoc .deb=7-Zip.deb" cmd /c "assoc .dmg=7-Zip.dmg" cmd /c "assoc .fat=7-Zip.fat" cmd /c "assoc .gz=7-Zip.gz" cmd /c "assoc .gzip=7-Zip.gzip" cmd /c "assoc .hfs=7-Zip.hfs" cmd /c "assoc .iso=7-Zip.iso" cmd /c "assoc .lha=7-Zip.lha" cmd /c "assoc .lzh=7-Zip.lzh" cmd /c "assoc .lzma=7-Zip.lzma" cmd /c "assoc .ntfs=7-Zip.ntfs" cmd /c "assoc .rar=7-Zip.rar" cmd /c "assoc .rpm=7-Zip.rpm" cmd /c "assoc .squashfs=7-Zip.squashfs" cmd /c "assoc .swm=7-Zip.swm" cmd /c "assoc .tar=7-Zip.tar" cmd /c "assoc .taz=7-Zip.taz" cmd /c "assoc .tbz=7-Zip.tbz" cmd /c "assoc .tbz2=7-Zip.tbz2" cmd /c "assoc .tgz=7-Zip.tgz" cmd /c "assoc .tpz=7-Zip.tpz" cmd /c "assoc .txz=7-Zip.txz" cmd /c "assoc .vhd=7-Zip.vhd" cmd /c "assoc .wim=7-Zip.wim" cmd /c "assoc .xar=7-Zip.xar" cmd /c "assoc .xz=7-Zip.xz" cmd /c "assoc .z=7-Zip.z" cmd /c "assoc .zip=7-Zip.zip" } Write-Host "Installing 7-Zip ..." $instPath = "$env:ProgramFiles\7-Zip\7z.exe" if (!(Test-Path $instPath)) { Write-Host "Determining download URL ..." $web = New-Object System.Net.WebClient $page = $web.DownloadString("http://www.7-zip.org/download.html") $64bit = '' if ($env:PROCESSOR_ARCHITECTURE -match '64') { $64bit = 'x64' } $pattern = "(http://.*?${64bit}\.msi)" $url = $page | Select-String -Pattern $pattern | Select-Object -ExpandProperty Matches -First 1 | foreach { $_.Value } $file = "$env:TEMP\7z.msi" if (Test-Path $file) { rm $file | Out-Null } Write-Host "Downloading $url -> $file" $web.DownloadFile($url, $file) Write-Host "Installing..." $cmd = "$file /passive" Invoke-Expression $cmd | Out-Null while (!(Test-Path $instPath)) { Start-Sleep -Seconds 10 } Write-Host "Associating file types..." register_filetypes | Out-Null Write-Host "Done!" Write-Host "Press any key to continue ..." $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") } else { Write-Host "7-Zip already installed." Write-Host "Press any key to continue ..." $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") }
Ein kleines Snippet, um via Batch-Datei Lenovo Treiber-Pakete zu entpacken.
Die .exe-Dateien einfach auf die Batch-Datei mit folgendem Inhalt ziehen, um sie zu entpacken:
@echo off :next if "%~1" == "" goto done %~1 /VERYSILENT /DIR=%~n1 /Extract="YES" shift goto next :done exit
Die Dateien werden in einen Ordner mit dem Namen der Datei (ohne Dateiendung, daher „%~n1“) entpackt.
Quelle zur Idee