Hallo zusammen,
ich habe gerade untenstehende Funktionen als PowerShell Skript vorliegen und benötige sie leider als VBScript. Da es um meine PowerShell Kenntnisse nicht wirklich gut bestellt ist, hoffe ich hier ein wenig Hilfe zu finden.
Ich hoffe, ihr könnt mir helfen, vielen Dank schonmal im vorraus!
Mfg Kae
ich habe gerade untenstehende Funktionen als PowerShell Skript vorliegen und benötige sie leider als VBScript. Da es um meine PowerShell Kenntnisse nicht wirklich gut bestellt ist, hoffe ich hier ein wenig Hilfe zu finden.
Code:
function get-History()
{
$o = @{}
# bereits ausgeführte TS aus der History ermitteln
$ExecutionHistory = "HKLM\SOFTWARE\Microsoft\SMS\Mobile Client\Software Distribution\Execution History\System"
Get-ChildItem -Path "Registry::$ExecutionHistory" | % {
$PkgID = $_.PSChildName
$Path = $_.Name
$_.GetSubKeyNames() | % {
Get-ItemProperty -Path "Registry::$Path\$_" | % {
$o.Add(($PkgID + ":" + $_._ProgramID),$_._state)
}
}
} | Out-Null
Write-Output $o
}
function get-Advertisements()
{
$o = @{}
# advertised Task Sequences
Get-WmiObject -Namespace "root\CCM\Policy\Machine\ActualConfig" -ComputerName "localhost" -query "select * from CCM_TaskSequence" | % {
$o.add($_.ADV_AdvertisementID,$_)
} | Out-Null
# advertised Packages (not members of Task Sequences)
Get-WmiObject -Namespace "root\CCM\Policy\Machine\ActualConfig" -ComputerName "localhost" -query "select * from CCM_SoftwareDistribution" | % {
if ( -not $o.Contains($_.ADV_AdvertisementID)) { $o.add($_.ADV_AdvertisementID,$_) }
} | Out-Null
Write-Output $o
}
function get-ActiveExecutions
{
$o = @{}
Get-WmiObject -Namespace "root\CCM\SoftMgmtAgent" -ComputerName "localhost" -query "select * from CCM_TSExecutionRequest" |
% { $o.Add($_.AdvertID,$_ ) } | Out-Null
Get-WmiObject -Namespace "root\CCM\SoftMgmtAgent" -ComputerName "localhost" -query "select * from CCM_ExecutionRequestEx where TSSTep = FALSE" |
% { if ($_.ProgramID -ne '*') { $o.Add($_.AdvertID,$_ ) } } | Out-Null
Write-Output $o
}
function Rerun-Advertisement($AdvID)
{
Get-WmiObject -Namespace "root\ccm\scheduler" -Class ccm_scheduler_history |
where { $_.scheduleid -like "*$AdvID*" } | Remove-WmiObject
$SMSCli = [wmiclass] "\root\ccm:SMS_Client"
Get-WmiObject -Namespace ROOT\CCM\Policy\Machine\ActualConfig -Class CCM_Scheduler_ScheduledMessage |
where {$_.ScheduledMessageID -like "*$AdvID*"} |
% { $SMSCli.TriggerSchedule($_.ScheduledMessageID) | Out-Null }
}
function Update-MachinePolicies()
{
$SMSCli = [wmiclass] "\root\ccm:SMS_Client"
$SMSCli.RequestMachinePolicy(0) | Out-Null
}
Mfg Kae