DataGen/initialize-knowledgearticle.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
param ( $count = 20, [switch]$whatif, [switch]$verbose)
BEGIN
{
    # the definition of Out-TestLog
    . ./Common.ps1
    $TESTNAME = $MyInvocation.MyCommand
    $DOCUMENT = "${PWD}\Document.RTF"
    $class = get-scsmclass "System.Knowledge.Article"
    # get rid of the article we're creating
    get-scsmobject $class -filter "DisplayName = 'TestArticle1'"|
        remove-scsmobject -force
    $STARTTIME = [datetime]::Now
    $OPEN = ([io.filemode]::Open)
    $RACC = ([io.fileaccess]::Read)
    $RSHR = ([io.fileshare]::read)
}
END
{


    for($i = 0; $i -lt $count; $i++)
    {
        try
        {
            $G = [guid]::NewGuid()
            $Title = Get-Lorem 6
            $script:str = new-object io.filestream "${DOCUMENT}",$OPEN,$RACC,$RSHR
            new-scsmobject -whatif:$whatif -verbose:$verbose -class $class -PropertyHashtable @{ 
                ArticleID = "TestArticle: ${G}"
                Title = $Title
                Status = "Draft" 
                EndUserContent = $str
                }
            Write-Progress -Act "Create KA" -Stat $Title -perc ($i/$count*100)
        }
        catch 
        {
            throw $error[0]
        }
        finally
        {
            $str.close()
            $str.dispose()
        }
    }

}