Auflisten installierter Officekomponenten
Moin.
Hat jemand ein Skript parat, mit dem ich vorhandene Unterkomponenten von Office 2016 auflisten kann (z.B. OneDrive for business)?
Bitte nur getestete Vorschläge, denn es scheint nicht mal eben ergoogelt zu sein.
Hat jemand ein Skript parat, mit dem ich vorhandene Unterkomponenten von Office 2016 auflisten kann (z.B. OneDrive for business)?
Bitte nur getestete Vorschläge, denn es scheint nicht mal eben ergoogelt zu sein.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 374914
Url: https://administrator.de/forum/auflisten-installierter-officekomponenten-374914.html
Ausgedruckt am: 10.04.2025 um 10:04 Uhr
21 Kommentare
Neuester Kommentar

Ich schmeiß das mal in die Runde.
gci "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office\16.0","HKLM:\SOFTWARE\Microsoft\Office\16.0" -Recurse | ?{$_.PSChildName -eq 'InstallRoot' -and $_.PSParentPath.Split('\')[-1] -notmatch '^Common|OsfInstaller$' -and $_.GetValue('Path') -ne ""} | %{$_.PSParentPath.Split('\')[-1]}

Dann schau mal ob es unter den MSI published Features auftaucht
Add-Type –MemberDefinition '
[DllImport("msi", CharSet = CharSet.Unicode)]public static extern uint MsiEnumFeatures(string szProduct,uint iFeatureIndex, string lpFeatureBuf, string lpParentBuf);
[DllImport("msi", CharSet = CharSet.Unicode)]public static extern int MsiQueryFeatureState(string szProduct,string szFeature);
' -name "tools" -namespace MSI -EA SilentlyContinue
$result = 0
$cnt = 0
$GUID = '{90160000-008C-0000-0000-0000000FF1CE}'
while($result -ne 259){
$id = ' '*39
$parent = ' '*39
$result = [MSI.tools]::MsiEnumFeatures($GUID,$cnt,$id,$parent)
if ([MSI.tools]::MsiQueryFeatureState($GUID,$id) -eq 3){
$id.trim()
}
$cnt++
}
Hallo DerWoWusste,
...und wenn Du "
Ich konnst nicht wirklich testen, weil ich kein "OneDrive for Business" und auch nur Office 2007 habe.
Gruß Frank
...und wenn Du "
\16.0
" weg lässt?gci "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office","HKLM:\SOFTWARE\Microsoft\Office" -Recurse | ?{$_.PSChildName -eq 'InstallRoot' -and $_.PSParentPath.Split('\')[-1] -notmatch '^Common|OsfInstaller$' -and $_.GetValue('Path') -ne ""} | %{$_.PSParentPath.Split('\')[-1]}
Gruß Frank

und auch nur Office 2007 habe.
Dort gibts ja auch kein 16.0
@136166,
die Idee war einfach eine Ebene höher zu gehen, für den Fall das Onedrive vielleicht nicht unter 16.0 steht, sondern irgendwo daneben.
@DerWoWusste
steht denn hier oder hier etwas zu OneDrive?
HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office\...
HKLM:\SOFTWARE\Microsoft\Office\...
Gruß Frank
die Idee war einfach eine Ebene höher zu gehen, für den Fall das Onedrive vielleicht nicht unter 16.0 steht, sondern irgendwo daneben.
@DerWoWusste
steht denn hier oder hier etwas zu OneDrive?
HKLM:\SOFTWARE\WOW6432Node\Microsoft\Office\...
HKLM:\SOFTWARE\Microsoft\Office\...
Gruß Frank

Zitat von @DerWoWusste:
Das Skript läuft sich leider tot, ohne nach 10 Minuten etwas zu liefern. Geht's bei Dir, Decathlon?
Jepp.Das Skript läuft sich leider tot, ohne nach 10 Minuten etwas zu liefern. Geht's bei Dir, Decathlon?

Keine Sekunde, gleiche Systeme wie bei dir.

Zitat von @DerWoWusste:
@136166
Nehme ich ein Office Retail (2016 CTR), dann geht auch dein Skript, nicht aber bei einer 2016 Standard Volumenlizenz, welche ich danach auf der selben VM installiere - und das passiert sogar auf einem leeren System ohne GPOs. Ich kann nur vermuten, dass Du dich in der Office-Edition irrst.
Nein, das du eine Volumenlizenz verwendest stand leider nirgends, ein Standard gibt's ja auch als CTR. Hier läuft es egal ob Vol lic. oder ctr. Du musst natürlich die passende Office GUID im Skript verwenden!!!@136166
Nehme ich ein Office Retail (2016 CTR), dann geht auch dein Skript, nicht aber bei einer 2016 Standard Volumenlizenz, welche ich danach auf der selben VM installiere - und das passiert sogar auf einem leeren System ohne GPOs. Ich kann nur vermuten, dass Du dich in der Office-Edition irrst.
Wenn du das nicht willst lese sie dir aus der Registry aus.
Dito

Jepp.