Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell start-process als aktueller Benuter mit adminrechten

Frage Entwicklung Batch & Shell

Mitglied: Marabunta

Marabunta (Level 1) - Jetzt verbinden

20.12.2014, aktualisiert 21.12.2014, 2050 Aufrufe, 9 Kommentare

ich habe einen task der ein programm starten soll für den aktuell angemeldeten nutzer (i.d.R. Adminrechte verfügbar)
Der Task läuft unter dem Nutzer SYSTEM mit Adminrechten....

Das würde es mit Adminrechten starten, jedoch für den Benutzer "SYSTEM"
$todo=start-process -Verb RunAs $programm

Ich kann das Programm auch für den aktuell angemeldetem Benutzer starten, nur dann mit eingeschränkten rechten:

$todo=&"$programm"

Was ich brauche ist eine kombination von beiden:
$todo=start-process -Verb RunAs $loggedinUser $programm
mit credentials kann ich nicht arbeiten weil ich keine leeren passwörter in securestring konvertieren kann...
weiß jemand rat?
Mitglied: 114757
20.12.2014, aktualisiert um 23:10 Uhr
Moin,
start-process kennt den Parameter -Credential ... machts jetzt Klick

01.
$user = "username" 
02.
$pass = "password" 
03.
$cred = New-Object PSCredential($user,(ConvertTo-SecureString -String $pass -AsPlainText -Force)) 
04.
 
05.
Start-Process c:\deine.exe  -Credential ($cred)
Gruß jodel32
Bitte warten ..
Mitglied: Marabunta
20.12.2014, aktualisiert um 23:09 Uhr
hab ich eben noch editiert:
mit credentials kann ich nicht arbeiten weil ich keine leeren passwörter in securestring konvertieren kann...

also es ist eher eine private umgebung und da sind auch leere passwörter unterwegs
Bitte warten ..
Mitglied: 114757
20.12.2014, aktualisiert um 23:18 Uhr
was ist der Sinn und Zweck ?? Da scheint mit eher ein Denkfehler in der Logik zu sein.
Mit höchsten Rechten kannst du alles machen...,
Bitte warten ..
Mitglied: Marabunta
20.12.2014, aktualisiert um 23:31 Uhr
Die Software/Tool verwendet den Benutzernamen und schaltet entsprechende Oberflächen frei. Dazu wird der Username unter dem der Prozess läuft ausgelesen. "SYSTEM" hilft den Task recht einfach einzurichten und das Programm zu starten/updaten etc., aber bei dieser Software "darf" es eben nicht "SYSTEM" als Processowner sein.
Bisher wurde es mit psexec gemacht und funktioniert auch. Soll aber zukünftig ohne weitere Software auskommen.

das problem ohne pw:
01.
PS C:\...> $user = "$thisuser" 
02.
$pass = "" 
03.
$cred = New-Object PSCredential($user,(ConvertTo-SecureString -String $pass -AsPlainText -Force)) 
04.
ConvertTo-SecureString : Das Argument kann nicht an den Parameter "String" gebunden werden, da es sich um eine leere Zeichenfolge handelt. 
05.
In Zeile:3 Zeichen:71 
06.
+ $cred = New-Object PSCredential($user,(ConvertTo-SecureString -String $pass -AsP ... 
07.
+                                                                       ~~~~~ 
08.
    + CategoryInfo          : InvalidData: (:) [ConvertTo-SecureString], ParameterBindingValidationException 
09.
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand
Bitte warten ..
Mitglied: 114757
LÖSUNG 20.12.2014, aktualisiert 21.12.2014
https://clymb3r.wordpress.com/2013/11/03/powershell-and-token-impersonat ...

By the way sollte folgende Policy auf disabled stehen damit das klappen soll:

Start >> Ausführen ... >> secpol.msc
Local Policies >> Security Options >> Limit local account use of blank passwords to console logon only.

Dann kommt aber auch jeder Depp der einen Usernamen kennt auf den Rechner...

Andere Möglichkeit, du erstellst einen weiteren Task aus deinem PS-Script welcher dann mit den Creds des Users aus deinem PSScript heraus gestartet wird.
Bitte warten ..
Mitglied: Marabunta
21.12.2014, aktualisiert um 02:37 Uhr
danke hat teilweise funktioniert.
da es als system läuft scheint er mit $env:username ein problem zu haben und den computernamen doppelt zu setzen:

01.
Main : A token belonging to the specified username was not found. Username:  
02.
TestComputerTestComputer$ 
03.
In C:\test.ps1:1639 Zeichen:1 
04.
+ Main 
05.
+ ~~~~ 
06.
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorExcep  
07.
   tion 
08.
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio  
09.
   n,Main 
10.
 
kann ich den angemeldeten benutzernamen anders auslesen?


hab was gefunden:
01.
$proc = gwmi win32_process -computer localhost -Filter "Name = 'explorer.exe'" 
02.
        #Go through collection of processes 
03.
        ForEach ($p in $proc) { 
04.
            $temp = "" | Select Domain, User 
05.
            $temp.user = ($p.GetOwner()).User 
06.
            $temp.domain = ($p.GetOwner()).Domain 
07.
            $global:report += $temp 
08.
          }
Bitte warten ..
Mitglied: DerWoWusste
21.12.2014 um 18:40 Uhr
Hi.

Darf ich das Ding nochmal aufrollen? Du hast einen Adminuser, der einen Task nutzen soll, welcher ein Skript startet. Und dabei soll mit höchsten Rechten gearbeitet werden.
Wozu der Nutzer System, der wird meiner Ansicht nach nicht benötigt. Einfach den Task einrichten mit der Option "mit höchsten Rechten ausführen" und "nur wenn angemeldet ausführen" und fertig.
Bitte warten ..
Mitglied: Marabunta
21.12.2014 um 19:15 Uhr
http://www.administrator.de/forum/mit-powershell-einen-task-erstellen-2 ...
$Rootfolder.RegisterTaskDefinition('Run a powershell script through a scheduled task', $TaskDefinition, 6, "System", $null , 5)
lässt sich der Task mit der funktion auch ohne "System" starten? Also ohne einen User zu brauchen?
Dann würde ich es natürlich gleich streichen.
Bitte warten ..
Mitglied: DerWoWusste
21.12.2014 um 19:39 Uhr
Ich kann Dir zur Powershell-Syntax nichts aus dem Stegreif sagen, aber es wird mit Sicheheit gehen. Ein Kennwort musst Du hierbei nicht übergeben, du musst lediglich die Optionen "ausführen nur wenn angemeldet" "und mit höchsten Privilegien ausführen" umsetzen.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell start-process (4)

Frage von Cougar77 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Fehler beim Start von zweitem Process (5)

Frage von iceboxyz zum Thema Batch & Shell ...

Batch & Shell
gelöst Letzter Start einer Applikation per Powershell (5)

Frage von pixel0815 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...