Jump to content

PS Script mit SQL Anbindung klappt nicht mit Task Scheduler 2008 R2


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Server: Windows 2008 R2

SQL: 2000 Express

 

Das Script macht folgendes: Ordnergrößen eines Netzwerkshares auslesen und in eine SQL 2008 Express DB schreiben. Der User des Scheduled Tasks ist Domain Admin sowie Sysadmin auf dem SQL Server. Ich habe mich auch bereits als der User selbst angemeldet und das Script ausgeführt, funkt.

 

 

$searchFolder = "\\server\c$\share"

 

$SQLServer = "servername\instancename"

$SQLDBName = "db"

 

# Start of Script

 

clear

get-module -listAvailable | import-module

 

$date = Get-Date -format "yyyy-MM-dd"

 

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection

$SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; Integrated Security = True"

$sqlConnection.Open()

 

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand

$SqlCmd.Connection = $SqlConnection

 

dir $searchFolder | Where-Object { $_.PSIsContainer } | ForEach-Object {

  $colItems = (Get-ChildItem $_.FullName -recurse -erroraction silentlycontinue | Measure-Object -property length -sum) 

  [int]$length=$colItems.sum/1GB

  write-host "$_ = $length GB"

 

$sqlQuery = "INSERT INTO sizeofj (date,GB,folder) VALUES ( '$date' , '$length', '$_')"

$SqlCmd.CommandText = $SqlQuery

$SqlCmd.executenonquery()

}

 

$SqlConnection.Close()

 

 

Lokal läuft das Script brav, per Schedule steht es einfach bei 0x41301 (Running) und die Datenbank bekommt keine Einträge.

 

Task Scheduler:

Highest Privileges, run wether user is logged on, 2008 R2
Argument:

-NoLogo -command "&{\\server\c$\scripts\tasks\sql_count_folders_groupdata.ps1}"

oder

& '\\server\c$\scripts\tasks\sql_count_folders_groupdata.ps1'

 

Hat jemand eine Idee, warum das Script nichts macht?

 

Geschrieben

Hallo Morgenstern

 

ich starten meine Scripte unter w2008r2 per Task immer wie folgt.

Unter Actions

Action = Start a Program

Details = c:\windows\system32\windowspowershell\v1.0\powershell.exe -file c:\temp\script.ps1

Geschrieben

Was sagt get-executionpolicy ?

Hab ich bereits auf unrestricted

 

Es wird nun immer kryptischer.

Vorgestern Nacht lief das Script plötzlich fehlerfrei, 12 Minuten Dauer.

Heute Nacht wurde es nach 1 Stunde Laufzeit abgebrochen, nachdem es 18 von 28 Folders ausgelesen hatte.

 

Es läuft nun also, ohne dass ich was geändert hätte, braucht aber offensichtlich manchmal erheblich länger. Da muss ich nachforschen-

Geschrieben (bearbeitet)

Evtl. dauert das auslesen der Daten zu lang.

Ich würde mir mal zwischen den Schritten Ausgaben einbauen, dann siehst du wo er hängt und wie lang für was benötigt wird.

 

EDIT:

Wieso führst du das Script nicht auf dem Fileserver aus und fragst Lokal die Größen ab?

bearbeitet von Dukel
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...