Powershell: Windows 10 Modern Apps an Startmenü anheften oder entfernen (Pin oder Unpin)
Microsoft lässt leider eine Funktion vermissen die es einem als Admin ermöglicht einzelne Modern Apps per Skript an das Startmenü anzupinnen oder aus diesem zu entfernen ohne die App gleich deinstallieren zu müssen. Zwar gibt es die Möglichkeit ein vordefiniertes Layout an die User per GPO zu verteilen, doch manchmal ist das zu viel des Guten.
Aus diesem Grund habe ich eine Powershell-Funktion entwickelt die diesen Missstand behebt.
Die Funktion kennt zwei Parameter:
Im ersten wird der Name der App angegeben (es können auch mehrere Apps als String-Array übergeben werden). Der zweite dient dazu die App(s) aus dem Startmenü zu entfernen.
Anzugeben ist jeweils der lokalisierte Name der App wie er auch im Startmenü erscheint.
Das gleiche kann auch für das Entfernen mehrerer Apps mit dem Switch -unpin benutzt werden.
Die Apps die mit dieser Methode gepinnt werden können müssen zwingend in diesem System-Ordner gelistet sein:
Viel Spaß damit
Grüße Uwe
Falls euch der Beitrag gefällt, könnt ich euch auch gerne jederzeit mit einer kleinen Spende erkenntlich zeigen.
Aus diesem Grund habe ich eine Powershell-Funktion entwickelt die diesen Missstand behebt.
Powershell-Funktion Pin-App
function Pin-App {
param(
[parameter(mandatory=$true)][ValidateNotNullOrEmpty()][string[]]$appname,
[switch]$unpin
)
$actionstring = @{$true='Von "Start" lösen|Unpin from Start';$false='An "Start" anheften|Pin to Start'}[$unpin.IsPresent]
$action = @{$true='unpinned from';$false='pinned to'}[$unpin.IsPresent]
$apps = (New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | ?{$_.Name -in $appname}
if($apps){
$notfound = compare $appname $apps.Name -PassThru
if ($notfound){write-error "These App(s) were not found: $($notfound -join ",")"}
foreach ($app in $apps){
$appaction = $app.Verbs() | ?{$_.Name.replace('&','') -match $actionstring}
if ($appaction){
$appaction | %{$_.DoIt(); return "App '$($app.Name)' $action Start"}
}else{
write-error "App '$($app.Name)' is already pinned/unpinned to/from start or action not supported."
}
}
}else{
write-error "App(s) not found: $($appname -join ",")"
}
}
Die Funktion kennt zwei Parameter:
Pin-App [NAME DER APP(s) <string[]>] [-Unpin <switch>]
Anzugeben ist jeweils der lokalisierte Name der App wie er auch im Startmenü erscheint.
App an Startmenü anpinnen
Pin-App "Mail"
App aus Startmenü entfernen
Pin-App "Mail" -unpin
Mehrere Apps auf einmal anpinnen
Pin-App "Rechner","Kamera"
Hinweise
Die Funktion ist auf deutsche und englische Sprachversionen von Windows 10 angepasst. Soll diese für andere Sprachen erweitert werden sind die Strings in Zeile 6 zum anpinnen und "de"-pinnen mit einem Pipe-Symbol hinzuzufügen (Achtung: Hier gilt die Regular Expression-Syntax).Die Apps die mit dieser Methode gepinnt werden können müssen zwingend in diesem System-Ordner gelistet sein:
shell:::{4234d49b-0245-4df3-b780-3893943456e1}
Viel Spaß damit
Grüße Uwe
Falls euch der Beitrag gefällt, könnt ich euch auch gerne jederzeit mit einer kleinen Spende erkenntlich zeigen.
Updates
Datum | Änderung |
---|---|
17.02.2016 | Grundlegende Überarbeitung der Funktion und Unterstützung für mehrere Apps auf einmal |
13.06.2019 | Zur Info: Funktion unter Windows 10 1903 nicht funktionsfähig |
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 287368
Url: https://administrator.de/contentid/287368
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
37 Kommentare
Neuester Kommentar
Hallo Uwe!
Schöne Sache, sagte ich ja schon an anderer Stelle. Einen Haken sehe ich noch: Seit win10 threshold2 kommen neue Kacheln daher, die, sofern man keinen Internetzugang erlaubt, keine sinnvolle Beschriftung erhalten, sondern schlicht "Ausstehend", siehe Bild.
also quasi Platzhalter für weiteren Krempel, den MS dort abladen möchte.
Ich würde gerne alles abpinnen und dann selektiv Dinge wieder anpinnen. Kann man alles abpinnen?
Oder kann man die "Ausstehend"-Items ebenso programmatisch entfernen?
Schöne Sache, sagte ich ja schon an anderer Stelle. Einen Haken sehe ich noch: Seit win10 threshold2 kommen neue Kacheln daher, die, sofern man keinen Internetzugang erlaubt, keine sinnvolle Beschriftung erhalten, sondern schlicht "Ausstehend", siehe Bild.
also quasi Platzhalter für weiteren Krempel, den MS dort abladen möchte.
Ich würde gerne alles abpinnen und dann selektiv Dinge wieder anpinnen. Kann man alles abpinnen?
Oder kann man die "Ausstehend"-Items ebenso programmatisch entfernen?
Danke Uwe (das nächste Mal, wenn eine Zahlung auf meinem Paypal-Konto eingeht, leite ich eine Spende weiter...)!
Eine Möglichkeit, bereits existierende Verknüpfungen zu entfernen, die selber keine installierten Apps darstellen (Flipboard, Minecraft und ähnlicher Sch) konntest du (leider) nicht mehr finden? Also für einen bereits existierenden Benutzeraccount...
LG,
Highend
Eine Möglichkeit, bereits existierende Verknüpfungen zu entfernen, die selber keine installierten Apps darstellen (Flipboard, Minecraft und ähnlicher Sch) konntest du (leider) nicht mehr finden? Also für einen bereits existierenden Benutzeraccount...
LG,
Highend
Hallo Uwe, Dein Tool ist einfach klasse und hat mir sehr geholfen. Läuft auf Notebooks erstklassig. Aber auf Tablet z.B. Surface 3 oder 4, hier wird der Gleich Instal-Jjob genommen wie bei den NB's, löscht er nur die nicht gewünschten Kacheln, erstellt aber nicht die neuen. Wie gesagt bei NB's läuft es Fehler frei. Und es wird immer der gleich Job genommen. Hast Du eine Idee woran das liegen könnte?
VG Thilo
VG Thilo
Wenn ich die Zeile einfüge kommt diese Meldung:
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\ProgrammDaten\WIN10AP\PIN-APP1.PS1:11 Zeichen:2
+ FullyQualifiedErrorId : InvokeMethodOnNull
Wenn ich die Zeile nicht drin haben, läuft es ohne Fehler durch:
App 'Store' unpinned from Start
App 'Einstellungen' unpinned from Start
App 'PCInfo' pinned to Start
App 'IT-Shop' pinned to Start
App 'Internet Explorer' pinned to Start
App 'Word 2016' pinned to Start
App 'Excel 2016' pinned to Start
App 'OneNote 2016' pinned to Start
App 'Computer Sperren' pinned to Start
App 'Logoff' pinned to Start
App 'Computer Ausschalten' pinned to Start
VG Thilo
Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\ProgrammDaten\WIN10AP\PIN-APP1.PS1:11 Zeichen:2
((New-Object -Com Shell.Application).NameSpace('shell:::{4234d49b-02 ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( , RuntimeException+ FullyQualifiedErrorId : InvokeMethodOnNull
Wenn ich die Zeile nicht drin haben, läuft es ohne Fehler durch:
App 'Store' unpinned from Start
App 'Einstellungen' unpinned from Start
Die beiden Befehle werden gemacht!!
App 'PCInfo' pinned to Start
App 'IT-Shop' pinned to Start
App 'Internet Explorer' pinned to Start
App 'Word 2016' pinned to Start
App 'Excel 2016' pinned to Start
App 'OneNote 2016' pinned to Start
App 'Computer Sperren' pinned to Start
App 'Logoff' pinned to Start
App 'Computer Ausschalten' pinned to Start
Das alles wird ignoriert bei den Tablets
VG Thilo
Der Thread ist zwar schon etwas älter, scheint aber der passendste zu sein
Hat einer von euch eine Möglichkeit gefunden, die Apps auf der Taskbar zu enumerieren, zu pinnen/entpinnen?
Scheint nur Anleitungen für das Startmenü zu geben, um einzelne Apps zu bearbeiten und für die Taskbar die "Lösung", per Registry alle gepinnten Apps wegzuwerfen.
Die hier kenne ich schon, hilft aber nix:
https://pinto10blog.wordpress.com/
http://alexweinberger.com/main/pinning-network-program-taskbar-programm ...
https://www.tenforums.com/customization/21002-how-automatically-cmd-powe ...
Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
(und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround)
Hat einer von euch eine Möglichkeit gefunden, die Apps auf der Taskbar zu enumerieren, zu pinnen/entpinnen?
Scheint nur Anleitungen für das Startmenü zu geben, um einzelne Apps zu bearbeiten und für die Taskbar die "Lösung", per Registry alle gepinnten Apps wegzuwerfen.
Die hier kenne ich schon, hilft aber nix:
https://pinto10blog.wordpress.com/
http://alexweinberger.com/main/pinning-network-program-taskbar-programm ...
https://www.tenforums.com/customization/21002-how-automatically-cmd-powe ...
Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
(und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround)
Wieso hilft https://pinto10blog.wordpress.com nicht?? Geht doch einwandfrei auch für die Taskbar, und Source Code ist sogar mit dabei. Kannst du dir also nach Belieben in deine präferierte Skriptspache übersetzen.
Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
Doch, einfach die XML statt per GPO mit Import-Startlayout importieren, GPO ist dann nicht nötig!!https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround
Wohin sollen wir die Rechnung schicken?Zitat von @134464:
Wieso hilft https://pinto10blog.wordpress.com nicht?? Geht doch einwandfrei auch für die Taskbar, und Source Code ist sogar mit dabei. Kannst du dir also nach Belieben in deine präferierte Skriptspache übersetzen.
Kennst du einen allgemeingültigen Pfad zur .exe der integrierten Mail-App, so dass ich diesen als absoluten Pfad übergeben kann? --> Mein Ziel wäre ja, die Objekte der Taskbar enumerieren zu können und diese dann entsprechend zu löschen, statt die absoluten Pfade der "eventuell" gepinnten Programme zu kennen. Für das Startmenü gibts da schon was, jedoch nicht für die Taskbar.Wieso hilft https://pinto10blog.wordpress.com nicht?? Geht doch einwandfrei auch für die Taskbar, und Source Code ist sogar mit dabei. Kannst du dir also nach Belieben in deine präferierte Skriptspache übersetzen.
Das hier könnte funktionieren, nützt aber nix für Einzelplatzinstallationen:
https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
Doch, einfach die XML statt per GPO mit Import-Startlayout importieren, GPO ist dann nicht nötig!!https://www.itnator.net/taskleiste-windows-10-anpassen-per-gpo/
und ich hätte gerne am Ende die alles erschlagende Lösung per Skript, nicht wieder für jede Umgebung einen eigenen Workaround
Wohin sollen wir die Rechnung schicken?Zitat von @colinardo:
Also folgenden erfolgreichen Zwischenstand kann ich vermelden:
Ich konnte herausfinden das ein Registry-Eintrag für die zusätzlichen Links (welche übrigens die Spiele Candy-Crush/Minecraft, die Newsapp Flipboard etc. sind) im Startmenü verantwortlich sind.
Also folgenden erfolgreichen Zwischenstand kann ich vermelden:
Ich konnte herausfinden das ein Registry-Eintrag für die zusätzlichen Links (welche übrigens die Spiele Candy-Crush/Minecraft, die Newsapp Flipboard etc. sind) im Startmenü verantwortlich sind.
Meinst Du hier mit "Startmenü" nur den rechten Teil mit den "an Start angehefteten" Kacheln oder auch die Liste links mit allen Apps? Wenn letzteres, dann scheint es unter Version 1803 nicht mehr zu funktionieren. Kennst Du schon einen neuen Lösungsansatz? Bzw. wie kann ich die vorinstallierten Apps (z.B. XBox) auch dort ausblenden.
Zitat von @colinardo:
Den Consumer-Blödsinn entfernt man seit einiger Zeit hiermit
https://gpsearch.azurewebsites.net/#13329
Consumer Experience nennen die das? Diesen Nervkram mit "Experience" schönzureden grenzt schon an einen Euphemismus Den Consumer-Blödsinn entfernt man seit einiger Zeit hiermit
https://gpsearch.azurewebsites.net/#13329
Die linke Liste zeigt alle installierten Apps, damit dort etwas verschwindet musst du es deinstallieren.
Danke Microsoft, für die Bevormundung. Wo ist bloß das alte Win7-Startmenü geblieben, wo ich alles rauswerfen konnte, was effizientes Arbeiten behindert Für die rechte Seite habe ich mich dann allerdings für ein anderes Verfahren entschieden, nämlich das Vorlegen einer einmalig optimierten Kachelanordnung für alle Benutzer:
https://www.zdnet.de/88276943/windows-10-einheitliches-startmenue-fuer-a ...
Zitat von @colinardo:
Gut dann können wir ja jetzt das Beschweren hier beenden. Das richtest du bitte besser direkt an Microsoft selber, hier bringt das nichts. Merci.
Gut dann können wir ja jetzt das Beschweren hier beenden. Das richtest du bitte besser direkt an Microsoft selber, hier bringt das nichts. Merci.
Ja sorry, bin nur gerade etwas gefrustet, weil die Einrichtung des Win10-SchülerPC-Musters so unendlich aufwändiger ist als damals die des Win7-Rechners. Und der größte Teil der Arbeit entfällt darauf, irgendwelchen überflüssigen, aber vorinstallierten Kram zu deinstallieren/deaktivieren, um eine vernünftige Benutzeroberfläche für die Schüler zu bekommen. Sofern das überhaupt möglich ist (siehe Win10-Hintergrundbild Anmeldung soll nicht Bild des Sperrbildschirms sein (per Registry))
Um nochmal drauf zurückzukommen... in Windows 10 1809 funktioniert das (mal wieder) nicht richtig.
Für die vorherigen Versionen (ich meine, ich hatte das mit Windows 10 1709 geschrieben, edit: aus verschiedenen Quellen zusammengetragen ) hat das Folgende als DLL mit PowerShell-Aufruf gut funktioniert. In Windows 10 1809 kann ich damit immerhin noch Symbole von der Taskleiste unpinnen sowie ans Startmenü pinnen sowie entpinnen, sowohl für Modern Apps als auch Win32. Was nicht funktioniert, ist an die Taskleiste anzupinnen.
Der "Hack", dass sich die PowerShell als Explorer.exe ausgibt, um die Verben des Kontextmenüs zu sehen, ist mit drin. Die neuen Verben fürs Windows 8-Startmenü und höher sind ebenfalls mit drin.
Vielleicht hat einer ne Idee, wie sich das wieder hinbiegen lässt?
Erstmal der Aufruf (Pfad zur DLL und Name der Verknüpfung ggf. anpassen). Parameter 1: Name der Verknüpfung, Parameter 2: pinnen ($true) bzw. unpinnen ($false), Paramter 3: Taskbar ($true) oder Startmenü ($false).
Code für die DLL:
Für die vorherigen Versionen (ich meine, ich hatte das mit Windows 10 1709 geschrieben, edit: aus verschiedenen Quellen zusammengetragen ) hat das Folgende als DLL mit PowerShell-Aufruf gut funktioniert. In Windows 10 1809 kann ich damit immerhin noch Symbole von der Taskleiste unpinnen sowie ans Startmenü pinnen sowie entpinnen, sowohl für Modern Apps als auch Win32. Was nicht funktioniert, ist an die Taskleiste anzupinnen.
Der "Hack", dass sich die PowerShell als Explorer.exe ausgibt, um die Verben des Kontextmenüs zu sehen, ist mit drin. Die neuen Verben fürs Windows 8-Startmenü und höher sind ebenfalls mit drin.
Vielleicht hat einer ne Idee, wie sich das wieder hinbiegen lässt?
Erstmal der Aufruf (Pfad zur DLL und Name der Verknüpfung ggf. anpassen). Parameter 1: Name der Verknüpfung, Parameter 2: pinnen ($true) bzw. unpinnen ($false), Paramter 3: Taskbar ($true) oder Startmenü ($false).
Add-Type -Path "D:\PinTo10DLL.dll"
$p = [Pinto10DLL.Utils]::PinUnpinTaskbar("Microsoft Edge", $false, $true);
$p = [Pinto10DLL.Utils]::PinUnpinTaskbar("Outlook 2013", $false, $true);
Code für die DLL:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace Pinto10DLL
{
static public class Utils
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)]
internal static extern IntPtr LoadLibrary(string lpLibFileName);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)]
internal static extern int LoadString(IntPtr hInstance, uint wID, StringBuilder lpBuffer, int nBufferMax);
public static bool PinUnpinTaskbar(string filePath, bool pin, bool taskbar=true)
{
bool success = false;
try
{
ChangeImagePathName("explorer.exe");
bool isModern = !(filePath.StartsWith(@"\\") || filePath.Substring(1).StartsWith(@":"));
if (!isModern && !File.Exists(filePath)) throw new FileNotFoundException(filePath);
int MAX_PATH = 255;
// 5386 is the DLL index for"Pin to Tas&kbar", ref. http://www.win7dll.info/shell32_dll.html
//uncomment the following line to pin to start instead
//actionIndex = pin ? 51201 : 51394;
var actionIndex = 0;
if (taskbar) { actionIndex = pin ? 5386 : 5387; }
Version os = Environment.OSVersion.Version;
if (!taskbar && (os.Major == 6 && os.Minor == 1))
{
actionIndex = pin ? 5381 : 5382;
}
else if (!taskbar)
{
actionIndex = pin ? 51201 : 51394;
}
StringBuilder szPinToStartLocalized = new StringBuilder(MAX_PATH);
IntPtr hShell32 = LoadLibrary("Shell32.dll");
LoadString(hShell32, (uint)actionIndex, szPinToStartLocalized, MAX_PATH);
string localizedVerb = szPinToStartLocalized.ToString();
string path = isModern ? "shell:AppsFolder" : Path.GetDirectoryName(filePath);
string fileName = isModern ? filePath.Trim().ToUpper() : Path.GetFileName(filePath);
//Console.WriteLine(filePath + ": " + isModern.ToString());
// Console.WriteLine(path + "\\" + fileName);
// Console.ReadLine();
// create the shell application object
dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
dynamic directory = shellApplication.NameSpace(path);
dynamic link = null; // directory.ParseName(fileName);
if (!isModern)
link = directory.ParseName(fileName);
else
{
//// modern apps ////
var items = directory.Items;
foreach (var item in items)
{
if (item.Name.ToUpper() == fileName.ToUpper())
{
link = item;
break;
}
}
//// modern apps ////
}
dynamic verbs = link.Verbs();
string verbstring = "";
for (int i = 0; i < verbs.Count(); i++)
{
dynamic verb = verbs.Item(i);
var name = verb.Name;
if (verb.Name.Equals(localizedVerb))
{
// verbstring += "!!!";
verb.DoIt();
success = true;
}
verbstring += name + Environment.NewLine;
}
// Console.WriteLine(verbstring);
// Console.ReadLine();
}
catch
{
success=false;
}
finally {
RestoreImagePathName();
}
return success;
}
static string originalImagePathName;
static int unicodeSize = IntPtr.Size * 2;
static bool changed;
static void GetPointers(out IntPtr imageOffset, out IntPtr imageBuffer)
{
IntPtr pebBaseAddress = GetBasicInformation().PebBaseAddress;
var processParameters = Marshal.ReadIntPtr(pebBaseAddress, 4 * IntPtr.Size);
imageOffset = processParameters.Increment(4 * 4 + 5 * IntPtr.Size + unicodeSize + IntPtr.Size + unicodeSize);
imageBuffer = Marshal.ReadIntPtr(imageOffset, IntPtr.Size);
}
internal static void ChangeImagePathName(string newFileName)
{
IntPtr imageOffset, imageBuffer;
GetPointers(out imageOffset, out imageBuffer);
//Read original data
var imageLen = Marshal.ReadInt16(imageOffset);
originalImagePathName = Marshal.PtrToStringUni(imageBuffer, imageLen / 2);
var newImagePathName = Path.Combine(Path.GetDirectoryName(originalImagePathName), newFileName);
if (newImagePathName.Length > originalImagePathName.Length) throw new Exception("new ImagePathName cannot be longer than the original one");
//Write the string, char by char
var ptr = imageBuffer;
foreach (var unicodeChar in newImagePathName)
{
Marshal.WriteInt16(ptr, unicodeChar);
ptr = ptr.Increment(2);
}
changed = true;
Marshal.WriteInt16(ptr, 0);
//Write the new length
Marshal.WriteInt16(imageOffset, (short)(newImagePathName.Length * 2));
}
internal static void RestoreImagePathName()
{
if (!changed) return;
IntPtr imageOffset, ptr;
GetPointers(out imageOffset, out ptr);
foreach (var unicodeChar in originalImagePathName)
{
Marshal.WriteInt16(ptr, unicodeChar);
ptr = ptr.Increment(2);
}
Marshal.WriteInt16(ptr, 0);
Marshal.WriteInt16(imageOffset, (short)(originalImagePathName.Length * 2));
}
public static ProcessBasicInformation GetBasicInformation()
{
uint status;
ProcessBasicInformation pbi;
int retLen;
var handle = System.Diagnostics.Process.GetCurrentProcess().Handle;
if ((status = NtQueryInformationProcess(handle, 0,
out pbi, Marshal.SizeOf(typeof(ProcessBasicInformation)), out retLen)) >= 0xc0000000)
throw new Exception("Windows exception. status=" + status);
return pbi;
}
public static IntPtr Increment(this IntPtr ptr, int value)
{
unchecked
{
if (IntPtr.Size == sizeof(Int32))
return new IntPtr(ptr.ToInt32() + value);
else
return new IntPtr(ptr.ToInt64() + value);
}
}
[DllImport("ntdll.dll")] public static extern uint NtQueryInformationProcess([In] IntPtr ProcessHandle, [In] int ProcessInformationClass, [Out] out ProcessBasicInformation ProcessInformation, [In] int ProcessInformationLength, [Out] [Optional] out int ReturnLength);
[StructLayout(LayoutKind.Sequential)] public struct ProcessBasicInformation
{
public uint ExitStatus;
public IntPtr PebBaseAddress;
public IntPtr AffinityMask;
public int BasePriority;
public IntPtr UniqueProcessId;
public IntPtr InheritedFromUniqueProcessId;
}
}
}
Hallo Uwe,
leider funktioniert diese PowerShell Funktion unter Windows 10 Pro 1903 nicht mehr. Wir haben diese Funktion bisher bei jeder unserer Windows 10 Installation genutzt, weil es genau unsere Zwecke erfüllt dem User ein paar spezifische Apps für die Arbeitszwecke anzupinnen
Der Systemordner shell:::{4234d49b-0245-4df3-b780-3893943456e1} ist noch vorhanden.
PowerShell gibt als Fehler 0x8007005 (E_ACCESSDENIED) in Zeile 17 bei "$_.DoIt()" zurück.
Wäre toll wenn hier eine Anpassung möglich wäre um diese tolle Tool weiter zu benutzen.
Andere haben auch das Problem https://www.tenforums.com/customization/133814-unpin-pin-ps1-does-not-wo ...
leider funktioniert diese PowerShell Funktion unter Windows 10 Pro 1903 nicht mehr. Wir haben diese Funktion bisher bei jeder unserer Windows 10 Installation genutzt, weil es genau unsere Zwecke erfüllt dem User ein paar spezifische Apps für die Arbeitszwecke anzupinnen
Der Systemordner shell:::{4234d49b-0245-4df3-b780-3893943456e1} ist noch vorhanden.
PowerShell gibt als Fehler 0x8007005 (E_ACCESSDENIED) in Zeile 17 bei "$_.DoIt()" zurück.
Wäre toll wenn hier eine Anpassung möglich wäre um diese tolle Tool weiter zu benutzen.
Andere haben auch das Problem https://www.tenforums.com/customization/133814-unpin-pin-ps1-does-not-wo ...
Hallo.
Ich hatte die pintotaskbar (syspin.exe) in älterer Version mal irgendwann angeschaut. Auch die war bei Virustotal.com auffällig. Die jetzige gibt zwar noch kein eindeutiges Bild ab (2 Erkennungen), aber Vorsicht ist geboten: https://www.virustotal.com/gui/file/b666a7cc06be4ab39bdc930d26aed0e164bc ...
Dort sind auch Sandbox-Begutachtungen abgelegt.
Ich hatte die pintotaskbar (syspin.exe) in älterer Version mal irgendwann angeschaut. Auch die war bei Virustotal.com auffällig. Die jetzige gibt zwar noch kein eindeutiges Bild ab (2 Erkennungen), aber Vorsicht ist geboten: https://www.virustotal.com/gui/file/b666a7cc06be4ab39bdc930d26aed0e164bc ...
Dort sind auch Sandbox-Begutachtungen abgelegt.