hawk0815 10 Geschrieben 21. Februar 2013 Melden Geschrieben 21. Februar 2013 (bearbeitet) Hallo, ich habe ein Poweshell scrip mit dem ich user in einer SharePoint Seite berechtigen möchte. hier der teil um den es geht. Try { Set-SPUser -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } catch { "new User wird verwendet" new-SPUser -UserAlias $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } der Set Befehl bricht wenn der user noch nie verwendet wurde mit dieser Fehler meldung ab. Set-SPUser : You must specify a valid user object or user identity. At D:\scripte\set_Index_ACLs.ps1:62 char:17 + Set-SPUser <<<< -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp + CategoryInfo : InvalidArgument: (:) [Set-SPUser], PSArgumentException + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletSetUser der Catch wird aber nicht "angesprochen" hat jemend eine idee warum nicht? Gruß hawk0815 bearbeitet 21. Februar 2013 von hawk0815
Timsk 11 Geschrieben 21. Februar 2013 Melden Geschrieben 21. Februar 2013 (bearbeitet) Hallo, ich habe ein Poweshell scrip mit dem ich user in einer SharePoint Seite berechtigen möchte. hier der teil um den es geht. Try { Set-SPUser -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } catch { "new User wird verwendet" new-SPUser -UserAlias $ArrayUser[$i] -Web https://team.xyz.com -Group $temp } der Set Befehl bricht wenn der user noch nie verwendet wurde mit dieser Fehler meldung ab. Set-SPUser : You must specify a valid user object or user identity. At D:\scripte\set_Index_ACLs.ps1:62 char:17 + Set-SPUser <<<< -Identity $ArrayUser[$i] -Web https://team.xyz.com -Group $temp + CategoryInfo : InvalidArgument: (:) [Set-SPUser], PSArgumentException + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletSetUser der Catch wird aber nicht "angesprochen" hat jemend eine idee warum nicht? Gruß hawk0815 Mit Standard Commandlets funktioniert try catch nicht soweit mir bekannt, Du kannst das nur benutzen wenn du .NET Klassen ansprichst, zum Beispiel [system.Net.WebRequest], vielleicht irre ich mich aber auch! Viele Grüße! bearbeitet 21. Februar 2013 von Timsk
Cybquest 36 Geschrieben 21. Februar 2013 Melden Geschrieben 21. Februar 2013 Evtl. statt Catch {... mal Catch [system.Exception] {... probieren. Evtl. am Scriptanfang noch $ErrorActionPreference = "stop" einfügen.
ducke 11 Geschrieben 22. Februar 2013 Melden Geschrieben 22. Februar 2013 Es gibt bei Powershell zwei Arten von Errors. Die Terminating errors und non-terminating errors. Terminating errors werden mit try + catch aufgefangen. Non-terminating errors leider nicht. Du kannst, wie Cybquest schon richtig erwähnt hat, mit -ErrorAction "Stop" arbeiten try { $ErrorActionPreference = "Stop" Set-SPUser ....... } catch { write-host $error[0].exception.Message } finally { $ErrorActionPreference = "Continue" } oder mit der Variable $? Set-SPUser ...... if ($?) { write-host "Alles toll :)" } else { write-host $error[0].exception.Message }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden