-
Posts
827 -
Joined
-
Last visited
Content Type
Forums
News
20th
EduGeek EDIT Conference
Blogs
Everything posted by morganw
-
RAID5 over 5 drives. It seems to be stable running on 4 drives but that the consistency check couldn't complete, is it normal for this not to complete if one drive is damaged?
-
Currently running with the drive removed from the array.
-
Hi, The main server here is unstable with one drive in the RAID array having it's access light stuck on every now and again (would normally happen while copying files). This would sometimes lead to the server going slowly or rebooting. I ran a consistency check overnight and it stuck at 60%, the drive shows Media Error : 32 under the MegaRAID BIOS console. Should I be 1) Trying to rebuild the drive through the MegaRAID BIOS console 2) Waiting for a replacement drive, then build the new drive into the array 3) Doing something else In my my mind Media Error means the drive is faulty, the array isn't healthy so I can't run this server today, but that means no DNS, majority of file storage, and pretty much everything else usefeul. Help / advice appreciated. Morgan
-
I think you need to customise the FOG boot image to include the proxy settings, everything runs independently from the server when doing the virus scan so the proxy settings on the FOG server are irrelevant. There is a script to let you edit the boot image built in... SourceForge.net: FOG - A Free Cloning Solution: Topic: Problem with ClamAV updating and Proxy
-
Yes, just rename / replace bzImage. I'm just using the one that came with FOG 0.25, seems to work on everything I have.
- 11 replies
-
- 1
-
-
- deployment
- fog
-
(and 2 more)
Tagged with:
-
That's exactly what mine was doing, try an alternate kernel or just download an older version of FOG and get the kernel from that.
- 11 replies
-
- 1
-
-
- deployment
- fog
-
(and 2 more)
Tagged with:
-
Go to the 'Storage Management' section on the management interface, then click on 'All Storage Nodes', then you should see a default entry 'DefaultMember'. Click on that to edit it and then set the 'Max Clients' field to whatever you want.
-
I'd like to help with this, i'm running it on Xenserver (Debian Lenny) and i've yet to see any documentation from anyone running it in that environment or installing from scratch. I'm making a brand new domain at the moment for September and using FOG for the imaging, I would like to use the snap-in funcationailty but I couldn't find a way to enforce the timing of the intallations so at the moment I'm aiming for syspreped images, then a runonce AutoIT script that does extra installs / configuration (while blocking keyboard / mouse input), then installs the FOG service, then reboots, then the bulk of the software would be installed by group policy objects. Would be very interested in helping and learning more.
-
Is the driver installing during the sysprep minisetup or have you run the installer prior to running sysprep, (or are you not using sysprep?). I think this is the same hardware I had some problems with, I think that the actual installer you would run manually will install a service on the PC to coexsit with the actual driver because letting the driver install through minisetup will complete, and looks ok in the device manager, but doesn't work. If you create the image after a manual install of the driver, then create the image it should work.
-
I've (unfortunately)also got a switch infrastructure that is mostly Netgear, I could never get any kind of multicast transfer from FOG through any of them. I found that limiting the server to only image two clients at a time and then just letting them queue for unicasting was fast enough.
-
FOG has a proxy setting to allow the interface to update correctly and download different kernels (go to 'fog settings' in the web interface). If you're still missing graphics and other bits you might be missing some packages from the install process, did the fog install script successfully finish and check the package installations? Assuming the installation is correct i've found that completely skipping the actual image upload means that you're using a kernel that doesn't work with your hardware, I've reverted to an older kernel to work around the same issue. If it isn't a kernel issue then you can put it into debug mode and execute partimage directly to see if you get a more revealing error message.
- 11 replies
-
- 2
-
-
- deployment
- fog
-
(and 2 more)
Tagged with:
-
Thanks, already tried that though. It doesn't seem to have any effect on what happens as the start menu is displayed, only on what happens when you actually click the dead link.
-
I was looking for something to use network wide, some kind of policy that does something like 'Do not check shortcuts before displaying' or 'Shortcut check timeout value = 0 seconds'. Just in case someone is logged in, but something like the application server is somehow unavailable or restarting, I didn't want it to freeze their start menu.
-
It freezes when you hover the mouse pointer over the start menu folder that contains the dead link. I haven't got it pinned but I guess if I did it would freeze straight away when I opened the start menu.
-
Is there anyway to stop the start menu from freezing when it contains a shortcut whose target is unavailable?
-
Just got this sorted I think, Used a Quest cmdlet to get the user's SID, then used that to set the access rules rather than the username. For anyone else doing this who doesn't want to waste an hour wondering why it doesn't work, you need to pass [object].sid into the access rule not [object].sid.value.
-
All of the Quest cmdlets don't produce errors now, either by specifying -service 'domaincontroller' on each command, or by using the Connect-QADService to set the value globally for all other Quest cmdlets. I've got one problem left, this code doesn't use a Quest cmdlet so how would I force the object lookup onto a particular DC? $acl = Get-Acl $folder $accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("[b]$netbios\$username[/b]", "Modify", $inherit, $propagation, "Allow") $acl.AddAccessRule($accessrule) set-acl -aclobject $acl $folder
-
Thanks guys, after having a read around I think I need to specify -service 'domaincontroller.fqdn' on each function that uses the Quest cmdlets.
-
I've pieced together a powershell script based on the Quest cmdlets that will provision users, set attributes, add to groups, create a home folder, share the home folder, set security on the home folder. I created this in a virtual environment with one DC and had no issues, when running on the new production environment I will get intermittent errors when adding a user to a security group or when setting the file security. The problems always relate to the username being invalid, but if I slow down the process by inserting 5 second delays at various points will always seems to work. I initially presumed this was down to the AD user object not existing in time to be used later in the script but i've add loops to wait until the user exists and the loop are never triggered (therefore the user must exist at that point in the script). If I rerun the import the users that the script errors on are not the same every time, the only thing I can think of is that part of the script is working with the primary DC, the next part is connecting to the backup DC (or vice versa). If this is the case is there anywhere to force a particular DC when using the Quest cmdlets? Or does anyone know of any other reason why a delay of a few seconds is enough to make the script run properly. Any help appreciated. Morgan Function New-SecurityDescriptor ( $ACEs = (throw “Missing one or more Trustees”), [string] $ComputerName = “.”) { #Create SeCDesc object $SecDesc = ([WMIClass] “\\$ComputerName\root\cimv2:Win32_SecurityDescriptor”).CreateInstance() #Check if input is an array or not. if ($ACEs -is [system.Array]) { #Add Each ACE from the ACE array foreach ($ACE in $ACEs ) { $SecDesc.DACL += $ACE.psobject.baseobject } } else { #Add the ACE $SecDesc.DACL = $ACEs } #Return the security Descriptor return $SecDesc } Function New-ACE ( [string] $Name = (throw “Please provide user/group name for trustee”), [string] $Domain = (throw “Please provide Domain name for trustee”), [string] $Permission = “Read”, [string] $ComputerName = “.”, [switch] $Group = $false) { #Create the Trusteee Object $Trustee = ([WMIClass] “\\$ComputerName\root\cimv2:Win32_Trustee”).CreateInstance() #Check for Special cases Everyone and Authenticated Users) switch ($Name.ToUpper()) { “EVERYONE” { $Trustee.Domain = $Null $Trustee.Name = “EVERYONE” $Trustee.SID = @(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0) } “AUTHENTICATED USERS” { $Trustee.Domain = “NT AUTHORITY” $Trustee.Name = “Authenticated Users” $Trustee.SID = @(1, 1, 0, 0, 0, 0, 0, 5, 11, 0, 0, 0) } default { #Search for the user or group, depending on the -Group switch if (!$group) { $account = [WMI] “\\$ComputerName\root\cimv2:Win32_Account.Name=’$Name’,Domain=’$Domain’” } else { $account = [WMI] “\\$ComputerName\root\cimv2:Win32_Group.Name=’$Name’,Domain=’$Domain’” } #Get the SID for the found account. $accountSID = [WMI] “\\$ComputerName\root\cimv2:Win32_SID.SID=’$($account.sid)’” #Setup Trusteee object $Trustee.Domain = $Domain $Trustee.Name = $Name $Trustee.SID = $accountSID.BinaryRepresentation } } #Create ACE (Access Control List) object. $ACE = ([WMIClass] “\\$ComputerName\root\cimv2:Win32_ACE”).CreateInstance() #Select the AccessMask depending on the -Permission parameter switch ($Permission) { “Read” { $ACE.AccessMask = 1179817 } “Change” { $ACE.AccessMask = 1245631 } “Full” { $ACE.AccessMask = 2032127 } default { throw “$Permission is not a supported permission value. Possible values are ‘Read’,'Change’,'Full’” } } #Setup the rest of the ACE. $ACE.AceFlags = 3 $ACE.AceType = 0 $ACE.Trustee = $Trustee #Return the ACE return $ACE } Function New-Share ( [string] $FolderPath = (throw “Please provide the share folder path (FolderPath)”), [string] $ShareName = (throw “Please provide the Share Name”), $ACEs, [string] $Description = “”, [string] $ComputerName = “.”, $MaxUsers = $null, $Password = $null) { #Start the Text for the message. $text = “$ShareName ($FolderPath): ” #Package the SecurityDescriptor via the New-SecurityDescriptor Function. $SecDesc = New-SecurityDescriptor $ACEs #Create the share via WMI, get the return code and create the return message. $Share = [WMICLASS] “\\$ComputerName\Root\Cimv2:Win32_Share” $result = $Share.Create($FolderPath, $ShareName, 0, $MaxUsers, $Description, $Password, $SecDesc) switch ($result.ReturnValue) { 0 {$text += “has been success fully created” } 2 {$text += “Error 2: Access Denied” } 8 {$text += “Error 8: Unknown Failure” } 9 {$text += “Error 9: Invalid Name”} 10 {$text += “Error 10: Invalid Level” } 21 {$text += “Error 21: Invalid Parameter” } 22 {$text += “Error 22 : Duplicate Share”} 23 {$text += “Error 23: Redirected Path” } 24 {$text += “Error 24: Unknown Device or Directory” } 25 {$text += “Error 25: Net Name Not Found” } } #Create Custom return object and Add results $return = New-Object System.Object $return | Add-Member -type NoteProperty -name ReturnCode -value $result.ReturnValue $return | Add-Member -type NoteProperty -name Message -value $text #Return result object $return } Function ProvisionInputCSV { Param ([string]$filename) $users = Import-CSV $filename foreach ($user in $users) { $ht = @{'givenName'=$user."First Name"; 'sn'= $user."Last Name"; 'displayName'= $user."First Name" + " " + $user."Last Name"; 'email'= $user."email"; 'password'= $user.Password; 'samAccountName'= $user."Logon Name"; 'OU'= $user."OU"; 'HomeServer' = $user."HomeServer"; 'HomeServerDrive' = $user."HomeServerDrive"; 'HomeServerPath' = $user."HomeServerPath"; 'HomeDrive'= $user."HomeDrive"; 'NetBIOS'= $user."NetBIOS"; 'FQDN'= $user."FQDN Ext."; 'ProfilePath'= $user."Profile"; 'TsProfilePath'= $user."TSProfile"; 'Staff'= $user."Staff"; 'Access Write Student Folders' = $user."Access Write Student Folders"; 'Access Read Student Folders' = $user."Access Read Student Folders"; 'Sept07'= $user."Sept07" } Write-Output $ht } } Function Provision { PROCESS { CreateUser $_ CreateHomeFolder $_ SetFileSecurity $_ AddToGroup $_ } } Function CreateUser { Param($userinfo) $homedirectory= "\\" + $userinfo['HomeServer'] + "\" + $userinfo['samAccountName'] + "$" $userprincipalname= $userinfo['samAccountName'] + "@" + $userinfo['NetBIOS'] + "." + $userinfo['FQDN'] $OU= $userinfo['OU'] + ",DC=" + $userinfo['NetBIOS'] + ",DC=" + $userinfo['FQDN'] $HomeDrive= $userinfo['HomeDrive'] + ":" New-QADUser -UserPrincipalName $userprincipalname –samAccountName $userinfo['samAccountName'] –ParentContainer $OU –FirstName $userinfo['givenName'] –LastName $userinfo['sn'] –Name ($userinfo['givenName'] + ' ' + $userinfo['sn']) –displayName ($userinfo['givenName'] + ' ' + $userinfo['sn']) -email $userinfo['email'] –userPassword $userinfo['password'] -HomeDrive $HomeDrive -HomeDirectory $homedirectory -ProfilePath $userinfo['ProfilePath'] | Enable-QADUser $u = get-qaduser -samaccountname $userinfo['samAccountName'] $u.TsProfilePath = $userinfo['TsProfilePath'] $u.CommitChanges() Start-Sleep -s 5 } Function CreateHomeFolder { Param($userinfo) $folder= $userinfo['samAccountName'] $completepath= "\\" + $userinfo['HomeServer'] + "\" + $userinfo['HomeServerDrive'] + "$\" + $userinfo['HomeServerPath'] + "\" + $folder $server= $userinfo['HomeServer'] new-item $completepath -itemType Directory Start-Sleep -s 5 $completepath= $userinfo['HomeServerDrive'] + ":\" + $userinfo['HomeServerPath'] + "\" + $folder #Create Share Permission $ACE = @(New-ACE -Name “Authenticated Users” -Domain “NT AUTHORITY” -Permission “Full” -Group) #Create the share $result = New-Share -FolderPath “$completepath" -ShareName "$folder$" -ACEs $ACE -Description “$folder” -Computer “$server” #Output result message from new-share Write-Output $result.Message } Function SetFileSecurity { Param($userinfo) $folder = "\\" + $userinfo['HomeServer'] + "\" + $userinfo['HomeServerDrive'] + "$\" + $userinfo['HomeServerPath'] + "\" + $userinfo['samAccountName'] $inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit" $propagation = [system.security.accesscontrol.PropagationFlags]"None" $acl = Get-Acl $folder #This removes existing permissions #$acl.SetAccessRuleProtection($true,$false) $username= $userinfo['samAccountName'] $netbios= $userinfo['NetBIOS'] Start-Sleep -s 5 $loopvar= Get-QADUser -samaccountname $username While ($loopvar -eq $null) { Write-Output "User Doesn't Exist Yet" Start-Sleep -s 5 $loopvar= Get-QADUser -samaccountname $username } $accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("$netbios\$username", "Modify", $inherit, $propagation, "Allow") $acl.AddAccessRule($accessrule) #$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("$netbios\Domain Admins", "FullControl", $inherit, $propagation, "Allow") #$acl.AddAccessRule($accessrule) #$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("SYSTEM", "FullControl", $inherit, $propagation, "Allow") #$acl.AddAccessRule($accessrule) #$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("$netbios\Administrator", "FullControl", $inherit, $propagation, "Allow") #$acl.AddAccessRule($accessrule) set-acl -aclobject $acl $folder } Function AddToGroup { Param($userinfo) #Start-Sleep -s 2 $username= $userinfo['samAccountName'] $loopvar= Get-QADUser -samaccountname $username While ($loopvar -eq $null) { Write-Output "User Doesn't Exist Yet" Start-Sleep -s 5 $loopvar= Get-QADUser -samaccountname $username } $groups = 'Staff','Access Read Student Folders','Access Write Student Folders','Sept07' Foreach ($group in $groups) { If ([int]$userinfo[$group]) { $currentgroup= $userinfo['NetBIOS'] + "\"+ $group $username= $userinfo['NetBIOS'] + "\" + $userinfo['samAccountName'] Add-QADGroupMember -identity $currentgroup -member ($username)} } } ProvisionInputCSV C:\Scripts\import.csv | Provision
-
Can I get a refund on licensed software if it's buggy / broken?
morganw replied to morganw's topic in Licensing Questions
Right, just done this, it goes wrong at exactly the same point on a physical server as it does on a virtual server. All the rest of the server infrastructure is still on XenServer though. I've just read the EULA and I have a 90 day period where I can request a refund, but this will only be honoured if they cannot fix any issues within 'reasonable time'. -
Can I get a refund on licensed software if it's buggy / broken?
morganw replied to morganw's topic in Licensing Questions
Thanks, i'll do that today, test on a physical server attached to the new domain. -
Can I get a refund on licensed software if it's buggy / broken?
morganw replied to morganw's topic in Licensing Questions
I also spent a long time talking to their sales people and had a remote demo. I told them what I was doing (rebuilding an entire site - I need something that works to make that easier). At the moment I can't deploy anything with it so I would say it isn't fit for purpose. -
Can I get a refund on licensed software if it's buggy / broken?
morganw replied to morganw's topic in Licensing Questions
Thanks. I did spent a long time testing it on a test network but I had to use Hyper-V as I didn't have the XenServer system at the time. The niggles I can live with at the moment as they aren't critical, the entire program not installing or working correctly just because I've changed to another hypervisor is unexpected and makes the entire thing useless in it's current state. -
Oxbox Science Works 2 Dependencies: .Net framework 2.0 Install type: Client / Server Usernames / Passwords: teacher / ******** Install instructions: The installer makes a messy install so this is to work around the installer issues. • Login to workstation, remove from domain, reboot… • Login to workstation, rename workstation so the hostname matches the application server name, reboot… • Insert install disc, run installer, allow .Net framework 2.0 to install if not present. • Allow the initial installation to install to the local had disk. • Do a server install onto the workstation, afterwards copy the install folder onto the application server. • Check the metadata text file to see if the share location on the server is correctly listed, if it is different then use find/replace in notepad to correct all metadata entries. • Reimage workstation… • Insert install disc, run installer, allow .Net framework 2.0 to install if not present. • Allow the initial installation to install to the local had disk (take note of this location). • Run a client install, when prompted for the install location it is actually asking for the location of the server install, press browse and locate the folder that contains the content folder on the server. If share browsing is disabled type in the correct path. • Test with the desktop shortcut to see if the program is working correctly. • Create .7z archive of the local install folder (location that was noted), this is all that is required to run the application other than the .Net framework. • Use the 7zip module ‘7zsd.sfx’ to create a silent self extractor. • To fix the server paths in lessons, use a tool such as text crawler to replace the server string in all files that have the extension .lessonplan. The start may be overkill but it worked so I'd do it again.
-
Hi, Apologies if this is the wrong place to post this but I couldn't see anywhere more appropriate. I'm in a difficult situation at the moment after having purchased a OS and application deployment system, which so far has left me unable to deploy anything. I'm currently setting up a brand new system on a new domain which has to be ready before the summer so that we have time to transition data and services and rebuild the workstations into a new structure. I've not done this before and so I purchased licenses for a software deployment system thinking that I will have a comprehensive and supported product which will make the site rebuild a lot more manageable. The problem is that the OS deployment part was buggy when I tested it on Hyper-V, but did operate, some options didn't work correctly, one type of motherboard refused to work with it, but overall it can be said that it worked. Now I've got the new production system in place I'm now running on Citrix Xenserver. The deployment system now doesn't install correctly and I can't deploy anything. I'm at the point where I've seen enough hardware and software issues that i'd like to get the money back and either buy something else, or use FOG instead as I feel comfortable using it. My main concern is time, I can't wait weeks for this to be fixed, tested and released, I need a product that works right now so I can stay on schedule for setup and testing across a large amount of software and hardware. Am I entitled to phone up the supplier and say, "I'm currently unable to deploy anything with this system, I would like a refund please"? Advice appreciated.
