Führen Sie PowerShell ISE immer als Administrator aus

10178
Deadly-Bagel

Ich habe Windows 10 und führe einige PowerShell-Befehle über das Outlook-COM-Objekt aus. Dies setzt voraus, dass PowerShell auf derselben Zugriffsebene ausgeführt wird (als Administrator oder Benutzer ausgeführt) wie Outlook.

Da ich PowerShell für andere Teile als Administrator ausführen muss, muss Outlook auch als Administrator ausgeführt werden. Kein Problem. Wenn ich die ISE öffne, kann ich jetzt nicht mehr auf die Outlook-Objekte zugreifen.

Es scheint keine Möglichkeit zu geben, die ISE so einzustellen, dass sie immer als Administrator ausgeführt wird. Die Registerkarte "Kompatibilität" fehlt (obwohl nicht in PowerShell selbst?) Und die Registrierungsschlüssel ...Windows NT\AppCompatibilityhaben nichts getan. Ich würde die Benutzerkontensteuerung vollständig deaktivieren, aber natürlich ist es in Windows 10 nicht möglich, ohne ein paar andere Sachen zu verschleiern.

Irgendwelche Ideen? Und nein, ich möchte nicht jedes Mal mit der rechten Maustaste auf das Symbol klicken, da ich Skripts oft direkt öffne.

UPDATE: Outlook beschwert sich, dass es nicht als Administrator indiziert werden kann und die ISE meine Netzlaufwerke nicht als Administrator erkennt. Das geringere der beiden Übel wird nur als Benutzer ausgeführt. Übrigens ist die Registerkarte Kompatibilität jetzt auch aus der PowerShell-Exe verschwunden, dank Microsoft ...

3

2 Antworten auf die Frage

3
bentek

Hier sind 2 verschiedene Optionen, mit denen Sie ISE als Administrator starten können:

  1. Sie können eine Verknüpfung zu der powershell_ise.exeausführbaren Datei erstellen / bearbeiten und die Eigenschaften für diese Verknüpfung bearbeiten Run as Administrator.

  1. Sie können PowerShell ISE als Administrator über starten Start-Process powershell_ise -verb RunAs.
Nein, es gibt zwei verschiedene Optionen. bentek vor 8 Jahren 0
Antwort wurde aktualisiert, um dies zu verdeutlichen. bentek vor 8 Jahren 0
Ich schätze den Aufwand, um die Antwort zu verbessern. Ramhound vor 8 Jahren 0
Dadurch wird das Problem nicht gelöst, als würde ich die ISE durch Doppelklicken auf ein Skript öffnen, das die ISE als eingeschränkter Benutzer öffnet. Ich müsste die ISE jedes Mal über die Verknüpfung öffnen. Anscheinend ist das die Richtung, in die Microsoft geht: Sie können es auf diese Weise tun und es funktioniert, aber nicht so gut wie in Windows 7 / Server 2008 Deadly-Bagel vor 8 Jahren 0
Können Sie die Skripteigenschaften so einstellen, dass sie als Administrator ausgeführt werden? bentek vor 8 Jahren 0
Nein, das Skript ist nur eine Datei, daher wird es nicht "ausgeführt". Außerdem habe ich festgestellt, dass wenn die ISE als Administrator ausgeführt wird, keine Skripts auf Netzlaufwerken geöffnet werden können. Der Pfad wird einfach nicht erkannt. Windows 10 hat seine Vorteile (va das Ausführen von vier Bildschirmen), aber ich laufe ständig mit so viel Müll herum und es wird nervig. Deadly-Bagel vor 8 Jahren 0
Option 1 ist (oder ist jetzt) ​​auf Windows Server 2012 R2 mit Classic Shell verfügbar. Das Windows 10-Startmenü scheint Ihnen keine Verknüpfungsmerkmale zu bieten, Sie können jedoch über das Symbol des Programms darauf zugreifen, wenn das Programm ausgeführt wird. YetAnotherRandomUser vor 6 Jahren 0
1
EricO

Ich bin darauf viele Monate nach dem Beitrag gestoßen, aber ich denke, mein Kommentar ist hilfreich.

@ Deadly-Bagel Nein, das Skript ist nur eine Datei, daher wird es nicht "ausgeführt".

Ein Skript ist zwar nur eine Datei, kann aber durchaus Funktionen enthalten. Eine dieser Funktionen kann so eingerichtet werden, dass sie als erster Prozess in dieser Skriptdatei ausgeführt wird. Diese Funktion kann verwendet werden, um festzustellen, ob die aktuelle Sitzung als Administrator ausgeführt wird oder nicht. Wenn dies nicht der Fall ist, kann es sich selbst erhöhen (vorausgesetzt der angemeldete Benutzer hat Administratorrechte).

 function Use-RunAs {  # Check if script is running as Adminstrator and if not use RunAs  # Use Check Switch to check if admin   param([Switch]$Check)   $IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()`  ).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")   if ($Check) { return $IsAdmin }   if ($MyInvocation.ScriptName -ne "")  {  if (-not $IsAdmin)  {  try  {  $arg = "-file `"$($MyInvocation.ScriptName)`""  Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList $arg -ErrorAction 'stop'  }  catch  {  Write-Warning "Error - Failed to restart script with runas"  break  }  exit # Quit this session of powershell  }  }  else  {  Write-Warning "Error - Script must be saved as a .ps1 file first"  break  } }   Use-RunAs 

Ich hoffe das hilft deiner Situation. Wenn nicht, würde ich mich freuen, wieder zu kommen.

Wenn Sie das Skript ausführen, bestand das Problem darin, dass die ISE beim Bearbeiten des Skripts als Benutzer geöffnet wird und daher eingeschränkt wurde. Könnte funktionieren, wenn Sie sich auf das Testen mit F8 beschränken ... Leider fand ich heraus, dass die ISE, wenn sie als Administrator ausgeführt wird, aus irgendeinem Grund den Zugriff auf alle meine Netzlaufwerke verliert, und Outlook sich beschwert, dass er Administrator ist Das Zeug, das als Admin getestet werden muss (das meiste davon), kopiere ich einfach in eine Administrationskonsole. Ich glaube, ich habe eine andere Verwendung für dieses Skript. Danke, dass Sie sich die Zeit genommen haben =) Deadly-Bagel vor 6 Jahren 0