Solved

Debugging a PowerShell Simple Code

Posted on 2012-04-09
2
410 Views
Last Modified: 2012-04-10
Hi Experts,

This is my first time writing a powershell script. So, I really need some help here.
Below code is a very simple code to write a new record into a list. But I am getting the following error

"Cannot index into a null array.
At D:\Batch Jobs\PowerShell Scripts\test.ps1:8 char:59
+ $root.lists.add("CTest","Custom Test",$root.listtemplates[ <<<< "Custom List"])
    + CategoryInfo          : InvalidOperation: (Custom List:String) [], RuntimeException
    + FullyQualifiedErrorId : NullArray"


Can advise what could the possible problem for the error?


[system.reflection.assembly]::LoadWithPartialName("Microsoft.Sharepoint")

# Connect to the site collection
$site = New-Object Microsoft.SharePoint.SPSite("http://sharepoint.apb.com.sg/gmis/ec")
$web     =    $site.rootweb
$list    =    $web.Lists["Email Convertor Service Check"]

$newitem =    $list.items.Add()
$newitem["Date"]=    "4/10/2012";                                                                                          
$newitem["Result"] =    "Email Converter Service Stopped";                                                                                          
 
$newitem.update() 
 
$web.Dispose()
$site.Dispose() 

Open in new window

0
Comment
Question by:NicksonKoh
2 Comments
 
LVL 17

Author Comment

by:NicksonKoh
ID: 37826345
Hi Expert,

I realise my mistake is in the following 3 lines of code

$site = New-Object Microsoft.SharePoint.SPSite("http://sharepoint.apb.com.sg/gmis/ec")
$web     =    $site.rootweb
$list    =    $web.Lists["Email Convertor Service Check"]

$web changes the pointer to go to the rootweb but
my "Email Converter Service Check" is a custom list in $site

What should I change such that the list should be pointing to $site and not the rootweb.
0
 
LVL 18

Accepted Solution

by:
ivan_vagunin earned 500 total points
ID: 37826428
Hi!
Try to use $web = $site.OpenWeb("/") instead of $web = $site.rootweb.
What do you mean saying list should be pointint to $site?
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SharePoint 2013 Site Replacement 6 32
Office365 Bulk Enable not CSV 9 19
How to strip content from csv 8 17
powershell variable inside quotes 5 17
Utilizing an array to gracefully append to a list of EmailAddresses
Create and license users in Office 365 in bulk based on a CSV file. A step-by-step guide with PowerShell script examples.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa‚Ķ

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question