###########################################
# Create a bunch of shares
# (C) dr Holger Schwichtenberg, www.IT-Visions.de
###########################################

# Parametry
$Komputer = "."

# Podprocedury

Function New-Share($Komputer, $NazwaUdziału, $Ścieżka, $Komentarz, $Dostęp)
{
# Info
"Tworzenie udziału $NazwaUdziału dla ścieżki $Ścieżka..."

# Usuń, jeżeli istnieje
Get-WmiObject Win32_Share -ComputerName $Komputer –Filter `
  "Name='$NazwaUdziału'" | foreach {
  Write-Warning "Usuwanie istniejącego udziału $($_.Name)..."
  $_.Delete()
}

# Tworzenie obiektu Win32_Share
$Klasa = [WMIClass] "ROOT\CIMV2:Win32_Share" 
$Dostęp = $Null
$R = $Klasa.Create($Ścieżka, $NazwaUdziału, 0, 10, $Komentarz, "", $Dostęp)

# Wynik
if ( $R.ReturnValue -ne 0) { Write-Error ("Błąd przy tworzeniu udziału: " +
$R.ReturnValue); Exit}
"Udział został utworzony!"
}

# Pobieranie pliku XML
$doc = [xml] (Get-Content -Path udziały.xml)
$udziały = $doc.SelectNodes("//Udział")

# Pętla
foreach ($udział in $udziały)
{
New-Share $Komputer $udział.Nazwa $udział.Ścieżka $udział.Opis
}
