PowerShell codice personalizzato chiamando ha SPWeb.CurrentUser = null (in alcuni casi)
-
16-10-2019 - |
Domanda
Ho un assembly personalizzato, che contiene il codice per variazioni di configurazione per un sito di editoria SharePoint 2010. Questo codice è basato fuori una post sul blog da Waldek
Ho uno script PowerShell in cui creo un nuovo WebApplication e SiteCollection, ho quindi caricare mia abitudine di assemblaggio e tentare di richiamare i metodi che l'installazione delle variazioni. Il problema è che la proprietà CurrentUser del SPWeb (rootweb) Sto cercando di lavorare con rendimenti nulli, che è la causa di fondo della accesso è l'errore che ricevo negato.
Se scomponiamo questo in due script, uno per fare la creazione e uno per chiamare il codice personalizzato, funziona, a condizione che entrambi chiamo in modo interattivo. Se li avvolgo in un singolo script genitore che richiama ciascuno di essi a loro volta sono tornato al CurrentUser essere nullo.
Ora per la mia all'uso richiesto ho bisogno di questo di lavoro nel contesto di un singolo script di installazione automatica.
Qualcuno ha visto questo o qualcosa simialr? O avete qualche idea di come avrei potuto superare questo problema?
Soluzione
Il modo in cui descrivere questo, suona come un problema di cache, in quanto PowerShell si basa molto sul caching.
evito nei miei script di provisioning per la deposizione delle uova di nuovi processi di PowerShell al volo dal mio console principale. Questo può essere usato anche per garantire che le coperture sono chiamati in qualità di amministratore, quando UAC è abilitato:
$shell = Start-Process powershell -verb runas -Passthru
passante permette di gusci di uscita con codici di ritorno. Runas verbo corre il guscio elevata.